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.
Tool/software:
Hi,
a customer is having trouble getting Uniflash to work at setting registers to configure the device's security settings and this is blocking current development.
We are trying to do something simple right now (shown on the screenshots below). Setting Z1-GPREG3 to 0xFFFFFF03 should simply define that flash boot from 0x8'0000 is the only defined boot method (boot mode 0).
Clicking on the "Program" button right below the Z1-GPREGX section raises the error at the bottom of the screen (Please make sure the memory location you are programming have not already been programmed.) As per the memory browser, the 0x7'8008 (and subsequent) locations are all untouched.
We are able to do things like flash the device with a binary and erase the flash so we doubt that this is a connection or setup issue. The work is on Linux but also tried on Windows with the same results.
Is there some documentation available that would help me understand what I'm not doing correctly here?
Regards,
--Gunter
Hi Gunter,
Could you please confirm which Uniflash version you are using?
Also, Could you please try same using CCS On-Chip flash tool?
Regards,
Rajeshwary
Hi Benjamin,
the CCS on-chip flash plugin is indicated here
https://software-dl.ti.com/C2000/docs/software_guide/c2000ware/flash.html#flash
Non-volatile flash memory on C2000 devices is primarily used as program memory for the core and also as static data memory. During application development, application executable can be programmed in to the flash memory using Code Composer Studio (CCS). When CCS identifies that the code is mapped in to the flash memory for a given application, it will automatically invoke CCS On-Chip Flash Plugin to load the executable in to the flash memory. Flash Plugin GUI is available at CCS Debug view -> Tools -> On-chip Flash. By default, the on-chip Flash Plugin erases the flash before programming, generates ECC for the executable and programs it along with the main array flash content and verifies the programmed content. If needed, users can enable blank check - CPU verification to confirm that flash is erased before programming. All of the USER OTP fields (DCSM and boot settings) can be programmed as well using the CCS On-chip Flash Plugin. Checksum calculation feature is also available within the Plugin GUI. Performance of the CCS flash programming is best when using high performance debug probes (XDS200 is suggested).
Regards,
--Gunter
I'm suspecting that the ECC is the issue here. 8 bit of OTP ECC memory get set for every 64 bits of OTP memory set (TRM (spruii0f) - 13.9 Error Correction Code (ECC) Protection). When the "Program" button is clicked to set Z1-GPREG3, OTP ECC gets calculated and set for all Z1-GPREGX registers. The attempt to change the value of the Z1-GPREG1 register fails because its ECC is already set and can't be changed.