** Changed in: linux-oem-6.11 (Ubuntu Noble) Status: In Progress => Fix Committed
-- You received this bug notification because you are a member of Kernel Packages, which is subscribed to linux in Ubuntu. https://bugs.launchpad.net/bugs/2115174 Title: Handle IOMMU IVRS entries with mismatched UID on AMD Strix or newer platforms Status in HWE Next: New Status in linux package in Ubuntu: Fix Released Status in linux-oem-6.11 package in Ubuntu: Invalid Status in linux-oem-6.14 package in Ubuntu: Invalid Status in linux source package in Noble: Invalid Status in linux-oem-6.11 source package in Noble: Fix Committed Status in linux-oem-6.14 source package in Noble: In Progress Status in linux source package in Oracular: In Progress Status in linux-oem-6.11 source package in Oracular: Invalid Status in linux-oem-6.14 source package in Oracular: Invalid Status in linux source package in Plucky: In Progress Status in linux-oem-6.11 source package in Plucky: Invalid Status in linux-oem-6.14 source package in Plucky: Invalid Status in linux source package in Questing: Fix Released Status in linux-oem-6.11 source package in Questing: Invalid Status in linux-oem-6.14 source package in Questing: Invalid Bug description: [ SRU Justification ] [ Impact ] A BIOS upgrade has changed the IVRS DTE UID for a device that no longer matches the UID in the SSDT and may potentially affect s0i3 on Linux systems. [ Test Plan ] 1. Dump IVRS table: ``` # install acpica-tools $ sudo apt-get install --no-install-recommends --yes acpica-tools $ sudo acpidump -o acpi.dump $ acpixtract -a acpi.dump $ iasl -d ivrs.dat ``` 2. Search for subtable type F0 in decoded ivrs.dsl: ``` [176h 0374 001h] Subtable Type : F0 [Device Entry: ACPI HID Named Device] [177h 0375 002h] Device ID : 00A5 [179h 0377 001h] Data Setting (decoded below) : 40 INITPass : 0 EIntPass : 0 NMIPass : 0 Reserved : 0 System MGMT : 0 LINT0 Pass : 1 LINT1 Pass : 0 [17Ah 0378 008h] ACPI HID : "AMDI0020" [182h 0386 008h] ACPI CID : 0000000000000000 [18Ah 0394 001h] UID Format : 02 [18Bh 0395 001h] UID Length : 04 [18Ch 0396 004h] UID : "ID01" ``` 3. Locate the MHSP device from SSDT tables: ``` grep -n 'Device (MHSP)' -A4 ssdt*.dsl ssdt34.dsl:25: Device (MHSP) ssdt34.dsl-26- { ssdt34.dsl-27- Name (_ADR, Zero) // _ADR: Address ssdt34.dsl-28- Name (_HID, "MSFT0201") // _HID: Hardware ID ssdt34.dsl-29- Name (_UID, One) // _UID: Unique ID ``` 4. From IVRS the UID is "ID01" yet it's numeric 1 from SSDT, so this system is affected. [ Where problems could occur ] This restore the ability to match UID correctly as before. No side effect. [ Other Info ] Such BIOS upgrade may occur for Strix, Krackan, Strix Halo, and Gorgon Point systems. Nominate for series with v6.11+ kernels. ========== original bug report ========== A future BIOS upgrade may occur for Strix, Krackan, Strix Halo, and Gorgon Point systems that has the potential to break s0i3 on Ubuntu. OEMs may choose to roll this out. This BIOS upgrade modifies the ACPI IVRS UID entry for a device from a numeric value "1" to a string value, for example, "_SB.MHSP". The upgrade however DOES NOT modify the matching SSDT entry, that one remains "1". In the current AMD Linux IOMMU driver this causes the device not to be configured by the IOMMU. Suspending the system when this device is not configured by the IOMMU will cause an unrecoverable page fault. This mismatch however is intentional from the BIOS team and stems from how the IOMMU spec is interpreted by Microsoft vs from AMD Linux IOMMU driver. For this reason; it's going to be important to allow this to work from Linux as well. v6.16-rc1: https://git.kernel.org/pub/scm/linux/kernel/git/iommu/linux.git/commit/?h=next&id=51c33f333bbf7bdb6aa2a327e3a3e4bbb2591511 To manage notifications about this bug go to: https://bugs.launchpad.net/hwe-next/+bug/2115174/+subscriptions -- Mailing list: https://launchpad.net/~kernel-packages Post to : kernel-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~kernel-packages More help : https://help.launchpad.net/ListHelp