firmware icon indicating copy to clipboard operation
firmware copied to clipboard

Can't boot Raspberry Pi Compute Module 4 from SATA

Open geerlingguy opened this issue 4 years ago • 11 comments

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

  1. Plug a compatible SATA controller card into the Compute Module 4 IO board.
  2. Flash Pi OS onto a SATA SSD or HDD.
  3. Plug that drive into the SATA controller.
  4. 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.

geerlingguy avatar Nov 16 '21 17:11 geerlingguy

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.

pelwell avatar Nov 16 '21 17:11 pelwell

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.

6by9 avatar Nov 16 '21 17:11 6by9

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!

geerlingguy avatar Nov 16 '21 18:11 geerlingguy

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.

jlinton avatar Feb 28 '22 19:02 jlinton

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?

rcfa avatar Oct 02 '22 05:10 rcfa