mirror of https://gitee.com/openkylin/qemu.git
hw/arm/virt: Write extra pci roots into fw_cfg
Add bus property to virt machine for primary PCI root bus and use it to add extra pci roots behind it. Signed-off-by: Jiahui Cen <cenjiahui@huawei.com> Signed-off-by: Yubo Miao <miaoyubo@huawei.com> Message-Id: <20201119014841.7298-4-cenjiahui@huawei.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
parent
0abd38885a
commit
09fad16744
|
@ -1289,7 +1289,8 @@ static void create_pcie(VirtMachineState *vms)
|
|||
}
|
||||
|
||||
pci = PCI_HOST_BRIDGE(dev);
|
||||
if (pci->bus) {
|
||||
vms->bus = pci->bus;
|
||||
if (vms->bus) {
|
||||
for (i = 0; i < nb_nics; i++) {
|
||||
NICInfo *nd = &nd_table[i];
|
||||
|
||||
|
@ -1346,7 +1347,7 @@ static void create_pcie(VirtMachineState *vms)
|
|||
|
||||
switch (vms->iommu) {
|
||||
case VIRT_IOMMU_SMMUV3:
|
||||
create_smmu(vms, pci->bus);
|
||||
create_smmu(vms, vms->bus);
|
||||
qemu_fdt_setprop_cells(vms->fdt, nodename, "iommu-map",
|
||||
0x0, vms->iommu_phandle, 0x0, 0x10000);
|
||||
break;
|
||||
|
@ -1481,6 +1482,8 @@ void virt_machine_done(Notifier *notifier, void *data)
|
|||
exit(1);
|
||||
}
|
||||
|
||||
fw_cfg_add_extra_pci_roots(vms->bus, vms->fw_cfg);
|
||||
|
||||
virt_acpi_setup(vms);
|
||||
virt_build_smbios(vms);
|
||||
}
|
||||
|
|
|
@ -163,6 +163,7 @@ struct VirtMachineState {
|
|||
DeviceState *gic;
|
||||
DeviceState *acpi_dev;
|
||||
Notifier powerdown_notifier;
|
||||
PCIBus *bus;
|
||||
};
|
||||
|
||||
#define VIRT_ECAM_ID(high) (high ? VIRT_HIGH_PCIE_ECAM : VIRT_PCIE_ECAM)
|
||||
|
|
Loading…
Reference in New Issue