Anatomy of an application-processor system
What sits around the processor on a Linux board, and how it starts up, from power-on to a login prompt.
Key points
- A typical application-processor board carries external DRAM (DDR3L, DDR4 or LPDDR4/4X), non-volatile boot storage (eMMC, SD card, QSPI NOR or NAND flash), a PMIC supplying several sequenced rails, a crystal oscillator and a reset circuit.12
- Booting is a chain: an on-chip boot ROM loads a small first-stage loader, which initialises DRAM and loads a full bootloader such as U-Boot; that loads the Linux kernel and its device tree, and the kernel then mounts the root filesystem.345
- On most embedded Arm and RISC-V Linux systems, a device tree describes the board's hardware (memory, buses, attached peripherals) to the kernel, so one kernel binary can support many boards. Some standardised systems, such as Arm servers, use ACPI instead.6789
- Application processors require their supply rails to come up, and go down, in a specified order; PMICs are often paired with a specific processor family to handle this.110
Where to go next
- See the home hub in the end-to-end diagram
- Application cores and microcontroller cores on one chip builds on this
- Embedded Linux builds on this
Spotted a mistake, or found this useful?
Tell usSources
- i.MX 8M Mini Hardware Developer's Guide (IMX8MMHDG) Rev. 4.1 · NXP · Reference
- Raspberry Pi Compute Module 5 datasheet · Raspberry Pi · Datasheet
- U-Boot: Booting from TPL/SPL · U-Boot project · Project docs
- Trusted Firmware-A: Firmware Design · TrustedFirmware.org · Project docs
- The kernel's command-line parameters (root=) · kernel.org · Project docs
- Devicetree Specification · devicetree.org · Standard
- Linux and the Devicetree · kernel.org · Project docs
- ACPI on Arm systems · kernel.org · Project docs
- RISC-V Kernel Boot Requirements and Constraints · kernel.org · Project docs
- i.MX 8M Mini Applications Processor Datasheet for Consumer Products (IMX8MMCEC) Rev. 2 · NXP · Datasheet