1 /* 2 * Copyright (c) 2017-2019, ARM Limited and Contributors. All rights reserved. 3 * 4 * SPDX-License-Identifier: BSD-3-Clause 5 */ 6 7 #ifndef SPM_MM_PARTITION_H 8 #define SPM_MM_PARTITION_H 9 10 #include <stdint.h> 11 12 #include <lib/utils_def.h> 13 14 /* 15 * Flags used by the spm_mm_mp_info structure to describe the 16 * characteristics of a cpu. Only a single flag is defined at the moment to 17 * indicate the primary cpu. 18 */ 19 #define MP_INFO_FLAG_PRIMARY_CPU U(0x00000001) 20 21 /* 22 * This structure is used to provide information required to initialise a S-EL0 23 * partition. 24 */ 25 typedef struct spm_mm_mp_info { 26 uint64_t mpidr; 27 uint32_t linear_id; 28 uint32_t flags; 29 } spm_mm_mp_info_t; 30 31 typedef struct spm_mm_boot_info { 32 param_header_t h; 33 uint64_t sp_mem_base; 34 uint64_t sp_mem_limit; 35 uint64_t sp_image_base; 36 uint64_t sp_stack_base; 37 uint64_t sp_heap_base; 38 uint64_t sp_ns_comm_buf_base; 39 uint64_t sp_shared_buf_base; 40 uint64_t sp_image_size; 41 uint64_t sp_pcpu_stack_size; 42 uint64_t sp_heap_size; 43 uint64_t sp_ns_comm_buf_size; 44 uint64_t sp_shared_buf_size; 45 uint32_t num_sp_mem_regions; 46 uint32_t num_cpus; 47 spm_mm_mp_info_t *mp_info; 48 } spm_mm_boot_info_t; 49 50 #endif /* SPM_MM_PARTITION_H */ 51