OpenWrt 24.10 x86-64 Boot Hangs After PCI/NVMe Initialization

Issue Description:
When booting OpenWrt 24.10 x86-64 (kernel 6.6.83), the system stops after PCI and ACPI initialization without mounting the root filesystem. The log shows no errors but also lacks messages like VFS: Mounting root.
Openwrt 23.05 works correctly.

Configuration:

  • Hardware: PICO319, Intel Atom E3940
  • Boot Parameters:
    root=PARTUUID=550e4248-2297-768a-f189-416b2dcb4102 rootwait debug console=tty1 console=ttyS0,115200n8r noinitrd 
    

Boot Log Highlights:

  1. Kernel starts, detects CPU, memory, and PCI devices (including NVMe controller).
  2. ACPI initializes, but all IRQ links are disabled:
    ACPI: PCI: Interrupt link LNKA disabled  
    ...  
    ACPI: PCI: Interrupt link LNKH disabled  
    
  3. No messages about root FS mounting attempts or NVMe errors.

Booting OpenWrt log

Looks like there are some patches related to this chipset for yocto here: https://github.com/ADLINK/meta-adlink-x86-64bit/blob/scarthgap/recipes-kernel/linux-intel/linux-intel/0001-Avoid-ACPI-probe-due-to-resource-conflict-with-BIOS.patch I've seen similar issues booting 24.10 kernels on an AD-LINK LEC-AL-E3940 which is the same Atom processor. I've also seen issues on the debian 6.12 / trixie kernel but not 6.1 / bookworm. Suggests the problem is not OpenWRT specific

Added this patch to package/kernel/linux/patches, but it didn't help.

My device needs CONFIG_PCI_MMCONFIG=y kernel configuration to boot on kernel 6.6, which was not needed on kernel 6.1. Please try following patch.

--- a/target/linux/x86/64/config-6.6
+++ b/target/linux/x86/64/config-6.6
@@ -345,6 +345,7 @@ CONFIG_MFD_CORE=y
 # CONFIG_MFD_INTEL_LPSS_ACPI is not set
 # CONFIG_MFD_INTEL_PMC_BXT is not set
 CONFIG_MMC=y
+CONFIG_MMCONF_FAM10H=y
 CONFIG_MMC_BLOCK=y
 CONFIG_MMC_CQHCI=y
 CONFIG_MMC_RICOH_MMC=y
@@ -404,7 +405,7 @@ CONFIG_PCIEPORTBUS=y
 CONFIG_PCIE_PME=y
 CONFIG_PCI_HYPERV=y
 CONFIG_PCI_HYPERV_INTERFACE=y
-# CONFIG_PCI_MMCONFIG is not set
+CONFIG_PCI_MMCONFIG=y
 CONFIG_PCI_PASID=y
 CONFIG_PCI_PRI=y
 CONFIG_PCI_XEN=y
1 Like

The patch didn't work, but I made the changes manually and the board booted up. Thanks a lot!