Hi Ignatius,

On 2/10/23 17:05, Simon Glass wrote:
Hi Ignatius,

On Thu, 9 Feb 2023 at 17:29, Ignatius Rivaldi <minecraft2...@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 <minecraft2...@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

--
DENX Software Engineering GmbH,      Managing Director: Erika Unter
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-51 Fax: (+49)-8142-66989-80 Email: s...@denx.de

Reply via email to