Re: [PATCH 0/7] imx8mp: Enable PCIe/NVMe support
On 2/21/24 06:25, Sumit Garg wrote: On Tue, 20 Feb 2024 at 21:02, Marek Vasut wrote: On 2/20/24 14:10, Sumit Garg wrote: pcie_imx doesn't seem to share any useful code for iMX8MP SoC and it is rather tied to quite old port of pcie_designware driver from Linux which suffices only iMX6 specific needs. But currently we have the common DWC specific bits which alligns pretty well with DW PCIe controller on iMX8MP SoC. So lets reuse those common bits instead as a new driver for iMX8 SoCs. It should be fairly easy to add support for other iMX8 variants to this driver. iMX8MP SoC also comes up with standalone PCIe PHY support, so hence we can reuse the generic PHY infrastructure to power on PCIe PHY. Patch #1: Adds PCIe clocks support. Patch #2: Adds i.MX8MP reset controller support. Patch #3: Extend i.MX8MP power domain driver with PCIe support Patch #4: Expose high performance PLL clock required for PCIe PHY on verdin board. Patch #5: Adds standalone PCIe PHY support for i.MX8MP SoC. Patch #6: Adds DW PCIe controller support for iMX8MP SoC. Patch #7: Enable PCIe/NVMe support for verdin board. Testing with this patch-set included: Verdin iMX8MP # pci enum PCIE-0: Link up (Gen1-x1, Bus0) Verdin iMX8MP # Verdin iMX8MP # nvme scan Verdin iMX8MP # Verdin iMX8MP # nvme info Device 0: Vendor: 0x126f Rev: T0828A0 Prod: AA000720 Type: Hard Disk Capacity: 122104.3 MB = 119.2 GB (250069680 x 512) Verdin iMX8MP # Verdin iMX8MP # load nvme 0 $loadaddr Sumit Garg (7): clk: imx8mp: Add support for PCIe clocks reset: imx: Add support for i.MX8MP reset controller imx8mp: power-domain: Add PCIe support imx8mp: power-domain: Expose high performance PLL clock phy: phy-imx8m-pcie: Add support for i.MX8M{M/P} PCIe PHY pci: Add DW PCIe controller support for iMX8MP SoC verdin-imx8mp_defconfig: Enable PCIe/NVMe support configs/verdin-imx8mp_defconfig | 9 + drivers/clk/imx/clk-imx8mp.c | 6 + drivers/pci/Kconfig | 8 + drivers/pci/Makefile | 1 + drivers/pci/pcie_dw_imx8.c| 348 ++ You can call this pcie_dw_imx.c , the imx6 support can be converted over to that driver too I guess ? Yeah I suppose that should be possible, let me rename it as pcie_dw_imx.c. Thanks
Re: [PATCH 0/7] imx8mp: Enable PCIe/NVMe support
On Tue, 20 Feb 2024 at 21:02, Marek Vasut wrote: > > On 2/20/24 14:10, Sumit Garg wrote: > > pcie_imx doesn't seem to share any useful code for iMX8MP SoC and it is > > rather tied to quite old port of pcie_designware driver from Linux which > > suffices only iMX6 specific needs. > > > > But currently we have the common DWC specific bits which alligns pretty > > well with DW PCIe controller on iMX8MP SoC. So lets reuse those common > > bits instead as a new driver for iMX8 SoCs. It should be fairly easy to > > add support for other iMX8 variants to this driver. > > > > iMX8MP SoC also comes up with standalone PCIe PHY support, so hence we > > can reuse the generic PHY infrastructure to power on PCIe PHY. > > > > Patch #1: Adds PCIe clocks support. > > Patch #2: Adds i.MX8MP reset controller support. > > Patch #3: Extend i.MX8MP power domain driver with PCIe support > > Patch #4: Expose high performance PLL clock required for PCIe PHY > >on verdin board. > > Patch #5: Adds standalone PCIe PHY support for i.MX8MP SoC. > > Patch #6: Adds DW PCIe controller support for iMX8MP SoC. > > Patch #7: Enable PCIe/NVMe support for verdin board. > > > > Testing with this patch-set included: > > > > Verdin iMX8MP # pci enum > > PCIE-0: Link up (Gen1-x1, Bus0) > > Verdin iMX8MP # > > Verdin iMX8MP # nvme scan > > Verdin iMX8MP # > > Verdin iMX8MP # nvme info > > Device 0: Vendor: 0x126f Rev: T0828A0 Prod: AA000720 > > Type: Hard Disk > > Capacity: 122104.3 MB = 119.2 GB (250069680 x 512) > > Verdin iMX8MP # > > Verdin iMX8MP # load nvme 0 $loadaddr > > > > Sumit Garg (7): > >clk: imx8mp: Add support for PCIe clocks > >reset: imx: Add support for i.MX8MP reset controller > >imx8mp: power-domain: Add PCIe support > >imx8mp: power-domain: Expose high performance PLL clock > >phy: phy-imx8m-pcie: Add support for i.MX8M{M/P} PCIe PHY > >pci: Add DW PCIe controller support for iMX8MP SoC > >verdin-imx8mp_defconfig: Enable PCIe/NVMe support > > > > configs/verdin-imx8mp_defconfig | 9 + > > drivers/clk/imx/clk-imx8mp.c | 6 + > > drivers/pci/Kconfig | 8 + > > drivers/pci/Makefile | 1 + > > drivers/pci/pcie_dw_imx8.c| 348 ++ > > You can call this pcie_dw_imx.c , the imx6 support can be converted over > to that driver too I guess ? Yeah I suppose that should be possible, let me rename it as pcie_dw_imx.c. -Sumit
Re: [PATCH 0/7] imx8mp: Enable PCIe/NVMe support
On 2/20/24 14:10, Sumit Garg wrote: pcie_imx doesn't seem to share any useful code for iMX8MP SoC and it is rather tied to quite old port of pcie_designware driver from Linux which suffices only iMX6 specific needs. But currently we have the common DWC specific bits which alligns pretty well with DW PCIe controller on iMX8MP SoC. So lets reuse those common bits instead as a new driver for iMX8 SoCs. It should be fairly easy to add support for other iMX8 variants to this driver. iMX8MP SoC also comes up with standalone PCIe PHY support, so hence we can reuse the generic PHY infrastructure to power on PCIe PHY. Patch #1: Adds PCIe clocks support. Patch #2: Adds i.MX8MP reset controller support. Patch #3: Extend i.MX8MP power domain driver with PCIe support Patch #4: Expose high performance PLL clock required for PCIe PHY on verdin board. Patch #5: Adds standalone PCIe PHY support for i.MX8MP SoC. Patch #6: Adds DW PCIe controller support for iMX8MP SoC. Patch #7: Enable PCIe/NVMe support for verdin board. Testing with this patch-set included: Verdin iMX8MP # pci enum PCIE-0: Link up (Gen1-x1, Bus0) Verdin iMX8MP # Verdin iMX8MP # nvme scan Verdin iMX8MP # Verdin iMX8MP # nvme info Device 0: Vendor: 0x126f Rev: T0828A0 Prod: AA000720 Type: Hard Disk Capacity: 122104.3 MB = 119.2 GB (250069680 x 512) Verdin iMX8MP # Verdin iMX8MP # load nvme 0 $loadaddr Sumit Garg (7): clk: imx8mp: Add support for PCIe clocks reset: imx: Add support for i.MX8MP reset controller imx8mp: power-domain: Add PCIe support imx8mp: power-domain: Expose high performance PLL clock phy: phy-imx8m-pcie: Add support for i.MX8M{M/P} PCIe PHY pci: Add DW PCIe controller support for iMX8MP SoC verdin-imx8mp_defconfig: Enable PCIe/NVMe support configs/verdin-imx8mp_defconfig | 9 + drivers/clk/imx/clk-imx8mp.c | 6 + drivers/pci/Kconfig | 8 + drivers/pci/Makefile | 1 + drivers/pci/pcie_dw_imx8.c| 348 ++ You can call this pcie_dw_imx.c , the imx6 support can be converted over to that driver too I guess ?
[PATCH 0/7] imx8mp: Enable PCIe/NVMe support
pcie_imx doesn't seem to share any useful code for iMX8MP SoC and it is rather tied to quite old port of pcie_designware driver from Linux which suffices only iMX6 specific needs. But currently we have the common DWC specific bits which alligns pretty well with DW PCIe controller on iMX8MP SoC. So lets reuse those common bits instead as a new driver for iMX8 SoCs. It should be fairly easy to add support for other iMX8 variants to this driver. iMX8MP SoC also comes up with standalone PCIe PHY support, so hence we can reuse the generic PHY infrastructure to power on PCIe PHY. Patch #1: Adds PCIe clocks support. Patch #2: Adds i.MX8MP reset controller support. Patch #3: Extend i.MX8MP power domain driver with PCIe support Patch #4: Expose high performance PLL clock required for PCIe PHY on verdin board. Patch #5: Adds standalone PCIe PHY support for i.MX8MP SoC. Patch #6: Adds DW PCIe controller support for iMX8MP SoC. Patch #7: Enable PCIe/NVMe support for verdin board. Testing with this patch-set included: Verdin iMX8MP # pci enum PCIE-0: Link up (Gen1-x1, Bus0) Verdin iMX8MP # Verdin iMX8MP # nvme scan Verdin iMX8MP # Verdin iMX8MP # nvme info Device 0: Vendor: 0x126f Rev: T0828A0 Prod: AA000720 Type: Hard Disk Capacity: 122104.3 MB = 119.2 GB (250069680 x 512) Verdin iMX8MP # Verdin iMX8MP # load nvme 0 $loadaddr Sumit Garg (7): clk: imx8mp: Add support for PCIe clocks reset: imx: Add support for i.MX8MP reset controller imx8mp: power-domain: Add PCIe support imx8mp: power-domain: Expose high performance PLL clock phy: phy-imx8m-pcie: Add support for i.MX8M{M/P} PCIe PHY pci: Add DW PCIe controller support for iMX8MP SoC verdin-imx8mp_defconfig: Enable PCIe/NVMe support configs/verdin-imx8mp_defconfig | 9 + drivers/clk/imx/clk-imx8mp.c | 6 + drivers/pci/Kconfig | 8 + drivers/pci/Makefile | 1 + drivers/pci/pcie_dw_imx8.c| 348 ++ drivers/phy/Kconfig | 9 + drivers/phy/Makefile | 1 + drivers/phy/phy-imx8m-pcie.c | 246 ++ drivers/power/domain/imx8mp-hsiomix.c | 121 - drivers/reset/reset-imx7.c| 114 + 10 files changed, 859 insertions(+), 4 deletions(-) create mode 100644 drivers/pci/pcie_dw_imx8.c create mode 100644 drivers/phy/phy-imx8m-pcie.c -- 2.34.1