From: Bjorn Helgaas <helgaas@kernel.org>
To: Szymon Durawa <szymon.durawa@linux.intel.com>
Cc: Bjorn Helgaas <bhelgaas@google.com>,
Dan Williams <dan.j.williams@intel.com>,
Lukas Wunner <lukas@wunner.de>,
linux-pci@vger.kernel.org,
Nirmal Patel <nirmal.patel@linux.intel.com>,
Mariusz Tkaczyk <mariusz.tkaczyk@linux.intel.com>
Subject: Re: [PATCH v3 7/8] PCI: vmd: Add support for second rootbus under VMD
Date: Mon, 5 May 2025 12:31:07 -0500 [thread overview]
Message-ID: <20250505173107.GA983255@bhelgaas> (raw)
In-Reply-To: <20241122085215.424736-8-szymon.durawa@linux.intel.com>
On Fri, Nov 22, 2024 at 09:52:14AM +0100, Szymon Durawa wrote:
> Starting from Intel Arrow Lake VMD enhancement introduces second rootbus
> support with fixed root bus number (0x80). It means that all 3 MMIO BARs
> exposed by VMD are shared now between both buses (current BUS0 and
> new BUS1).
>
> Add new BUS1 enumeration and divide MMIO space to be shared between
> both rootbuses. Due to enumeration issues with rootbus hardwired to a
> fixed non-zero value, this patch will work with a workaround proposed
> in next patch. Without workaround user won't see attached devices for BUS1
> rootbus.
s/rootbus/root bus/
> Suggested-by: Nirmal Patel <nirmal.patel@linux.intel.com>
> Reviewed-by: Mariusz Tkaczyk <mariusz.tkaczyk@linux.intel.com>
> Signed-off-by: Szymon Durawa <szymon.durawa@linux.intel.com>
> ---
> drivers/pci/controller/vmd.c | 208 ++++++++++++++++++++++++++++++-----
> 1 file changed, 180 insertions(+), 28 deletions(-)
>
> diff --git a/drivers/pci/controller/vmd.c b/drivers/pci/controller/vmd.c
> index 6d8397b5ebee..6cd14c28fd4e 100755
> --- a/drivers/pci/controller/vmd.c
> +++ b/drivers/pci/controller/vmd.c
> @@ -26,6 +26,7 @@
> #define VMD_RESTRICT_0_BUS_START 0
> #define VMD_RESTRICT_1_BUS_START 128
> #define VMD_RESTRICT_2_BUS_START 224
> +#define VMD_RESTRICT_3_BUS_START 225
You're just following the pattern here, which makes sense. But these
are apparently bus numbers, which are typically written in hex, so it
would be nice to convert them all so we don't have to convert.
> #define PCI_REG_VMCAP 0x40
> #define BUS_RESTRICT_CAP(vmcap) (vmcap & 0x1)
> @@ -38,15 +39,33 @@
> #define MB2_SHADOW_OFFSET 0x2000
> #define MB2_SHADOW_SIZE 16
>
> +#define VMD_PRIMARY_BUS0 0x00
> +#define VMD_PRIMARY_BUS1 0x80
The above are bus numbers; the below are register offsets. Would be
nice to separate them with a blank line since they are semantically
different.
I don't understand the difference between VMD_RESTRICT_3_BUS_START and
VMD_PRIMARY_BUS1. Maybe one is the default Primary Bus Number of the
Root Ports after a reset?
> +#define VMD_BUSRANGE0 0xc8
> +#define VMD_BUSRANGE1 0xcc
> +#define VMD_MEMBAR1_OFFSET 0xd0
> +#define VMD_MEMBAR2_OFFSET1 0xd8
> +#define VMD_MEMBAR2_OFFSET2 0xdc
> +#define VMD_BUS_END(busr) ((busr >> 8) & 0xff)
> +#define VMD_BUS_START(busr) (busr & 0x00ff)
Would be nice if VMD_BUS_END/VMD_BUS_START were defined with
GENMASK(); then we could use FIELD_GET() below to extract them.
Nit: indent these bus numbers and offsets so the values line up like
the other #defines.
> + * Starting from Intel Arrow Lake, VMD devices have their VMD rootports
> + * connected to additional BUS1 rootport.
This doesn't quite make sense. Root Ports can't be connected to
another Root Port. I think you mean "Root Ports on the additional
root bus".
next prev parent reply other threads:[~2025-05-05 17:31 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-11-22 8:52 [PATCH v3 0/8] VMD add second rootbus support Szymon Durawa
2024-11-22 8:52 ` [PATCH v3 1/8] PCI: vmd: Add vmd_bus_enumeration() Szymon Durawa
2024-11-22 8:52 ` [PATCH v3 2/8] PCI: vmd: Add vmd_configure_cfgbar() Szymon Durawa
2024-11-22 8:52 ` [PATCH v3 3/8] PCI: vmd: Add vmd_configure_membar() and vmd_configure_membar1_membar2() Szymon Durawa
2024-11-22 8:52 ` [PATCH v3 4/8] PCI: vmd: Add vmd_create_bus() Szymon Durawa
2024-11-22 8:52 ` [PATCH v3 5/8] PCI: vmd: Replace hardcoded values with enum and defines Szymon Durawa
2025-05-05 17:33 ` Bjorn Helgaas
2024-11-22 8:52 ` [PATCH v3 6/8] PCI: vmd: Convert bus and busn_start to an array Szymon Durawa
2024-11-22 8:52 ` [PATCH v3 7/8] PCI: vmd: Add support for second rootbus under VMD Szymon Durawa
2025-05-03 13:20 ` Manivannan Sadhasivam
2025-05-05 17:31 ` Bjorn Helgaas [this message]
2024-11-22 8:52 ` [PATCH v3 8/8] PCI: vmd: Add workaround for bus number hardwired to fixed non-zero value Szymon Durawa
2025-05-05 17:31 ` Bjorn Helgaas
2025-01-27 20:59 ` [PATCH v3 0/8] VMD add second rootbus support Durawa, Szymon
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=20250505173107.GA983255@bhelgaas \
--to=helgaas@kernel.org \
--cc=bhelgaas@google.com \
--cc=dan.j.williams@intel.com \
--cc=linux-pci@vger.kernel.org \
--cc=lukas@wunner.de \
--cc=mariusz.tkaczyk@linux.intel.com \
--cc=nirmal.patel@linux.intel.com \
--cc=szymon.durawa@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