FF-A: map whole system memory to Hypervisor VM
The "Hypervisor VM" is an abstract representation of the NWd
(Hypervisor or OS kernel if no EL2 present) from the perspective
of the SPMC. vCPUs for such VM (or SP) are never scheduled.
Therefore the corresponding page tables are never rooted into
any physical PE. For any FF-A call from NWd to SWd, the SPMC
is resumed from ffa_handler_loop. At this stage the "current"
vCPU passed to the ffa_handler is one of the "Hypervisor VM"
of FF-A id 0. This serves different purposes (non-exhaustively):
tracking NWd to SWd mem share operations, mapping of Hypervisor
RX/TX buffers, partition info get forwarded from NWd to SWd.
There is the same concept of "TEE VM" from the perspective of
the Hypervisor in NWd. The "Hypervisor VM" is the similar concept
extended to the SWd.
Change-Id: I2d2e77c41825ef1a59a320e75d6b647c43966135
Signed-off-by: Olivier Deprez <olivier.deprez@arm.com>
diff --git a/src/api.c b/src/api.c
index c33d9eb..bdf60d3 100644
--- a/src/api.c
+++ b/src/api.c
@@ -10,7 +10,7 @@
#include "hf/arch/cpu.h"
#include "hf/arch/mm.h"
-#include "hf/arch/tee.h"
+#include "hf/arch/other_world.h"
#include "hf/arch/timer.h"
#include "hf/check.h"
@@ -1023,7 +1023,7 @@
if (to.vm->id == HF_TEE_VM_ID) {
struct ffa_value call = ffa_msg_recv_return(to.vm);
- ret = arch_tee_call(call);
+ ret = arch_other_world_call(call);
/*
* After the call to the TEE completes it must have finished
* reading its RX buffer, so it is ready for another message.