Message ID | 20210406092634.50465-1-greentime.hu@sifive.com (mailing list archive) |
---|---|
Headers | show |
Series | Add SiFive FU740 PCIe host controller driver support | expand |
On Tue, Apr 06, 2021 at 05:26:28PM +0800, Greentime Hu wrote: > This patchset includes SiFive FU740 PCIe host controller driver. We also > add pcie_aux clock and pcie_power_on_reset controller to prci driver for > PCIe driver to use it. > > This is tested with e1000e: Intel(R) PRO/1000 Network Card, AMD Radeon R5 > 230 graphics card and SP M.2 PCIe Gen 3 SSD in SiFive Unmatched based on > v5.11 Linux kernel. > > Changes in v5: > - Fix typo in comments > - Keep comments style consistent > - Refine some error handling codes > - Remove unneeded header file including > - Merge fu740_pcie_ltssm_enable implementation to fu740_pcie_start_link > > Changes in v4: > - Fix Wunused-but-set-variable warning in prci driver > > Changes in v3: > - Remove items that has been defined > - Refine format of sifive,fu740-pcie.yaml > - Replace perstn-gpios with the common one > - Change DBI mapping space to 2GB from 4GB > - Refine drivers/reset/Kconfig > > Changes in v2: > - Refine codes based on reviewers' feedback > - Remove define and use the common one > - Replace __raw_writel with writel_relaxed > - Split fu740_phyregreadwrite to write function > - Use readl_poll_timeout in stead of while loop checking > - Use dwc common codes > - Use gpio descriptors and the gpiod_* api. > - Replace devm_ioremap_resource with devm_platform_ioremap_resource_byname > - Replace devm_reset_control_get with devm_reset_control_get_exclusive > - Add more comments for delay and sleep > - Remove "phy ? x : y" expressions > - Refine code logic to remove possible infinite loop > - Replace magic number with meaningful define > - Remove fu740_pcie_pm_ops > - Use builtin_platform_driver > > Greentime Hu (5): > clk: sifive: Add pcie_aux clock in prci driver for PCIe driver > clk: sifive: Use reset-simple in prci driver for PCIe driver > MAINTAINERS: Add maintainers for SiFive FU740 PCIe driver > dt-bindings: PCI: Add SiFive FU740 PCIe host controller > riscv: dts: Add PCIe support for the SiFive FU740-C000 SoC > > Paul Walmsley (1): > PCI: fu740: Add SiFive FU740 PCIe host controller driver I can pull the patches above into the PCI tree (but will drop patch 6 - dts changes), is it OK for you ? Please let me know how you would like to upstream it. Lorenzo > .../bindings/pci/sifive,fu740-pcie.yaml | 113 +++++++ > MAINTAINERS | 8 + > arch/riscv/boot/dts/sifive/fu740-c000.dtsi | 33 ++ > drivers/clk/sifive/Kconfig | 2 + > drivers/clk/sifive/fu740-prci.c | 11 + > drivers/clk/sifive/fu740-prci.h | 2 +- > drivers/clk/sifive/sifive-prci.c | 54 +++ > drivers/clk/sifive/sifive-prci.h | 13 + > drivers/pci/controller/dwc/Kconfig | 9 + > drivers/pci/controller/dwc/Makefile | 1 + > drivers/pci/controller/dwc/pcie-fu740.c | 308 ++++++++++++++++++ > drivers/reset/Kconfig | 1 + > include/dt-bindings/clock/sifive-fu740-prci.h | 1 + > 13 files changed, 555 insertions(+), 1 deletion(-) > create mode 100644 Documentation/devicetree/bindings/pci/sifive,fu740-pcie.yaml > create mode 100644 drivers/pci/controller/dwc/pcie-fu740.c > > -- > 2.30.2 >
Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> 於 2021年4月9日 週五 上午12:25寫道: > > On Tue, Apr 06, 2021 at 05:26:28PM +0800, Greentime Hu wrote: > > This patchset includes SiFive FU740 PCIe host controller driver. We also > > add pcie_aux clock and pcie_power_on_reset controller to prci driver for > > PCIe driver to use it. > > > > This is tested with e1000e: Intel(R) PRO/1000 Network Card, AMD Radeon R5 > > 230 graphics card and SP M.2 PCIe Gen 3 SSD in SiFive Unmatched based on > > v5.11 Linux kernel. > > > > Changes in v5: > > - Fix typo in comments > > - Keep comments style consistent > > - Refine some error handling codes > > - Remove unneeded header file including > > - Merge fu740_pcie_ltssm_enable implementation to fu740_pcie_start_link > > > > Changes in v4: > > - Fix Wunused-but-set-variable warning in prci driver > > > > Changes in v3: > > - Remove items that has been defined > > - Refine format of sifive,fu740-pcie.yaml > > - Replace perstn-gpios with the common one > > - Change DBI mapping space to 2GB from 4GB > > - Refine drivers/reset/Kconfig > > > > Changes in v2: > > - Refine codes based on reviewers' feedback > > - Remove define and use the common one > > - Replace __raw_writel with writel_relaxed > > - Split fu740_phyregreadwrite to write function > > - Use readl_poll_timeout in stead of while loop checking > > - Use dwc common codes > > - Use gpio descriptors and the gpiod_* api. > > - Replace devm_ioremap_resource with devm_platform_ioremap_resource_byname > > - Replace devm_reset_control_get with devm_reset_control_get_exclusive > > - Add more comments for delay and sleep > > - Remove "phy ? x : y" expressions > > - Refine code logic to remove possible infinite loop > > - Replace magic number with meaningful define > > - Remove fu740_pcie_pm_ops > > - Use builtin_platform_driver > > > > Greentime Hu (5): > > clk: sifive: Add pcie_aux clock in prci driver for PCIe driver > > clk: sifive: Use reset-simple in prci driver for PCIe driver > > MAINTAINERS: Add maintainers for SiFive FU740 PCIe driver > > dt-bindings: PCI: Add SiFive FU740 PCIe host controller > > riscv: dts: Add PCIe support for the SiFive FU740-C000 SoC > > > > Paul Walmsley (1): > > PCI: fu740: Add SiFive FU740 PCIe host controller driver > > I can pull the patches above into the PCI tree (but will drop patch 6 - > dts changes), is it OK for you ? Please let me know how you would like > to upstream it. > Hi Lorenzo, Thank you. I am ok with it. So I should ask Palmer to pick patch 6 dts changes to RISC-V tree?
On Tue, 6 Apr 2021 17:26:28 +0800, Greentime Hu wrote: > This patchset includes SiFive FU740 PCIe host controller driver. We also > add pcie_aux clock and pcie_power_on_reset controller to prci driver for > PCIe driver to use it. > > This is tested with e1000e: Intel(R) PRO/1000 Network Card, AMD Radeon R5 > 230 graphics card and SP M.2 PCIe Gen 3 SSD in SiFive Unmatched based on > v5.11 Linux kernel. > > [...] Applied to pci/dwc [dropped patch 6], thanks! [1/6] clk: sifive: Add pcie_aux clock in prci driver for PCIe driver https://git.kernel.org/lpieralisi/pci/c/f3ce593b1a [2/6] clk: sifive: Use reset-simple in prci driver for PCIe driver https://git.kernel.org/lpieralisi/pci/c/0a78fcfd3d [3/6] MAINTAINERS: Add maintainers for SiFive FU740 PCIe driver https://git.kernel.org/lpieralisi/pci/c/8bb1c66a90 [4/6] dt-bindings: PCI: Add SiFive FU740 PCIe host controller https://git.kernel.org/lpieralisi/pci/c/b86d55c107 [5/6] PCI: fu740: Add SiFive FU740 PCIe host controller driver https://git.kernel.org/lpieralisi/pci/c/327c333a79 Thanks, Lorenzo
Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> 於 2021年4月9日 週五 下午4:54寫道: > > On Tue, 6 Apr 2021 17:26:28 +0800, Greentime Hu wrote: > > This patchset includes SiFive FU740 PCIe host controller driver. We also > > add pcie_aux clock and pcie_power_on_reset controller to prci driver for > > PCIe driver to use it. > > > > This is tested with e1000e: Intel(R) PRO/1000 Network Card, AMD Radeon R5 > > 230 graphics card and SP M.2 PCIe Gen 3 SSD in SiFive Unmatched based on > > v5.11 Linux kernel. > > > > [...] > > Applied to pci/dwc [dropped patch 6], thanks! > > [1/6] clk: sifive: Add pcie_aux clock in prci driver for PCIe driver > https://git.kernel.org/lpieralisi/pci/c/f3ce593b1a > [2/6] clk: sifive: Use reset-simple in prci driver for PCIe driver > https://git.kernel.org/lpieralisi/pci/c/0a78fcfd3d > [3/6] MAINTAINERS: Add maintainers for SiFive FU740 PCIe driver > https://git.kernel.org/lpieralisi/pci/c/8bb1c66a90 > [4/6] dt-bindings: PCI: Add SiFive FU740 PCIe host controller > https://git.kernel.org/lpieralisi/pci/c/b86d55c107 > [5/6] PCI: fu740: Add SiFive FU740 PCIe host controller driver > https://git.kernel.org/lpieralisi/pci/c/327c333a79 > > Thanks, > Lorenzo Hi Palmer, Since the PCIE driver has been applied, would you please pick patch 6 to RISC-V for-next tree? Thank you. :)
On Sun, 11 Apr 2021 19:37:50 PDT (-0700), greentime.hu@sifive.com wrote: > Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> 於 2021年4月9日 週五 下午4:54寫道: >> >> On Tue, 6 Apr 2021 17:26:28 +0800, Greentime Hu wrote: >> > This patchset includes SiFive FU740 PCIe host controller driver. We also >> > add pcie_aux clock and pcie_power_on_reset controller to prci driver for >> > PCIe driver to use it. >> > >> > This is tested with e1000e: Intel(R) PRO/1000 Network Card, AMD Radeon R5 >> > 230 graphics card and SP M.2 PCIe Gen 3 SSD in SiFive Unmatched based on >> > v5.11 Linux kernel. >> > >> > [...] >> >> Applied to pci/dwc [dropped patch 6], thanks! >> >> [1/6] clk: sifive: Add pcie_aux clock in prci driver for PCIe driver >> https://git.kernel.org/lpieralisi/pci/c/f3ce593b1a >> [2/6] clk: sifive: Use reset-simple in prci driver for PCIe driver >> https://git.kernel.org/lpieralisi/pci/c/0a78fcfd3d >> [3/6] MAINTAINERS: Add maintainers for SiFive FU740 PCIe driver >> https://git.kernel.org/lpieralisi/pci/c/8bb1c66a90 >> [4/6] dt-bindings: PCI: Add SiFive FU740 PCIe host controller >> https://git.kernel.org/lpieralisi/pci/c/b86d55c107 >> [5/6] PCI: fu740: Add SiFive FU740 PCIe host controller driver >> https://git.kernel.org/lpieralisi/pci/c/327c333a79 >> >> Thanks, >> Lorenzo > > Hi Palmer, > > Since the PCIE driver has been applied, would you please pick patch 6 > to RISC-V for-next tree? > Thank you. :) Sorry, I got this confused between the Linux patch set and the u-boot patch set so I thought more versions of this had kept comming. The DT is on for-next now.
On Thu, 22 Apr 2021 21:43:03 PDT (-0700), Palmer Dabbelt wrote: > On Sun, 11 Apr 2021 19:37:50 PDT (-0700), greentime.hu@sifive.com wrote: >> Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> 於 2021年4月9日 週五 下午4:54寫道: >>> >>> On Tue, 6 Apr 2021 17:26:28 +0800, Greentime Hu wrote: >>> > This patchset includes SiFive FU740 PCIe host controller driver. We also >>> > add pcie_aux clock and pcie_power_on_reset controller to prci driver for >>> > PCIe driver to use it. >>> > >>> > This is tested with e1000e: Intel(R) PRO/1000 Network Card, AMD Radeon R5 >>> > 230 graphics card and SP M.2 PCIe Gen 3 SSD in SiFive Unmatched based on >>> > v5.11 Linux kernel. >>> > >>> > [...] >>> >>> Applied to pci/dwc [dropped patch 6], thanks! >>> >>> [1/6] clk: sifive: Add pcie_aux clock in prci driver for PCIe driver >>> https://git.kernel.org/lpieralisi/pci/c/f3ce593b1a >>> [2/6] clk: sifive: Use reset-simple in prci driver for PCIe driver >>> https://git.kernel.org/lpieralisi/pci/c/0a78fcfd3d >>> [3/6] MAINTAINERS: Add maintainers for SiFive FU740 PCIe driver >>> https://git.kernel.org/lpieralisi/pci/c/8bb1c66a90 >>> [4/6] dt-bindings: PCI: Add SiFive FU740 PCIe host controller >>> https://git.kernel.org/lpieralisi/pci/c/b86d55c107 >>> [5/6] PCI: fu740: Add SiFive FU740 PCIe host controller driver >>> https://git.kernel.org/lpieralisi/pci/c/327c333a79 >>> >>> Thanks, >>> Lorenzo >> >> Hi Palmer, >> >> Since the PCIE driver has been applied, would you please pick patch 6 >> to RISC-V for-next tree? >> Thank you. :) > > Sorry, I got this confused between the Linux patch set and the u-boot > patch set so I thought more versions of this had kept comming. The DT > is on for-next now. I spoke too soon: this actually dosn't even build for me. It's the "clocks = <&prci PRCI_CLK_PCIE_AUX>;" line Error: arch/riscv/boot/dts/sifive/fu740-c000.dtsi:319.20-21 syntax error FATAL ERROR: Unable to parse input tree make[2]: *** [scripts/Makefile.lib:336: arch/riscv/boot/dts/sifive/hifive-unmatched-a00.dtb] Error 1 make[1]: *** [scripts/Makefile.build:514: arch/riscv/boot/dts/sifive] Error 2 make: *** [Makefile:1388: dtbs] Error 2 make: *** Waiting for unfinished jobs.... I'm not sure what the issue is, I see an anchor for "prci". Do you mind sending along a new version that compiles on top of for-next? If I need the definiton of PRCI_CLK_PCIE_AUX from a PCIe tree then it's probably best to just keep the DTS along with the rest of the patches. IIRC I alredy Acked it, but just to be clear Acked-by: Palmer Dabbelt <palmerdabbelt@google.com> Thanks!
Palmer Dabbelt <palmer@dabbelt.com> 於 2021年4月23日 週五 下午1:10寫道: > > On Thu, 22 Apr 2021 21:43:03 PDT (-0700), Palmer Dabbelt wrote: > > On Sun, 11 Apr 2021 19:37:50 PDT (-0700), greentime.hu@sifive.com wrote: > >> Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> 於 2021年4月9日 週五 下午4:54寫道: > >>> > >>> On Tue, 6 Apr 2021 17:26:28 +0800, Greentime Hu wrote: > >>> > This patchset includes SiFive FU740 PCIe host controller driver. We also > >>> > add pcie_aux clock and pcie_power_on_reset controller to prci driver for > >>> > PCIe driver to use it. > >>> > > >>> > This is tested with e1000e: Intel(R) PRO/1000 Network Card, AMD Radeon R5 > >>> > 230 graphics card and SP M.2 PCIe Gen 3 SSD in SiFive Unmatched based on > >>> > v5.11 Linux kernel. > >>> > > >>> > [...] > >>> > >>> Applied to pci/dwc [dropped patch 6], thanks! > >>> > >>> [1/6] clk: sifive: Add pcie_aux clock in prci driver for PCIe driver > >>> https://git.kernel.org/lpieralisi/pci/c/f3ce593b1a > >>> [2/6] clk: sifive: Use reset-simple in prci driver for PCIe driver > >>> https://git.kernel.org/lpieralisi/pci/c/0a78fcfd3d > >>> [3/6] MAINTAINERS: Add maintainers for SiFive FU740 PCIe driver > >>> https://git.kernel.org/lpieralisi/pci/c/8bb1c66a90 > >>> [4/6] dt-bindings: PCI: Add SiFive FU740 PCIe host controller > >>> https://git.kernel.org/lpieralisi/pci/c/b86d55c107 > >>> [5/6] PCI: fu740: Add SiFive FU740 PCIe host controller driver > >>> https://git.kernel.org/lpieralisi/pci/c/327c333a79 > >>> > >>> Thanks, > >>> Lorenzo > >> > >> Hi Palmer, > >> > >> Since the PCIE driver has been applied, would you please pick patch 6 > >> to RISC-V for-next tree? > >> Thank you. :) > > > > Sorry, I got this confused between the Linux patch set and the u-boot > > patch set so I thought more versions of this had kept comming. The DT > > is on for-next now. > > I spoke too soon: this actually dosn't even build for me. It's the > "clocks = <&prci PRCI_CLK_PCIE_AUX>;" line > > Error: arch/riscv/boot/dts/sifive/fu740-c000.dtsi:319.20-21 syntax error > FATAL ERROR: Unable to parse input tree > make[2]: *** [scripts/Makefile.lib:336: arch/riscv/boot/dts/sifive/hifive-unmatched-a00.dtb] Error 1 > make[1]: *** [scripts/Makefile.build:514: arch/riscv/boot/dts/sifive] Error 2 > make: *** [Makefile:1388: dtbs] Error 2 > make: *** Waiting for unfinished jobs.... > > I'm not sure what the issue is, I see an anchor for "prci". Do you mind > sending along a new version that compiles on top of for-next? If I need > the definiton of PRCI_CLK_PCIE_AUX from a PCIe tree then it's probably > best to just keep the DTS along with the rest of the patches. IIRC I > alredy Acked it, but just to be clear > > Acked-by: Palmer Dabbelt <palmerdabbelt@google.com> > > Thanks! Thank you, Palmer. It is defined in the first commit of this patchset. "clk: sifive: Add pcie_aux clock in prci driver for PCIe driver" You can select these whole 6 patches to make sure it can be built. Hi Lorenzo, Would you mind to pick the 6th patch along with the other 5 patches? Thank you.
On Fri, Apr 23, 2021 at 02:00:46PM +0800, Greentime Hu wrote: > Palmer Dabbelt <palmer@dabbelt.com> 於 2021年4月23日 週五 下午1:10寫道: > > > > On Thu, 22 Apr 2021 21:43:03 PDT (-0700), Palmer Dabbelt wrote: > > > On Sun, 11 Apr 2021 19:37:50 PDT (-0700), greentime.hu@sifive.com wrote: > > >> Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> 於 2021年4月9日 週五 下午4:54寫道: > > >>> > > >>> On Tue, 6 Apr 2021 17:26:28 +0800, Greentime Hu wrote: > > >>> > This patchset includes SiFive FU740 PCIe host controller driver. We also > > >>> > add pcie_aux clock and pcie_power_on_reset controller to prci driver for > > >>> > PCIe driver to use it. > > >>> > > > >>> > This is tested with e1000e: Intel(R) PRO/1000 Network Card, AMD Radeon R5 > > >>> > 230 graphics card and SP M.2 PCIe Gen 3 SSD in SiFive Unmatched based on > > >>> > v5.11 Linux kernel. > > >>> > > > >>> > [...] > > >>> > > >>> Applied to pci/dwc [dropped patch 6], thanks! > > >>> > > >>> [1/6] clk: sifive: Add pcie_aux clock in prci driver for PCIe driver > > >>> https://git.kernel.org/lpieralisi/pci/c/f3ce593b1a > > >>> [2/6] clk: sifive: Use reset-simple in prci driver for PCIe driver > > >>> https://git.kernel.org/lpieralisi/pci/c/0a78fcfd3d > > >>> [3/6] MAINTAINERS: Add maintainers for SiFive FU740 PCIe driver > > >>> https://git.kernel.org/lpieralisi/pci/c/8bb1c66a90 > > >>> [4/6] dt-bindings: PCI: Add SiFive FU740 PCIe host controller > > >>> https://git.kernel.org/lpieralisi/pci/c/b86d55c107 > > >>> [5/6] PCI: fu740: Add SiFive FU740 PCIe host controller driver > > >>> https://git.kernel.org/lpieralisi/pci/c/327c333a79 > > >>> > > >>> Thanks, > > >>> Lorenzo > > >> > > >> Hi Palmer, > > >> > > >> Since the PCIE driver has been applied, would you please pick patch 6 > > >> to RISC-V for-next tree? > > >> Thank you. :) > > > > > > Sorry, I got this confused between the Linux patch set and the u-boot > > > patch set so I thought more versions of this had kept comming. The DT > > > is on for-next now. > > > > I spoke too soon: this actually dosn't even build for me. It's the > > "clocks = <&prci PRCI_CLK_PCIE_AUX>;" line > > > > Error: arch/riscv/boot/dts/sifive/fu740-c000.dtsi:319.20-21 syntax error > > FATAL ERROR: Unable to parse input tree > > make[2]: *** [scripts/Makefile.lib:336: arch/riscv/boot/dts/sifive/hifive-unmatched-a00.dtb] Error 1 > > make[1]: *** [scripts/Makefile.build:514: arch/riscv/boot/dts/sifive] Error 2 > > make: *** [Makefile:1388: dtbs] Error 2 > > make: *** Waiting for unfinished jobs.... > > > > I'm not sure what the issue is, I see an anchor for "prci". Do you mind > > sending along a new version that compiles on top of for-next? If I need > > the definiton of PRCI_CLK_PCIE_AUX from a PCIe tree then it's probably > > best to just keep the DTS along with the rest of the patches. IIRC I > > alredy Acked it, but just to be clear > > > > Acked-by: Palmer Dabbelt <palmerdabbelt@google.com> > > > > Thanks! > > Thank you, Palmer. > It is defined in the first commit of this patchset. "clk: sifive: Add > pcie_aux clock in prci driver for PCIe driver" > You can select these whole 6 patches to make sure it can be built. > > Hi Lorenzo, > Would you mind to pick the 6th patch along with the other 5 patches? > Thank you. Done, on my pci/dwc branch. Thanks, Lorenzo
On Tue, Apr 06, 2021 at 05:26:28PM +0800, Greentime Hu wrote: > This patchset includes SiFive FU740 PCIe host controller driver. We also > add pcie_aux clock and pcie_power_on_reset controller to prci driver for > PCIe driver to use it. I dropped this series because of the build problem I mentioned [1]. It will not be included in v5.13 unless the build problem is fixed ASAP. [1] https://lore.kernel.org/r/20210428194713.GA314975@bjorn-Precision-5520 > This is tested with e1000e: Intel(R) PRO/1000 Network Card, AMD Radeon R5 > 230 graphics card and SP M.2 PCIe Gen 3 SSD in SiFive Unmatched based on > v5.11 Linux kernel. > > Changes in v5: > - Fix typo in comments > - Keep comments style consistent > - Refine some error handling codes > - Remove unneeded header file including > - Merge fu740_pcie_ltssm_enable implementation to fu740_pcie_start_link > > Changes in v4: > - Fix Wunused-but-set-variable warning in prci driver > > Changes in v3: > - Remove items that has been defined > - Refine format of sifive,fu740-pcie.yaml > - Replace perstn-gpios with the common one > - Change DBI mapping space to 2GB from 4GB > - Refine drivers/reset/Kconfig > > Changes in v2: > - Refine codes based on reviewers' feedback > - Remove define and use the common one > - Replace __raw_writel with writel_relaxed > - Split fu740_phyregreadwrite to write function > - Use readl_poll_timeout in stead of while loop checking > - Use dwc common codes > - Use gpio descriptors and the gpiod_* api. > - Replace devm_ioremap_resource with devm_platform_ioremap_resource_byname > - Replace devm_reset_control_get with devm_reset_control_get_exclusive > - Add more comments for delay and sleep > - Remove "phy ? x : y" expressions > - Refine code logic to remove possible infinite loop > - Replace magic number with meaningful define > - Remove fu740_pcie_pm_ops > - Use builtin_platform_driver > > Greentime Hu (5): > clk: sifive: Add pcie_aux clock in prci driver for PCIe driver > clk: sifive: Use reset-simple in prci driver for PCIe driver > MAINTAINERS: Add maintainers for SiFive FU740 PCIe driver > dt-bindings: PCI: Add SiFive FU740 PCIe host controller > riscv: dts: Add PCIe support for the SiFive FU740-C000 SoC > > Paul Walmsley (1): > PCI: fu740: Add SiFive FU740 PCIe host controller driver > > .../bindings/pci/sifive,fu740-pcie.yaml | 113 +++++++ > MAINTAINERS | 8 + > arch/riscv/boot/dts/sifive/fu740-c000.dtsi | 33 ++ > drivers/clk/sifive/Kconfig | 2 + > drivers/clk/sifive/fu740-prci.c | 11 + > drivers/clk/sifive/fu740-prci.h | 2 +- > drivers/clk/sifive/sifive-prci.c | 54 +++ > drivers/clk/sifive/sifive-prci.h | 13 + > drivers/pci/controller/dwc/Kconfig | 9 + > drivers/pci/controller/dwc/Makefile | 1 + > drivers/pci/controller/dwc/pcie-fu740.c | 308 ++++++++++++++++++ > drivers/reset/Kconfig | 1 + > include/dt-bindings/clock/sifive-fu740-prci.h | 1 + > 13 files changed, 555 insertions(+), 1 deletion(-) > create mode 100644 Documentation/devicetree/bindings/pci/sifive,fu740-pcie.yaml > create mode 100644 drivers/pci/controller/dwc/pcie-fu740.c > > -- > 2.30.2 >
Bjorn Helgaas <helgaas@kernel.org> 於 2021年5月4日 週二 上午12:40寫道: > > On Tue, Apr 06, 2021 at 05:26:28PM +0800, Greentime Hu wrote: > > This patchset includes SiFive FU740 PCIe host controller driver. We also > > add pcie_aux clock and pcie_power_on_reset controller to prci driver for > > PCIe driver to use it. > > I dropped this series because of the build problem I mentioned [1]. > It will not be included in v5.13 unless the build problem is fixed > ASAP. > > [1] https://lore.kernel.org/r/20210428194713.GA314975@bjorn-Precision-5520 > Hi all, This build failed in x86_64 is because CONFIG_GPIOLIB is disabled in the testing config. diff --git a/drivers/pci/controller/dwc/Kconfig b/drivers/pci/controller/dwc/Kconfig index 0a37d21ed64e..56b66e1fed53 100644 --- a/drivers/pci/controller/dwc/Kconfig +++ b/drivers/pci/controller/dwc/Kconfig @@ -323,6 +323,7 @@ config PCIE_FU740 depends on PCI_MSI_IRQ_DOMAIN depends on SOC_SIFIVE || COMPILE_TEST select PCIE_DW_HOST + select GPIOLIB help Say Y here if you want PCIe controller support for the SiFive FU740. After applying this change, it can build pass. > > This is tested with e1000e: Intel(R) PRO/1000 Network Card, AMD Radeon R5 > > 230 graphics card and SP M.2 PCIe Gen 3 SSD in SiFive Unmatched based on > > v5.11 Linux kernel. > > > > Changes in v5: > > - Fix typo in comments > > - Keep comments style consistent > > - Refine some error handling codes > > - Remove unneeded header file including > > - Merge fu740_pcie_ltssm_enable implementation to fu740_pcie_start_link > > > > Changes in v4: > > - Fix Wunused-but-set-variable warning in prci driver > > > > Changes in v3: > > - Remove items that has been defined > > - Refine format of sifive,fu740-pcie.yaml > > - Replace perstn-gpios with the common one > > - Change DBI mapping space to 2GB from 4GB > > - Refine drivers/reset/Kconfig > > > > Changes in v2: > > - Refine codes based on reviewers' feedback > > - Remove define and use the common one > > - Replace __raw_writel with writel_relaxed > > - Split fu740_phyregreadwrite to write function > > - Use readl_poll_timeout in stead of while loop checking > > - Use dwc common codes > > - Use gpio descriptors and the gpiod_* api. > > - Replace devm_ioremap_resource with devm_platform_ioremap_resource_byname > > - Replace devm_reset_control_get with devm_reset_control_get_exclusive > > - Add more comments for delay and sleep > > - Remove "phy ? x : y" expressions > > - Refine code logic to remove possible infinite loop > > - Replace magic number with meaningful define > > - Remove fu740_pcie_pm_ops > > - Use builtin_platform_driver > > > > Greentime Hu (5): > > clk: sifive: Add pcie_aux clock in prci driver for PCIe driver > > clk: sifive: Use reset-simple in prci driver for PCIe driver > > MAINTAINERS: Add maintainers for SiFive FU740 PCIe driver > > dt-bindings: PCI: Add SiFive FU740 PCIe host controller > > riscv: dts: Add PCIe support for the SiFive FU740-C000 SoC > > > > Paul Walmsley (1): > > PCI: fu740: Add SiFive FU740 PCIe host controller driver > > > > .../bindings/pci/sifive,fu740-pcie.yaml | 113 +++++++ > > MAINTAINERS | 8 + > > arch/riscv/boot/dts/sifive/fu740-c000.dtsi | 33 ++ > > drivers/clk/sifive/Kconfig | 2 + > > drivers/clk/sifive/fu740-prci.c | 11 + > > drivers/clk/sifive/fu740-prci.h | 2 +- > > drivers/clk/sifive/sifive-prci.c | 54 +++ > > drivers/clk/sifive/sifive-prci.h | 13 + > > drivers/pci/controller/dwc/Kconfig | 9 + > > drivers/pci/controller/dwc/Makefile | 1 + > > drivers/pci/controller/dwc/pcie-fu740.c | 308 ++++++++++++++++++ > > drivers/reset/Kconfig | 1 + > > include/dt-bindings/clock/sifive-fu740-prci.h | 1 + > > 13 files changed, 555 insertions(+), 1 deletion(-) > > create mode 100644 Documentation/devicetree/bindings/pci/sifive,fu740-pcie.yaml > > create mode 100644 drivers/pci/controller/dwc/pcie-fu740.c > > > > -- > > 2.30.2 > >
On Tue, May 04, 2021 at 03:20:00PM +0800, Greentime Hu wrote: > Bjorn Helgaas <helgaas@kernel.org> 於 2021年5月4日 週二 上午12:40寫道: > > > > On Tue, Apr 06, 2021 at 05:26:28PM +0800, Greentime Hu wrote: > > > This patchset includes SiFive FU740 PCIe host controller driver. We also > > > add pcie_aux clock and pcie_power_on_reset controller to prci driver for > > > PCIe driver to use it. > > > > I dropped this series because of the build problem I mentioned [1]. > > It will not be included in v5.13 unless the build problem is fixed > > ASAP. > > > > [1] https://lore.kernel.org/r/20210428194713.GA314975@bjorn-Precision-5520 > > > > Hi all, > > This build failed in x86_64 is because CONFIG_GPIOLIB is disabled in > the testing config. > > diff --git a/drivers/pci/controller/dwc/Kconfig > b/drivers/pci/controller/dwc/Kconfig > index 0a37d21ed64e..56b66e1fed53 100644 > --- a/drivers/pci/controller/dwc/Kconfig > +++ b/drivers/pci/controller/dwc/Kconfig > @@ -323,6 +323,7 @@ config PCIE_FU740 > depends on PCI_MSI_IRQ_DOMAIN > depends on SOC_SIFIVE || COMPILE_TEST > select PCIE_DW_HOST > + select GPIOLIB I think that an include: #include <linux/gpio/consumer.h> in the driver would do. Still, I believe we should also add a "depends on" in the Kconfig entry rather than a "select". Please let me know as soon as possible. Lorenzo > help > Say Y here if you want PCIe controller support for the SiFive > FU740. > > After applying this change, it can build pass. > > > > This is tested with e1000e: Intel(R) PRO/1000 Network Card, AMD Radeon R5 > > > 230 graphics card and SP M.2 PCIe Gen 3 SSD in SiFive Unmatched based on > > > v5.11 Linux kernel. > > > > > > Changes in v5: > > > - Fix typo in comments > > > - Keep comments style consistent > > > - Refine some error handling codes > > > - Remove unneeded header file including > > > - Merge fu740_pcie_ltssm_enable implementation to fu740_pcie_start_link > > > > > > Changes in v4: > > > - Fix Wunused-but-set-variable warning in prci driver > > > > > > Changes in v3: > > > - Remove items that has been defined > > > - Refine format of sifive,fu740-pcie.yaml > > > - Replace perstn-gpios with the common one > > > - Change DBI mapping space to 2GB from 4GB > > > - Refine drivers/reset/Kconfig > > > > > > Changes in v2: > > > - Refine codes based on reviewers' feedback > > > - Remove define and use the common one > > > - Replace __raw_writel with writel_relaxed > > > - Split fu740_phyregreadwrite to write function > > > - Use readl_poll_timeout in stead of while loop checking > > > - Use dwc common codes > > > - Use gpio descriptors and the gpiod_* api. > > > - Replace devm_ioremap_resource with devm_platform_ioremap_resource_byname > > > - Replace devm_reset_control_get with devm_reset_control_get_exclusive > > > - Add more comments for delay and sleep > > > - Remove "phy ? x : y" expressions > > > - Refine code logic to remove possible infinite loop > > > - Replace magic number with meaningful define > > > - Remove fu740_pcie_pm_ops > > > - Use builtin_platform_driver > > > > > > Greentime Hu (5): > > > clk: sifive: Add pcie_aux clock in prci driver for PCIe driver > > > clk: sifive: Use reset-simple in prci driver for PCIe driver > > > MAINTAINERS: Add maintainers for SiFive FU740 PCIe driver > > > dt-bindings: PCI: Add SiFive FU740 PCIe host controller > > > riscv: dts: Add PCIe support for the SiFive FU740-C000 SoC > > > > > > Paul Walmsley (1): > > > PCI: fu740: Add SiFive FU740 PCIe host controller driver > > > > > > .../bindings/pci/sifive,fu740-pcie.yaml | 113 +++++++ > > > MAINTAINERS | 8 + > > > arch/riscv/boot/dts/sifive/fu740-c000.dtsi | 33 ++ > > > drivers/clk/sifive/Kconfig | 2 + > > > drivers/clk/sifive/fu740-prci.c | 11 + > > > drivers/clk/sifive/fu740-prci.h | 2 +- > > > drivers/clk/sifive/sifive-prci.c | 54 +++ > > > drivers/clk/sifive/sifive-prci.h | 13 + > > > drivers/pci/controller/dwc/Kconfig | 9 + > > > drivers/pci/controller/dwc/Makefile | 1 + > > > drivers/pci/controller/dwc/pcie-fu740.c | 308 ++++++++++++++++++ > > > drivers/reset/Kconfig | 1 + > > > include/dt-bindings/clock/sifive-fu740-prci.h | 1 + > > > 13 files changed, 555 insertions(+), 1 deletion(-) > > > create mode 100644 Documentation/devicetree/bindings/pci/sifive,fu740-pcie.yaml > > > create mode 100644 drivers/pci/controller/dwc/pcie-fu740.c > > > > > > -- > > > 2.30.2 > > >
Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> 於 2021年5月4日 週二 下午6:12寫道: > > On Tue, May 04, 2021 at 03:20:00PM +0800, Greentime Hu wrote: > > Bjorn Helgaas <helgaas@kernel.org> 於 2021年5月4日 週二 上午12:40寫道: > > > > > > On Tue, Apr 06, 2021 at 05:26:28PM +0800, Greentime Hu wrote: > > > > This patchset includes SiFive FU740 PCIe host controller driver. We also > > > > add pcie_aux clock and pcie_power_on_reset controller to prci driver for > > > > PCIe driver to use it. > > > > > > I dropped this series because of the build problem I mentioned [1]. > > > It will not be included in v5.13 unless the build problem is fixed > > > ASAP. > > > > > > [1] https://lore.kernel.org/r/20210428194713.GA314975@bjorn-Precision-5520 > > > > > > > Hi all, > > > > This build failed in x86_64 is because CONFIG_GPIOLIB is disabled in > > the testing config. > > > > diff --git a/drivers/pci/controller/dwc/Kconfig > > b/drivers/pci/controller/dwc/Kconfig > > index 0a37d21ed64e..56b66e1fed53 100644 > > --- a/drivers/pci/controller/dwc/Kconfig > > +++ b/drivers/pci/controller/dwc/Kconfig > > @@ -323,6 +323,7 @@ config PCIE_FU740 > > depends on PCI_MSI_IRQ_DOMAIN > > depends on SOC_SIFIVE || COMPILE_TEST > > select PCIE_DW_HOST > > + select GPIOLIB > > I think that an include: > > #include <linux/gpio/consumer.h> > > in the driver would do. Still, I believe we should also add a > "depends on" in the Kconfig entry rather than a "select". > > Please let me know as soon as possible. > Hi Lorenzo, Thank you for suggesting this. I'll add the include and use "depends on" rather than a "select" and send the v6 patch. > Lorenzo > > > help > > Say Y here if you want PCIe controller support for the SiFive > > FU740. > > > > After applying this change, it can build pass. > > > > > > This is tested with e1000e: Intel(R) PRO/1000 Network Card, AMD Radeon R5 > > > > 230 graphics card and SP M.2 PCIe Gen 3 SSD in SiFive Unmatched based on > > > > v5.11 Linux kernel. > > > > > > > > Changes in v5: > > > > - Fix typo in comments > > > > - Keep comments style consistent > > > > - Refine some error handling codes > > > > - Remove unneeded header file including > > > > - Merge fu740_pcie_ltssm_enable implementation to fu740_pcie_start_link > > > > > > > > Changes in v4: > > > > - Fix Wunused-but-set-variable warning in prci driver > > > > > > > > Changes in v3: > > > > - Remove items that has been defined > > > > - Refine format of sifive,fu740-pcie.yaml > > > > - Replace perstn-gpios with the common one > > > > - Change DBI mapping space to 2GB from 4GB > > > > - Refine drivers/reset/Kconfig > > > > > > > > Changes in v2: > > > > - Refine codes based on reviewers' feedback > > > > - Remove define and use the common one > > > > - Replace __raw_writel with writel_relaxed > > > > - Split fu740_phyregreadwrite to write function > > > > - Use readl_poll_timeout in stead of while loop checking > > > > - Use dwc common codes > > > > - Use gpio descriptors and the gpiod_* api. > > > > - Replace devm_ioremap_resource with devm_platform_ioremap_resource_byname > > > > - Replace devm_reset_control_get with devm_reset_control_get_exclusive > > > > - Add more comments for delay and sleep > > > > - Remove "phy ? x : y" expressions > > > > - Refine code logic to remove possible infinite loop > > > > - Replace magic number with meaningful define > > > > - Remove fu740_pcie_pm_ops > > > > - Use builtin_platform_driver > > > > > > > > Greentime Hu (5): > > > > clk: sifive: Add pcie_aux clock in prci driver for PCIe driver > > > > clk: sifive: Use reset-simple in prci driver for PCIe driver > > > > MAINTAINERS: Add maintainers for SiFive FU740 PCIe driver > > > > dt-bindings: PCI: Add SiFive FU740 PCIe host controller > > > > riscv: dts: Add PCIe support for the SiFive FU740-C000 SoC > > > > > > > > Paul Walmsley (1): > > > > PCI: fu740: Add SiFive FU740 PCIe host controller driver > > > > > > > > .../bindings/pci/sifive,fu740-pcie.yaml | 113 +++++++ > > > > MAINTAINERS | 8 + > > > > arch/riscv/boot/dts/sifive/fu740-c000.dtsi | 33 ++ > > > > drivers/clk/sifive/Kconfig | 2 + > > > > drivers/clk/sifive/fu740-prci.c | 11 + > > > > drivers/clk/sifive/fu740-prci.h | 2 +- > > > > drivers/clk/sifive/sifive-prci.c | 54 +++ > > > > drivers/clk/sifive/sifive-prci.h | 13 + > > > > drivers/pci/controller/dwc/Kconfig | 9 + > > > > drivers/pci/controller/dwc/Makefile | 1 + > > > > drivers/pci/controller/dwc/pcie-fu740.c | 308 ++++++++++++++++++ > > > > drivers/reset/Kconfig | 1 + > > > > include/dt-bindings/clock/sifive-fu740-prci.h | 1 + > > > > 13 files changed, 555 insertions(+), 1 deletion(-) > > > > create mode 100644 Documentation/devicetree/bindings/pci/sifive,fu740-pcie.yaml > > > > create mode 100644 drivers/pci/controller/dwc/pcie-fu740.c > > > > > > > > -- > > > > 2.30.2 > > > >