Can't boot Raspberry Pi Compute Module 4 from SATA
Is this the right place for my bug report?
Yes
Describe the bug
When I attempt to boot my Raspberry Pi Compute Module 4 from a SATA hard drive (SSD or HDD), it does not boot.
To reproduce
- Plug a compatible SATA controller card into the Compute Module 4 IO board.
- Flash Pi OS onto a SATA SSD or HDD.
- Plug that drive into the SATA controller.
- Attempt to boot the Pi.
Expected behaviour
The Pi's firmware is able to detect a valid image on any of the attached SATA devices and boot from it.
Actual behaviour
The Pi loops through looking for emmc/usb/nvme boot devices.
System
- Which model of Raspberry Pi?
Compute Module 4
- Which OS and version (
cat /etc/rpi-issue)?
Generated using pi-gen, https://github.com/RPi-Distro/pi-gen, 071d3956353f2be964d2d337d3b123f1872b7f53, stage2
- Which firmware version (
vcgencmd version)?
Oct 29 2021 10:47:33
Copyright (c) 2012 Broadcom
version b8a114e5a9877e91ca8f26d1a5ce904b2ad3cf13 (clean) (release) (start)
- Which kernel version (
uname -a)?
Linux taco 5.10.63-v8+ #1459 SMP PREEMPT Wed Oct 6 16:42:49 BST 2021 aarch64 GNU/Linux
Logs
N/A
Additional context
Some people have been asking my why SATA boot isn't working, and I wanted to be able to point them to a more definitive 'status' of the feature, so I'm posting this issue—if it's not something that will likely be implemented soon, that's fine, I just wanted to make a more official feature request/report than random musings on the forums.
From what I remember, SATA's a nightmare compared to NVME. In an EEPROM which is already a bit short on space I really can't see this happening.
Which SATA card(s) would you support?
Yes the AHCI interface covers lots, but then what about the RAID controllers from various vendors, or the other random vendors that have their own interfaces? Where do you stop? IIRC There isn't support for NVMe behind a PCIe switch either, as enumeration there becomes more entertaining, and everything balloons in scale and complexity.
So as pelwell says, I can't see it happening.
It can't hurt to ask ;)
I do think there's a bright future, though, for a Pi + SATA SSD since the footprint is similar and you could fit it in what I'd call a "Mini SFF" size box, barely larger than the SSD itself. And SATA is a better fit for the Pi's PCIe 2 lane than NVMe drives, since less of the performance is wasted.
I totally understand the space constraints, though. Would be a fun and interesting thing to think about when it comes time for a new EEPROM with more space!
You can turn on the Ahci driver (or the x86 PCIe option ROM emulator) in edk2/pftf, and try that. It should work with DT, and if you apply the linux/ACPI/PCIe patches will work in ACPI mode.
You can turn on the Ahci driver (or the x86 PCIe option ROM emulator) in edk2/pftf, and try that. It should work with DT, and if you apply the linux/ACPI/PCIe patches will work in ACPI mode.
Sorry, that’s a bit too terse for me to grok. Could you please be a bit more specific as to what steps to follow to try this? Also, what do you expect to work or not work? Boot off SATA, or have rootfs on SATA, but /boot on eMMC/SD card?