arm-trusted-firmware/include/lib
Antonio Nino Diaz 2fccb22804 SPM: Introduce Secure Partition Manager
A Secure Partition is a software execution environment instantiated in
S-EL0 that can be used to implement simple management and security
services. Since S-EL0 is an unprivileged exception level, a Secure
Partition relies on privileged firmware e.g. ARM Trusted Firmware to be
granted access to system and processor resources. Essentially, it is a
software sandbox that runs under the control of privileged software in
the Secure World and accesses the following system resources:

- Memory and device regions in the system address map.
- PE system registers.
- A range of asynchronous exceptions e.g. interrupts.
- A range of synchronous exceptions e.g. SMC function identifiers.

A Secure Partition enables privileged firmware to implement only the
absolutely essential secure services in EL3 and instantiate the rest in
a partition. Since the partition executes in S-EL0, its implementation
cannot be overly complex.

The component in ARM Trusted Firmware responsible for managing a Secure
Partition is called the Secure Partition Manager (SPM). The SPM is
responsible for the following:

- Validating and allocating resources requested by a Secure Partition.
- Implementing a well defined interface that is used for initialising a
  Secure Partition.
- Implementing a well defined interface that is used by the normal world
  and other secure services for accessing the services exported by a
  Secure Partition.
- Implementing a well defined interface that is used by a Secure
  Partition to fulfil service requests.
- Instantiating the software execution environment required by a Secure
  Partition to fulfil a service request.

Change-Id: I6f7862d6bba8732db5b73f54e789d717a35e802f
Co-authored-by: Douglas Raillard <douglas.raillard@arm.com>
Co-authored-by: Sandrine Bailleux <sandrine.bailleux@arm.com>
Co-authored-by: Achin Gupta <achin.gupta@arm.com>
Co-authored-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
2017-11-08 18:05:14 +00:00
..
aarch32 Merge pull request #1130 from jeenu-arm/gic-patches 2017-10-21 22:18:48 +01:00
aarch64 SPM: Introduce Secure Partition Manager 2017-11-08 18:05:14 +00:00
cpus Cortex-A72: Implement workaround for erratum 859971 2017-09-07 14:22:02 +01:00
el3_runtime Merge pull request #1151 from JoelHutton/jh/MISRA-Mandatory 2017-11-03 20:59:57 +00:00
libfdt libfdt: Replace v1.4.1 by v1.4.2 2017-01-16 17:26:04 +00:00
pmf Fix order of #includes 2017-07-12 14:45:31 +01:00
psci Update PSCI version to 1.1 2017-10-13 12:39:08 +01:00
stdlib Fix stdlib defines for AArch32 2017-06-09 14:47:52 +01:00
xlat_tables xlat: Make function to calculate TCR PA bits public 2017-11-08 18:05:14 +00:00
bakery_lock.h Use SPDX license identifiers 2017-05-03 09:39:28 +01:00
cassert.h Use SPDX license identifiers 2017-05-03 09:39:28 +01:00
mmio.h Use SPDX license identifiers 2017-05-03 09:39:28 +01:00
optee_utils.h Add Trusted OS extra image parsing support for ARM standard platforms 2017-08-09 18:06:05 +08:00
runtime_instr.h Use SPDX license identifiers 2017-05-03 09:39:28 +01:00
semihosting.h Use SPDX license identifiers 2017-05-03 09:39:28 +01:00
smcc.h include: add U()/ULL() macros for constants 2017-06-14 17:00:30 -07:00
spinlock.h Use SPDX license identifiers 2017-05-03 09:39:28 +01:00
utils.h Add mem_region utility functions 2017-09-25 13:32:20 +01:00
utils_def.h GICv3: add functions for save and restore 2017-10-05 16:47:53 +01:00