U-boot not loading NVMe driver on Pi CM4

Ignatius Rivaldi minecraft2048 at gmail.com
Thu Feb 9 01:22:02 CET 2023


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 at 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 at 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 at 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


More information about the U-Boot mailing list