mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-05-09 02:51:21 +00:00
AArch32: Add support in TF libraries
This patch adds AArch32 support to cpu ops, context management, per-cpu data and spinlock libraries. The `entrypoint_info` structure is modified to add support for AArch32 register arguments. The CPU operations for AEM generic cpu in AArch32 mode is also added. Change-Id: I1e52e79f498661d8f31f1e7b3a29e222bc7a4483
This commit is contained in:
parent
66be868e9a
commit
e33b78a658
11 changed files with 847 additions and 11 deletions
|
@ -42,11 +42,6 @@ struct entry_point_info;
|
|||
* Function & variable prototypes
|
||||
******************************************************************************/
|
||||
void cm_init(void);
|
||||
void *cm_get_context_by_mpidr(uint64_t mpidr,
|
||||
uint32_t security_state) __deprecated;
|
||||
void cm_set_context_by_mpidr(uint64_t mpidr,
|
||||
void *context,
|
||||
uint32_t security_state) __deprecated;
|
||||
void *cm_get_context_by_index(unsigned int cpu_idx,
|
||||
unsigned int security_state);
|
||||
void cm_set_context_by_index(unsigned int cpu_idx,
|
||||
|
@ -54,12 +49,12 @@ void cm_set_context_by_index(unsigned int cpu_idx,
|
|||
unsigned int security_state);
|
||||
void *cm_get_context(uint32_t security_state);
|
||||
void cm_set_context(void *context, uint32_t security_state);
|
||||
void cm_init_context(uint64_t mpidr,
|
||||
const struct entry_point_info *ep) __deprecated;
|
||||
void cm_init_my_context(const struct entry_point_info *ep);
|
||||
void cm_init_context_by_index(unsigned int cpu_idx,
|
||||
const struct entry_point_info *ep);
|
||||
void cm_prepare_el3_exit(uint32_t security_state);
|
||||
|
||||
#ifndef AARCH32
|
||||
void cm_el1_sysregs_context_save(uint32_t security_state);
|
||||
void cm_el1_sysregs_context_restore(uint32_t security_state);
|
||||
void cm_set_elr_el3(uint32_t security_state, uintptr_t entrypoint);
|
||||
|
@ -71,6 +66,16 @@ void cm_write_scr_el3_bit(uint32_t security_state,
|
|||
void cm_set_next_eret_context(uint32_t security_state);
|
||||
uint32_t cm_get_scr_el3(uint32_t security_state);
|
||||
|
||||
|
||||
void cm_init_context(uint64_t mpidr,
|
||||
const struct entry_point_info *ep) __deprecated;
|
||||
|
||||
void *cm_get_context_by_mpidr(uint64_t mpidr,
|
||||
uint32_t security_state) __deprecated;
|
||||
void cm_set_context_by_mpidr(uint64_t mpidr,
|
||||
void *context,
|
||||
uint32_t security_state) __deprecated;
|
||||
|
||||
/* Inline definitions */
|
||||
|
||||
/*******************************************************************************
|
||||
|
@ -98,4 +103,5 @@ static inline void cm_set_next_context(void *context)
|
|||
"msr spsel, #0\n"
|
||||
: : "r" (context));
|
||||
}
|
||||
#endif /* AARCH32 */
|
||||
#endif /* __CM_H__ */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue