This is how it goes:
arch/arm/cpu/arm_cortexa8/start.s (replace cortexa8 with your CPU)
- Interrupt vectors setup
- cpu_init_crit
- u-boot relocate
- stack setup
- call C code start_armboot, located at arch/arm/lib/board.c
But start_armboot is not the first C function called.
cpu_init_crit -> calls lowlevel_init, which is located at under your specific CPU, such as arm_cortexa8/ti81xx/lowlevel_init.S, then a function s_init (with label s_init_start) is called. This function is a C function located at boards/ti/ti8168/evm.c
So s_init is called way earlier than start_armboot in lib/board.c
No comments:
Post a Comment