mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-26 14:40:41 +00:00
arm: Move bootstage record for board_init_f() to after arch_cpu_init()
The timer may be inited in arch_cpu_init() so it is not safe to make a bootstage mark before this is called. Arrange the code to fix this. Note: The question was raised as to why we don't keep all archs in sync. PowerPC doesn't have specific bootstage markers at present (although it does use boot progress). I hope that the generic board series will solve this problem in general, but in the meantime this is a real problem, and only in ARM. We now get a correct time for board_init_f: Timer summary in microseconds: Mark Elapsed Stage 0 0 reset 100,000 100,000 spl_start 848,530 748,530 board_init_f 907,301 58,771 board_init_r 910,478 3,177 board_init Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
fe34f8dc8c
commit
2f8d8d6b3a
1 changed files with 9 additions and 2 deletions
|
@ -232,8 +232,17 @@ int __power_init_board(void)
|
|||
int power_init_board(void)
|
||||
__attribute__((weak, alias("__power_init_board")));
|
||||
|
||||
/* Record the board_init_f() bootstage (after arch_cpu_init()) */
|
||||
static int mark_bootstage(void)
|
||||
{
|
||||
bootstage_mark_name(BOOTSTAGE_ID_START_UBOOT_F, "board_init_f");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
init_fnc_t *init_sequence[] = {
|
||||
arch_cpu_init, /* basic arch cpu dependent setup */
|
||||
mark_bootstage,
|
||||
#ifdef CONFIG_OF_CONTROL
|
||||
fdtdec_check_fdt,
|
||||
#endif
|
||||
|
@ -277,8 +286,6 @@ void board_init_f(ulong bootflag)
|
|||
void *new_fdt = NULL;
|
||||
size_t fdt_size = 0;
|
||||
|
||||
bootstage_mark_name(BOOTSTAGE_ID_START_UBOOT_F, "board_init_f");
|
||||
|
||||
memset((void *)gd, 0, sizeof(gd_t));
|
||||
|
||||
gd->mon_len = _bss_end_ofs;
|
||||
|
|
Loading…
Reference in a new issue