Added more debug logging and for some reason the nvme driver tries to bind to pcie root bridge instead of the SSD drivers/pinctrl/pinctrl-uclass.c:300-pinctrl_select_state_simple() pcie_brcm pcie@7d500000: set_state_simple op missing PCIe BRCM: link up, 5.0 Gbps x1 (SSC) drivers/core/device.c:184- device_bind_common() Bound device pci_0:0.0 to pcie@7d500000 drivers/core/uclass.c:338-uclass_find_device_by_seq() 0 drivers/core/uclass.c:346-uclass_find_device_by_seq() - 0 'gpio@7e200000'
drivers/core/uclass.c:349-uclass_find_device_by_seq() - found drivers/pinctrl/pinctrl-uclass.c:300-pinctrl_select_state_simple() pci_bridge_drv pci_0:0.0: set_state_simple op missing drivers/core/device.c:184- device_bind_common() Bound device nvme#0 to pci_0:0.0 U-Boot> pci DEBUG.driver-model,drivers/core/uclass.c:338-uclass_find_device_by_seq() 0 DEBUG.driver-model,drivers/core/uclass.c:346-uclass_find_device_by_seq() - 0 'pcie@7d500000' DEBUG.driver-model,drivers/core/uclass.c:349-uclass_find_device_by_seq() - found BusDevFun VendorId DeviceId Device Class Sub-Class _____________________________________________________________ 00.00.00 0x14e4 0x2711 Bridge device 0x04 DEBUG.driver-model,drivers/core/uclass.c:338-uclass_find_device_by_seq() 1 DEBUG.driver-model,drivers/core/uclass.c:346-uclass_find_device_by_seq() - 0 'pcie@7d500000' DEBUG.driver-model,drivers/core/uclass.c:346-uclass_find_device_by_seq() - 1 'pci_0:0.0' DEBUG.driver-model,drivers/core/uclass.c:349-uclass_find_device_by_seq() - found 01.00.00 0x1e0f 0x0001 Mass storage controller 0x08 DEBUG.driver-model,drivers/core/uclass.c:338-uclass_find_device_by_seq() 2 DEBUG.driver-model,drivers/core/uclass.c:346-uclass_find_device_by_seq() - 0 'pcie@7d500000' DEBUG.driver-model,drivers/core/uclass.c:346-uclass_find_device_by_seq() - 1 'pci_0:0.0' DEBUG.driver-model,drivers/core/uclass.c:353-uclass_find_device_by_seq() - not found It should be pci_1:0.0 I think On Thu, Feb 9, 2023 at 11:22 AM Ignatius Rivaldi <minecraft2...@gmail.com> wrote: > Hi all, > > I'm using U-boot 2022.07 from Yocto Langdale distribution, with the > following NVMe related kconfigs manually enabled through menuconfig: > > CONFIG_NVME > CONFIG_NVME_PCI > CONFIG_CMD_NVME > > and logging turned into max > > The SSD is Kioxia SSD, and it works with Pi 4 bootloader as I can boot > Raspberry Pi OS from the NVMe drive. > > U boot is installed in the fat32 partition in the NVMe SSD for this Yocto > poky build. > > When I boot to U boot prompt, I can see that the SSD is detected by pci > U-Boot> pci long > 0 > - 0 'pcie@7d500000' > - found > > Found PCI device 00.00.00: > vendor ID = 0x14e4 > device ID = 0x2711 > command register ID = 0x0006 > status register = 0x0010 > revision ID = 0x20 > class code = 0x06 (Bridge device) > sub class code = 0x04 > programming interface = 0x00 > cache line = 0x08 > latency time = 0x00 > header type = 0x01 > BIST = 0x00 > base address 0 = 0x00000000 > base address 1 = 0x00000000 > primary bus number = 0x00 > secondary bus number = 0x01 > subordinate bus number = 0x01 > secondary latency timer = 0x00 > IO base = 0x00 > IO limit = 0x00 > secondary status = 0x0000 > memory base = 0xc000 > memory limit = 0xc000 > prefetch memory base = 0xfff1 > prefetch memory limit = 0x0001 > prefetch memory base upper = 0x00000000 > prefetch memory limit upper = 0x00000000 > IO base upper 16 bits = 0x0000 > IO limit upper 16 bits = 0x0000 > expansion ROM base address = 0x00000000 > interrupt line = 0x00 > interrupt pin = 0x01 > bridge control = 0x0000 > 1 > - 0 'pcie@7d500000' > - 1 'pci_0:0.0' > - found > > Found PCI device 01.00.00: > vendor ID = 0x1e0f > device ID = 0x0001 > command register ID = 0x0006 > status register = 0x0010 > revision ID = 0x00 > class code = 0x01 (Mass storage controller) > sub class code = 0x08 > programming interface = 0x02 > cache line = 0x08 > latency time = 0x00 > header type = 0x00 > BIST = 0x00 > base address 0 = 0xc0000004 > base address 1 = 0x00000000 > base address 2 = 0x00000000 > base address 3 = 0x00000000 > base address 4 = 0x00000000 > base address 5 = 0x00000000 > cardBus CIS pointer = 0x00000000 > sub system vendor ID = 0x1e0f > sub system ID = 0x0001 > expansion ROM base address = 0x00000000 > interrupt line = 0x00 > interrupt pin = 0x01 > min Grant = 0x00 > max Latency = 0x00 > 2 > - 0 'pcie@7d500000' > - 1 'pci_0:0.0' > - not found > > but it doesn't show up in nvme scan or nvme info > U-Boot> nvme info > U-Boot> nvme scan > > I know that U boot can boot from NVMe, as I can run Home Assistant OS that's > based on U boot on NVMe drive. I just don't know if I missed a kconfig > somewhere, or this U boot version haven't implement it > > Can anyone help me with this? > > Thanks > Ignatius >