This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Example TrustZone project for Cortex-m85

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.

Parents
  • 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.

Reply
  • 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.

Children
  • 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, 0x010200000x011FFFFF, 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, 0x010200000x011FFFFF, &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?