RE: [PATCH v4 0/6] Add iMX8MP PCIe support

From: Hongxing Zhu
Date: Mon Aug 29 2022 - 22:58:59 EST


> -----Original Message-----
> From: Lucas Stach <l.stach@xxxxxxxxxxxxxx>
> Sent: 2022年8月29日 23:20
> To: Hongxing Zhu <hongxing.zhu@xxxxxxx>; p.zabel@xxxxxxxxxxxxxx;
> bhelgaas@xxxxxxxxxx; lorenzo.pieralisi@xxxxxxx; robh@xxxxxxxxxx;
> shawnguo@xxxxxxxxxx; vkoul@xxxxxxxxxx; alexander.stein@xxxxxxxxxxxxxxx;
> marex@xxxxxxx; richard.leitner@xxxxxxxxx
> Cc: linux-phy@xxxxxxxxxxxxxxxxxxx; devicetree@xxxxxxxxxxxxxxx;
> linux-pci@xxxxxxxxxxxxxxx; linux-arm-kernel@xxxxxxxxxxxxxxxxxxx;
> linux-kernel@xxxxxxxxxxxxxxx; kernel@xxxxxxxxxxxxxx; dl-linux-imx
> <linux-imx@xxxxxxx>
> Subject: Re: [PATCH v4 0/6] Add iMX8MP PCIe support
>
> Hi Richard,
>
> instead of review comments I sent you a two patches to rework things more to
> my liking. Hope you agree with the approach.
>
> One question, though: did you test this with devices with Gen2/3 speeds? The
> Marvell WiFi module on my EVK board only links with Gen1, while it claims
> Gen2 speed in the LnkCap register. However, it does seem to come up with
> Gen1 as the target link speed in LnkCtl2, so maybe the device is at fault here.
Hi Lucas:
Thanks for your help on this series.
I'm agree with your approach, and let blk-ctrl driver do the hsiomix resets.
Can I include the #1 patch into this series, and rebase the 2# fixup! patch
into the phy changes patch with your sign-off?

Yes, I did the Gen3 NVEM device tests on i.MX8MP EVK board.
The Gen3 works fine.
Logs:
"
[ 1.808033] phy phy-32f00000.pcie-phy.1: phy_power_on was called before phy_init
[ 1.822609] imx6q-pcie 33800000.pcie: iATU unroll: enabled
[ 1.836620] imx6q-pcie 33800000.pcie: iATU regions: 4 ob, 4 ib, align 64K, limit 16G
[ 1.950427] imx6q-pcie 33800000.pcie: PCIe Gen.1 x1 link up
[ 2.058138] imx6q-pcie 33800000.pcie: PCIe Gen.3 x1 link up
[ 2.063731] imx6q-pcie 33800000.pcie: Link up, Gen3
[ 2.068619] imx6q-pcie 33800000.pcie: PCIe Gen.3 x1 link up
"

Best Regards
Richard Zhu
>
> Regards,
> Lucas
>
> Am Montag, dem 29.08.2022 um 16:15 +0800 schrieb Richard Zhu:
> > Based on the 6.0-rc1 of the pci/next branch.
> > This series adds the i.MX8MP PCIe support and tested on i.MX8MP EVK
> > board when one PCIe NVME device is used.
> >
> > - i.MX8MP PCIe has reversed initial PERST bit value refer to
> i.MX8MQ/i.MX8MM.
> > Add the PHY PERST explicitly for i.MX8MP PCIe PHY.
> > - Add the i.MX8MP PCIe PHY support in the i.MX8M PCIe PHY driver.
> > And share as much as possible codes with i.MX8MM PCIe PHY.
> > - Add the i.MX8MP PCIe support in binding document, DTS files, and PCIe
> > driver.
> >
> > Main changes v3-->v4:
> > - Regarding Phillip's suggestions, add fix tag into the first commit.
> > - Add Reviewed and Tested tags.
> >
> > Main changes v2-->v3:
> > - Fix the schema checking error in the PHY dt-binding patch.
> > - Inspired by Lucas, the PLL configurations might not required when
> > external OSC is used as PCIe referrence clock. It's true. Remove all
> > the HSIO PLL bit manipulations, and PCIe works fine on i.MX8MP EVK
> board
> > with one NVME device is used.
> > - Drop the #4 patch of v2, since it had been applied by Rob.
> >
> > Main changes v1-->v2:
> > - It's my fault forget including Vinod, re-send v2 after include Vinod
> > and linux-phy@xxxxxxxxxxxxxxxxxxx.
> > - List the basements of this patch-set. The branch, codes changes and so on.
> > - Clean up some useless register and bit definitions in #3 patch.
> >
> > Documentation/devicetree/bindings/phy/fsl,imx8-pcie-phy.yaml | 16
> +++++++--
> > arch/arm64/boot/dts/freescale/imx8mp-evk.dts | 53
> +++++++++++++++++++++++++++++
> > arch/arm64/boot/dts/freescale/imx8mp.dtsi | 46
> ++++++++++++++++++++++++-
> > drivers/pci/controller/dwc/pci-imx6.c | 17
> +++++++++-
> > drivers/phy/freescale/phy-fsl-imx8m-pcie.c | 150
> +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
> ------------------
> > drivers/reset/reset-imx7.c | 1 +
> > 6 files changed, 232 insertions(+), 51 deletions(-)
> >
> > [PATCH v4 1/6] reset: imx7: Fix the iMX8MP PCIe PHY PERST support
> > [PATCH v4 2/6] dt-binding: phy: Add iMX8MP PCIe PHY binding [PATCH v4
> > 3/6] phy: freescale: imx8m-pcie: Add iMX8MP PCIe PHY [PATCH v4 4/6]
> > arm64: dts: imx8mp: Add iMX8MP PCIe support [PATCH v4 5/6] arm64: dts:
> > imx8mp-evk: Add PCIe support [PATCH v4 6/6] PCI: imx6: Add iMX8MP PCIe
> > support
>