Created attachment 175721 [details] dmesg with amd_iommu_dump option Hi all, We've encountered some issues that results from wrong ioapic device id setting in the BIOS. That will lead to Boardcom wifi can't connect to AP(searching is fine). There are 2 ways we found to fix this are to set "amd_iommu=off" or "noioapci" I discussed with Joerg Roedel(the maintainer of AMD IOMMU) and he pointed out from the attached dmesg log <quote> > [ 0.080177] AMD-Vi: device: 00:00.2 cap: 0040 seg: 0 flags: b8 info 0000 > [ 0.080181] AMD-Vi: mmio-addr: 00000000feb80000 > [ 0.080198] AMD-Vi: DEV_SELECT_RANGE_START devid: 00:01.0 flags: > 00 > [ 0.080200] AMD-Vi: DEV_RANGE_END devid: ff:1f.6 > [ 0.081192] AMD-Vi: DEV_ALIAS_RANGE devid: 05:00.0 flags: > 00 devid_to: 00:14.4 > [ 0.081194] AMD-Vi: DEV_RANGE_END devid: 05:1f.7 > [ 0.081204] AMD-Vi: DEV_SPECIAL(HPET[0]) devid: 00:14.0 > [ 0.081207] AMD-Vi: DEV_SPECIAL(IOAPIC[4]) devid: 00:14.0 > [ 0.081208] AMD-Vi: DEV_SPECIAL(IOAPIC[5]) devid: 00:00.0 This is dump of the IVRS table contents. It tells us that IOAPIC with ID 5 uses PCI request-id 00:00.0. But this information is wrong, it uses request-id 00:00.1, as seen below: > [ 23.515063] AMD-Vi: Event logged [INVALID_DEVICE_REQUEST device=00:00.1 > address=0x000000fdf80c0020 flags=0x0a00] This message comes from an interrupt request sent by the IOAPIC, and it uses a different request-id. </quote> We contacted the OEM BIOS engineer to correct this, but they refused, since it's not an issue on Windows and they don't want to re-do the testing. So, we tried to fix this by setting "ivrs_ioapic=00:00.1". I'm wondering if we can add a quirk in amd_iommu driver to list those machines and set the correct ioapic device id in it, so that we can fix this issue by ourselves, instead of relying on BIOS. BTW, we have some AMD machines with this issue, not only affects wifi, but some also affect graphics.
I don't really see this as a wireless issue. I'm not really sure where it needs to go...
(In reply to AceLan Kao from comment #0) > I'm wondering if we can add a quirk in amd_iommu driver to list those > machines and set the correct ioapic device id in it, so that we can fix this > issue by ourselves, instead of relying on BIOS. I think that is a good idea and worth a try by sending a patch to community. There is no place for iommu issues in bugzilla, so I'm moving it to Other.