mirror of
https://github.com/Telecominfraproject/OpenCellular.git
synced 2026-01-14 16:46:23 +00:00
Void pointers have been used to access linker symbols, by declaring an extern pointer, then taking the address of it. This limits symbols values to aligned pointer values. To remove this restriction an IMPORT_SYM macro has been introduced, which declares it as a char pointer and casts it to the required type. Change-Id: I89877fc3b13ed311817bb8ba79d4872b89bfd3b0 Signed-off-by: Joel Hutton <Joel.Hutton@Arm.com>
63 lines
1.6 KiB
C
63 lines
1.6 KiB
C
/*
|
|
* Copyright (c) 2017-2018, ARM Limited and Contributors. All rights reserved.
|
|
*
|
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
*/
|
|
|
|
#ifndef __SECURE_PARTITION_H__
|
|
#define __SECURE_PARTITION_H__
|
|
|
|
#include <bl_common.h>
|
|
#include <types.h>
|
|
#include <utils_def.h>
|
|
|
|
/* Import linker symbols */
|
|
IMPORT_SYM(uintptr_t, __SP_IMAGE_XLAT_TABLES_START__, SP_IMAGE_XLAT_TABLES_START);
|
|
IMPORT_SYM(uintptr_t, __SP_IMAGE_XLAT_TABLES_END__, SP_IMAGE_XLAT_TABLES_END);
|
|
|
|
/* Definitions */
|
|
#define SP_IMAGE_XLAT_TABLES_SIZE \
|
|
(SP_IMAGE_XLAT_TABLES_END - SP_IMAGE_XLAT_TABLES_START)
|
|
|
|
/*
|
|
* Flags used by the secure_partition_mp_info structure to describe the
|
|
* characteristics of a cpu. Only a single flag is defined at the moment to
|
|
* indicate the primary cpu.
|
|
*/
|
|
#define MP_INFO_FLAG_PRIMARY_CPU U(0x00000001)
|
|
|
|
/*
|
|
* This structure is used to provide information required to initialise a S-EL0
|
|
* partition.
|
|
*/
|
|
typedef struct secure_partition_mp_info {
|
|
uint64_t mpidr;
|
|
uint32_t linear_id;
|
|
uint32_t flags;
|
|
} secure_partition_mp_info_t;
|
|
|
|
typedef struct secure_partition_boot_info {
|
|
param_header_t h;
|
|
uint64_t sp_mem_base;
|
|
uint64_t sp_mem_limit;
|
|
uint64_t sp_image_base;
|
|
uint64_t sp_stack_base;
|
|
uint64_t sp_heap_base;
|
|
uint64_t sp_ns_comm_buf_base;
|
|
uint64_t sp_shared_buf_base;
|
|
uint64_t sp_image_size;
|
|
uint64_t sp_pcpu_stack_size;
|
|
uint64_t sp_heap_size;
|
|
uint64_t sp_ns_comm_buf_size;
|
|
uint64_t sp_shared_buf_size;
|
|
uint32_t num_sp_mem_regions;
|
|
uint32_t num_cpus;
|
|
secure_partition_mp_info_t *mp_info;
|
|
} secure_partition_boot_info_t;
|
|
|
|
/* Setup function for secure partitions context. */
|
|
|
|
void secure_partition_setup(void);
|
|
|
|
#endif /* __SECURE_PARTITION_H__ */
|