Hi Mayuresh, On Fri, 30 Sept 2022 at 10:58, Mayuresh Chitale <mchit...@ventanamicro.com> wrote: > > Hi Simon, > > On Fri, Sep 30, 2022 at 5:26 AM Simon Glass <s...@chromium.org> wrote: >> >> Hi Mayuresh, >> >> On Thu, 29 Sept 2022 at 03:57, Mayuresh Chitale >> <mchit...@ventanamicro.com> wrote: >> > >> > Build PCI NVMe driver when enabled for SPI and enable dm-pre-reloc for >> > the driver. Also enable PCI_PNP for SPL which is required to auto >> > configure the PCIe devices. >> > >> > Signed-off-by: Mayuresh Chitale <mchit...@ventanamicro.com> >> > --- >> > drivers/Makefile | 2 +- >> > drivers/nvme/Makefile | 2 +- >> > drivers/nvme/nvme_pci.c | 1 + >> > drivers/pci/Kconfig | 7 +++++++ >> > drivers/pci/pci-uclass.c | 3 ++- >> > 5 files changed, 12 insertions(+), 3 deletions(-) >> > >> > diff --git a/drivers/Makefile b/drivers/Makefile >> > index eba9940231..581ae9f819 100644 >> > --- a/drivers/Makefile >> > +++ b/drivers/Makefile >> > @@ -34,6 +34,7 @@ obj-$(CONFIG_$(SPL_)DM_MAILBOX) += mailbox/ >> > obj-$(CONFIG_$(SPL_)REMOTEPROC) += remoteproc/ >> > obj-$(CONFIG_$(SPL_)SYSINFO) += sysinfo/ >> > obj-$(CONFIG_$(SPL_TPL_)TPM) += tpm/ >> > +obj-$(CONFIG_$(SPL_)NVME) += nvme/ >> > obj-$(CONFIG_XEN) += xen/ >> > obj-$(CONFIG_$(SPL_)FPGA) += fpga/ >> > >> > @@ -86,7 +87,6 @@ obj-y += crypto/ >> > obj-$(CONFIG_FASTBOOT) += fastboot/ >> > obj-y += misc/ >> > obj-$(CONFIG_MMC) += mmc/ >> > -obj-$(CONFIG_NVME) += nvme/ >> > obj-$(CONFIG_PCI_ENDPOINT) += pci_endpoint/ >> > obj-y += dfu/ >> > obj-$(CONFIG_PCH) += pch/ >> > diff --git a/drivers/nvme/Makefile b/drivers/nvme/Makefile >> > index fa7b619446..fd3e68a91d 100644 >> > --- a/drivers/nvme/Makefile >> > +++ b/drivers/nvme/Makefile >> > @@ -4,4 +4,4 @@ >> > >> > obj-y += nvme-uclass.o nvme.o nvme_show.o >> > obj-$(CONFIG_NVME_APPLE) += nvme_apple.o >> > -obj-$(CONFIG_NVME_PCI) += nvme_pci.o >> > +obj-$(CONFIG_$(SPL_)NVME_PCI) += nvme_pci.o >> > diff --git a/drivers/nvme/nvme_pci.c b/drivers/nvme/nvme_pci.c >> > index 36bf9c5ffb..16d8b9fff7 100644 >> > --- a/drivers/nvme/nvme_pci.c >> > +++ b/drivers/nvme/nvme_pci.c >> > @@ -39,6 +39,7 @@ U_BOOT_DRIVER(nvme) = { >> > .bind = nvme_bind, >> > .probe = nvme_probe, >> > .priv_auto = sizeof(struct nvme_dev), >> > + .flags = DM_FLAG_PRE_RELOC, >> >> Why is this here? It is only applicable on some boards. >> >> Instead, add the appropriate tag (e.g. u-boot,dm-spl) to the device node. > > > I am not sure how that can be done for PCI devices as those would be probed > at run time. Could you please point to any examples? Also, the > pci_find_and_bind_driver function only checks for this flag in the drivers > when binding the devices
See host-bridge@0,0 in chromebook_coral.dts for an example of using the u-boot,dm-pre-reloc flag. Note that pci_find_and_bind_driver() is only called if the device tree lacks anything. Which board is this for? Regards, Simon