Forum: Mikrocontroller und Digitale Elektronik RaspberryPi CM4 UBoot NVME


von Daniel P. (peini7)


Lesenswert?

Hallo zusammen

Ich versuche es mal hier, vielleicht finde ich hier ein paar Experten, 
die sich mit UBoot auskennen.

Ich hab eine NVME-SSD an einem RaspberryPi CM4 hängen und möchte, dass 
UBoot direkt von dieser bootet.
Die SSD wird auch korrekt erkannt.

UBoot meldet als erstes:
1
PCIe BRCM: link up, 5.0 Gbps x1 (SSC)

und dann:
1
pci_uclass_post_probe: probing bus 1
2
pci_bind_bus_devices: bus 1/pci_0:0.0: found device 0, function 0: find ret=-19
3
pci_find_and_bind_driver: Searching for driver: vendor=2646, device=2263
4
pci_find_and_bind_driver: Match found: nvme
5
pci_auto_config_devices: start
6
pci_auto_config_devices: device nvme#0
7
PCI Autoconfig: BAR 0, Mem, size=0x4000, address=0xc0000000 bus_lower=0xc0004000
8
pci_auto_config_devices: done

vendor=2646, device=2263 ist eine Kingston A2000 SSD.
Bis dahin passt noch alles.

Führ ich dann aber ein "nvme scan" aus, bekomme ich nur:
1
Command failed, result=1

Ich hab auch schon einige weitere Debug-Ausgaben im Code ergänzt und 
weiß nun, dass das Problem irgendwo in nvme_submit_sync_cmd() liegt.
Ich bekomm hier den Fehlercode 110, was soviel wie ETIMEDOUT bedeutet.
Nur hier steh ich leider an.
Auch eine andere SSD (WD Blue SN550) macht leider keinen Unterschied.

Hat hier vielleicht jemand noch Ideen oder sowas auch schon versucht?
Danke schon mal für jeden Vorschlag.

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Benutzt Du eine eigene Stromversorgung für Deine NVME-SSD, z.B. einen 
aktiven USB-Hub? Ich habe die Erfahrung gemacht, dass ein RPi4 mit 
Original-Netzteil nicht genügend Strom liefert, um eine NVME-SSD zu 
betreiben - lediglich eine SATA-SSD.

Zum Sonderfall CM4 kann ich nichts beitragen.

Siehe auch: 
https://jamesachambers.com/new-raspberry-pi-4-bootloader-usb-network-boot-guide/

von Daniel P. (peini7)


Lesenswert?

Frank M. schrieb:
> Benutzt Du eine eigene Stromversorgung für Deine NVME-SSD, z.B. einen
> aktiven USB-Hub? Ich habe die Erfahrung gemacht, dass ein RPi4 mit
> Original-Netzteil nicht genügend Strom liefert, um eine NVME-SSD zu
> betreiben - lediglich eine SATA-SSD.

Danke für den Tipp, aber die SSD hängt direkt am PCIe Bus und nicht am 
USB-Bus.
Aber ja, die SSD wird von einem separaten Schaltregler mit Strom 
versorgt.

Ich glaube die Stromversorgung kann ich ausschließen, da die SSD unter 
Linux korrekt erkannt wird und ich darauf zugreifen kann.

Ich habe aber auch gerade die Erfahrung gemacht, dass U-Boot auch keine 
I2C Treiber für den BCM2711 mit bringt.
Evtl. fehlt hier auch noch was, auch wenn die SSD grundsätzlich erkannt 
wird.

von Marcel (Gast)


Lesenswert?

Der RPI4 bzw. Das CM4 kann auch mit dem integrierten Bootloader von 
einer SSD über PCIe booten. Dann müsstest du dich nicht mit Uboot 
rumschlagen.

von PittyJ (Gast)


Lesenswert?

Marcel schrieb:
> Der RPI4 bzw. Das CM4 kann auch mit dem integrierten Bootloader
> von
> einer SSD über PCIe booten. Dann müsstest du dich nicht mit Uboot
> rumschlagen.

Ja, interessiert mich auch. Warum noch ein UBoot dazwischen?
Der macht doch nur Sinn, wenn man damit verschiedene Konfigurationen 
starten möchte.

von MaWin (Gast)


Lesenswert?

Ich würde UBoot verwenden.

von Daniel P. (peini7)


Lesenswert?

PittyJ schrieb:
> Ja, interessiert mich auch. Warum noch ein UBoot dazwischen?
> Der macht doch nur Sinn, wenn man damit verschiedene Konfigurationen
> starten möchte.

Ja genau dafür verwend ich UBoot, um die Bootpartition zu switchen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.