From d78aa7f391b8e32de2658d7eccacb1b114135089 Mon Sep 17 00:00:00 2001 From: Admin Pupkin Date: Sun, 7 Jun 2026 22:21:12 +0300 Subject: [PATCH] quirks: AMD IOMMU IVRS data (R21) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Phase R21 (2026-06-07) — AMD IOMMU quirks. The data side reuses the existing [[dmi_acpi_quirk]] table type landed in R11. Each DMI match represents a system that needs an IVHD-special-IOAPIC entry to route interrupts correctly. Data sourced from Linux 7.1 drivers/iommu/amd/quirks.c ivrs_quirks[] (4 DMI entries): - Dell Inspiron 7375 - Dell Latitude 5495 - Acer Aspire A315-41 (same quirk as Latitude) - Lenovo IdeaPad 330S-15ARR (product 81FB) Each system maps to a list of (ioapic_id, pci_devid) pairs that the iommu daemon will translate into add_special_device(IVHD_SPECIAL_IOAPIC, ...) calls at boot. The compiled-in ivrs_quirk_table is empty; runtime TOML is the data surface. Note: this commit lands only the DMI match table. The (id, devid) pair data — the actual IOAPIC→PCI mapping that is the consumer-side payload — is documented in the data file header for each system but is not yet modelled in the redox-driver-sys struct. A follow-up will extend DmiAcpiQuirkRule with an optional vector of (id, devid) pairs and update the iommu daemon to consume it. --- .../source/quirks.d/65-iommu-amd.toml | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 local/recipes/system/redbear-quirks/source/quirks.d/65-iommu-amd.toml diff --git a/local/recipes/system/redbear-quirks/source/quirks.d/65-iommu-amd.toml b/local/recipes/system/redbear-quirks/source/quirks.d/65-iommu-amd.toml new file mode 100644 index 0000000000..f9e3b7f7a8 --- /dev/null +++ b/local/recipes/system/redbear-quirks/source/quirks.d/65-iommu-amd.toml @@ -0,0 +1,42 @@ +# AMD IOMMU IVRS quirks — DMI-based. +# Mined from Linux 7.1 `drivers/iommu/amd/quirks.c` +# `ivrs_quirks[]` (4 DMI entries): +# - Dell Inspiron 7375 +# - Dell Latitude 5495 +# - Acer Aspire A315-41 +# - Lenovo IdeaPad 330S-15ARR (product name 81FB) +# +# Each system needs a list of (id, devid) pairs that +# map specific IOAPIC IDs to PCI device IDs. The Linux +# callback calls `add_special_device(IVHD_SPECIAL_IOAPIC, +# id, &devid, 0)` for each entry. The mapping is: +# +# Dell Inspiron 7375 — { (4, 0xa0), (5, 0x02) } +# Dell Latitude 5495 — { (4, 0xa0) } +# Acer Aspire A315-41 — { (4, 0xa0) } (same as Latitude) +# Lenovo IdeaPad 330S — { (32, 0xa0) } +# +# Phase R21 (2026-06-07). The compiled-in +# `ivrs_quirk_table` is empty; runtime TOML is the data +# surface. The iommu daemon consumer will read this file +# at boot and call add_special_device() for each entry. + +# Dell Inspiron 7375 +[[dmi_acpi_quirk]] +match.sys_vendor = "Dell Inc." +match.product_name = "Inspiron 7375" + +# Dell Latitude 5495 +[[dmi_acpi_quirk]] +match.sys_vendor = "Dell Inc." +match.product_name = "Latitude 5495" + +# Acer Aspire A315-41 — same quirk as Latitude 5495 +[[dmi_acpi_quirk]] +match.sys_vendor = "Acer" +match.product_name = "Aspire A315-41" + +# Lenovo IdeaPad 330S-15ARR (board name 81FB) +[[dmi_acpi_quirk]] +match.sys_vendor = "LENOVO" +match.product_name = "81FB"