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.
And on many other platforms the CPU also does not boot itself. Many SoCs have a small core which configures and boots all the other cores (usually Cortex-M or similar).
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.
> The Raspberry Pi has No BIOS / UEFI
This isn't really that strange for an ARM SoC.
reply