I am experiencing a low‑level BIOS/PCIe conflict when using the Radxa AX‑M1 together with a WLE900VX (Atheros QCA9880) wireless card on an MSI MAG Z490 Tomahawk motherboard (latest BIOS).
Symptoms
- When both cards are installed simultaneously (regardless of the slot combination), the WLE900VX completely disappears from the system. It is not detected in Linux, and it is completely missing from the motherboard’s Board Explorer (BIOS utility) – the slot is shown as empty.
- Removing the AX‑M1 makes the WLE900VX reappear immediately (visible in Board Explorer and successfully enumerated by Linux).
- This is not an OS, driver, or IRQ issue. The WLE900VX is bypassed during the early POST / PCIe Link Training phase – it never reaches the point where software could see it.
Important additional testing (isolating the issue)
- I have reproduced this identical behavior using two separate AX‑M1 modules, ruling out a single‑card hardware defect.
- I tested every possible BIOS/PCIe allocation setting on the MSI Z490 motherboard:
- Forced PCIe Gen2 and Gen3 modes manually on all slots.
- Toggled ‘Above 4G Decoding’ (On/Off).
- Varied ‘Max TOLUD’ values (changing the 32‑bit MMIO memory hole).
- Toggled ‘Resizable BAR Support’ (On/Off).
- Toggled ‘ASPM’ power management states.
- Tested all combinations of physical slot pairings – CPU‑attached M2_1 slot vs. PCH‑attached M2_2 slot.
- Result: None of these changes made any difference. The WLE900VX remains completely invisible as long as the AX‑M1 is installed in any slot.
Selective incompatibility – critical clue
This failure is strictly selective to the older WLE900VX (Atheros QCA9880) card.
- When I test with a modern MediaTek MT7922 (Wi‑Fi 6E) PCIe card, the conflict does not occur – the MT7922 is always detected and fully functional regardless of slot mixing or which card is installed alongside the AX‑M1.
- This indicates that the AX‑M1’s firmware introduces a specific PCIe initialization anomaly (e.g., a 32‑bit MMIO resource grab, a CLKREQ# timing violation, or a non‑standard capability exposure) that completely breaks legacy PCIe 1.1/2.0 controllers like the Atheros QCA9880, while more robust modern endpoints (MT7922) tolerate it.
Hardware comparison – same SoC, different behaviour
A sibling card based on the exact same Axera AX8850 SoC – the M5Stack LLM‑8850 – works perfectly alongside the same WLE900VX on this motherboard. The LLM‑8850 requires zero BIOS tweaks and functions out‑of‑the‑box on default settings.
Since both modules share the same silicon, the issue is 100% isolated to Radxa’s specific PCIe endpoint initialization firmware / EEPROM configuration on the AX‑M1. The AX‑M1 configuration likely exposes non‑standard PCI capability structures, conflicting bridge descriptors, or triggers an LTSSM Link Training timeout that forces the motherboard’s PCIe root ports to abort enumeration on adjacent slots.
Because the system fails to enumerate the WLE900VX when AX‑M1 is present, runtime modifications using setpci are impossible. The issue must be resolved within the AX‑M1’s boot code.
Request
- Could you please analyze the differences in the PCI configuration space between the Radxa AX‑M1 and the M5Stack LLM‑8850? (I can provide
lspci -vvvoutputs for both cards on request, although the root cause lies at the BIOS/link training level.) - Is there a firmware / EEPROM update available for the AX‑M1 that aligns its PCIe behaviour with standard specifications (similar to how the LLM‑8850 behaves)?
Attachments
- Photos of the physical setup (both cards installed).
- Screenshot of the BIOS Board Explorer showing the slot as “Empty” when AX‑M1 is present.
Thank you for your technical support.