Is there any example TrustZone application for Cortex-M85? I use MPS3 FPGA image (AN555, SSE-310) and KEIL IDE. The IDE does not provide any example TrustZone Project. I am having difficulty creating from scratch (Configuring NS and S). If anyone has an example project for the Image please share.
Thank you for your time.
You are right that there are currently no TrustZone examples in the ARM::V2M_MPS3_SSE_310_BSP pack for the Cortex-M85. There are a few TrustZone examples for the Cortex-M55 in the ARM::V2M_MPS3_SSE_300_BSP pack. You could try to convert one of those examples to a Cortex-M85.
Hi there, I have moved your question to the Architectures and Processors forum. Many thanks.Edit: moved back to Keil forum based on Hans recommendation. Thanks.
I am trying to create a TrustZone project for the Cortex-m85 (AN555 FPGA image for MPS3 board).
The default linker script loads the non-secure project on 0x1020000 memory(in SRAM). So am using the MPC API functions to configure the memory region to non-secure(mpc_sie_get_region_config).
I am using 0x57000000 as the controller address found in the AN555 document as shown below in the screenshot.
But as soon as the memory gets configured as Non-secure it wipes out the code loaded previously on that region.
API call to configure as non secure: enum mpc_sie_error_t mpc_config_ret = mpc_sie_config_region(&dev_test, 0x01020000, 0x011FFFFF, mpc_attr);
Before MPC API call:
After the MPC API call:
Verification code to check MPC configuration: mpc_current_config_ret = mpc_sie_get_region_config(&dev_test, 0x01020000, 0x011FFFFF, &mpc_get_config_holder);
which sets the value of mpc_get_config_holder to MPC_SIE_SEC_ATTR_NONSECURE. And return value is MPC_SIE_ERR_NONE so the configuration seems to be correct as requested.
Can anyone please suggest why this might happen?