9 #include "tfm_hal_device_header.h"
10 #include "region_defs.h"
18 #if !defined(__ARM_ARCH_8M_MAIN__) && !defined(__ARM_ARCH_8_1M_MAIN__)
19 #error "Unsupported ARM Architecture."
51 #if defined(__ICCARM__)
52 #pragma required = tfm_pendsv_do_schedule
60 "push {r0, r1, r2, lr} \n"
63 "bl tfm_pendsv_do_schedule \n"
65 "pop {r0, r1, r2, lr} \n"
73 uint32_t sp, uint32_t sp_limit)
76 p_actx->sp_limit = sp_limit;
85 ERROR_MSG(
"Oops... Secure fault!!! You're not going anywhere!");
96 #if defined(__ICCARM__)
98 #pragma required = tfm_core_svc_handler
111 "BL tfm_core_svc_handler \n"
124 __ASM
volatile(
"b .");
134 __ASM
volatile(
"b .");
144 __ASM
volatile(
"b .");
149 __ASM
volatile(
"b .");
160 VECTKEY = (~AIRCR & SCB_AIRCR_VECTKEYSTAT_Msk);
161 scb->AIRCR = SCB_AIRCR_PRIS_Msk |
163 (AIRCR & ~SCB_AIRCR_VECTKEY_Msk);
168 NVIC_SetPriority(MemoryManagement_IRQn, 0);
169 NVIC_SetPriority(BusFault_IRQn, 0);
170 NVIC_SetPriority(SecureFault_IRQn, 0);
172 NVIC_SetPriority(SVCall_IRQn, 0);
173 #ifdef TFM_MULTI_CORE_TOPOLOGY
174 NVIC_SetPriority(PendSV_IRQn, (1 << __NVIC_PRIO_BITS) - 1);
191 NVIC_SetPriority(PendSV_IRQn, (1 << (__NVIC_PRIO_BITS - 1)) - 1);
197 #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)
202 #if defined (__FPU_USED) && (__FPU_USED == 1U)
204 SCB->CPACR |= (3U << 10U*2U)
211 FPU->FPCCR |= FPU_FPCCR_TS_Msk
212 | FPU_FPCCR_CLRONRET_Msk
213 | FPU_FPCCR_CLRONRETS_Msk;
220 SCB->NSACR |= SCB_NSACR_CP10_Msk | SCB_NSACR_CP11_Msk;
void tfm_arch_configure_coprocessors(void)
Configure coprocessors.
void HardFault_Handler(void)
void PendSV_Handler(void)
void UsageFault_Handler(void)
#define EXC_RETURN_THREAD_S_PSP
void BusFault_Handler(void)
void SecureFault_Handler(void)
Overwrites default Secure fault handler.
uint32_t tfm_core_svc_handler(uint32_t *svc_args, uint32_t lr, uint32_t *msp)
void MemManage_Handler(void)
void tfm_arch_init_actx(struct tfm_arch_ctx_t *p_actx, uint32_t sp, uint32_t sp_limit)
void tfm_arch_clear_fp_status(void)
void tfm_arch_set_secure_exception_priorities(void)