mbox series

[DTS,RESEND,v10,0/4] Add i.MX PCIe EP mode support

Message ID 1676441915-1394-1-git-send-email-hongxing.zhu@nxp.com
Headers show
Series Add i.MX PCIe EP mode support | expand

Message

Richard Zhu Feb. 15, 2023, 6:18 a.m. UTC
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, 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     |
+-----------+                +------------+

Resend the v10 series, after adding linux-pci@vger.kernel.org into reviewer
list and adding Rob's ACK into dt-binding changes.

Main changes from v9 -> v10:
Refer to the comments provided by Krzysztof.
- Move the comptabile from common schena to RC's and EP's schema separately.
- Add the required: block into fsl,imx6q-pcie-common.yaml schema.
- Remove the status = "disabled"; in the example.

Main changes from v8 -> v9:
Refer to Rob's review comments.
- To avoid codes duplication, move as much as possible properties into
  common schema.

Main changes from v7 -> v8:
Refer to Rob's review comments.
- Merge the binding document changes into one commit.
- To avoid the duplication, restruct the common properties of i.MX PCIe
  schema, thus they can be shared by both RC and Endpoint modes.

Main changes from v6 -> v7:
Refer to Krzysztof's review comments.
- Drop the 2/4/6 patches of v6 series.
- Based on for-next branch of Shawn's git, and the fsl,imx6q-pcie.yaml
  changes in the v4.
  Separate the DT-schema for i.MX PCIe Endpoint modes, and pass the
  dt_binding_check and dtbs_check.

Main changes from v5 -> v6:
- The v6 only contains the DTS changes, since PCIe part had been picked up.
- Based on Shawn's for-next branch, and the following two patch-sets [1]
  and [2] issued by Marek, rebase the DTS changes.
[1] https://patchwork.kernel.org/project/linux-arm-kernel/patch/20230116101649.46459-1-marex@denx.de/
[2] https://patchwork.kernel.org/project/linux-arm-kernel/patch/20230116101422.46257-1-marex@denx.de/

Main changes from v4 -> v5:
- Rebase to v6.2-rc1.
- Follow the clock definitions on i.MX8MP platform refer to the
  following commit.
  https://patchwork.kernel.org/project/linux-arm-kernel/patch/20221216195932.3228998-1-l.stach@pengutronix.de/

Main changes from v3 -> v4:
- Add the Rob's ACK in the dt-binding patch.
- Use "i.MX" to keep spell consistent.
- Squash generic endpoint infrastructure changes of
  "[12/14] PCI: imx6: Add iMX8MM PCIe EP mode" into Kconfig changes.

NOTE:
The following commits should be cherried back firstly, when apply this
series.

Shawn's tree (git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux.git)
d50650500064 arm64: dts: imx8mp-evk: Add PCIe support
9e65987b9584 arm64: dts: imx8mp: Add iMX8MP PCIe support
5506018d3dec soc: imx: imx8mp-blk-ctrl: handle PCIe PHY resets

Philipp's tree (git://git.pengutronix.de/git/pza/linux)
051d9eb40388 reset: imx7: Fix the iMX8MP PCIe PHY PERST support

The PHY changes:
https://patchwork.kernel.org/project/linux-pci/cover/1664174463-13721-1-git-send-email-hongxing.zhu@nxp.com/

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-common.yaml | 279 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Documentation/devicetree/bindings/pci/fsl,imx6q-pcie-ep.yaml     |  85 ++++++++++++++++++++++++
Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.yaml        | 240 ++-----------------------------------------------------------------
MAINTAINERS                                                      |   2 +
arch/arm64/boot/dts/freescale/imx8mm.dtsi                        |  24 +++++++
arch/arm64/boot/dts/freescale/imx8mp.dtsi                        |  26 ++++++++
arch/arm64/boot/dts/freescale/imx8mq.dtsi                        |  32 +++++++++
7 files changed, 454 insertions(+), 234 deletions(-)

[RESEND v10 1/4] dt-bindings: imx6q-pcie: Restruct i.MX PCIe schema
[RESEND v10 2/4] arm64: dts: Add i.MX8MM PCIe EP support
[RESEND v10 3/4] arm64: dts: Add i.MX8MQ PCIe EP support
[RESEND v10 4/4] arm64: dts: Add i.MX8MP PCIe EP support

Comments

Shawn Guo March 14, 2023, 1:04 a.m. UTC | #1
On Wed, Feb 15, 2023 at 02:18:31PM +0800, Richard Zhu wrote:
> [RESEND v10 1/4] dt-bindings: imx6q-pcie: Restruct i.MX PCIe schema
> [RESEND v10 2/4] arm64: dts: Add i.MX8MM PCIe EP support
> [RESEND v10 3/4] arm64: dts: Add i.MX8MQ PCIe EP support
> [RESEND v10 4/4] arm64: dts: Add i.MX8MP PCIe EP support

Applied 2 ~ 4, thanks!
Lorenzo Pieralisi April 7, 2023, 7:53 a.m. UTC | #2
On Wed, 15 Feb 2023 14:18:31 +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, 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.
> 
> [...]

Applied to controller/dt, thanks!

[1/4] dt-bindings: imx6q-pcie: Restruct i.MX PCIe schema
      https://git.kernel.org/pci/pci/c/b10f82380eeb

Thanks,
Lorenzo