From: Bjorn Helgaas <helgaas@kernel.org>
To: Conor Dooley <conor@kernel.org>
Cc: daire.mcnamara@microchip.com, linux-pci@vger.kernel.org,
devicetree@vger.kernel.org, conor.dooley@microchip.com,
lpieralisi@kernel.org, kw@linux.com, robh@kernel.org,
bhelgaas@google.com, linux-kernel@vger.kernel.org,
linux-riscv@lists.infradead.org, krzk+dt@kernel.org,
conor+dt@kernel.org, ilpo.jarvinen@linux.intel.com,
kevin.xie@starfivetech.com
Subject: Re: [PATCH v10 0/3] Fix address translations on MPFS PCIe controller
Date: Tue, 14 Jan 2025 17:19:39 -0600 [thread overview]
Message-ID: <20250114231939.GA496825@bhelgaas> (raw)
In-Reply-To: <20250114-espresso-display-846f670d2088@spud>
On Tue, Jan 14, 2025 at 05:16:10PM +0000, Conor Dooley wrote:
> Hey folks,
>
> Has this patchset fallen through the cracks?
Yes, unfortunately. I applied it to pci/controller/microchip for
v6.14.
I had to adapt it slightly to account for the changes of ac7f53b7e728
("PCI: microchip: Add support for using either Root Port 1 or 2"), so
please take a look and make sure I did it right.
> On Wed, Nov 13, 2024 at 11:50:44AM +0000, Conor Dooley wrote:
> > On Fri, Oct 11, 2024 at 03:00:40PM +0100, daire.mcnamara@microchip.com wrote:
> > > From: Daire McNamara <daire.mcnamara@microchip.com>
> > >
> > > Hi all,
> > >
> > > On Microchip PolarFire SoC (MPFS), the PCIe controller is connected to the
> > > CPU via one of three Fabric Interface Connectors (FICs). Each FIC present
> > > to the CPU complex as 64-bit AXI-M and 64-bit AXI-S. To preserve
> > > compatibility with other PolarFire family members, the PCIe controller is
> > > connected to its encapsulating FIC via a 32-bit AXI-M and 32-bit AXI-S
> > > interface.
> > >
> > > Each FIC is implemented in FPGA logic and can incorporate logic along its 64-bit
> > > AXI-M to 32-bit AXI-M chain (including address translation) and, likewise, along
> > > its 32-bit AXI-S to 64-bit AXI-S chain (again including address translation).
> > >
> > > In order to reduce the potential support space for the PCIe controller in
> > > this environment, MPFS supports certain reference designs for these address
> > > translations: reference designs for cache-coherent memory accesses
> > > and reference designs for non-cache-coherent memory accesses. The precise
> > > details of these reference designs and associated customer guidelines
> > > recommending that customers adhere to the addressing schemes used in those
> > > reference designs are available from Microchip, but the implication for the
> > > PCIe controller address translation between CPU-space and PCIe-space are:
> > >
> > > For outbound address translation, the PCIe controller address translation tables
> > > are treated as if they are 32-bit only. Any further address translation must
> > > be done in FPGA fabric.
> > >
> > > For inbound address translation, the PCIe controller is configurable for two
> > > cases:
> > > * In the case of cache-coherent designs, the base of the AXI-S side of the
> > > address translation must be set to 0 and the size should be 4 GiB wide. The
> > > FPGA fabric must complete any address translations based on that 0-based
> > > address translation.
> > > * In the case of non-cache coherent designs, the base of AXI-S side of the
> > > address translation must be set to 0x8000'0000 and the size shall be 2 GiB
> > > wide. The FPGA fabric must complete any address translation based on that
> > > 0x80000000 base.
> > >
> > > So, for example, in the non-cache-coherent case, with a device tree property
> > > that maps an inbound range from 0x10'0000'0000 in PCIe space to 0x10'0000'0000
> > > in CPU space, the PCIe rootport will translate a PCIe address of 0x10'0000'0000
> > > to an intermediate 32-bit AXI-S address of 0x8000'0000 and the FIC is
> > > responsible for translating that intermediate 32-bit AXI-S address of
> > > 0x8000'0000 to a 64-bit AXI-S address of 0x10'0000'0000.
> > >
> > > And similarly, for example, in the cache-coherent case, with a device tree
> > > property that maps an inbound range from 0x10'0000'0000 in PCIe space to
> > > 0x10'0000'0000 in CPU space, the PCIe rootport will translate a PCIe address
> > > of 0x10'0000'0000 to an intermediate 32-bit AXI-S address of 0x0000'0000 and
> > > the FIC is responsible for translating that intermediate 32-bit AXI-S address
> > > of 0x0000'0000 to a 64-bit AXI-S address of 0x10'0000'0000.
> > >
> > > See https://lore.kernel.org/all/20220902142202.2437658-1-daire.mcnamara@microchip.com/T/
> > > for backstory.
> > >
> > > Changes since v9:
> > > - Dropped plda_setup_inbound_address_translation() from StarFive driver
> >
> > Since I had some success bumping the other series for this driver, any
> > chance of some attention here?
> > AFAIK, Daire's addressed what's been pointed out by reviewers and
> > exempted the StarFive driver from overwriting the firmware-set values
> > with once calculated from DT as they requested.
>
WARNING: multiple messages have this Message-ID (diff)
From: Bjorn Helgaas <helgaas@kernel.org>
To: Conor Dooley <conor@kernel.org>
Cc: daire.mcnamara@microchip.com, linux-pci@vger.kernel.org,
devicetree@vger.kernel.org, conor.dooley@microchip.com,
lpieralisi@kernel.org, kw@linux.com, robh@kernel.org,
bhelgaas@google.com, linux-kernel@vger.kernel.org,
linux-riscv@lists.infradead.org, krzk+dt@kernel.org,
conor+dt@kernel.org, ilpo.jarvinen@linux.intel.com,
kevin.xie@starfivetech.com
Subject: Re: [PATCH v10 0/3] Fix address translations on MPFS PCIe controller
Date: Tue, 14 Jan 2025 17:19:39 -0600 [thread overview]
Message-ID: <20250114231939.GA496825@bhelgaas> (raw)
In-Reply-To: <20250114-espresso-display-846f670d2088@spud>
On Tue, Jan 14, 2025 at 05:16:10PM +0000, Conor Dooley wrote:
> Hey folks,
>
> Has this patchset fallen through the cracks?
Yes, unfortunately. I applied it to pci/controller/microchip for
v6.14.
I had to adapt it slightly to account for the changes of ac7f53b7e728
("PCI: microchip: Add support for using either Root Port 1 or 2"), so
please take a look and make sure I did it right.
> On Wed, Nov 13, 2024 at 11:50:44AM +0000, Conor Dooley wrote:
> > On Fri, Oct 11, 2024 at 03:00:40PM +0100, daire.mcnamara@microchip.com wrote:
> > > From: Daire McNamara <daire.mcnamara@microchip.com>
> > >
> > > Hi all,
> > >
> > > On Microchip PolarFire SoC (MPFS), the PCIe controller is connected to the
> > > CPU via one of three Fabric Interface Connectors (FICs). Each FIC present
> > > to the CPU complex as 64-bit AXI-M and 64-bit AXI-S. To preserve
> > > compatibility with other PolarFire family members, the PCIe controller is
> > > connected to its encapsulating FIC via a 32-bit AXI-M and 32-bit AXI-S
> > > interface.
> > >
> > > Each FIC is implemented in FPGA logic and can incorporate logic along its 64-bit
> > > AXI-M to 32-bit AXI-M chain (including address translation) and, likewise, along
> > > its 32-bit AXI-S to 64-bit AXI-S chain (again including address translation).
> > >
> > > In order to reduce the potential support space for the PCIe controller in
> > > this environment, MPFS supports certain reference designs for these address
> > > translations: reference designs for cache-coherent memory accesses
> > > and reference designs for non-cache-coherent memory accesses. The precise
> > > details of these reference designs and associated customer guidelines
> > > recommending that customers adhere to the addressing schemes used in those
> > > reference designs are available from Microchip, but the implication for the
> > > PCIe controller address translation between CPU-space and PCIe-space are:
> > >
> > > For outbound address translation, the PCIe controller address translation tables
> > > are treated as if they are 32-bit only. Any further address translation must
> > > be done in FPGA fabric.
> > >
> > > For inbound address translation, the PCIe controller is configurable for two
> > > cases:
> > > * In the case of cache-coherent designs, the base of the AXI-S side of the
> > > address translation must be set to 0 and the size should be 4 GiB wide. The
> > > FPGA fabric must complete any address translations based on that 0-based
> > > address translation.
> > > * In the case of non-cache coherent designs, the base of AXI-S side of the
> > > address translation must be set to 0x8000'0000 and the size shall be 2 GiB
> > > wide. The FPGA fabric must complete any address translation based on that
> > > 0x80000000 base.
> > >
> > > So, for example, in the non-cache-coherent case, with a device tree property
> > > that maps an inbound range from 0x10'0000'0000 in PCIe space to 0x10'0000'0000
> > > in CPU space, the PCIe rootport will translate a PCIe address of 0x10'0000'0000
> > > to an intermediate 32-bit AXI-S address of 0x8000'0000 and the FIC is
> > > responsible for translating that intermediate 32-bit AXI-S address of
> > > 0x8000'0000 to a 64-bit AXI-S address of 0x10'0000'0000.
> > >
> > > And similarly, for example, in the cache-coherent case, with a device tree
> > > property that maps an inbound range from 0x10'0000'0000 in PCIe space to
> > > 0x10'0000'0000 in CPU space, the PCIe rootport will translate a PCIe address
> > > of 0x10'0000'0000 to an intermediate 32-bit AXI-S address of 0x0000'0000 and
> > > the FIC is responsible for translating that intermediate 32-bit AXI-S address
> > > of 0x0000'0000 to a 64-bit AXI-S address of 0x10'0000'0000.
> > >
> > > See https://lore.kernel.org/all/20220902142202.2437658-1-daire.mcnamara@microchip.com/T/
> > > for backstory.
> > >
> > > Changes since v9:
> > > - Dropped plda_setup_inbound_address_translation() from StarFive driver
> >
> > Since I had some success bumping the other series for this driver, any
> > chance of some attention here?
> > AFAIK, Daire's addressed what's been pointed out by reviewers and
> > exempted the StarFive driver from overwriting the firmware-set values
> > with once calculated from DT as they requested.
>
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
next prev parent reply other threads:[~2025-01-14 23:19 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-11 14:00 [PATCH v10 0/3] Fix address translations on MPFS PCIe controller daire.mcnamara
2024-10-11 14:00 ` daire.mcnamara
2024-10-11 14:00 ` [PATCH v10 1/3] PCI: microchip: Fix outbound address translation tables daire.mcnamara
2024-10-11 14:00 ` daire.mcnamara
2025-01-15 0:13 ` Bjorn Helgaas
2025-01-15 0:13 ` Bjorn Helgaas
2025-01-16 15:42 ` Bjorn Helgaas
2025-01-16 15:42 ` Bjorn Helgaas
2025-01-16 16:46 ` Conor Dooley
2025-01-16 16:46 ` Conor Dooley
2025-01-16 17:07 ` Bjorn Helgaas
2025-01-16 17:07 ` Bjorn Helgaas
2025-01-16 17:45 ` Conor Dooley
2025-01-16 17:45 ` Conor Dooley
2025-01-16 18:02 ` Bjorn Helgaas
2025-01-16 18:02 ` Bjorn Helgaas
2025-01-17 10:53 ` Conor Dooley
2025-01-17 10:53 ` Conor Dooley
2025-01-17 17:30 ` Bjorn Helgaas
2025-01-17 17:30 ` Bjorn Helgaas
2025-01-17 21:27 ` Frank Li
2025-01-17 21:27 ` Frank Li
2024-10-11 14:00 ` [PATCH v10 2/3] PCI: microchip: Fix inbound " daire.mcnamara
2024-10-11 14:00 ` daire.mcnamara
2024-10-11 14:00 ` [PATCH v10 3/3] dt-bindings: PCI: microchip,pcie-host: allow dma-noncoherent daire.mcnamara
2024-10-11 14:00 ` daire.mcnamara
2024-11-13 11:50 ` [PATCH v10 0/3] Fix address translations on MPFS PCIe controller Conor Dooley
2024-11-13 11:50 ` Conor Dooley
2025-01-14 17:16 ` Conor Dooley
2025-01-14 17:16 ` Conor Dooley
2025-01-14 23:19 ` Bjorn Helgaas [this message]
2025-01-14 23:19 ` Bjorn Helgaas
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=20250114231939.GA496825@bhelgaas \
--to=helgaas@kernel.org \
--cc=bhelgaas@google.com \
--cc=conor+dt@kernel.org \
--cc=conor.dooley@microchip.com \
--cc=conor@kernel.org \
--cc=daire.mcnamara@microchip.com \
--cc=devicetree@vger.kernel.org \
--cc=ilpo.jarvinen@linux.intel.com \
--cc=kevin.xie@starfivetech.com \
--cc=krzk+dt@kernel.org \
--cc=kw@linux.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=linux-riscv@lists.infradead.org \
--cc=lpieralisi@kernel.org \
--cc=robh@kernel.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.