summaryrefslogtreecommitdiff
path: root/spm/cactus/aarch64
diff options
context:
space:
mode:
authorOlivier Deprez <olivier.deprez@arm.com>2019-11-29 14:21:48 +0100
committerOlivier Deprez <olivier.deprez@arm.com>2020-03-23 10:19:59 +0100
commitafcdb7ce1a76978f001be8e8e162c20f71868753 (patch)
tree59354b6b58d89386712bf3a366318df863a73fe6 /spm/cactus/aarch64
parent61be4c1ce08b68577d6ea3df2c34357b5b98a547 (diff)
cactus: update to SPCI Beta1 and add sample direct messaging test
The scenario is: TFTF (acting as an "hypervisor" at NS-EL2) sends a direct message request to an SP targetting its SP ID. SPMD/SPMC relays the message down to SP. SP extracts the message payload, amends it and sends a direct message response to TFTF that SPMC/SPMD relay back to TFTF. This sample SP can be instantiated into multiple SPs. The early main entry flow discriminates the first VM from other secondary VMs by getting its running id through SPCI_ID_GET. The SP runs an infinite message loop and waits for a new message by calling SPCI_MSG_WAIT. Notice SPCI_MSG_WAIT is also the hint to SPMD that the SP initialized properly. About logging, only PVM for now has direct access to UART. 2nd VMs must use the debug log hypervisor call. Signed-off-by: Olivier Deprez <olivier.deprez@arm.com> Change-Id: I001261c3f54e0bc217e43fca6812d6cda1ac4430
Diffstat (limited to 'spm/cactus/aarch64')
-rw-r--r--spm/cactus/aarch64/cactus_entrypoint.S6
1 files changed, 6 insertions, 0 deletions
diff --git a/spm/cactus/aarch64/cactus_entrypoint.S b/spm/cactus/aarch64/cactus_entrypoint.S
index 214b4cf..7d6b6b2 100644
--- a/spm/cactus/aarch64/cactus_entrypoint.S
+++ b/spm/cactus/aarch64/cactus_entrypoint.S
@@ -21,6 +21,12 @@ func cactus_entrypoint
adr x0, stacks_end
mov sp, x0
+ /* Enable I-Cache */
+ mrs x0, sctlr_el1
+ orr x0, x0, #SCTLR_I_BIT
+ msr sctlr_el1, x0
+ isb
+
/* And jump to the C entrypoint. */
b cactus_main