The bootstage feature is useful for timing booting of a board, both for debugging and for production. On ARM devices, detailed timing information can be passed to Linux (where for example it could be logged or reported to a connected server).
Bootstage was written before early malloc(). At present bootstage uses the data section and a large block of memory, which is not ideal. Also it does not support SPL. This series revamps bootstage. It allows a full timing trace to be collected from SPL through to booting Linux, for example: Mark Elapsed Stage 0 0 reset 2,809,110 2,809,110 spl 2,824,791 15,681 end_spl 2,879,616 54,825 board_init_f 3,180,834 301,218 board_init_r 3,496,057 315,223 id=64 3,497,957 1,900 id=64 3,497,959 2 main_loop Accumulated time: 723 dm_r 3,763 of_live 8,027 dm_spl 120,731 dm_f 168,207 lcd Simon Glass (15): bootstage: Provide a default timer function bootstage: Require timer_get_boot_us() to be defined bootstage: Change CONFIG_BOOTSTAGE_USER_COUNT to an int bootstage: Convert to use malloc() bootstage: Fix up code style and comments bootstage: Use rec_count as the array index bootstage: Show records with a zero time bootstage: Use debug() for stashing messages bootstage: Support relocating boostage data bootstage: Init as early as possible bootstage: Record the time taken to set up driver model bootstage: Tidy up error return values bootstage: Adjust to use const * where possible bootstage: Support SPL bootstage: Record time taken to set up the live device tree arch/sandbox/cpu/cpu.c | 11 ++ common/Kconfig | 18 ++- common/Makefile | 3 +- common/board_f.c | 61 ++++++++- common/board_r.c | 16 ++- common/bootstage.c | 257 ++++++++++++++++++++++--------------- common/spl/spl.c | 18 +++ configs/sandbox_defconfig | 2 +- configs/sandbox_flattree_defconfig | 2 +- configs/sandbox_noblk_defconfig | 2 +- configs/sandbox_spl_defconfig | 2 +- include/asm-generic/global_data.h | 4 + include/bootstage.h | 62 +++++++-- lib/time.c | 17 +++ 14 files changed, 349 insertions(+), 126 deletions(-) -- 2.13.0.303.g4ebf302169-goog _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot