ARM Installation Guide/Some hardware and booting background

From ParabolaWiki
Jump to: navigation, search

1 The anatomy of an ARM computer

1.1 System on a chip

In most of the ARM computers, the Central Processing Unit (CPU) and many peripherals are consolidated into a single Integrated Circuit "chip" (IC). Such a chip is conventionally called: 'System On A Chip' (SoC); because it provides all common functionality of a typical personal computer system. Besides the CPU, it often contains:

  • A graphics processing unit (GPU)
  • A display controller (eg: HDMI,VGA)
  • One or more USB host controllers
  • An USB OTG/Device controller
  • An SD-card controller
  • A serial port controller
  • Other miscellaneous peripherals
1.2 Boot ROM and booting

Most Systems on a Chip have machine code instructions hard-wired as Read-Only Memory (ROM), which are the first instructions executed when the machine is powered-on. Conventionally, this hardware is known as: 'boot-rom' or 'BROM'; and the process is referred to as: the 'boot0' boot stage.

The BROM is responsible for initializing the SoC hardware, and locating and fetching the user-replaceable second-stage boot-loader ('boot1') from among a set of predefined storage devices (eg: internal flash, removable SD-card). Often it is also possible to load a boot-loader via a standard 'Universal Serial Bus On-the_Go' (USB-OTG) or RS232 (serial) port.

The boot-loader then does some more (device specific) hardware initialization, then loads the operating system, and cedes control to the kernel.

In order for the BROM to detect a boot-loader on some external storage device, the device must be supported by the BROM. For instance, the Allwinner SoC BROM supports booting from eMMC/SD/microSD cards and SPI/NAND flash chips, but not SATA hard disks and solid-state drives.

The set of storage devices and their order of precedence, can often be configured by hardware and/or software.