Linux PCI subsystem development
 help / color / mirror / Atom feed
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