]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - arch/arm/mach-omap2/prcm.c
OMAP: Store reboot mode in scratchpad on OMAP34xx
[linux-2.6-omap-h63xx.git] / arch / arm / mach-omap2 / prcm.c
index fd92a80f38f23045b0c8eeaababb6da1bd1bfae2..2f828cb86361f0c404da15ffab9a6a3b2b018ea8 100644 (file)
@@ -18,8 +18,8 @@
 #include <linux/clk.h>
 #include <linux/io.h>
 
-#include <asm/arch/common.h>
-#include <asm/arch/prcm.h>
+#include <mach/common.h>
+#include <mach/prcm.h>
 
 #include "clock.h"
 #include "prm.h"
@@ -43,9 +43,18 @@ void omap_prcm_arch_reset(char mode)
 
        if (cpu_is_omap24xx())
                prcm_offs = WKUP_MOD;
-       else if (cpu_is_omap34xx())
+       else if (cpu_is_omap34xx()) {
+               u32 l;
+
                prcm_offs = OMAP3430_GR_MOD;
-       else
+               l = ('B' << 24) | ('M' << 16) | mode;
+               /* Reserve the first word in scratchpad for communicating
+                * with the boot ROM. A pointer to a data structure
+                * describing the boot process can be stored there,
+                * cf. OMAP34xx TRM, Initialization / Software Booting
+                * Configuration. */
+               omap_writel(l, OMAP343X_SCRATCHPAD + 4);
+       } else
                WARN_ON(1);
 
        prm_set_mod_reg_bits(OMAP_RST_DPLL3, prcm_offs, RM_RSTCTRL);