AEWIN SBC-6907 hangs with 24.10

Hi,

I have an old AEWIN SBC-6907 working for years until OpenWrt 23.05.
Updated to 24.10 (kernel-6.6), it hangs on boot (with initcall_debug):

[    3.122433] pci_bus 0000:04: resource 1 [mem 0x81000000-0x810fffff]
[    3.129061] pci 0000:00:14.0: calling  chromeos_save_apl_pci_l1ss_capability+0x0/0x80 @ 1

I've verified that also snapshot with kernel 6.12 hangs in the same way.
I tried almost all boot options (pci=noacpi, pci=nomsi, pci=noaer, etc): same problem.
There's no BIOS update available.

To successfully boot, I had to patch the kernel to disable the PCI quirk:
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x5ad6, chromeos_save_apl_pci_l1ss_capability);

The SBC-69807 has that hw indeed:

00:14.0 PCI bridge [0604]: Intel Corporation Celeron N3350/Pentium N4200/Atom E3900 Series PCI Express Port B #1 [8086:5ad6] (rev fb)

My question: how do I upstream this? I don't want to maintain my build.
Should we handle it in OpenWrt or in the kernel?

Try ubuntu 25.04 kernel 6.14, maybe needs backport but either way upstream

Ubuntu boots fine:

[    0.000000] Linux version 6.14.0-15-generic (buildd@lcy02-amd64-022) (x86_64-linux-gnu-gcc-14 (Ubuntu 14.2.0-19ubuntu2) 14.2.0, GNU ld (GNU Binutils for Ubuntu) 2.44) #15-Ubuntu SMP PREEMPT_DYNAMIC Sun Apr  6 15:05:05 UTC 2025 (Ubuntu 6.14.0-15.15-generic 6.14.0)
...
[    4.487858] pci_bus 0000:04: resource 1 [mem 0x81000000-0x810fffff]
[    4.494640] pci 0000:00:14.0: calling  chromeos_save_apl_pci_l1ss_capability+0x0/0xc0 @ 1
[    4.502962] pci 0000:00:14.0: chromeos_save_apl_pci_l1ss_capability+0x0/0xc0 took 6 usecs
[    4.511290] pci 0000:00:15.0: calling  quirk_usb_early_handoff+0x0/0x170 @ 1

I can't find Ubuntu patches.
I fear that upstream will suggest a BIOS update.

Try to boot SystemRescue 11.xx distro, which also uses 6.6 LTS kernel, to test if it boots fine. If it boots, then it's some patch or kernel config in OpenWrt that makes it fail.

1 Like

I've tried Tiny Core when diagnosing the problem. It booted, so I tried to find differences in the kernel config. There are hundreds of differences. I tried to build the OpenWrt kernel changing those that seemed relevant, but I never found a good kernel.
I'll try SystemRescue.

Find the mentioned strings in source files (git grep) and check for ifdef-s around them. That way youll find relevant config options quicker.