Boot Flow
This topic describes the complete boot sequence of JH-7110.
Boot Architecture Overview
The JH-7110 boot sequence follows a fixed four-stage
chain:
BootROM → SPL → OpenSBI → U-Boot → Linux Kernel + File System| Stage | Description |
|---|---|
| BoorRom | Hard-coded in ROM; selects boot source and loads SPL into SRAM. |
| SPL | Initializes DDR and loads the firmware payload into DDR. |
| OpenSBI | Provides SBI services, transitions CPU from M-mode to S-mode. |
| U-Boot | Loads the kernel from a boot device and starts Linux. |
Boot Devices
JH-7110
supports the following boot devices.
| Component | Boot Storage |
|---|---|
| Bootloader (SPL + OpenSBI + U-Boot) | QSPI NOR Flash |
| Kernel + File System | SD card, eMMC, or NVMe |
U-Boot probes boot devices in the following order and stops at the first device that
contains a valid boot
image:
SD Card → eMMC → NVMeBoot Stage Transition
| Stage | Execution Address | Load From | Load To | Hands Off To |
|---|---|---|---|---|
| BootROM |
0x2A00_0000 (ROM) |
QSPI Flash or UART |
SRAM 0x0800_0000 |
SPL |
| SPL |
SRAM 0x0800_0000 |
QSPI Flash 0x100000 |
DDR 0x4000_0000 |
OpenSBI |
| OpenSBI |
DDR 0x4000_0000 |
w_payload.img |
DDR 0x4020_0000 |
U-Boot |
| U-Boot |
DDR 0x4020_0000 |
QSPI, SD,eMMC,NVMe, or UART |
DDR | Kernel |
M-mode → S-mode transition occurs within the OpenSBI stage. Before OpenSBI, the CPU runs in M-mode; after OpenSBI, U-Boot and the kernel run in S-mode.
Boot Sources
Boot source selection is controlled by AON_RGPIO[1,0] at register address 0x1702002C .
| RGIO_1 | RGIO_0 | Boot Source | Recommendation |
|---|---|---|---|
| 0 (L) | 0 (L) | 1-bit QSPI NOR Flash | Recommended |
| 0 (L) | 1 (H) | SDIO 3.0 | Legacy |
| 1 (H) | 0 (L) | eMMC | Legacy |
| 1 (H) | 1 (H) | UART0 | – |
Note: Starting from SDK v1.2, SD/eMMC boot mode is no longer
recommended. Use QSPI NOR Flash for primary boot. SD/eMMC modes may be retained
for development or recovery purposes.
Boot Address Allocation
| Offset | Length | Description |
|---|---|---|
| 0x0 | 0x80000 | SPL |
| 0xF0000 | 0x10000 | U-Boot environment variables |
| 0x100000 | 0x400000 | fw_payload.img (OpenSBI + U-Boot) |
| 0x600000 | 0x1000000 | Reseved |
The following SD/eMMC boot address allocations are provided for reference only, as the SD/eMMC boot is deprecated since SDK V1.2.
| Offset | Length | Description | Comment |
|---|---|---|---|
| 0x0 | 0x200 | GPT PMBR | 0x4: Backup address |
| 0x200 | 0x200 | GPT Header | |
| 0x400 | 0x1F_FC00 | Reserved | |
| 0x20_0000 | 0x20_0000 | Reserved | Partition 1 |
| 0x40_0000 | 0x40_0000 | Reserved | Partition 2 |
| 0x80_0000 | 0x1240_0000 | Initramfs + UEnv.txt | Partition 3 |
| 0x12C0_0000 | End of disk | System rootfs | Partition 4 |