diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/plat/common/platform.h | 11 | ||||
-rw-r--r-- | include/services/spm_core_manifest.h | 55 |
2 files changed, 64 insertions, 2 deletions
diff --git a/include/plat/common/platform.h b/include/plat/common/platform.h index 332cfca8d..f5bd298c5 100644 --- a/include/plat/common/platform.h +++ b/include/plat/common/platform.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013-2019, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2013-2020, ARM Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ @@ -10,6 +10,9 @@ #include <stdint.h> #include <lib/psci/psci.h> +#if defined(SPD_spmd) + #include <services/spm_core_manifest.h> +#endif /******************************************************************************* * Forward declarations @@ -272,7 +275,11 @@ const struct spm_mm_boot_info *plat_get_secure_partition_boot_info( int plat_spm_sp_rd_load(struct sp_res_desc *rd, const void *ptr, size_t size); int plat_spm_sp_get_next_address(void **sp_base, size_t *sp_size, void **rd_base, size_t *rd_size); - +#if defined(SPD_spmd) +int plat_spm_core_manifest_load(spmc_manifest_sect_attribute_t *manifest, + const void *ptr, + size_t size); +#endif /******************************************************************************* * Mandatory BL image load functions(may be overridden). ******************************************************************************/ diff --git a/include/services/spm_core_manifest.h b/include/services/spm_core_manifest.h new file mode 100644 index 000000000..06ecc1391 --- /dev/null +++ b/include/services/spm_core_manifest.h @@ -0,0 +1,55 @@ +/* + * Copyright (c) 2020, Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: BSD-3-Clause + */ + +#ifndef SPMC_MANIFEST_H +#define SPMC_MANIFEST_H + +#include <stdint.h> + +/******************************************************************************* + * Attribute Section + ******************************************************************************/ + +typedef struct spm_core_manifest_sect_attribute { + /* + * SPCI version (mandatory). + */ + uint32_t major_version; + uint32_t minor_version; + + /* + * Run-Time Exception Level (mandatory): + * - 1: SEL1 + * - 2: SEL2 + */ + uint32_t runtime_el; + + /* + * Run-Time Execution state (optional): + * - 0: AArch64 (default) + * - 1: AArch32 + */ + uint32_t exec_state; + + /* + * Address of binary image containing SPM core in bytes (optional). + */ + uint64_t load_address; + + /* + * Offset from the base of the partition's binary image to the entry + * point of the partition. + */ + uint64_t entrypoint; + + /* + * Size of binary image containing SPM core in bytes (mandatory). + */ + uint32_t binary_size; + +} spmc_manifest_sect_attribute_t; + +#endif /* SPMC_MANIFEST_H */ |