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
Figure 1. Boot Flow
Table 1. Boot Stages
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.
Table 2. 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 → NVMe

Boot Stage Transition

Table 3. Boot 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 .

Table 4. Boot Sources
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

Table 5. QSPI NOR Flash (16 MB)
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.

Table 6. SD/eMMC (Deprecated)
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