I am currently working on disabling the unused cores on AM5749. We have a baremetal application using Processor SDK RTOS. (We didn't use the RTOS component). My application runs on Cortex A15 _0 and it is the only core that needs to be enabled.
I was able to disable some of the cores (IVA1, IVA SL2, DSP1, DSP2, PRU1, PRU2 and M4 IPU2) and the way I am verifying if I disabled the cores is by going to Script > Get PCRM Configuration. I noticed that there is some commonality on disabling these cores for example on DSP1, I used the parameters on DSP1_PRM to disable the DSP1: PM_DSP1_PWRSTCTRL, RM_DSP1_RSTCTRL and on clock domain: CM_DSP1_CLKSTCTRL and CM_DSP1_DSP1_CLKCTRL. I did the similar approach on the other cores that needs to be disabled and it worked.
I have two things that I might need help with:
- My problem is that I can't disable the M4 IPU1. Whenever I look at the PCRM configuration, it always says that the state is in transition and is in invalid module state. However, I was able to disable the IPU2. How will I be able to disable the IPU1? I did experiment with disabling the IPUx_UNICACHE and hoped that it will disable the M4 IPU1 but still wasn't able to disable and see the correct results on Scripts -> Get PCRM Configuration
- I disabled the Cortex A15_1 Core using a sample code on the Processor SDK RTOS. However, I don't see any details of the module configuration status for A15_1 on Script -> Get PCRM Configuration and I can't tell if that is really disabled. How will I be able to validate if the Cortex A15_1 is disabled?
I apologize I won't be able to provide any sample codes of our implementation.