From: Bjorn Helgaas <helgaas@kernel.org>
To: Nirmal Patel <nirmal.patel@linux.intel.com>,
Jonathan Derrick <jonathan.derrick@linux.dev>
Cc: linux-pci@vger.kernel.org
Subject: [Bug 221130] New: [BUG] PCI: vmd: Missing Mode 3 (Dynamic Bus Offset) support for Intel Arrow Lake-S (0x09ab)
Date: Wed, 25 Feb 2026 17:34:40 -0600 [thread overview]
Message-ID: <20260225233440.GA3743606@bhelgaas> (raw)
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.
reply other threads:[~2026-02-25 23:34 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260225233440.GA3743606@bhelgaas \
--to=helgaas@kernel.org \
--cc=jonathan.derrick@linux.dev \
--cc=linux-pci@vger.kernel.org \
--cc=nirmal.patel@linux.intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox