Bin Meng <[email protected]>於 2021年3月11日 週四,下午10:14寫道:
> On Thu, Mar 11, 2021 at 9:50 PM Green Wan <[email protected]> wrote: > > > > Add pcie driver for SiFive fu740, the driver depends on > > fu740 gpio, clk and reset driver to do init. Force running at Gen1 > > for better capatible enumeration. > > > > Several devices are tested: > > a) M.2 NVMe SSD > > b) USB-to-PCI adapter > > c) Ethernet adapter (E1000 compatible) > > > > Signed-off-by: Green Wan <[email protected]> > > --- > > drivers/pci/Kconfig | 9 + > > drivers/pci/Makefile | 1 + > > drivers/pci/pcie_sifive.c | 797 > ++++++++++++++++++++++++++++++++++++++++++++++ > > drivers/pci/pcie_sifive.h | 374 ++++++++++++++++++++++ > > 4 files changed, 1181 insertions(+) > > create mode 100644 drivers/pci/pcie_sifive.c > > create mode 100644 drivers/pci/pcie_sifive.h > > > > diff --git a/drivers/pci/Kconfig b/drivers/pci/Kconfig > > index ba41787..b078e76 100644 > > --- a/drivers/pci/Kconfig > > +++ b/drivers/pci/Kconfig > > @@ -97,6 +97,15 @@ config PCIE_DW_MVEBU > > Armada-8K SoCs. The PCIe controller on Armada-8K is based on > > DesignWare hardware. > > > > +config PCIE_SIFIVE_FU740 > > + bool "Enable SiFive FU740 PCIe" > > + depends on CLK_SIFIVE_PRCI > > + depends on RESET_SIFIVE > > + depends on SIFIVE_GPIO > > + help > > + Say Y here if you want to enable PCIe controller support on > > + FU740. > > + > > config PCIE_FSL > > bool "FSL PowerPC PCIe support" > > depends on DM_PCI > > diff --git a/drivers/pci/Makefile b/drivers/pci/Makefile > > index 5ed94bc..5400d59 100644 > > --- a/drivers/pci/Makefile > > +++ b/drivers/pci/Makefile > > @@ -51,3 +51,4 @@ obj-$(CONFIG_PCIE_ROCKCHIP) += pcie_rockchip.o > > obj-$(CONFIG_PCIE_DW_ROCKCHIP) += pcie_dw_rockchip.o > > obj-$(CONFIG_PCI_BRCMSTB) += pcie_brcmstb.o > > obj-$(CONFIG_PCI_OCTEONTX) += pci_octeontx.o > > +obj-$(CONFIG_PCIE_SIFIVE_FU740) += pcie_sifive.o > > diff --git a/drivers/pci/pcie_sifive.c b/drivers/pci/pcie_sifive.c > > new file mode 100644 > > index 0000000..ada6087 > > --- /dev/null > > +++ b/drivers/pci/pcie_sifive.c > > @@ -0,0 +1,797 @@ > > +// SPDX-License-Identifier: GPL-2.0+ > > +/* > > + * SiFive FU740 DesignWare PCIe Controller > > Should we call this driver a DesgnWare PCIe controller (e.g.: > pcie_designware.c), instead of pcie_sifive.c? > The driver currently depends on fu740 drivers such as prci, clk, gpio and reset. probably rename it to pcie_dw_sifive.c like other designware based driver. What do we think of it? > > + * > > + * Copyright (C) 2020-2021 SiFive, Inc. > > + * > > + * Based in early part on the i.MX6 PCIe host controller shim which is: > > + * > > + * Copyright (C) 2013 Kosagi > > + * http://www.kosagi.com > > + * > > + * Based on driver from author: Alan Mikhak <[email protected] > > > > + */ > > +#include "pcie_sifive.h" > > +#include <common.h> > > +#include <dm.h> > > + > > +/* Host Bridge Identification */ > > +#define DEVICE_NAME "SiFive FU740 PCIe Host Controller" > > +#define VENDOR_ID 0x51fe > > +#define DEVICE_ID 0x51fe > > + > > [snip] > > Regards, > Bin >

