https://bugzilla.kernel.org/show_bug.cgi?id=221646
Bug ID: 221646
Summary: MSI PRO X870E-S EVO WIFI (MS-7E86): early boot hang
with ACPI, AMD-Vi IO_PAGE_FAULT and AMDI0030 GPIO IRQ
failure; live media also affected
Product: ACPI
Version: 2.5
Hardware: AMD
OS: Linux
Status: NEW
Severity: blocking
Priority: P3
Component: Other
Assignee: [email protected]
Reporter: [email protected]
Regression: No
Created attachment 310306
--> https://bugzilla.kernel.org/attachment.cgi?id=310306&action=edit
Tried taking ACPI Dump in acpi=off
Problem
-------
The system does not boot with ACPI enabled on an MSI PRO X870E-S EVO WIFI
board (MS-7E86) with an AMD Ryzen 7 9700X CPU. The kernel hangs very early
in boot, around 0.7 to 1.4 seconds. The only way to boot is with acpi=off,
but that leaves only one CPU online on a 16-thread CPU, disables the ACPI
interpreter, and breaks IRQ routing for many PCI devices.
The same Fedora install on the same SSD works on a different machine, so
this looks like a firmware/kernel interaction on this board, not a broken
disk or install.
A Linux live environment also fails on this hardware with default boot
options. The problem is not limited to the installed system. Because live
media also hangs, it is not possible to collect acpidump or other ACPI table
dumps from a normal Linux session on this machine.
Hardware
--------
Motherboard : MSI PRO X870E-S EVO WIFI (MS-7E86)
BIOS : American Megatrends 2.A12 (2026-01-23), revision 5.41
CPU : AMD Ryzen 7 9700X (8 cores / 16 threads)
Chipset : AMD 800 Series / X870E
Boot mode : UEFI
Secure Boot : enabled
Software
--------
OS : Fedora 44
Kernel : 7.0.12 (Fedora build 7.0.12-200.fc44.x86_64)
Other kernel installed: 7.0.11-200.fc44.x86_64
What happens with ACPI enabled
------------------------------
Boot stops during early initialization. The screen shows normal messages
first, such as empty SATA ports reporting link down, and USB devices like
MediaTek WiFi (0489:e14f) and MSI Mystic Light (0db0:0076) being detected.
Then it hangs.
Messages seen before the freeze include:
AMD-Vi: Event logged [IO_PAGE_FAULT domain=0x0013 address=0xff00fffffff7e000
flags=0x0000]
xhci_hcd 0000:12:00.0: AMD-Vi: Event logged [IO_PAGE_FAULT domain=0x0014
address=0xff00fffffffffe000 flags=0x0000]
With verbose logging, ACPI GPIO handling also appears to be involved. A
deferred GPIO IRQ request is made for AMDI0030:00, but IRQ translation
appears to return nothing. After this point the boot looks stuck and no
further progress is shown on screen.
Failed boots usually do not get written to the journal.
Where it appears to get stuck
-----------------------------
Verbose boot logging suggests the hang is related to ACPI GPIO deferred IRQ
processing. The boot reaches early device probing, then progress stops
around the point where ACPI GPIO interrupt setup is handled.
The function that appears to be involved is:
acpi_gpio_handle_deferred_request_irqs()
Registered in:
drivers/gpio/gpiolib-acpi-quirks.c
late_initcall_sync(acpi_gpio_handle_deferred_request_irqs);
Call chain:
acpi_gpio_handle_deferred_request_irqs()
-> acpi_gpio_process_deferred_list()
-> acpi_gpiochip_request_irqs()
-> acpi_gpiochip_request_irq()
-> request_threaded_irq()
-> optional edge handler at boot:
event->handler()
-> acpi_gpio_irq_handler()
-> acpi_evaluate_object()
Earlier in boot, the GPIO chip is registered by:
amd_gpio_probe() [drivers/pinctrl/pinctrl-amd.c]
-> gpiochip_add_data()
-> gpiochip_add_irqchip()
-> acpi_gpiochip_request_interrupts()
[drivers/gpio/gpiolib-acpi-core.c]
-> acpi_walk_resources(..., "_AEI", acpi_gpiochip_alloc_event, ...)
-> if early boot:
acpi_gpio_add_to_deferred_list()
else:
acpi_gpiochip_request_irqs()
For this board the ACPI GPIO controller is:
AMDI0030:00
It is not possible to confirm the exact last function with a crash dump
because the system freezes and live media also fails to boot normally.
The hang may involve both:
1. AMD-Vi / IVRS setup during early boot
2. ACPI GPIO deferred IRQ processing in late_initcall_sync
What happens with acpi=off
--------------------------
The system boots, but with major problems:
- Only 1 CPU is detected instead of 16
- APIC: ACPI MADT or MP tables are not detected
- smpboot: SMP disabled
- ACPI: Interpreter disabled
- amd_pstate does not work
- Many devices log: can't find IRQ for PCI INT A
- /sys/firmware/acpi/tables is missing, so acpidump fails
Kernel command line options already tried
-----------------------------------------
All of these were tested without acpi=off. None produced a normal boot:
pci=nocrs
amd_iommu=off
iommu=off
iommu=pt
irqchip=off
acpi=noirq
acpi=ht
acpi_enforce_resources=lax
ec_no_wakeup=1
acpi_osi=Linux
gpiolib_acpi.run_edge_events_on_boot=0
gpiolib_acpi.ignore_interrupt=...
modprobe.blacklist=gpio_amd_fch
initcall_debug
loglevel=7
earlyprintk=vga
combinations of the above
Note: AMDI0030:00 is handled by drivers/pinctrl/pinctrl-amd.c (amd_gpio),
not gpio-amd-fch.
BIOS settings already tried
---------------------------
IOMMU disabled
SVM disabled
ErP Ready disabled
USB wake disabled
PCIe wake disabled
other ACPI/PCIe related toggles
Still no boot without acpi=off.
Likely affected kernel areas
----------------------------
1. AMD IOMMU / IVRS handling
drivers/iommu/amd/init.c
drivers/iommu/amd/iommu.c
The IO_PAGE_FAULT messages point to bad or incompatible IOMMU domain
setup from the firmware IVRS/ACPI tables.
2. ACPI GPIO deferred IRQ handling
drivers/gpio/gpiolib-acpi-quirks.c
drivers/gpio/gpiolib-acpi-core.c
drivers/pinctrl/pinctrl-amd.c
3. No existing DMI quirk found for board name MS-7E86 in:
drivers/gpio/gpiolib-acpi-quirks.c
drivers/acpi/x86/utils.c
Expected result
---------------
Boot with ACPI enabled, all CPUs online, normal IRQ routing, and working
IOMMU, on both installed system and live media.
Actual result
-------------
Hang during early boot with ACPI enabled on both the installed system and
live media. acpi=off is required to boot at all. Because live environments
also fail, ACPI tables cannot be dumped from Linux using acpidump.
Attachments
-----------
- dmidecode output
- lspci -nnv
- photos or serial log of the hang screen
- dmesg and journal from acpi=off boot
- kernel .config
- BIOS screenshots showing version and settings tried
Reproducer
----------
1. Install or boot Linux on MSI PRO X870E-S EVO WIFI (MS-7E86) with Ryzen 9700X
2. Boot a recent kernel with ACPI enabled (installed system or live USB)
3. Observe early boot hang with AMD-Vi IO_PAGE_FAULT messages
4. With verbose logging, observe hang around ACPI GPIO deferred IRQ handling
5. Boot again with acpi=off and observe single-CPU crippled boot
--
You may reply to this email to add a comment.
You are receiving this mail because:
You are watching the assignee of the bug.
_______________________________________________
acpi-bugzilla mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/acpi-bugzilla