On 12/03/2012 10:06 AM, Leo Yan wrote:
hi,
i saw Nico's git for the developing the big.LITTLE's cluster power control for MP. In the kernel code. the cluster's first man need enable the CCI's port and snooping for the cluster in non-secure world; In CCI-400's spec, it says need to set the Secure Access Register (0x90008) bit 0 so that we can enable non-secure access to CCI-400 registers.
On fast model, i added the code in boot-wrapper to set bit_0 for CCI's Secure Access Register; but after set this bit, the boot-wrapper code cannot change to hypervisor mode successfully.
On fast model, can we use CCI's secure access register? Current i use the fast model version is: FE000-KT-00002-r7p1-80rel0.tgz, so if it's related with the fast model's version?
Also, could u kindly point out there have boot-swapper's git for reference?
i found the key point is to add "dsb" to insure the register has been modified completely.
Below is the patch for the repo http://git.linaro.org/git-ro/people/pundiramit/boot-wrapper.git:
From: Leo Yan leoy@marvell.com Date: Mon, 3 Dec 2012 19:57:55 +0800 Subject: [PATCH] bootwrapper: enable CCI-400's non-secure access
Signed-off-by: Leo Yan leoy@marvell.com --- boot.S | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/boot.S b/boot.S index 60b59a6..eec50d9 100644 --- a/boot.S +++ b/boot.S @@ -80,6 +80,10 @@ start: tst r3, #1 bne 0b
+ mov r3, #1 @ enable CCI-400's secure access + str r3, [r4, #0x8] + dsb + @ Set up hvbar so hvc comes back here. ldr r0, =vectors mov r7, #0xfffffff0