Booting on my board with broken tables, produces this warning:
Quick solution for Sabertooth 990FX (R1.0):
Edit file /etc/default/grub, find line "GRUB_CMDLINE_LINUX_DEFAULT=", edit it to look like:
Run "sudo update-grub" after it.
Explanation:
IOAPIC[7] correspons to southbridge ioapic and IOAPIC[8] northbridge ioapic
amd_iommu_dump= [HW,X86-64]
Enable AMD IOMMU driver option to dump the ACPI table
for AMD IOMMU. With this option enabled, AMD IOMMU
driver will print ACPI tables for AMD IOMMU during
IOMMU initialization.
Booting with amd_iommu_dump=1:
The ivrs table is wrong, it points to non existant IOAPIC[0] and IOAPIC[255], so to override this i use this commandline in grub:
ivrs_ioapic[7]=00:14.0 ivrs_ioapic[8]=00:00.1.
ivrs_ioapic [HW,X86_64]
Provide an override to the IOAPIC-ID<->DEVICE-ID
mapping provided in the IVRS ACPI table. For
example, to map IOAPIC-ID decimal 10 to
PCI device 00:14.0 write the parameter as:
ivrs_ioapic[10]=00:14.0
Booting with it:
Code:
[ 0.297481] [Firmware Bug]: AMD-Vi: IOAPIC[7] not in IVRS table
[ 0.297485] [Firmware Bug]: AMD-Vi: IOAPIC[8] not in IVRS table
[ 0.297487] [Firmware Bug]: AMD-Vi: No southbridge IOAPIC found in IVRS table
[ 0.297490] AMD-Vi: Disabling interrupt remapping due to BIOS Bug(s)
Edit file /etc/default/grub, find line "GRUB_CMDLINE_LINUX_DEFAULT=", edit it to look like:
Code:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash ivrs_ioapic[7]=00:14.0 ivrs_ioapic[8]=00:00.1"
Explanation:
IOAPIC[7] correspons to southbridge ioapic and IOAPIC[8] northbridge ioapic
Quote:
amd_iommu_dump= [HW,X86-64]
Enable AMD IOMMU driver option to dump the ACPI table
for AMD IOMMU. With this option enabled, AMD IOMMU
driver will print ACPI tables for AMD IOMMU during
IOMMU initialization.
Booting with amd_iommu_dump=1:
Code:
[ 0.297434] AMD-Vi: device: 00:00.2 cap: 0040 seg: 0 flags: 3e info 1300
[ 0.297435] AMD-Vi: mmio-addr: 00000000feb20000
[ 0.297444] AMD-Vi: DEV_SELECT_RANGE_START devid: 00:00.0 flags: 00
[ 0.297445] AMD-Vi: DEV_RANGE_END devid: 00:00.2
[ 0.297446] AMD-Vi: DEV_SELECT devid: 00:02.0 flags: 00
[ 0.297447] AMD-Vi: DEV_SELECT_RANGE_START devid: 01:00.0 flags: 00
[ 0.297448] AMD-Vi: DEV_RANGE_END devid: 01:00.1
[ 0.297449] AMD-Vi: DEV_SELECT devid: 00:04.0 flags: 00
[ 0.297450] AMD-Vi: DEV_SELECT devid: 02:00.0 flags: 00
[ 0.297450] AMD-Vi: DEV_SELECT devid: 00:05.0 flags: 00
[ 0.297451] AMD-Vi: DEV_SELECT devid: 03:00.0 flags: 00
[ 0.297452] AMD-Vi: DEV_SELECT devid: 00:06.0 flags: 00
[ 0.297453] AMD-Vi: DEV_SELECT devid: 04:00.0 flags: 00
[ 0.297454] AMD-Vi: DEV_SELECT devid: 00:07.0 flags: 00
[ 0.297454] AMD-Vi: DEV_SELECT devid: 05:00.0 flags: 00
[ 0.297455] AMD-Vi: DEV_SELECT devid: 00:09.0 flags: 00
[ 0.297456] AMD-Vi: DEV_SELECT devid: 06:00.0 flags: 00
[ 0.297457] AMD-Vi: DEV_SELECT devid: 00:0b.0 flags: 00
[ 0.297458] AMD-Vi: DEV_SELECT_RANGE_START devid: 07:00.0 flags: 00
[ 0.297458] AMD-Vi: DEV_RANGE_END devid: 07:00.1
[ 0.297459] AMD-Vi: DEV_SELECT devid: 00:11.0 flags: 00
[ 0.297460] AMD-Vi: DEV_SELECT_RANGE_START devid: 00:12.0 flags: 00
[ 0.297461] AMD-Vi: DEV_RANGE_END devid: 00:12.2
[ 0.297462] AMD-Vi: DEV_SELECT_RANGE_START devid: 00:13.0 flags: 00
[ 0.297462] AMD-Vi: DEV_RANGE_END devid: 00:13.2
[ 0.297463] AMD-Vi: DEV_SELECT devid: 00:14.0 flags: d7
[ 0.297464] AMD-Vi: DEV_SELECT devid: 00:14.2 flags: 00
[ 0.297465] AMD-Vi: DEV_SELECT devid: 00:14.3 flags: 00
[ 0.297466] AMD-Vi: DEV_SELECT devid: 00:14.4 flags: 00
[ 0.297467] AMD-Vi: DEV_ALIAS_RANGE devid: 08:00.0 flags: 00 devid_to: 00:14.4
[ 0.297468] AMD-Vi: DEV_RANGE_END devid: 08:1f.7
[ 0.297474] AMD-Vi: DEV_SELECT devid: 00:14.5 flags: 00
[ 0.297475] AMD-Vi: DEV_SELECT_RANGE_START devid: 00:16.0 flags: 00
[ 0.297476] AMD-Vi: DEV_RANGE_END devid: 00:16.2
[ 0.297477] AMD-Vi: DEV_SPECIAL(IOAPIC[0]) devid: 00:14.0
[ 0.297478] AMD-Vi: DEV_SPECIAL(HPET[0]) devid: 00:14.0
[ 0.297479] AMD-Vi: DEV_SPECIAL(IOAPIC[255]) devid: 00:00.1
[ 0.297481] [Firmware Bug]: AMD-Vi: IOAPIC[7] not in IVRS table
[ 0.297485] [Firmware Bug]: AMD-Vi: IOAPIC[8] not in IVRS table
[ 0.297487] [Firmware Bug]: AMD-Vi: No southbridge IOAPIC found in IVRS table
[ 0.297490] AMD-Vi: Disabling interrupt remapping due to BIOS Bug(s)
ivrs_ioapic[7]=00:14.0 ivrs_ioapic[8]=00:00.1.
Quote:
ivrs_ioapic [HW,X86_64]
Provide an override to the IOAPIC-ID<->DEVICE-ID
mapping provided in the IVRS ACPI table. For
example, to map IOAPIC-ID decimal 10 to
PCI device 00:14.0 write the parameter as:
ivrs_ioapic[10]=00:14.0
Booting with it:
Code:
[ 1.750889] AMD-Vi: Found IOMMU at 0000:00:00.2 cap 0x40
[ 1.750890] AMD-Vi: Interrupt remapping enabled
[ 1.750992] AMD-Vi: Initialized for Passthrough Mode