This piece of code then continues to load up the rest of the Pi system, such as the firmware and ARM kernel. When the Pi is powered up or rebooted, it tries to talk to an attached SD card and looks for a file called bootcode.bin if it finds it, then it loads it into memory and jumps to it. Previously, there were two boot modes: SD boot and USB device boot (used for booting the Compute Module). Inside the devices there’s a small boot ROM, which is an unchanging bit of code used to boot the device. It’s the boot ROM that can read files from SD cards and execute them.
If you’re unsure about using the new boot modes, it’s probably best to wait until we release it fully. Note: the new boot modes are still in beta testing and use the “next” branch of the firmware. We’ve also supplied a boot modes tutorial over on the Raspberry Pi documentation pages. The first of these is the USB mass storage boot mode, and we’ll explain a little bit about it in this post stay tuned for the next part on booting over Ethernet tomorrow. When we originally announced the Raspberry Pi 3, we announced that we’d implemented several new boot modes.