
Hi Ignatius,
On 2/10/23 17:05, Simon Glass wrote:
Hi Ignatius,
On Thu, 9 Feb 2023 at 17:29, Ignatius Rivaldi minecraft2048@gmail.com wrote:
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 minecraft2048@gmail.com wrote:
(please try not to top post)
I don't know what is going on here. The PCI scan seems to show the wrong device, as you say. Perhaps it is a bug in the bcm controller driver?
+Michal Suchanek +Stefan Roese
I've not used the NVMe driver in U-Boot yet, but at least the PCI class and subclass ID seem to be fine AFAIT:
class code = 0x01 (Mass storage controller) sub class code = 0x08 programming interface = 0x02
Are other PCI drivers probed correctly, if you can test this on your board? E.g. an Intel E1000 PCIe board perhaps?
Added Bin, perhaps he has some further ideas.
Thanks, Stefan
Regards, SImon
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
Viele Grüße, Stefan Roese