arm: omap: Detect boot mode very early
authorLokesh Vutla <lokeshvutla@ti.com>
Tue, 27 Jun 2017 08:20:56 +0000 (13:50 +0530)
committerTom Rini <trini@konsulko.com>
Mon, 10 Jul 2017 18:26:04 +0000 (14:26 -0400)
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>
arch/arm/mach-omap2/am33xx/board.c
arch/arm/mach-omap2/boot-common.c
arch/arm/mach-omap2/hwinit-common.c

index 5f1bf9ce7c0f49223a9d5a42a16320f40413fbe0..db757d91fbfea2752744b8ff1f5f712672bd0733 100644 (file)
@@ -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
index b77506df832f5359337badad30194bbe502dbc45..700e6c2f7985e77053cecd98c797eb17d7d59c9f 100644 (file)
@@ -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();
 
index 7f6db3cf371648ed5658efc120039416ebb0eef5..77368ee85f5a7502b75e00aa031f31aa3f13365e 100644 (file)
@@ -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