aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJon Medhurst (Tixy) <tixy@linaro.org>2012-12-03 20:23:45 +0000
committerPeter Maydell <peter.maydell@linaro.org>2012-12-04 16:16:12 +0000
commitb66309494e65ff05009c329a2970aff0f21d0fcc (patch)
treecc2b572c2cef56bb5a3cb31f638e9a91c55b99e7
parentf684b4fa414d55b1033c036dbeb98575d047a406 (diff)
downloadboot-wrapper-b66309494e65ff05009c329a2970aff0f21d0fcc.tar.gz
bootwrapper: Enable non-secure access to the CCI
We boot the kernel in non-secure mode and by default access to the CCI device is not enabled for non-secure access, so we must enable this if we want Linux to manage CPU hotplug on big.LITTLE models. Signed-off-by: Jon Medhurst <tixy@linaro.org> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
-rw-r--r--semi_loader.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/semi_loader.c b/semi_loader.c
index f8be94d..aba3be2 100644
--- a/semi_loader.c
+++ b/semi_loader.c
@@ -263,6 +263,13 @@ static void init_cci(unsigned cci)
/* Wait while change pending bit of status register is set */
while(io32(cci+0xc) & 0x1)
{}
+
+ /*
+ * Enable non-secure access to CCI and use a DSB ensure this takes
+ * effect before such accesses are made.
+ */
+ io32(cci+0x8) = 1;
+ asm volatile ("dsb" : : : "memory");
}
static void configure_from_fdt(struct loader_info *info)