This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM2432: Question regarding syscfg's MPU ARMv7

Part Number: AM2432
Other Parts Discussed in Thread: SYSCONFIG

Hello,

I have a few questions regarding the syscfg's MPU ARMv7 configuration for our application image.

1) We have SBL project that would configure this MPU ARMv7, do we still need it here? 

2) What does this MPU ARMv7 configuration do here?  Could we completely remove this configuration while relying on linker.cmd instead?

Thanks,

Hong 

  • Hi Hong,

    1) It is needed for every R5F code including SBL.

    2) It is used to specify how each memory address space region will be used: start address, size, cacheable or not, R/W access right for different users, code executable or not, the later coming region specification overwrites the previously defined ones.

    Best regards,

    Ming

  • Hello Ming,

    Thanks a lot for the information. 

    From what you suggested, both SBL and our application project need to include syscfg's MPU ARMv7.   My question is more about which configs takes higher privilege? Based on you mentioned, the later coming region specification overwrites the previously defined ones. Does this mean: if SBL and application project's syscfg MCP ARMv7 are not exactly the same, the later configuration from application project takes effect instead of SBL's configuration? 

    Thanks,

    Hong 

  • Hi Hong,

    The answer to your questions is yes and no.

    First of all, the MPU settings in SBL will definitely be overwritten by the MPU settings in the application code, because they are two different programs and running at different times. ROM bootloader --> SBL --> Application code. They all have their own MPU settings, but they are taking effect at different times.

    When I mentioned in the previous post that "the later coming region specification overwrites the previously defined ones" actually meant in the same sysconfig file, MPU region0 will be overwritten by the MPU region1 or later defined regions.

    For example, the region0, usually starts at address 0x0 with size of 2GB. It is used as the default MPU settings for the whole memory address space. The region1 is usually starts at address 0 with size of 32KB. It is for TCMA. Noticed that region1 and region0 is overlapped at address 0x0 for 32KB. In this case the region1 will overwrite the region0 for the memory section starting at address 0x0 with size of 32KB, the rest of the 2GB will still remain as the region0 definition.

    Best regards,

    Ming

  • Hello Ming,

    This is very clear to me now.

    Thanks a lot for your help,

    Hong