raspberrypi / rpi-eeprom

Installation scripts and binaries for the Raspberry Pi 4 and Raspberry Pi 5 bootloader EEPROMs
https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#raspberry-pi-boot-eeprom
Other
1.28k stars 206 forks source link

[Raspberry Pi5] bootloader doesn't detect nvme WD_Black SN850X #618

Open Jixel opened 1 month ago

Jixel commented 1 month ago

Describe the bug

ISSUE: RaspBerry Pi5 8G + Hat Geekworm X1015 + nvme WD_Black SN850X 2Tb PCIe 4.0. Bootloader doesn't detect nvme WD_Black SN850X

IMG_7825

TEST: RaspBerry Pi5 8G + Hat Geekworm X1015 + nvme SABRENT Rocket Nano 2242 512Gb PCIe 3.0 Bootloader works fine and detect and run Raspberry Pi OS

Steps to reproduce the behaviour

sudo apt update sudo apt upgrade sudo rpi-eeprom-update -a

BOOT_ORDER=0xf146 PCIE_PROBE=1

config.txt dtparam=nvme dtparam=pciex1_gen=3

Device (s)

Raspberry Pi 5

Bootloader configuration.

BOOT_UART=1 POWER_OFF_ON_HALT=0 BOOT_ORDER=0xf146 PCIE_PROBE=1

System

EEPROM

BOOTLOADER: up to date CURRENT: lun 23 sep 2024 13:02:56 UTC (1727096576) LATEST: lun 23 sep 2024 13:02:56 UTC (1727096576) RELEASE: latest (/lib/firmware/raspberrypi/bootloader-2712/latest) Use raspi-config to change the release.

config.txt

dtparam=nvme dtparam=pciex1_gen=3

Bootloader logs

No response

USB boot

No response

NVMe boot

No response

Network (TFTP boot)

No response

timg236 commented 1 month ago

I'm pretty SN850X PCIe 4 devices don't work at GEN2 and are incompatible, please check that it works under Linux. If not it's not going to work as a boot device.

Jixel commented 1 month ago

If I remove the Hat and connect SN850X via USB with a pcie/usb adapter, rpi5 bootloader runs correctly from USB and rpi5 works fine. I have read that the latest version of pieeprom has introduced compatibility with the WD SN350, SN550 and SN580 series. Could this be a potential solution?

https://wiki.geekworm.com/NVMe_SSD_boot_with_the_Raspberry_Pi_5

timg236 commented 1 month ago

To add more detail to my previous comment the question is does NVMe work natively under Linux when the Pi is booted from SD i.e. can you mount the drive, copy files, run dd tests etc.

If a USB adapter is added then the NVMe is talking to a PCIe interface inside the adapter and not the BCM2712 PCIe RC. Linux now just sees a USB-MSD device with some flash memory.

If you want to try a more recent bootloader then flash RPi OS to a spare SD-card, run "sudo rpi-update" then check the native NVMe behavior. There are some improvements for timing and switches.

However, there are some WD Black devices which only work at Gen4 and if these don't work natively from Linux then they definitely aren't going to work with the bootloader.

Jixel commented 1 month ago

Hi timg236, Folllowing your steps:

Captura de pantalla 2024-10-11 a las 18 49 53

But... same error, rpi5 can't boot from WD_Black SN850X. Any other suggestions?

Thanks a lots

microfx commented 1 month ago

I am in the same boat... my pineberry HatDrive! Bottom 2024/v5 won't let Raspberry Pi OS detect my WD 850X. I tried it all by now...

pelwell commented 1 month ago

@Jixel's log (in a screenshot, so not exactly searchable) shows an unhappy NVME interface with various error messages. Booting from an SD card but with the NVME drive attached, what does dmesg | grep nvme report for you?

microfx commented 1 month ago
dmesg | grep nvme
[    0.000000] Kernel command line: reboot=w coherent_pool=1M 8250.nr_uarts=1 pci=pcie_bus_safe  smsc95xx.macaddr=D8:3A:DD:D7:FD:85 vc_mem.mem_base=0x3fc00000 vc_mem.mem_size=0x40000000  console=tty1 root=PARTUUID=5a7c6c55-02 rootfstype=ext4 fsck.repair=yes rootwait cfg80211.ieee80211_regdom=DE nvme_core.default_ps_max_latency_us=2500

...so basically returns only a desperate attempt of trying everything I found on the interweb. I think I will bring back this SSD to the shop as my Samsung "just works" with the latest gen HatDrive! ...

stewartoallen commented 5 days ago

I just got a new pi5 + M.2 Hat+ today with this same exact drive and same error. however, I can boot from SD and access this drive normally when connected to the hat. so the drive does work. just not for boot.

IMG_4211

I tried Geerling's old guide which uses rpi-clone and that got quit a bit further into the boot, but ended up in the same spot with a timeout waiting for the drive to show up.

IMG_4220

IMG_4219