diff options
author | Lokesh Vutla <lokeshvutla@ti.com> | 2017-06-27 08:20:56 (GMT) |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2017-07-10 18:26:04 (GMT) |
commit | 4bd754d8abef61835d5da2ba0c65b2b0d3badec9 (patch) | |
tree | 28107b5d5705d25984e289664168e4c55dad9c34 | |
parent | d754254f20d29a9cb25b6fed0423b224384263aa (diff) | |
download | u-boot-fsl-qoriq-4bd754d8abef61835d5da2ba0c65b2b0d3badec9.tar.xz |
arm: omap: Detect boot mode very early
ROM stores the boot params information in a known location
and passes it to SPL. This information needs to be copied
very early during boot or else there is a chance of getting
corrupted by SPL. So move this boot device detection very early
during boot.
Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
-rw-r--r-- | arch/arm/mach-omap2/am33xx/board.c | 8 | ||||
-rw-r--r-- | arch/arm/mach-omap2/boot-common.c | 7 | ||||
-rw-r--r-- | arch/arm/mach-omap2/hwinit-common.c | 8 |
3 files changed, 16 insertions, 7 deletions
diff --git a/arch/arm/mach-omap2/am33xx/board.c b/arch/arm/mach-omap2/am33xx/board.c index 5f1bf9c..db757d9 100644 --- a/arch/arm/mach-omap2/am33xx/board.c +++ b/arch/arm/mach-omap2/am33xx/board.c @@ -333,6 +333,14 @@ void early_system_init(void) set_uart_mux_conf(); setup_early_clocks(); uart_soft_reset(); +#ifdef CONFIG_SPL_BUILD + /* + * Save the boot parameters passed from romcode. + * We cannot delay the saving further than this, + * to prevent overwrites. + */ + save_omap_boot_params(); +#endif #ifdef CONFIG_DEBUG_UART_OMAP debug_uart_init(); #endif diff --git a/arch/arm/mach-omap2/boot-common.c b/arch/arm/mach-omap2/boot-common.c index b77506d..700e6c2 100644 --- a/arch/arm/mach-omap2/boot-common.c +++ b/arch/arm/mach-omap2/boot-common.c @@ -195,13 +195,6 @@ u32 spl_boot_mode(const u32 boot_device) void spl_board_init(void) { - /* - * Save the boot parameters passed from romcode. - * We cannot delay the saving further than this, - * to prevent overwrites. - */ - save_omap_boot_params(); - /* Prepare console output */ preloader_console_init(); diff --git a/arch/arm/mach-omap2/hwinit-common.c b/arch/arm/mach-omap2/hwinit-common.c index 7f6db3c..77368ee 100644 --- a/arch/arm/mach-omap2/hwinit-common.c +++ b/arch/arm/mach-omap2/hwinit-common.c @@ -158,6 +158,14 @@ void early_system_init(void) do_io_settings(); #endif setup_early_clocks(); +#ifdef CONFIG_SPL_BUILD + /* + * Save the boot parameters passed from romcode. + * We cannot delay the saving further than this, + * to prevent overwrites. + */ + save_omap_boot_params(); +#endif do_board_detect(); vcores_init(); #ifdef CONFIG_DEBUG_UART_OMAP |