The definitive documentation can be found on the RPF site here with a caveat that BCM2837 and BCM2837B0 based boards follow these steps here
All but the Pi 4 has a part SD / Part USB boot mode. This is where the SD card only contains one partition (boot) and the bootcode.bin file. The program in here is capable of loading the rest of the O/S from USB device rather than SD Card as documented above.
This mode is handy in that support for different USB chipsets is limited in later Pi models (I had a stack of USB => SATA connectors that did not work) but I have yet to find one that does not boot via SD-card with just bootcode.bin on it.
I think this needed Stretch or above but TBH cannot remember (blush)
The Pi 3 series made it much more complex by introducing GPIO control and the 4 adds to that as well!