2022-09-23 07:04:36

by Richard Zhu

[permalink] [raw]
Subject: [PATCH v3 0/14] Add iMX PCIe EP mode support

i.MX PCIe controller is one dual mode PCIe controller, and can work either
as RC or EP.
This series add the i.MX PCIe EP mode support. And had been verified on
i.MX8MQ EVK, i.MX8MM EVK and i.MX8MP EVK boards.
In the verification, one EVK board used as RC, the other one used as EP.
Use the cross TX/RX differential cable connect the two PCIe ports of these
two EVK boards.

+-----------+ +------------+
| PCIe TX |<-------------->|PCIe RX |
| | | |
|EVK Board | |EVK Board |
| | | |
| PCIe RX |<-------------->|PCIe TX |
+-----------+ +------------+

Main changes from v2 -> v3:
- Add the i.MX8MP PCIe EP support, and verified on i.MX8MP EVK board.
- Rebase to latest pci/next branch(tag: v6.0-rc1 plus some PCIe changes).

Main changes from v1 -> v2:
- Add Rob's ACK into first two commits.
- Rebase to the tag: pci-v5.20-changes of the pci/next branch.

Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.yaml | 3 ++
arch/arm64/boot/dts/freescale/imx8mm-evk.dtsi | 14 ++++++
arch/arm64/boot/dts/freescale/imx8mm.dtsi | 20 +++++++++
arch/arm64/boot/dts/freescale/imx8mp-evk.dts | 13 ++++++
arch/arm64/boot/dts/freescale/imx8mp.dtsi | 19 ++++++++
arch/arm64/boot/dts/freescale/imx8mq-evk.dts | 12 ++++++
arch/arm64/boot/dts/freescale/imx8mq.dtsi | 27 ++++++++++++
drivers/misc/pci_endpoint_test.c | 2 +
drivers/pci/controller/dwc/Kconfig | 25 ++++++++++-
drivers/pci/controller/dwc/pci-imx6.c | 200 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------
10 files changed, 316 insertions(+), 19 deletions(-)

[PATCH v3 01/14] dt-bindings: imx6q-pcie: Add iMX8MM PCIe EP mode
[PATCH v3 02/14] dt-bindings: imx6q-pcie: Add iMX8MQ PCIe EP mode
[PATCH v3 03/14] dt-bindings: imx6q-pcie: Add iMX8MP PCIe EP mode
[PATCH v3 04/14] PCI: dwc: Kconfig: Add iMX PCIe EP mode support
[PATCH v3 05/14] arm64: dts: Add iMX8MM PCIe EP support
[PATCH v3 06/14] arm64: dts: Add iMX8MM PCIe EP support on EVK board
[PATCH v3 07/14] arm64: dts: Add iMX8MQ PCIe EP support
[PATCH v3 08/14] arm64: dts: Add iMX8MQ PCIe EP support on EVK board
[PATCH v3 09/14] arm64: dts: Add iMX8MP PCIe EP support
[PATCH v3 10/14] arm64: dts: Add iMX8MP PCIe EP support on EVK board
[PATCH v3 11/14] misc: pci_endpoint_test: Add iMX8 PCIe EP device
[PATCH v3 12/14] PCI: imx6: Add iMX8MM PCIe EP mode
[PATCH v3 13/14] PCI: imx6: Add iMX8MQ PCIe EP support
[PATCH v3 14/14] PCI: imx6: Add iMX8MP PCIe EP support


2022-09-23 07:05:51

by Richard Zhu

[permalink] [raw]
Subject: [PATCH v3 01/14] dt-bindings: imx6q-pcie: Add iMX8MM PCIe EP mode compatible string

Add i.MX8MM PCIe endpoint mode compatible string.

Signed-off-by: Richard Zhu <[email protected]>
Acked-by: Rob Herring <[email protected]>
---
Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.yaml | 1 +
1 file changed, 1 insertion(+)

diff --git a/Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.yaml b/Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.yaml
index 376e739bcad4..e4038e2b3de9 100644
--- a/Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.yaml
+++ b/Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.yaml
@@ -27,6 +27,7 @@ properties:
- fsl,imx8mq-pcie
- fsl,imx8mm-pcie
- fsl,imx8mp-pcie
+ - fsl,imx8mm-pcie-ep

reg:
items:
--
2.25.1

2022-09-23 07:08:34

by Richard Zhu

[permalink] [raw]
Subject: [PATCH v3 11/14] misc: pci_endpoint_test: Add iMX8 PCIe EP device support

Set the DEVICE_ID of i.MX8 PCIe and add iMX8 PCIE EP device support in
pci_endpoint_test driver.

Signed-off-by: Richard Zhu <[email protected]>
---
drivers/misc/pci_endpoint_test.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/drivers/misc/pci_endpoint_test.c b/drivers/misc/pci_endpoint_test.c
index 8f786a225dcf..18cea40c697b 100644
--- a/drivers/misc/pci_endpoint_test.c
+++ b/drivers/misc/pci_endpoint_test.c
@@ -72,6 +72,7 @@
#define PCI_DEVICE_ID_TI_J7200 0xb00f
#define PCI_DEVICE_ID_TI_AM64 0xb010
#define PCI_DEVICE_ID_LS1088A 0x80c0
+#define PCI_DEVICE_ID_IMX8 0x0808

