Is the RCM region read-only? Which modules can access the RCM? How are the permissions of the RCM region configured?How to configure RCM permissions through the MPU? What are the default permissions of the RCM region?
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.
Is the RCM region read-only? Which modules can access the RCM? How are the permissions of the RCM region configured?How to configure RCM permissions through the MPU? What are the default permissions of the RCM region?
Hi,
In general the RCM (Reset & Clock Management) regions are read and write both, unless user configures them to be "read-only" through MPU.
Can you also please specify what do you mean by "modules" ?
If you are referring to different cores, yes all cores can access the RCM region in a non-secured device.
For information on how to configure permissions in MPU, you may refer to API guide present at this location in your SDK
Location : "mmwave_mcuplus_sdk_04_07_01_04\mcu_plus_sdk_awr294x_10_01_00_04\docs\api_guide_awr294x"
In this HTML guide navigate to "AWR294x MCU + SDK > API Reference > APIs for Driver Porting Layer > APIs for MPU".
By default the RCM regions are read & write both.
Thanks,
Harsh
Hi,Harsh
For Functions
Hi,
Here is a general initialization sequence.
RBL > SBL
Within SBL the following sequence takes place on a high level.
Configuring APLLs > Load cores (R4, C66) > Run core (R4, C66) > R4 boot check > Load core (R5) > Run core (R5).
After Loading cores (R4, C66), we initialize the TCMA, TCMB memories calling these functions:
In the custom SBL code, the interrupt information is stored in TCM. If I load the application code from external FLASH into RAM before jumping to the APP, how should I handle the TCM initialization function?
Hi,
The TCM initialization functions are generally called after the cores are initialized i.e. the applications are loaded on to the cores.
During the RBL phase, the interrupt information stored in the TCM is different from the one we want in the SBL phase, in SBL we load the application's IVT from the flash.
Thanks,
Harsh
In the custom SBL code, the interrupt vector table is placed in TCMA.
Question 1: Why does the SBL crash when I put the functions
SOC_rcmStartMemInitTCMA();
SOC_rcmWaitMemInitTCMA();
inside the SBL initialization function?
Question 2: Assuming I put the functions
SOC_rcmStartMemInitTCMA();
SOC_rcmWaitMemInitTCMA();
before loading the application program, why does the SBL still work normally after the application loading fails? Why doesn’t it crash like in Question 1?
When TCMA initialization is placed before the APP loading, will the SBL’s critical code and interrupt vector table migrate to other secure memory?
Hi,
Can you please share what all functions you are placing inside SBL initialization? If that's possible.
Typically, SBL's IVT is needed during the SBL phase.
Thank you,
Harsh