164 uint32_t flash_model_info;
167#if defined (SCB_CSR_AIRCR_INIT) && (SCB_CSR_AIRCR_INIT == 1U)
168 SCB->SCR = (SCB->SCR & ~(SCB_SCR_SLEEPDEEPS_Msk )) |
171 SCB->AIRCR = (SCB->AIRCR & ~(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_SYSRESETREQS_Msk |
172 SCB_AIRCR_BFHFNMINS_Msk | SCB_AIRCR_PRIS_Msk )) |
173 ((0x05FAU << SCB_AIRCR_VECTKEY_Pos) & SCB_AIRCR_VECTKEY_Msk) |
179#if defined (__FPU_USED) && (__FPU_USED == 1U) && \
180 defined (TZ_FPU_NS_USAGE) && (TZ_FPU_NS_USAGE == 1U)
182 SCB->NSACR = (SCB->NSACR & ~(SCB_NSACR_CP10_Msk | SCB_NSACR_CP11_Msk)) |
185 FPU->FPCCR = (FPU->FPCCR & ~(FPU_FPCCR_TS_Msk | FPU_FPCCR_CLRONRETS_Msk | FPU_FPCCR_CLRONRET_Msk)) |
197 flash_model_info = inp32((((
void *)FLASH) + 0x38));
198 flash_size = (1 << ((flash_model_info >> 16) & 0xFF));
199 flash_size = (flash_size >> 5);
204 SEC_CTRL->SEC_FLASH_SEC_SIZE = 0x8000;
205 SEC_CTRL->SEC_FLASH_NSC_START = 0x8000;
206 SEC_CTRL->SEC_FLASH_NSC_STOP = 0x8000;
207 SEC_CTRL->SEC_FLASH_NS_STOP = flash_size;
224 SEC_CTRL->SEC_RAM_SEC_SIZE = 0x1800;
225 SEC_CTRL->SEC_RAM_NSC_START = 0x1800;
226 SEC_CTRL->SEC_RAM_NSC_STOP = 0x1800;
234#if (SYSCTRL_SECURE_EN == 1)
235 SEC_ClearIADUState(SYS_CTRL_IADU_Type);
237 SEC_SetIADUState(SYS_CTRL_IADU_Type);
240#if (GPIO_SECURE_EN == 1)
241 SEC_ClearIADUState(GPIO_IADU_Type);
243 SEC_SetIADUState(GPIO_IADU_Type);
246#if (RTC_SECURE_EN == 1)
247 SEC_ClearIADUState(RTC_IADU_Type);
249 SEC_SetIADUState(RTC_IADU_Type);
252#if (DPD_SECURE_EN == 1)
253 SEC_ClearIADUState(DPD_CTRL_IADU_Type);
255 SEC_SetIADUState(DPD_CTRL_IADU_Type);
258#if (SOC_PMU_SECURE_EN == 1)
259 SEC_ClearIADUState(SOC_PMU_IADU_Type);
261 SEC_SetIADUState(SOC_PMU_IADU_Type);
264#if (FLASHCTRL_SECURE_EN == 1)
265 SEC_ClearIADUState(FLASH_CONTROL_IADU_Type);
267 SEC_SetIADUState(FLASH_CONTROL_IADU_Type);
270#if (TIMER0_SECURE_EN == 1)
271 SEC_ClearIADUState(TIMER0_IADU_Type);
273 SEC_SetIADUState(TIMER0_IADU_Type);
276#if (TIMER1_SECURE_EN == 1)
277 SEC_ClearIADUState(TIMER1_IADU_Type);
279 SEC_SetIADUState(TIMER1_IADU_Type);
282#if (TIMER2_SECURE_EN == 1)
283 SEC_ClearIADUState(TIMER2_IADU_Type);
285 SEC_SetIADUState(TIMER2_IADU_Type);
288#if (TIMER32K0_SECURE_EN == 1)
289 SEC_ClearIADUState(TIMER32K0_IADU_Type);
291 SEC_SetIADUState(TIMER32K0_IADU_Type);
294#if (TIMER32K1_SECURE_EN == 1)
295 SEC_ClearIADUState(TIMER32K1_IADU_Type);
297 SEC_SetIADUState(TIMER32K1_IADU_Type);
300#if (WDT_SECURE_EN == 1)
301 SEC_ClearIADUState(WDT_IADU_Type);
303 SEC_SetIADUState(WDT_IADU_Type);
306#if (UART0_SECURE_EN == 1)
307 SEC_ClearIADUState(UART0_IADU_Type);
309 SEC_SetIADUState(UART0_IADU_Type);
312#if (UART1_SECURE_EN == 1)
313 SEC_ClearIADUState(UART1_IADU_Type);
315 SEC_SetIADUState(UART1_IADU_Type);
318#if (I2C_SLAVE_SECURE_EN == 1)
319 SEC_ClearIADUState(I2C_S_IADU_Type);
321 SEC_SetIADUState(I2C_S_IADU_Type);
324#if (COMM_SUBSYSTEM_AHB_SECURE_EN == 1)
325 SEC_ClearIADUState(RT569_AHB_IADU_Type);
327 SEC_SetIADUState(RT569_AHB_IADU_Type);
330#if (RCO32K_CAL_SECURE_EN == 1)
331 SEC_ClearIADUState(RCO32K_CAL_IADU_Type);
333 SEC_SetIADUState(RCO32K_CAL_IADU_Type);
336#if (BOD_COMP_SECURE_EN == 1)
337 SEC_ClearIADUState(BOD_COMP_IADU_Type);
339 SEC_SetIADUState(BOD_COMP_IADU_Type);
342#if (AUX_COMP_SECURE_EN == 1)
343 SEC_ClearIADUState(AUX_COMP_IADU_Type);
345 SEC_SetIADUState(AUX_COMP_IADU_Type);
348#if (RCO1M_CAL_SECURE_EN == 1)
349 SEC_ClearIADUState(RCO1M_CAL_IADU_Type);
351 SEC_SetIADUState(RCO1M_CAL_IADU_Type);
356#if (QSPI0_SECURE_EN == 1)
357 SEC_ClearIADUState(QSPI0_IADU_Type);
359 SEC_SetIADUState(QSPI0_IADU_Type);
362#if (QSPI1_SECURE_EN == 1)
363 SEC_ClearIADUState(QSPI1_IADU_Type);
365 SEC_SetIADUState(QSPI1_IADU_Type);
368#if (IRM_SECURE_EN == 1)
369 SEC_ClearIADUState(IRM_IADU_Type);
371 SEC_SetIADUState(IRM_IADU_Type);
374#if (UART2_SECURE_EN == 1)
375 SEC_ClearIADUState(UART2_IADU_Type);
377 SEC_SetIADUState(UART2_IADU_Type);
380#if (PWM_SECURE_EN == 1)
381 SEC_ClearIADUState(PWM_IADU_Type);
383 SEC_SetIADUState(PWM_IADU_Type);
386#if (XDMA_SECURE_EN == 1)
387 SEC_ClearIADUState(XDMA_IADU_Type);
389 SEC_SetIADUState(XDMA_IADU_Type);
392#if (DMA0_SECURE_EN == 1)
393 SEC_ClearIADUState(DMA0_IADU_Type);
395 SEC_SetIADUState(DMA0_IADU_Type);
398#if (DMA1_SECURE_EN == 1)
399 SEC_ClearIADUState(DMA1_IADU_Type);
401 SEC_SetIADUState(DMA1_IADU_Type);
404#if (I2C_MASTER0_SECURE_EN == 1)
405 SEC_ClearIADUState(I2C_M0_IADU_Type);
407 SEC_SetIADUState(I2C_M0_IADU_Type);
410#if (I2C_MASTER1_SECURE_EN == 1)
411 SEC_ClearIADUState(I2C_M1_IADU_Type);
413 SEC_SetIADUState(I2C_M1_IADU_Type);
416#if (I2S0_SECURE_EN == 1)
417 SEC_ClearIADUState(I2S0_M_IADU_Type);
419 SEC_SetIADUState(I2S0_M_IADU_Type);
422#if (SADC_SECURE_EN == 1)
423 SEC_ClearIADUState(SADC_IADU_Type);
425 SEC_SetIADUState(SADC_IADU_Type);
428#if (SW_IRQ0_SECURE_EN == 1)
429 SEC_ClearIADUState(SW_IRQ0_IADU_Type);
431 SEC_SetIADUState(SW_IRQ0_IADU_Type);
434#if (SW_IRQ1_SECURE_EN == 1)
435 SEC_ClearIADUState(SW_IRQ1_IADU_Type);
437 SEC_SetIADUState(SW_IRQ1_IADU_Type);
442#if (CRYPTO_SECURE_EN == 1)
443 SEC_ClearIADUState(CRYPTO_IADU_Type);
445 SEC_SetIADUState(CRYPTO_IADU_Type);
448#if (PUF_OTP_SECURE_EN == 1)
449 SEC_ClearIADUState(PUF_OTP_IADU_Type);
451 SEC_SetIADUState(PUF_OTP_IADU_Type);
460 NVIC_ClearTargetState(Sec_Ctrl_IQRn);
462#if (GPIO_SECURE_EN == 1)
463 NVIC_ClearTargetState(Gpio_IRQn);
465 NVIC_SetTargetState(Gpio_IRQn);
468#if (RTC_SECURE_EN == 1)
469 NVIC_ClearTargetState(Rtc_IRQn);
471 NVIC_SetTargetState(Rtc_IRQn);
474#if (FLASHCTRL_SECURE_EN == 1)
475 NVIC_ClearTargetState(FlashCtl_IRQn);
477 NVIC_SetTargetState(FlashCtl_IRQn);
480#if (TIMER0_SECURE_EN == 1)
481 NVIC_ClearTargetState(Timer0_IRQn);
483 NVIC_SetTargetState(Timer0_IRQn);
486#if (TIMER1_SECURE_EN == 1)
487 NVIC_ClearTargetState(Timer1_IRQn);
489 NVIC_SetTargetState(Timer1_IRQn);
492#if (TIMER2_SECURE_EN == 1)
493 NVIC_ClearTargetState(Timer2_IRQn);
495 NVIC_SetTargetState(Timer2_IRQn);
498#if (TIMER32K0_SECURE_EN == 1)
499 NVIC_ClearTargetState(Timer32K0_IRQn);
501 NVIC_SetTargetState(Timer32K0_IRQn);
504#if (TIMER32K1_SECURE_EN == 1)
505 NVIC_ClearTargetState(Timer32K1_IRQn);
507 NVIC_SetTargetState(Timer32K1_IRQn);
510#if (WDT_SECURE_EN == 1)
511 NVIC_ClearTargetState(Wdt_IRQn);
513 NVIC_SetTargetState(Wdt_IRQn);
516#if (UART0_SECURE_EN == 1)
517 NVIC_ClearTargetState(Uart0_IRQn);
519 NVIC_SetTargetState(Uart0_IRQn);
522#if (UART1_SECURE_EN == 1)
523 NVIC_ClearTargetState(Uart1_IRQn);
525 NVIC_SetTargetState(Uart1_IRQn);
528#if (I2C_SLAVE_SECURE_EN == 1)
529 NVIC_ClearTargetState(I2C_Slave_IRQn);
531 NVIC_SetTargetState(I2C_Slave_IRQn);
534#if (COMM_SUBSYSTEM_AHB_SECURE_EN == 1)
535 NVIC_ClearTargetState(CommSubsystem_IRQn);
537 NVIC_SetTargetState(CommSubsystem_IRQn);
540#if (BOD_COMP_SECURE_EN == 1)
541 NVIC_ClearTargetState(Bod_Comp_IRQn);
543 NVIC_SetTargetState(Bod_Comp_IRQn);
546#if (AUX_COMP_SECURE_EN == 1)
547 NVIC_ClearTargetState(Aux_Comp_IRQn);
549 NVIC_SetTargetState(Aux_Comp_IRQn);
553#if (QSPI0_SECURE_EN == 1)
554 NVIC_ClearTargetState(Qspi0_IRQn);
556 NVIC_SetTargetState(Qspi0_IRQn);
559#if (QSPI1_SECURE_EN == 1)
560 NVIC_ClearTargetState(Qspi1_IRQn);
562 NVIC_SetTargetState(Qspi1_IRQn);
565#if (IRM_SECURE_EN == 1)
566 NVIC_ClearTargetState(Irm_IRQn);
568 NVIC_SetTargetState(Irm_IRQn);
571#if (UART2_SECURE_EN == 1)
572 NVIC_ClearTargetState(Uart2_IRQn);
574 NVIC_SetTargetState(Uart2_IRQn);
577#if (PWM_SECURE_EN == 1)
578 NVIC_ClearTargetState(Pwm0_IRQn);
579 NVIC_ClearTargetState(Pwm1_IRQn);
580 NVIC_ClearTargetState(Pwm2_IRQn);
581 NVIC_ClearTargetState(Pwm3_IRQn);
582 NVIC_ClearTargetState(Pwm4_IRQn);
584 NVIC_SetTargetState(Pwm0_IRQn);
585 NVIC_SetTargetState(Pwm1_IRQn);
586 NVIC_SetTargetState(Pwm2_IRQn);
587 NVIC_SetTargetState(Pwm3_IRQn);
588 NVIC_SetTargetState(Pwm4_IRQn);
591#if (DMA0_SECURE_EN == 1)
592 NVIC_ClearTargetState(Dma_Ch0_IRQn);
594 NVIC_SetTargetState(Dma_Ch0_IRQn);
597#if (DMA1_SECURE_EN == 1)
598 NVIC_ClearTargetState(Dma_Ch1_IRQn);
600 NVIC_SetTargetState(Dma_Ch1_IRQn);
603#if (I2C_MASTER0_SECURE_EN == 1)
604 NVIC_ClearTargetState(I2C_Master0_IRQn);
606 NVIC_SetTargetState(I2C_Master0_IRQn);
609#if (I2C_MASTER1_SECURE_EN == 1)
610 NVIC_ClearTargetState(I2C_Master1_IRQn);
612 NVIC_SetTargetState(I2C_Master1_IRQn);
615#if (I2S0_SECURE_EN == 1)
616 NVIC_ClearTargetState(I2s0_IRQn);
618 NVIC_SetTargetState(I2s0_IRQn);
621#if (SADC_SECURE_EN == 1)
622 NVIC_ClearTargetState(Sadc_IRQn);
624 NVIC_SetTargetState(Sadc_IRQn);
627#if (SW_IRQ0_SECURE_EN == 1)
628 NVIC_ClearTargetState(Soft0_IRQn);
630 NVIC_SetTargetState(Soft0_IRQn);
633#if (SW_IRQ1_SECURE_EN == 1)
634 NVIC_ClearTargetState(Soft1_IRQn);
636 NVIC_SetTargetState(Soft1_IRQn);
641#if (CRYPTO_SECURE_EN == 1)
642 NVIC_ClearTargetState(Crypto_IRQn);
644 NVIC_SetTargetState(Crypto_IRQn);
647#if (PUF_OTP_SECURE_EN == 1)
648 NVIC_ClearTargetState(OTP_IRQn);
650 NVIC_SetTargetState(OTP_IRQn);
659 SEC_CTRL->SEC_IDAU_CTRL = 1;
665 SAU->CTRL |= (SAU_CTRL_ALLNS_Msk);