aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorChristoffer Dall <c.dall@virtualopensystems.com>2012-11-17 22:46:19 -0500
committerTushar Behera <tushar.behera@linaro.org>2013-02-04 18:21:21 +0530
commit3d28a181aab5edeb24a8c5ffe3a4162f7462aa2b (patch)
treeb5a8d2d08ed38c0436d1ed458a9a5263f39f0c00 /include
parentcf2e09a2acdfc57c2133a61d05a4c9e71994b45c (diff)
downloadu-boot-linaro-stable-3d28a181aab5edeb24a8c5ffe3a4162f7462aa2b.tar.gz
arndale5250: Boot in Hyp mode and enable architected timers
First, to boot in Hyp mode we need to change to non-secure mode, which involves configuring the frequency of the arch. timers and setting all interrupts on the gic to group 1 (this code was inspired by the boot wrapper code). Second, signal the secondary CPU while still in secure mode and have the secondary CPU run the SPL. The SPL checks the hardware cpu id, and if it's a secondary CPU, it will initialize non-secure mode inside the SPL, enter Hyp mode, and finally enter a new SMP pen with the same poking stick interface as the regular kernel uses. Third, on CPU0 we wait until u-boot is fully up to actually enter the non-secure mode on CPU0, and stay in non-secure svc mode right up until we actually load the kernel, where the last thing we do is enter Hyp mode. Let it roll... Signed-off-by: Jeremy C. Andrus <jeremya@cs.columbia.edu> Signed-off-by: Christoffer Dall <cdall@cs.columbia.edu>
Diffstat (limited to 'include')
-rw-r--r--include/configs/arndale5250.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/include/configs/arndale5250.h b/include/configs/arndale5250.h
index d131fe8e8..05b879759 100644
--- a/include/configs/arndale5250.h
+++ b/include/configs/arndale5250.h
@@ -112,6 +112,9 @@
#define CONFIG_USB_STORAGE
#define CONFIG_SYS_USB_EHCI_MAX_ROOT_PORTS 3
+/* SYSFLAGS register */
+#define CONFIG_SYSFLAGS_ADDR 0x02020000
+
/* MMC SPL */
#define CONFIG_SPL
#define COPY_BL2_FNPTR_ADDR 0x02020030
@@ -121,6 +124,9 @@
#define CONFIG_SPL_TEXT_BASE 0x02023400
#define CONFIG_SPL_MAX_SIZE (14 * 1024)
+/* secondary SMP pens */
+#define CONFIG_SPL_SMP_PEN (CONFIG_SPL_TEXT_BASE + CONFIG_SPL_MAX_SIZE - 8)
+
#define CONFIG_BOOTCOMMAND "mmc read 40007000 451 2000; bootm 40007000"
/* Miscellaneous configurable options */
#define CONFIG_SYS_LONGHELP /* undef to save memory */