.
.
.
common/board_r.c
1 void board_init_r(gd_t *new_gd, ulong dest_addr)
2 {
3 #ifdef CONFIG_NEEDS_MANUAL_RELOC
4 int i;
5 #endif
6
7 #ifdef CONFIG_AVR32
8 mmu_init_r(dest_addr);
9 #endif
10
11 #if !defined(CONFIG_X86) && !defined(CONFIG_ARM) && !defined(CONFIG_ARM64)
12 gd = new_gd;
13 #endif
14
15 #ifdef CONFIG_NEEDS_MANUAL_RELOC
16 for (i = 0; i < ARRAY_SIZE(init_sequence_r); i++)
17 init_sequence_r[i] += gd->reloc_off;
18 #endif
19
20 if (initcall_run_list(init_sequence_r))
21 hang();
22
23 /* NOTREACHED - run_main_loop() does not return */
24 hang();
25 }
모든 전처리문 검사가 거짓이기 때문에
board_init_r
함수에서는 20번줄의initcall_run_list
에 의해init_sequence_r
리스트에 있는 함수만 수행됩니다.
.
.
.