Tool/software: Linux
we have beaglebone black based custom board with 256MB RAM and 4GB eMMC.
We are trying to upgrade bootloader from u-boot-2013 to u-boot-2017.
I was trying to understand SPL boot sequence beaglebone-black, before adding new board for u-boot.
so here is the flow I found
- reset vector start executing from start.S ( in arch/arm/cpu/armv7/)
- in the same start.S file call cpu_init_crit() is called.
- cpu_init_crit() --> lowlevel_init() from arch/arm/cpu/armv7/lowlevel_init.S
- Now my doubt is lowlevel_init() --> calls s_init which is available in arch/arm/mach-omap2/omap3/board.c and arch/arm/mach-omap2/am33xx/board.c
- My assumption is s_init is called from arch/arm/mach-omap2/omap3/board.c file.
- after s_init completion control returns to lowlevel_init.S and then --> start.S
- after that start.S calls _main from arch/arm/lib/crt0.S
- crt0.S calls --> board_init_f from arch/arm/mach-omap2/omap3/board.c
- Is this correct ? or board_init_f() from arch/arm/mach-omap2/am33xx/board.c is called ?
Is there a good way to trace out this boot sequence of SPL and U-boot for beaglebone black or am335x_evm board ? ( I assume JTAG would help but wanted to see if something else would help)
Thank you,
Regards,
Ankur