目录
- 前言
- 1 initr_trace
- 2 initr_reloc
- 3 initr_caches
- 4 initr_reloc_global_data
- 5 initr_barrier
- 6 initr_malloc
- 7 log_init
- 8 initr_bootstage
- 9 initr_console_record
- 10 bootstage_relocate
- 11 board_init
- 12 stdio_init_tables
- 13 initr_serial
- 14 initr_announce
- 15 INIT_FUNC_WATCHDOG_RESET
- 16 power_init_board
- 17 initr_nand
- 18 initr_mmc
- 19 initr_env
- 20 initr_secondary_cpu
- 21 stdio_add_devices
- 22 initr_jumptable
- 23 console_init_r
- 24 interrupt_init
- 25 initr_enable_interrupts
- 26 initr_ethaddr
- 27 initr_net
- 28 run_main_loop
前言
本文作为u-boot-2019.10源码分析的一部分,主要内容是对init_sequence_r中一系列初始化函数的分析。下文列出的函数源码已经根据配置宏作了处理,去除了其中不会发挥作用的程序。
1 initr_trace
未配置CONFIG_TRACE
,因此该函数什么也不做。
2 initr_reloc
static int initr_reloc(void)
{
/* 标记重定位已完成 */
gd->flags |= GD_FLG_RELOC | GD_FLG_FULL_MALLOC_INIT