From: Conor Dooley <conor@kernel.org>
To: daire.mcnamara@microchip.com
Cc: conor.dooley@microchip.com, robh+dt@kernel.org,
krzysztof.kozlowski+dt@linaro.org, paul.walmsley@sifive.com,
palmer@dabbelt.com, aou@eecs.berkeley.edu, lpieralisi@kernel.org,
kw@linux.com, bhelgaas@google.com,
linux-riscv@lists.infradead.org, devicetree@vger.kernel.org,
linux-pci@vger.kernel.org
Subject: Re: [PATCH v1 0/9] PCI: microchip: Partition address translations
Date: Wed, 23 Nov 2022 23:15:14 +0000 [thread overview]
Message-ID: <Y36pgsCplC5hN2ij@spud> (raw)
In-Reply-To: <20221116135504.258687-1-daire.mcnamara@microchip.com>
Hey Daire,
On Wed, Nov 16, 2022 at 01:54:55PM +0000, daire.mcnamara@microchip.com wrote:
> From: Daire McNamara <daire.mcnamara@microchip.com>
>
> Microchip PolarFire SoC is a 64-bit device and has DDR starting at
> 0x80000000 and 0x1000000000. Its PCIe rootport is connected to the CPU
> Coreplex via an FPGA fabric. The AXI connections between the Coreplex and
> the fabric are 64-bit and the AXI connections between the fabric and the
> rootport are 32-bit. For the CPU CorePlex to act as an AXI-Master to the
> PCIe devices and for the PCIe devices to act as bus masters to DDR at these
> base addresses, the fabric can be customised to add/remove offsets for bits
> 38-32 in each direction. These offsets, if present, vary with each
> customer's design.
>
> To support this variety, the rootport driver must know how much address
> translation (both inbound and outbound) is performed by a particular
> customer design and how much address translation must be provided by the
> rootport.
>
> This patchset contains a parent/child dma-ranges scheme suggested by Rob
> Herring. It creates an FPGA PCIe parent bus which wraps the PCIe rootport
> and implements a parsing scheme where the root port identifies what address
> translations are performed by the FPGA fabric parent bus, and what
> address translations must be done by the rootport itself.
I've tried this scheme with a bunch of different PCI configurations, and
it holds water, so I am happy with it :) Hopefully Rob is a lot happier
with this version of it too!
It's been long enough that I think you should be good to submit a
cleaned up version, provided Rob's happy on the DT side I think.
Thanks,
Conor.
> See https://lore.kernel.org/linux-pci/20220902142202.2437658-1-daire.mcnamara@microchip.com/
> for the relevant previous patch submission discussion.
>
> It also re-partitions the probe() and init() functions as suggested by
> Bjorn Helgaas to make them more maintainable as the init() function had
> become too large.
>
> It also contains some minor fixes and clean-ups that are pre-requisites:
> - to align register, offset, and mask names with the hardware documentation
> and to have the register definitions appear in the same order as in the
> hardware documentation;
> - to harvest the MSI information from the hardware configuration register
> as these depend on the FPGA fabric design and can vary with different
> customer designs;
> - to clean up interrupt initialisation to make it more maintainable;
> - to fix SEC and DED interrupt handling.
>
> I expect Conor will take the dts patch via the soc tree once the PCIe parts
> of the series are accepted.
>
> Conor Dooley (1):
> riscv: dts: microchip: add parent ranges and dma-ranges for IKRD
> v2022.09
>
> Daire McNamara (8):
> PCI: microchip: Align register, offset, and mask names with hw docs
> PCI: microchip: Correct the DED and SEC interrupt bit offsets
> PCI: microchip: Enable event handlers to access bridge and ctrl ptrs
> PCI: microchip: Clean up initialisation of interrupts
> PCI: microchip: Gather MSI information from hardware config registers
> PCI: microchip: Re-partition code between probe() and init()
> PCI: microchip: Partition outbound address translation
> PCI: microchip: Partition inbound address translation
>
> .../dts/microchip/mpfs-icicle-kit-fabric.dtsi | 62 +-
> drivers/pci/controller/pcie-microchip-host.c | 676 +++++++++++++-----
> 2 files changed, 522 insertions(+), 216 deletions(-)
>
>
> base-commit: 3c1f24109dfc4fb1a3730ed237e50183c6bb26b3
> --
> 2.25.1
>
>
> _______________________________________________
> linux-riscv mailing list
> linux-riscv@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-riscv
WARNING: multiple messages have this Message-ID (diff)
From: Conor Dooley <conor@kernel.org>
To: daire.mcnamara@microchip.com
Cc: conor.dooley@microchip.com, robh+dt@kernel.org,
krzysztof.kozlowski+dt@linaro.org, paul.walmsley@sifive.com,
palmer@dabbelt.com, aou@eecs.berkeley.edu, lpieralisi@kernel.org,
kw@linux.com, bhelgaas@google.com,
linux-riscv@lists.infradead.org, devicetree@vger.kernel.org,
linux-pci@vger.kernel.org
Subject: Re: [PATCH v1 0/9] PCI: microchip: Partition address translations
Date: Wed, 23 Nov 2022 23:15:14 +0000 [thread overview]
Message-ID: <Y36pgsCplC5hN2ij@spud> (raw)
In-Reply-To: <20221116135504.258687-1-daire.mcnamara@microchip.com>
Hey Daire,
On Wed, Nov 16, 2022 at 01:54:55PM +0000, daire.mcnamara@microchip.com wrote:
> From: Daire McNamara <daire.mcnamara@microchip.com>
>
> Microchip PolarFire SoC is a 64-bit device and has DDR starting at
> 0x80000000 and 0x1000000000. Its PCIe rootport is connected to the CPU
> Coreplex via an FPGA fabric. The AXI connections between the Coreplex and
> the fabric are 64-bit and the AXI connections between the fabric and the
> rootport are 32-bit. For the CPU CorePlex to act as an AXI-Master to the
> PCIe devices and for the PCIe devices to act as bus masters to DDR at these
> base addresses, the fabric can be customised to add/remove offsets for bits
> 38-32 in each direction. These offsets, if present, vary with each
> customer's design.
>
> To support this variety, the rootport driver must know how much address
> translation (both inbound and outbound) is performed by a particular
> customer design and how much address translation must be provided by the
> rootport.
>
> This patchset contains a parent/child dma-ranges scheme suggested by Rob
> Herring. It creates an FPGA PCIe parent bus which wraps the PCIe rootport
> and implements a parsing scheme where the root port identifies what address
> translations are performed by the FPGA fabric parent bus, and what
> address translations must be done by the rootport itself.
I've tried this scheme with a bunch of different PCI configurations, and
it holds water, so I am happy with it :) Hopefully Rob is a lot happier
with this version of it too!
It's been long enough that I think you should be good to submit a
cleaned up version, provided Rob's happy on the DT side I think.
Thanks,
Conor.
> See https://lore.kernel.org/linux-pci/20220902142202.2437658-1-daire.mcnamara@microchip.com/
> for the relevant previous patch submission discussion.
>
> It also re-partitions the probe() and init() functions as suggested by
> Bjorn Helgaas to make them more maintainable as the init() function had
> become too large.
>
> It also contains some minor fixes and clean-ups that are pre-requisites:
> - to align register, offset, and mask names with the hardware documentation
> and to have the register definitions appear in the same order as in the
> hardware documentation;
> - to harvest the MSI information from the hardware configuration register
> as these depend on the FPGA fabric design and can vary with different
> customer designs;
> - to clean up interrupt initialisation to make it more maintainable;
> - to fix SEC and DED interrupt handling.
>
> I expect Conor will take the dts patch via the soc tree once the PCIe parts
> of the series are accepted.
>
> Conor Dooley (1):
> riscv: dts: microchip: add parent ranges and dma-ranges for IKRD
> v2022.09
>
> Daire McNamara (8):
> PCI: microchip: Align register, offset, and mask names with hw docs
> PCI: microchip: Correct the DED and SEC interrupt bit offsets
> PCI: microchip: Enable event handlers to access bridge and ctrl ptrs
> PCI: microchip: Clean up initialisation of interrupts
> PCI: microchip: Gather MSI information from hardware config registers
> PCI: microchip: Re-partition code between probe() and init()
> PCI: microchip: Partition outbound address translation
> PCI: microchip: Partition inbound address translation
>
> .../dts/microchip/mpfs-icicle-kit-fabric.dtsi | 62 +-
> drivers/pci/controller/pcie-microchip-host.c | 676 +++++++++++++-----
> 2 files changed, 522 insertions(+), 216 deletions(-)
>
>
> base-commit: 3c1f24109dfc4fb1a3730ed237e50183c6bb26b3
> --
> 2.25.1
>
>
> _______________________________________________
> linux-riscv mailing list
> linux-riscv@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-riscv
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
next prev parent reply other threads:[~2022-11-23 23:16 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-11-16 13:54 [PATCH v1 0/9] PCI: microchip: Partition address translations daire.mcnamara
2022-11-16 13:54 ` daire.mcnamara
2022-11-16 13:54 ` [PATCH v1 1/9] PCI: microchip: Align register, offset, and mask names with hw docs daire.mcnamara
2022-11-16 13:54 ` daire.mcnamara
2022-11-23 21:09 ` Conor Dooley
2022-11-23 21:09 ` Conor Dooley
2022-11-16 13:54 ` [PATCH v1 2/9] PCI: microchip: Correct the DED and SEC interrupt bit offsets daire.mcnamara
2022-11-16 13:54 ` daire.mcnamara
2022-11-16 15:19 ` Conor Dooley
2022-11-16 15:19 ` Conor Dooley
2022-11-23 21:28 ` Conor Dooley
2022-11-23 21:28 ` Conor Dooley
2022-11-16 13:54 ` [PATCH v1 3/9] PCI: microchip: Enable event handlers to access bridge and ctrl ptrs daire.mcnamara
2022-11-16 13:54 ` daire.mcnamara
2022-11-23 21:34 ` Conor Dooley
2022-11-23 21:34 ` Conor Dooley
2022-11-16 13:54 ` [PATCH v1 4/9] PCI: microchip: Clean up initialisation of interrupts daire.mcnamara
2022-11-16 13:54 ` daire.mcnamara
2022-11-16 15:17 ` kernel test robot
2022-11-16 15:17 ` kernel test robot
2022-11-17 18:28 ` kernel test robot
2022-11-17 18:28 ` kernel test robot
2022-11-23 21:58 ` Conor Dooley
2022-11-23 21:58 ` Conor Dooley
2022-11-16 13:55 ` [PATCH v1 5/9] PCI: microchip: Gather MSI information from hardware config registers daire.mcnamara
2022-11-16 13:55 ` daire.mcnamara
2022-11-16 16:41 ` Bjorn Helgaas
2022-11-16 16:41 ` Bjorn Helgaas
2022-11-23 22:09 ` Conor Dooley
2022-11-23 22:09 ` Conor Dooley
2022-11-16 13:55 ` [PATCH v1 6/9] PCI: microchip: Re-partition code between probe() and init() daire.mcnamara
2022-11-16 13:55 ` daire.mcnamara
2022-11-23 22:39 ` Conor Dooley
2022-11-23 22:39 ` Conor Dooley
2022-11-16 13:55 ` [PATCH v1 7/9] PCI: microchip: Partition outbound address translation daire.mcnamara
2022-11-16 13:55 ` daire.mcnamara
2022-11-23 22:44 ` Conor Dooley
2022-11-23 22:44 ` Conor Dooley
2022-11-16 13:55 ` [PATCH v1 8/9] PCI: microchip: Partition inbound " daire.mcnamara
2022-11-16 13:55 ` daire.mcnamara
2022-11-16 16:49 ` Bjorn Helgaas
2022-11-16 16:49 ` Bjorn Helgaas
2022-11-16 17:01 ` Conor Dooley
2022-11-16 17:01 ` Conor Dooley
2022-11-16 20:10 ` kernel test robot
2022-11-16 20:10 ` kernel test robot
2022-11-17 6:06 ` kernel test robot
2022-11-17 6:06 ` kernel test robot
2022-11-23 23:05 ` Conor Dooley
2022-11-23 23:05 ` Conor Dooley
2022-11-16 13:55 ` [PATCH v1 9/9] riscv: dts: microchip: add parent ranges and dma-ranges for IKRD v2022.09 daire.mcnamara
2022-11-16 13:55 ` daire.mcnamara
2022-11-23 22:14 ` Conor Dooley
2022-11-23 22:14 ` Conor Dooley
2022-11-23 23:15 ` Conor Dooley [this message]
2022-11-23 23:15 ` [PATCH v1 0/9] PCI: microchip: Partition address translations Conor Dooley
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=Y36pgsCplC5hN2ij@spud \
--to=conor@kernel.org \
--cc=aou@eecs.berkeley.edu \
--cc=bhelgaas@google.com \
--cc=conor.dooley@microchip.com \
--cc=daire.mcnamara@microchip.com \
--cc=devicetree@vger.kernel.org \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=kw@linux.com \
--cc=linux-pci@vger.kernel.org \
--cc=linux-riscv@lists.infradead.org \
--cc=lpieralisi@kernel.org \
--cc=palmer@dabbelt.com \
--cc=paul.walmsley@sifive.com \
--cc=robh+dt@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.