Changeset 89098 in vbox for trunk/src/VBox/Main
- Timestamp:
- May 17, 2021 1:58:09 PM (4 years ago)
- svn:sync-xref-src-repo-rev:
- 144439
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Main/src-client/ConsoleImpl2.cpp
r89004 r89098 832 832 833 833 BOOL fIOAPIC; 834 uint32_t uIoApicPciAddress = NIL_PCIBDF; 834 835 hrc = biosSettings->COMGETTER(IOAPICEnabled)(&fIOAPIC); H(); 835 836 … … 868 869 if (iommuType == IommuType_AMD) 869 870 { 870 #ifndef VBOX_WITH_IOMMU_AMD 871 #ifdef VBOX_WITH_IOMMU_AMD 872 /* 873 * Reserve the specific PCI address of the "SB I/O APIC" when using 874 * an AMD IOMMU. Required by Linux guests, see @bugref{9654#c23}. 875 */ 876 uIoApicPciAddress = VBOX_PCI_BDF_SB_IOAPIC; 877 #else 871 878 LogRel(("WARNING! AMD IOMMU not supported, IOMMU disabled.\n")); 872 879 iommuType = IommuType_None; … … 876 883 if (iommuType == IommuType_Intel) 877 884 { 878 #ifndef VBOX_WITH_IOMMU_INTEL 885 #ifdef VBOX_WITH_IOMMU_INTEL 886 /* 887 * Reserve a unique PCI address for the I/O APIC when using 888 * an Intel IOMMU. For convenience we use the same address as 889 * we do on AMD, see @bugref{9967#c13}. 890 */ 891 uIoApicPciAddress = VBOX_PCI_BDF_SB_IOAPIC; 892 #else 879 893 LogRel(("WARNING! Intel IOMMU not supported, IOMMU disabled.\n")); 880 894 iommuType = IommuType_None; … … 1600 1614 hrc = pBusMgr->assignPCIDevice("iommu-amd", pInst); H(); 1601 1615 1602 /* 1603 * Reserve the specific PCI address of the "SB I/O APIC" when using 1604 * an AMD IOMMU. Required by Linux guests, see @bugref{9654#c23}. 1605 */ 1606 PCIBusAddress PCIAddr = PCIBusAddress(VBOX_PCI_BUS_SB_IOAPIC, VBOX_PCI_DEV_SB_IOAPIC, VBOX_PCI_FN_SB_IOAPIC); 1616 PCIBusAddress PCIAddr = PCIBusAddress((int32_t)uIoApicPciAddress); 1607 1617 hrc = pBusMgr->assignPCIDevice("sb-ioapic", NULL /* pCfg */, PCIAddr, true /*fGuestAddressRequired*/); H(); 1608 1618 } … … 1616 1626 hrc = pBusMgr->assignPCIDevice("iommu-intel", pInst); H(); 1617 1627 1618 /* 1619 * Reserve a specific PCI address for the I/O APIC when using 1620 * an Intel IOMMU. For convenience we use the same address as 1621 * we do on AMD, see @bugref{9967#c13}. 1622 */ 1623 PCIBusAddress PCIAddr = PCIBusAddress(VBOX_PCI_BUS_SB_IOAPIC, VBOX_PCI_DEV_SB_IOAPIC, VBOX_PCI_FN_SB_IOAPIC); 1628 PCIBusAddress PCIAddr = PCIBusAddress((int32_t)uIoApicPciAddress); 1624 1629 hrc = pBusMgr->assignPCIDevice("sb-ioapic", NULL /* pCfg */, PCIAddr, true /*fGuestAddressRequired*/); H(); 1625 1630 } … … 1769 1774 InsertConfigInteger(pCfg, "NumCPUs", cCpus); 1770 1775 if (iommuType == IommuType_Intel) 1776 { 1771 1777 InsertConfigString(pCfg, "ChipType", "DMAR"); 1778 InsertConfigInteger(pCfg, "PCIAddress", uIoApicPciAddress); 1779 } 1780 else if (iommuType == IommuType_AMD) 1781 InsertConfigInteger(pCfg, "PCIAddress", uIoApicPciAddress); 1772 1782 } 1773 1783 }
Note:
See TracChangeset
for help on using the changeset viewer.