From 3d28a181aab5edeb24a8c5ffe3a4162f7462aa2b Mon Sep 17 00:00:00 2001 From: Christoffer Dall Date: Sat, 17 Nov 2012 22:46:19 -0500 Subject: 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 Signed-off-by: Christoffer Dall --- arch/arm/include/asm/arch-exynos/cpu.h | 3 +++ 1 file changed, 3 insertions(+) (limited to 'arch/arm') diff --git a/arch/arm/include/asm/arch-exynos/cpu.h b/arch/arm/include/asm/arch-exynos/cpu.h index 58c7de60b..206df2189 100644 --- a/arch/arm/include/asm/arch-exynos/cpu.h +++ b/arch/arm/include/asm/arch-exynos/cpu.h @@ -72,6 +72,9 @@ #define EXYNOS5_SWRESET 0x10040400 #define EXYNOS5_SYSREG_BASE 0x10050000 #define EXYNOS5_WATCHDOG_BASE 0x101D0000 +#define EXYNOS5_GIC_DIST_BASE 0x10481000 +#define EXYNOS5_GIC_CPU_BASE 0x10482000 + #define EXYNOS5_DMC_PHY0_BASE 0x10C00000 #define EXYNOS5_DMC_PHY1_BASE 0x10C10000 #define EXYNOS5_GPIO_PART3_BASE 0x10D10000 -- cgit v1.2.3