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