ArmVirtPkg: ArmCcaRsiLib: Add interfaces to manage the Realm IPA state
The IPA space of a Realm is divided into two halves: Protected IPA space
and Unprotected IPA space. Software in a Realm should treat the most
significant bit of an IPA as a protection attribute. A Protected IPA is
an address in the lower half of a Realm's IPA space. An Unprotected IPA
is an address in the upper half of a Realm's IPA space.
A Protected IPA has an associated Realm IPA state (RIPAS). The RIPAS
values are:
* EMPTY - Unused address
* RAM - Private code or data owned by the Realm.
Software in the Realm needs to share memory with the host to communicate
with the outside world, e.g. network, disk image, etc.
To share memory, the software in the Realm first transitions the RIPAS
of memory region it wants to share with the host from RAM to EMPTY. The
Realm software can then access the shared memory region using the
Unprotected IPA address.
The RMM specification defines the following Realm Service Interfaces for
managing the IPA state:
* RSI_IPA_STATE_GET
* RSI_IPA_STATE_SET
Therefore, update the ArmCcaRsiLib to add interfaces to get and set the
IPA state of Realm memory pages.
Signed-off-by:
Sami Mujawar <sami.mujawar@arm.com>
Loading
Please register or sign in to comment