```mermaid
graph LR
_Start((S-LK)) --> lk_main(LK Main)
style _Start fill:#f9f,stroke:#333,stroke-width:4px
lk_main --> platform_early_init(Platform Early 초기화)
subgraph platform early 초기화
mmu_init(mmu enable) --> read_chip_id(Read chip id)
read_chip_id --> display_panel_init(LCD init)
display_panel_init --> init_fbs(FB 초기화)
init_fbs --> set_first_boot_device_info(Boot device Read)
set_first_boot_device_info --> uart_test(UART init)
uart_test --> dram_info(RAM info)
dram_info --> board_info(Board info)
board_info --> print_banner(Banner 로그)
print_banner --> dbg_snapshot_boot(Boot cnt)
dbg_snapshot_boot --> serial_register(SEC UART)
style mmu_init fill:#f4f,stroke:#333,stroke-width:4px,stroke-dasharray:5,5
end
platform_early_init -.- mmu_init
platform_early_init --> pdev_device_init[Platform Device 등록]
pdev_device_init --> target_early_init[Target Early 초기화]
target_early_init -.- read_hw_rev((HW Rev))
style platform_early_init fill:#4ff,stroke:#33,stroke-width:4px
style target_early_init fill:#49f,stroke:#33,stroke-width:4px
subgraph Target early 초기화
flexpmu_dbg(pmu dbg) --> pmic_init(PMIC 초기화)
pmic_init --> dp_pmic_init(DP PMIC 초기화)
dp_pmic_init --> pdic(PDIC 초기화)
pdic --> muic(MUIC 초기화)
muic --> ifconn(IFCON 초기화)
ifconn --> charget(CHARGER 초기화)
charget --> fuelgauge(FUELGAUGE 초기화)
end
target_early_init -.- flexpmu_dbg
target_early_init --> heap_init
heap_init -->call_constructors
call_constructors --> kernel_init
kernel_init --> bootstrap2((Bootstrap2))
```
```mermaid
graph LR
Bootstrap2((BootStrap2)) --> platform_init
subgraph platform init
blk_init(UFS 초기화) --> check_gpt(GPT 생성)
check_gpt --> pit_update(PIT 업데이트)
pit_update --> load_secureOS(Secure OS load)
load_secureOS --> check_edl(EDL,T32 Boot check)
check_edl --> param_part(Param 초기화)
param_part --> ddi_data(ddi 초기화)
ddi_data --> efuse_data(efuse 초기화)
efuse_data --> bl_init(EMC)
bl_init --> init_mrstb(WARM/COLD Reset)
init_mrstb --> check_keypad(Key 입력 체크)
check_keypad --> reboot_mode(Reboot mode 체크)
reboot_mode --> debug_work(Debug 관련)
debug_work --> logbuf(log buffer 초기화)
logbuf --> display_drv_init(LCD 드라이버 초기화)
display_drv_init --> check_download((다운로드 모드 진입))
display_drv_init --> check_upload((업로드모드 진입))
display_drv_init --> check_dn_err(다운로드 에러 체크)
display_drv_init --> check_boot(LPM/RECVOERY 모드 체크)
check_boot --> draw_logo(로고 출력)
draw_logo --> display_device_log(Device 정보 출력)
style blk_init fill:#f4f,stroke:#333,stroke-width:4px
style load_secureOS fill:#f4f,stroke:#333,stroke-width:4px,stroke-dasharray:5,5
end
platform_init -.- blk_init
platform_init --> target_init
target_init --> apps_init((SBOOT APP Call))
```
```mermaid
graph LR
sbl_boot_task((Normal Boot mode)) --> printf_prompt(prompt mode)
printf_prompt --> prepare_for_booting(DBG Uint Clear)
prepare_for_booting --> cmd_boot(boot)
cmd_boot --> load_boot_images(kernel Load)
load_boot_images --> pre_check_kernel_integrity(Security Check)
pre_check_kernel_integrity --> cmd_scatter_load_boot(kernel Image copy)
cmd_scatter_load_boot --> load_dtb(DTB Overlay)
load_dtb --> avb_main(AVB Check)
avb_main --> configure_dtb(DTB 편집)
configure_dtb --> Kernel_Jump((Kernel JUMP))
```