#define is_am654_pci_dev(pdev) \
((pdev)->device == PCI_DEVICE_ID_TI_AM654)
@@ -958,6 +959,7 @@ static const struct pci_device_id pci_endpoint_test_tbl[] = {
{ PCI_DEVICE(PCI_VENDOR_ID_FREESCALE, 0x81c0),
.driver_data = (kernel_ulong_t)&default_data,
},
+ { PCI_DEVICE(PCI_VENDOR_ID_FREESCALE, PCI_DEVICE_ID_IMX8),},
{ PCI_DEVICE(PCI_VENDOR_ID_FREESCALE, PCI_DEVICE_ID_LS1088A),
.driver_data = (kernel_ulong_t)&default_data,
},
--
2.25.1

2022-09-23 14:42:51

by Bjorn Helgaas

[permalink] [raw]
Subject: Re: [PATCH v3 0/14] Add iMX PCIe EP mode support

On Fri, Sep 23, 2022 at 02:06:46PM +0800, Richard Zhu wrote:
> i.MX PCIe controller is one dual mode PCIe controller, and can work either
> as RC or EP.
> This series add the i.MX PCIe EP mode support. And had been verified on
> i.MX8MQ EVK, i.MX8MM EVK and i.MX8MP EVK boards.
> In the verification, one EVK board used as RC, the other one used as EP.
> Use the cross TX/RX differential cable connect the two PCIe ports of these
> two EVK boards.
>
> +-----------+ +------------+
> | PCIe TX |<-------------->|PCIe RX |
> | | | |
> |EVK Board | |EVK Board |
> | | | |
> | PCIe RX |<-------------->|PCIe TX |
> +-----------+ +------------+
>
> Main changes from v2 -> v3:
> - Add the i.MX8MP PCIe EP support, and verified on i.MX8MP EVK board.
> - Rebase to latest pci/next branch(tag: v6.0-rc1 plus some PCIe changes).

This doesn't apply cleanly on either v6.0-rc1 or my "next" branch.
It's best to base your branch on my "main" branch (currently v6.0-rc1)
because that's an unambiguous base that remains stable for the entire
cycle.

If your series actually *depends* on something that's already been
merged, specify that and include the SHA1 (not just something vague
like "latest pci/next" or "v6.0-rc1 plus some PCIe changes") so we can
figure out how to handle it.

Bjorn

2022-09-26 05:25:56

by Richard Zhu

[permalink] [raw]
Subject: RE: [PATCH v3 0/14] Add iMX PCIe EP mode support

> -----Original Message-----
> From: Bjorn Helgaas <[email protected]>
> Sent: 2022??9??23?? 21:54
> To: Hongxing Zhu <[email protected]>
> Cc: [email protected]; [email protected]; [email protected];
> [email protected]; [email protected]; [email protected];
> [email protected]; Frank Li <[email protected]>; [email protected];
> [email protected]; [email protected];
> [email protected]; [email protected]; dl-linux-imx
> <[email protected]>
> Subject: Re: [PATCH v3 0/14] Add iMX PCIe EP mode support
>
> On Fri, Sep 23, 2022 at 02:06:46PM +0800, Richard Zhu wrote:
> > i.MX PCIe controller is one dual mode PCIe controller, and can work
> > either as RC or EP.
> > This series add the i.MX PCIe EP mode support. And had been verified
> > on i.MX8MQ EVK, i.MX8MM EVK and i.MX8MP EVK boards.
> > In the verification, one EVK board used as RC, the other one used as EP.
> > Use the cross TX/RX differential cable connect the two PCIe ports of
> > these two EVK boards.
> >
> > +-----------+ +------------+
> > | PCIe TX |<-------------->|PCIe RX |
> > | | | |
> > |EVK Board | |EVK Board |
> > | | | |
> > | PCIe RX |<-------------->|PCIe TX |
> > +-----------+ +------------+
> >
> > Main changes from v2 -> v3:
> > - Add the i.MX8MP PCIe EP support, and verified on i.MX8MP EVK board.
> > - Rebase to latest pci/next branch(tag: v6.0-rc1 plus some PCIe changes).
>
> This doesn't apply cleanly on either v6.0-rc1 or my "next" branch.
> It's best to base your branch on my "main" branch (currently v6.0-rc1) because
> that's an unambiguous base that remains stable for the entire cycle.
>
> If your series actually *depends* on something that's already been merged,
> specify that and include the SHA1 (not just something vague like "latest
> pci/next" or "v6.0-rc1 plus some PCIe changes") so we can figure out how to
> handle it.
Thanks for your review.
Yes, some i.MX8MP PCIe support patches are required, since the i.MX8MP
PCIe EP is new added in the v3 series.
Would post them later.

Best Regards
Richard Zhu

>
> Bjorn