mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-19 02:54:24 +00:00

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>
29 lines
760 B
C
29 lines
760 B
C
/*
|
|
* Copyright (c) 2017, ARM Limited and Contributors. All rights reserved.
|
|
*
|
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
*/
|
|
|
|
#ifndef __SPM_SHIM_PRIVATE__
|
|
#define __SPM_SHIM_PRIVATE__
|
|
|
|
#include <types.h>
|
|
|
|
/* Assembly source */
|
|
extern uintptr_t spm_shim_exceptions_ptr;
|
|
|
|
/* Linker symbols */
|
|
extern uintptr_t __SPM_SHIM_EXCEPTIONS_START__;
|
|
extern uintptr_t __SPM_SHIM_EXCEPTIONS_END__;
|
|
|
|
/* Definitions */
|
|
#define SPM_SHIM_EXCEPTIONS_PTR (uintptr_t)(&spm_shim_exceptions_ptr)
|
|
|
|
#define SPM_SHIM_EXCEPTIONS_START \
|
|
(uintptr_t)(&__SPM_SHIM_EXCEPTIONS_START__)
|
|
#define SPM_SHIM_EXCEPTIONS_END \
|
|
(uintptr_t)(&__SPM_SHIM_EXCEPTIONS_END__)
|
|
#define SPM_SHIM_EXCEPTIONS_SIZE \
|
|
(SPM_SHIM_EXCEPTIONS_END - SPM_SHIM_EXCEPTIONS_START)
|
|
|
|
#endif /* __SPM_SHIM_PRIVATE__ */
|