Linux PCI subsystem development
 help / color / mirror / Atom feed
* [Bug 221130] New: [BUG] PCI: vmd: Missing Mode 3 (Dynamic Bus Offset) support for Intel Arrow Lake-S (0x09ab)
@ 2026-02-25 23:34 Bjorn Helgaas
  0 siblings, 0 replies; only message in thread
From: Bjorn Helgaas @ 2026-02-25 23:34 UTC (permalink / raw)
  To: Nirmal Patel, Jonathan Derrick; +Cc: linux-pci

Forwarding to VMD maintainers since they may not follow bugzilla.  I
guess this problem only happens when VMD/RST enabled in BIOS.

From https://bugzilla.kernel.org/show_bug.cgi?id=221130 (reporter
bcc'd):

> [PROBLEM]
> On Intel Arrow Lake-S (Core Ultra 200S) platforms, the VMD controller
> (8086:09ab) fails to initialize on Linux 6.19.3. All storage devices
> (NVMe/SATA) under the VMD domain are invisible.
> 
> [DMESG LOG]
> vmd 0000:00:0e.0: Unknown Bus Offset Setting (3)
> vmd 0000:00:0e.0: probe with driver vmd failed with error -19
> 
> [ROOT CAUSE]
> Based on Intel documentation, Arrow Lake-S introduces "Mode 3"
> (BUS_RESTRICT_CFG == 3) for dynamic bus range allocation.
> Currently, drivers/pci/controller/vmd.c only handles Case 0, 1, and 2 (static
> offsets).
> The switch statement in vmd_get_bus_number_start() lacks Case 3, causing the
> driver to return -ENODEV and abort the probe.
> 
> [REPRODUCTION]
> 
> Enable VMD/RST mode in BIOS.
> 
> Boot Linux kernel 6.19 or later.
> 
> Check dmesg for "Unknown Bus Offset Setting (3)".
> 
> [PROPOSED FIXES]
> 
> Add Case 3 to vmd_get_bus_number_start() to read busn_start from config
> registers (e.g., offset 0xC8).
> 
> Implement Quirk to override Class ID 0880 to 0106 for SATA controllers behind
> VMD.
> 
> Ensure compatibility with dual-VMD domain resource allocation.

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2026-02-25 23:34 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-25 23:34 [Bug 221130] New: [BUG] PCI: vmd: Missing Mode 3 (Dynamic Bus Offset) support for Intel Arrow Lake-S (0x09ab) Bjorn Helgaas

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox