VirtualBox

Changeset 85855 in vbox


Ignore:
Timestamp:
Aug 21, 2020 7:36:02 AM (5 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
140024
Message:

AMD IOMMU: bugref:9654 ACPI fixes.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/PC/DevACPI.cpp

    r85677 r85855  
    36173617    RT_ZERO(Ivrs);
    36183618
     3619    uint16_t const uIommuBus = 0;
     3620    uint16_t const uIommuDev = RT_HI_U16(pThis->u32IommuAmdPciAddress);
     3621    uint16_t const uIommuFn  = RT_LO_U16(pThis->u32IommuAmdPciAddress);
     3622
    36193623    /* IVRS header. */
    36203624    acpiR3PrepareHeader(pThis, &Ivrs.Hdr.header, "IVRS", sizeof(Ivrs), ACPI_IVRS_FMT_REV_FIXED);
     
    36353639                                       + sizeof(Ivrs.IvhdType10IoApic)
    36363640                                       + sizeof(Ivrs.IvhdType10Hpet);
    3637     Ivrs.IvhdType10.u16DeviceId        = pThis->u32IommuAmdPciAddress;
     3641    Ivrs.IvhdType10.u16DeviceId        = PCIBDF_MAKE(uIommuBus, VBOX_PCI_DEVFN_MAKE(uIommuDev, uIommuFn));
    36383642    Ivrs.IvhdType10.u16CapOffset       = 0;             /* 0=No multiple IOMMU functionality. */
    36393643    Ivrs.IvhdType10.u64BaseAddress     = 0xfeb80000;    /* MMIO base address: Taken from real hardware ACPI dumps. */
     
    45824586
    45834587    /* Warn if the SB IOAPIC is not at the required address if an AMD IOMMU is configured. */
    4584     if (   pThis->u32IocPciAddress
    4585         && pThis->u32SbIoApicPciAddress != VBOX_PCI_BDF_SB_IOAPIC)
     4588    if (   pThis->u32IommuAmdPciAddress
     4589        && pThis->u32SbIoApicPciAddress != RT_MAKE_U32(VBOX_PCI_FN_SB_IOAPIC, VBOX_PCI_DEV_SB_IOAPIC))
    45864590    {
    45874591        /** @todo Maybe make this a VM startup failure later. */
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette