]> git.sur5r.net Git - u-boot/commitdiff
Add ability for arch code to make changes before we boot
authorKumar Gala <galak@kernel.crashing.org>
Thu, 27 Aug 2009 13:23:55 +0000 (08:23 -0500)
committerTom Rix <Tom.Rix@windriver.com>
Sat, 3 Oct 2009 14:04:12 +0000 (09:04 -0500)
Added a arch_preboot_os() function that cpu specific code can implement to
allow for various modifications to the state of the machine right before
we boot.  This can be useful to setup register state to a specific
configuration.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
common/cmd_bootm.c

index 86c81220d2cd88030c8d6c0e2050b3ddf06d6d49..365ceebdf0672c0260ac5c2314939a1b65552845 100644 (file)
@@ -166,6 +166,13 @@ void __arch_lmb_reserve(struct lmb *lmb)
 }
 void arch_lmb_reserve(struct lmb *lmb) __attribute__((weak, alias("__arch_lmb_reserve")));
 
+/* Allow for arch specific config before we boot */
+void __arch_preboot_os(void)
+{
+       /* please define platform specific arch_preboot_os() */
+}
+void arch_preboot_os(void) __attribute__((weak, alias("__arch_preboot_os")));
+
 #if defined(__ARM__)
   #define IH_INITRD_ARCH IH_ARCH_ARM
 #elif defined(__avr32__)
@@ -543,6 +550,7 @@ int do_bootm_subcommand (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
                        break;
                case BOOTM_STATE_OS_GO:
                        disable_interrupts();
+                       arch_preboot_os();
                        boot_fn(BOOTM_STATE_OS_GO, argc, argv, &images);
                        break;
        }
@@ -673,6 +681,8 @@ int do_bootm (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
                return 1;
        }
 
+       arch_preboot_os();
+
        boot_fn(0, argc, argv, &images);
 
        show_boot_progress (-9);