Allwinner On many Allwinner
systems on a chip (A10, A20, A64), the boot ROM either waits for a
bootloader to be loaded through USB (if a specific PIN is high) or tries to boot on several peripherals in a fixed order. Some Allwinner systems on a chip can verify the signature of the booloaders. But most devices being manufactured are not configured for that. This has enabled
free and open-source software to add support for many Allwinner systems on a chip and devices using them in
bootloaders like
U-Boot.
Apple On
iPhone,
iPad,
Apple Watch,
iPod Touch, and
Apple TV devices, the boot ROM is called "SecureROM" It is a stripped-down version of
iBoot. It provides a
Device Firmware Upgrade (DFU) mechanism, which can be activated using a special button combination.
BIOS On older
IBM PC compatible computers, the
BIOS serves as a boot ROM.
NXP The boot ROM of NXP
systems on a chip (SOCs) support configuring the peripherals through specific pins of the system on a chip. On the i.MX6 family it also supports configuring the boot order through
eFuses. The boot ROM of several NXP SoCs have many ways to load the first stage
bootloader (from eMMC, microSD, USB, etc.). Several NXP SoCs can be configured to verify the signature of the bootloaders. Many devices with such SoCs were sold without that verification configured and on those devices users can install the bootloader they want, including several
free and open-source software bootloaders like
Das U-Boot and
Barebox.
Open Firmware Open Firmware serves as a boot ROM in systems such as later
SPARC-based machines from
Sun Microsystems and
PowerPC-based
Macs.
STMicroelectronics STMicroelectronics
STM32 family
microcontrollers have embedded ROM (also referred as "on-chip ROM") called
system memory to facilitate empty system flashing. Certain pin combinations or sometimes efuses and/or empty flash checks force the chip to boot from ROM instead of the firmware in main flash. This allows empty chips to be flashed without resorting to hardware programming interfaces. Technically this ROM is stored in a dedicated area of the flash array and programmed by ST during production. Most STM32 microcontrollers can at least be flashed over UART, some support USB and eventually other interfaces like e.g.
I2C,
SPI, or
CAN. The
Cortex-M core normally fetches vectors from the well-known addresses 0x00000000 (initial
stack pointer value) and 0x00000004 (initial
program counter value). However pins and/or fuses define which memory is mapped at these addresses. System memory is one of the mapping options, another would typically be main firmware in flash. In this case, firmware is supposed to do all the jobs boot ROMs do; part of the firmware could act as a bootloader similar to ST's boot ROM. Hardware could provide read-only enforcement on the boot area, turning it into a user-provided version of boot ROM.
Texas Instruments The boot ROMs of several Texas Instruments
systems on a chip support configuring the peripherals through specific pins of the system on a chip. They have many ways to load the first stage
bootloader (which is called MLO in the systems on a chip reference manuals): • It can be loaded from various storage devices (MMC/SD/eMMC, NAND, etc.). • With MMC/SD/eMMC, it can be loaded directly from card sectors (called RAW mode in the manual) or from a FAT12/16/32 partition. • It can also be loaded from USB or UART. On the OMAP36xx system on a chip, the boot ROM looks for the first stage bootloader at the sectors 0x0 and 0x20000 (128KB), and on the AM3358
system on a chip, it additionally looks at 0x40000 (256KiB) and 0x60000 (384KiB). In both cases its maximum size is 128KiB. This is because the (first stage) bootloader is loaded in an
SRAM that is inside the system on a chip. The OMAP and AM335x systems on a chip can be configured to verify the signature of the bootloaders. Many devices with such system on a chip were sold without verification configured and on those devices users can install the bootloader they want, including several
free and open-source software bootloaders like
Das U-Boot and
Coreboot and
Barebox.
UEFI UEFI serves as a boot ROM on systems such as newer
IBM PC compatible computers. == Security ==