Allwinner H5 Boot Diagrams
Allwinner H5 Boot Diagrams
개요
The system will boot in different ways based on whether its security features are enabled
Supports CPU-0 boot process and CPU-0+ boot process
Supports super standby wakeup process
USB OTG로 업그레이드 지원
Raw NAND, eMMC, SD/TF card ,and SPI NOR Flash에서 fast boot 지원
Normal Mode
아래 그림에서 CPU-0+는 CPU-0를 제외한 나머지 CPU들, 즉 CPU-1, CPU-2, CPU-3를 말한다.
CLUSTER 0 && CPU-0
Others
Hot Plug
Others
SS
Pass
No Pass
Others
unselected
selected
pass
No Pass
Pass
CPU-0 Boot
Read CLUSTER ID && CPU ID
CPU-0+ Boot
Read Hot Plug flag
Boot from CPU-0+
Read SS flag
Check SS restore code
Run SS Restore
Fast Boot process
UBOOT_SEL
Mandatory Upgrade Process
Mandatory Upgrade finishes
Run Boot0
전체 과정을 설명하면,
Cluster ID와 CPU ID 체크
둘 중 하나라도 0이 아니면 CPU-0+에서 부팅 수행
Hot Plug 플래그 확인
Hot Plug이면 CPU-0+에서 부팅 수행
SS 플래그 확인
있으면 SS 복구 코드 확인
통과 시 SS 복구 시작
실패 시 Fastboot
UBOOT_SEL
Fastboot
BOOT0 시작
Security Mode
전체 과정은 Normal Mode 와 같고, 마지막 6번 과정에서 BOOT0를 실행하는 대신 Security BROM을 실행한다.
CLUSTER 0 && CPU-0
Others
Hot Plug
Others
SS
Pass
No Pass
Others
unselected
selected
pass
No Pass
Pass
CPU-0 Boot
Read CLUSTER ID && CPU ID
CPU-0+ Boot
Read Hot Plug flag
Boot from CPU-0+
Read SS flag
Check SS restore code
Run SS Restore
Fast Boot process
UBOOT_SEL
Mandatory Upgrade Process
Mandatory Upgrade finishes
Run Security BROM Software
CPU-0+ Boot Process
CPU-0+에서 부팅할 때는 BROM이 CPU-0+ Boot Pointer에 지정된 multi-core system firmware 주소로 JUMP해서 실행시킨다.
yes
no
CPU-0+ Boot starts
Read CPU_ID
CPU_ID > 0?
Read 0x01F0 1C00 + 0x1A4 register Get soft_entry_address
Run cpu0 code
Jump to the soft_entry_address
Run CPU-0+ code
CPU Hot Plug Process
Hot Plut 비트는 hot plug boot를 할지 결정한다.
yes
no
CPU0 Hot Plug starts
Read 0x01F0 1C00 + 0x1AC register Get the value
0xFA50 392F ?
Read 0x01F0 1C00 + 0x1A4 Get hot_plug_entry_address
Jump to the hot_plug_entry_address
Run CPU0 code
Super Standby Wakeup Process
SS wakeup은 CPU-S에서 시작되고, CPU-0가 해제되면 CPU-0로 옮겨진다.
CPU-S starts the Super Standby wakeup process
DRAM exit Self refresh - optional
Move the BOOT0 code to SRAM A1 0x00
Release CPU-0 reset
CPU-0 boot
Mandatory Upgrade Process
시스템이 강제 업그레이드 과정으로 진입할지 결정할 때 UBOOT_SEL이 low면 이 프로세스로 진입한다.
Mandatory Upgrade starts
USB FEL
Mandatory Upgrade finish
Fast Boot Normal Process
시스템이 강제 업그레이드 과정으로 진입할지 결정할 때 UBOOT_SEL이 high면 이 프로세스로 진입한다.
pass
not pass
pass
not pass
pass
not pass
pass
not pass
pass
not pass
Fast boot process starts
SDC0 Boot Operation
EMMC2 Boot Operation
SDC2 Boot Operation
NAND Boot Operation
SPI_NOR Boot Operation
Run BOOT0 Code
Mandatory Upgrade Process
Fast Boot Security Process
시스템이 강제 MP 프로세스로 진입할지 결정할 때 UBOOT_SEL이 high면 이 프로세스로 진입한다.
pass
not pass
pass
not pass
pass
not pass
pass
not pass
pass
not pass
Right
Wrong
Fast boot process starts
SDC0 Boot Operation
EMMC2 Boot Operation
SDC2 Boot Operation
NAND Boot Operation
SPI_NOR Boot Operation
Run the TOC Certification
Read Security BROM Software in TOC
Check
Run Security BROM Software Code
Normal_fel