1

Booting Debian bullseye 5.9.0-1-amd64 #1 SMP Debian 5.9.1-1 (2020-10-17) x86_64 GNU/Linux on my Lenovo Ideapad 320 (lastest available BIOS) I get those firmware bug complaining about missing IOAPIC entries in the IVRS table.

Please note the following verbose output comes from amd_iommu_dump=1 as suggested in this similar question

[    0.242293] AMD-Vi: Using IVHD type 0x11
[    0.243158] AMD-Vi: device: 00:00.2 cap: 0040 seg: 0 flags: b8 info 0000
[    0.243159] AMD-Vi:        mmio-addr: 00000000feb80000
[    0.243184] AMD-Vi:   DEV_SELECT_RANGE_START  devid: 00:01.0 flags: 00
[    0.243186] AMD-Vi:   DEV_RANGE_END           devid: ff:1f.6
[    0.243857] AMD-Vi:   DEV_ALIAS_RANGE                 devid: ff:00.0 flags: 00 devid_to: 00:14.4
[    0.243858] AMD-Vi:   DEV_RANGE_END           devid: ff:1f.7
[    0.243863] AMD-Vi:   DEV_SPECIAL(HPET[0])           devid: 00:14.0
[    0.243904] AMD-Vi: [Firmware Bug]: : IOAPIC[4] not in IVRS table
[    0.243910] AMD-Vi: [Firmware Bug]: : IOAPIC[5] not in IVRS table
[    0.243912] AMD-Vi: [Firmware Bug]: : No southbridge IOAPIC found
[    0.243913] AMD-Vi: Disabling interrupt remapping

Here are the devices of interest:

$ lspci -nn | egrep "SMBus | IOMMU"

00:00.2 IOMMU [0806]: Advanced Micro Devices, Inc. [AMD] Family 15h (Models 60h-6fh) I/O Memory Management Unit [1022:1577]
00:14.0 SMBus [0c05]: Advanced Micro Devices, Inc. [AMD] FCH SMBus Controller [1022:790b] (rev 4a)

Now, booting the system adding ivrs_ioapic[4]=00:14.0 ivrs_ioapic[5]=00:02.0 to the kernel cmdline seems to work until X tries to start up. The screen remains black (only the static cursor stays visible in the top-corner of the screen) and in the kernel messages like these:

$ journalctl -p err -b -1

kernel: pci 0000:00:14.0: AMD-Vi: Event logged [IO_PAGE_FAULT domain=0x0000 address=0xfdf800ff98 flags=0x0008]
kernel: kfd kfd: TOPAZ  not supported in kfd
kernel: iommu ivhd0: AMD-Vi: Event logged [INVALID_DEVICE_REQUEST device=00:00.1 pasid=0x00000 address=0xfdf8160020 flags>
kernel: rcu: INFO: rcu_sched self-detected stall on CPU
kernel: rcu:         3-....: (20999 ticks this GP) idle=d6e/1/0x4000000000000000 softirq=5416/5416 fqs=5246 
kernel: rcu: INFO: rcu_sched detected expedited stalls on CPUs/tasks: { 3-... } 21442 jiffies s: 125 root: 0x8/.
kernel: rcu: blocking rcu_node structures:
kernel: watchdog: BUG: soft lockup - CPU#3 stuck for 22s! [pipewire-media-:993]
kernel: watchdog: BUG: soft lockup - CPU#3 stuck for 22s! [pipewire-media-:993]
kernel: rcu: INFO: rcu_sched self-detected stall on CPU
kernel: rcu:         3-....: (84002 ticks this GP) idle=d6e/1/0x4000000000000000 softirq=5416/5416 fqs=20988 
kernel: rcu: INFO: rcu_sched detected expedited stalls on CPUs/tasks: { 3-... } 87490 jiffies s: 125 root: 0x8/.
kernel: rcu: blocking rcu_node structures:

I have also tried to recompile the kernel with VGA_SWITCHEROO=N as suggested in this kernel bug report, but no changes.

I've also noticed that the offending param seems to be ivrs_ioapic[5]=00:02.0. In fact, if I boot the system only with ivrs_ioapic[4]=00:14.0 the firmware bug message disappears and the desktop boots as expected.

5
  • 1
    Do you have access to ssh after starting X11? Is it X11 or Wayland? Try to boot with iommu=soft Nov 14, 2020 at 15:52
  • Contact also the manufacturer (Lenovo). This is a firmware bug that they should fix. Nov 14, 2020 at 15:53
  • It's probably worth mentioning that the laptop boots and seems to work even with those Firmware bug messages. However, I guess some features offered by AMD-Vi might not be available.
    – mrfree
    Nov 14, 2020 at 18:10
  • At the end I decided to simply disable interrupt remapping and get rid of those errors intremap=off.
    – mrfree
    Dec 3, 2020 at 21:26
  • Do you use IOMMU (e.g. for PCI-passthrough, SR-IOV or security reasons?) If not you can disable it in BIOS or in kernel cmd line at boot time with grub. Dec 4, 2020 at 13:58

0

You must log in to answer this question.

Browse other questions tagged .