Message ID | 20240220131056.2962331-1-sumit.garg@linaro.org |
---|---|
Headers | show |
Series | imx8mp: Enable PCIe/NVMe support | expand |
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: AA000000000000000720 > Type: Hard Disk > Capacity: 122104.3 MB = 119.2 GB (250069680 x 512) > Verdin iMX8MP # > Verdin iMX8MP # load nvme 0 $loadaddr <file-name> > > 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 ?
On Tue, 20 Feb 2024 at 21:02, Marek Vasut <marex@denx.de> 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: AA000000000000000720 > > Type: Hard Disk > > Capacity: 122104.3 MB = 119.2 GB (250069680 x 512) > > Verdin iMX8MP # > > Verdin iMX8MP # load nvme 0 $loadaddr <file-name> > > > > 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
On 2/21/24 06:25, Sumit Garg wrote: > On Tue, 20 Feb 2024 at 21:02, Marek Vasut <marex@denx.de> 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: AA000000000000000720 >>> Type: Hard Disk >>> Capacity: 122104.3 MB = 119.2 GB (250069680 x 512) >>> Verdin iMX8MP # >>> Verdin iMX8MP # load nvme 0 $loadaddr <file-name> >>> >>> 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