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 <t...@linaro.org>
---

Changes since V1:
 - Add a DSB instructions

 semi_loader.c |    7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/semi_loader.c b/semi_loader.c
index f8be94d..51ffaf6 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)
-- 
1.7.10.4




_______________________________________________
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev

Reply via email to