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.
Hello e2e,
Target : TMS320F28062
Boot mode : Parallel IO
IDE : Code Composer Studio v6.1.2.00015 & v8.3.1.00004
Code Runs in : RAM Memory
Problem:
I am having an issue unlocking a device with a known CSM password. I have a bootloader (downloaded to RAM via Parallel IO boot mode) that can be used by our 3rd party production flash programmer to erase, program, & read/verify the Flash memory (003E8000h - 003F7FFFh).
I power on the TMS320F28062 with the boot select pins (GPIO37, GPIO34, TRST) all pulled to ground so I start in Parallel IO boot mode. I then download the bootcode generated from CCS, and in normal operations it works fine. However, once I've programmed the CSM password I will pass the parallel downloading sequence but I will seemingly not get any response from the device.
In my CCS project I have attempted to send the device my password via the GPIO I have initiated, but once again I do not get any handshake from pins I have initialized. Alternatively, I have just modified the CsmUnlock function to use the above mentioned password hardcoded into the function, but I still get no response from the handshake I am trying to use. I have been reading through the forum and user's guide, but cannot get a clear picture of the process regarding executable code, running from the RAM, downloaded via parallel IO boot mode, unlocking the device using a known CSM password. I see mention of the wait mode, but if I am trying to download my code to RAM via parallel, at what point would I need to switch form wait to parallel or back again?
Am I supposed to unlock the CSM using another method before downloading my bootloader via parallel IO? Does it matter at what point in main() should I theoretically call the CsmUnlock function? Such as before or after InitSysCtrl or initializing GPIO?
Thanks for the assistance!
---------------
Best Regards, Fernando
It matters which RAM block you download your code to. L0 to L5 are secure RAM, so you cannot download code there until the device is unsecure. You first need to download code to RAM that is not secured by the CSM (L5 to L8, for example) , unlock the device from that unsecure RAM block and then do whatever you want with the flash. If you try to download code to secure RAM, there will be no response from the device, since secure RAM cannot be accessed until the device is unsecured first.
Thanks Hareesh.
Modified my linker command file. Moving my code to L5 allowed the communication to work as expected, and allowed me to unlock the device as well.
Thanks for the assistance!
---------------
Best Regards, Fernando