The Boot Order of the Raspberry Pi Is Unusual
patrickmccanna.net36 points by 0o_MrPatrick_o0 2 days ago
36 points by 0o_MrPatrick_o0 2 days ago
> This explains several Raspberry Pi oddities:
> The Raspberry Pi has No BIOS / UEFI
This isn't really that strange for an ARM SoC.
I've worked on bootloaders for multiple ARM SoCs and each one has their own charms, their own quirks, and their own hair-pulling features. I wouldn't touch Broadcom parts with a ten-foot pole but, thankfully, they don't want to work with me either so we're cool.
TI and NXP are probably the better choices. 3358/Beagle still looks for a IBM PC/MSDOS-era Master Boot Record at the start of flash when strapped the normal way, which is charming. Most allow for UART bootstrapping when nothing else is available, which is a lifesaver. I do wish more parts picked up the USB-UF2 bootloading method that Pico has created. THAT is awesome.
Also, there is UEFI firmware for it.
Can this UEFI firmware be ported to other ARM devices, e.g. phones, tablets, books?
Have you checked out uboot?
Doesn't everything under the sun boot with uboot? Uboot is usually what people want to replace when they say "why can't this just run UEFI?"
I have yet to find a valid reason for UEFI to replace u-boot, or UEFI to exist at all.
> This isn't really that strange for an ARM SoC.
When a lot of people call them "PC"s, it is.
The firmware in question being Microsoft's ThreadX. This was made FOSS a few years back but that doesn't help with the Pi.
https://www.theregister.com/2023/11/28/microsoft_opens_sourc...
Well, "Traditional PC Boot" is also not like that on Intel, the booting is started from the chipset, from Intel ME. It boots the CPU.
How can one "discover" something well documented in the datasheet, and on google https://forums.raspberrypi.com/viewtopic.php?t=266130, https://www.google.com/search?q=raspberry+pi+boot+chain
As an electrical engineer: you'd be surprised how many people "discover" long held truths like that you can use the MPN ("Manufacturer Part Number") of a device to find it's documentation and that this documentation sometimes contains useful data.
It's everywhere. Just recently (a couple of months ago) on HN there was a story about an SQLite-but-rewritten-in-Rust [0], how they've discovered some peculiarity in SQLite file format by reading its source code. Except, of course, this peculiarity has been documented for decades, on SQLite's official site. How did they manage to write SQLite-compatible DBMS without reading the official documentation of the file format, I have no idea.
It does not bode well when you're writing a database engine and not revealing any bugs ... because all your test datasets are under 1GB.