Other Parts Discussed in Thread: UNIFLASH, LMFLASHPROGRAMMER
Tool/software:
I have programmed and setup the BOOTCFG register with the following code:
#include <stdint.h> #include "inc/hw_memmap.h" #include "inc/hw_types.h" #define FLASH_FMA 0x400FD000 #define FLASH_FMD 0x400FD004 #define FLASH_FMC 0x400FD008 int main(void) { // 1. FMA should have this value to program BOOTCFG HWREG(FLASH_FMA) = 0x75100000; // Data to be flashed in BOOTCFG, must be stored in FMD // 2. BOOTCFG value: PD1 active LOW = 0xFFFF64FE HWREG(FLASH_FMD) = 0xFFFF64FE; //FMD to enable Port D1 on LOW for ROM bootloader execution // FMC should have writekey and commit bit HWREG(FLASH_FMC) = 0xA4420000 | 0x9; // Wait until commit is complete while (HWREG(FLASH_FMC) & 0x9); }
I have the tested this and it worked and the BOOTCFG is working as programmed.
I now want to change the BOOTCFG register to say [0xFFFF66FE] and based on a previous support issue I believe I need to "unlock" the device and then reprogram.
"Once programmed, the only method to change its value again is to do a "Unlock" operation and restore the device to its factory setting."
I have a JTAG interface using the XDS110 Debug Probe. I have tried the Uniflash utility with 'Erase Flash' and 'Blank Check' and LMFlashProgrammer 'Debug Port Unlock -> Unlock' but I have not had success. In Uniflash Memory Browser I am still seeing BOOTCFG as FFFF64FE
What is the best way to go about this?
Thanks!