提交 7949703a 编写于 作者: S Simon Glass

x86: Rationalise kernel booting logic and bootstage

The 'Starting linux' message appears twice in the code, but both call
through the same place. Unify these and add calls to bootstage to
mark the occasion.
Signed-off-by: NSimon Glass <sjg@chromium.org>
Reviewed-by: NMichael Spang <spang@chromium.org>
Acked-by: NGraeme Russ <graeme.russ@gmail.com>
上级 c78a62ac
......@@ -120,6 +120,11 @@ void setup_gdt(gd_t *id, u64 *gdt_addr)
int __weak x86_cleanup_before_linux(void)
{
#ifdef CONFIG_BOOTSTAGE_STASH
bootstage_stash((void *)CONFIG_BOOTSTAGE_STASH,
CONFIG_BOOTSTAGE_STASH_SIZE);
#endif
return 0;
}
......
......@@ -93,14 +93,6 @@ int do_bootm_linux(int flag, int argc, char * const argv[],
goto error;
}
#ifdef DEBUG
printf("## Transferring control to Linux (at address %08x) ...\n",
(u32)base_ptr);
#endif
/* we assume that the kernel is in place */
printf("\nStarting kernel ...\n\n");
boot_zimage(base_ptr, load_address);
/* does not return */
......
......@@ -283,6 +283,13 @@ __weak void board_final_cleanup(void)
void boot_zimage(void *setup_base, void *load_address)
{
debug("## Transferring control to Linux (at address %08x) ...\n",
(u32)setup_base);
bootstage_mark_name(BOOTSTAGE_ID_BOOTM_HANDOFF, "start_kernel");
#ifdef CONFIG_BOOTSTAGE_REPORT
bootstage_report();
#endif
board_final_cleanup();
printf("\nStarting kernel ...\n\n");
......@@ -363,10 +370,6 @@ int do_zboot(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[])
return -1;
}
printf("## Transferring control to Linux "
"(at address %08x) ...\n",
(u32)base_ptr);
/* we assume that the kernel is in place */
boot_zimage(base_ptr, load_address);
/* does not return */
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册