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.
Hi Champs,
My customer is using the latest UniFlash version 6.1.x for F280048-Q1 flash programming. But they faced a problem as follows:
Program Load (Load Image) is OK but failed at random address during "Verify Image". I think verification is working during Load Image, but there was no error at that time. Failure just happens during verification by "Verify Image".
What can make this situation?
Thansk,
Steve
Steve,
Are the passwords programmed in the DCSM space on the device?
If yes, keep the core connected, unlock the core by providing the correct password, and then try executing the verify operation.
Thanks and regards,
Vamsi
Steve,
In Uniflash, keep the core connected (click on the core name at the top right corner and enable "Remain Connected after operations") and then do the program operation. After the program load, now try the "Verify image" and see if that works.
Thanks and regards,
Vamsi
Vamsi,
If the programming result is OK at Load Image with the "Verify Flash after Program" option, can you guarantee that the program was loaded successfully?
I think "Verify Flash after Program" option uses Fapi_doVerify() function in RAM during flash programming. But the "Verify Image" reads all Flash data and compares the Hex file and the data in UniFlash. Is it correct?
Does noise on JTAG line can make this situation?
Thanks,
Steve
Steve,
Verify flash after program option - This is done by Fapi_doVerify() from RAM. This option verifies immediately after the program operation to ensure CPU is able to read back after program.
Verify Image - Yes, your understanding is correct. Are you able to use this after enabling "Keep the core connected" feature?
I don't think noise can cause a failure in this case (assuming program and verify flash after program went fine without any issues).
Thanks and regards,
Vamsi
Vamsi,
Thank you for your quick answers.
Let me ask for the customer to try what you mentioned ("Keep the core connected"). This failure did not occur in their R&D lab during development. But this situation only happens in the manufacturing JIG environment.
Thank,
Steve
Steve,
Sure. Let me know how it goes with this option enabled.
I will keep this thread in pause.
Thanks and regards,
Vamsi
They will use a Standalone Command Line in UniFlash. Does it work without adding additional commands in batch file for this option("Keep the core connected") ?
Thanks,
Steve
Steve,
I will ask our CLI expert to help you on this.
Thanks and regards,
Vamsi
Hi Steve,
I am not aware of any CLI commands for that setting. I am checking with the UniFlash experts for confirmation and workarounds.
Thanks
ki
Steve,
As discussed offline, customer may have to use DSS scripting instead - Ki will confirm.
Thanks and regards,
Vamsi
The result was the same after enabling of "Keep the core connected" feature. Sometimes the verification succeeds, but it fails several times on random addresses. Two attached files are the logs for pass and failure.
Executing default command: > dslite --mode flash -c user_files/configs/f280040c.ccxml -l user_files/settings/generated.ufsettings -s VerifyAfterProgramLoad="No verification" -e -f -v "user_files/images/PHAL-G803A_20210428A.hex" DSLite version 10.1.0.2076 Configuring Debugger (may take a few minutes on first launch)... Initializing Register Database... Initializing: IcePick_C_0 Executing Startup Scripts: IcePick_C_0 Initializing: C28xx_CPU1 Executing Startup Scripts: C28xx_CPU1 Connecting... C28xx_CPU1: GEL Output: Memory Map Initialization Complete C28xx_CPU1: GEL Output: ... DCSM Initialization Start ... C28xx_CPU1: GEL Output: ... DCSM Initialization Done ... C28xx_CPU1: GEL Output: ... DCSM Initialization Start ... C28xx_CPU1: GEL Output: ... DCSM Initialization Done ... Loading Program: user_files/images/PHAL-G803A_20210428A.hex Preparing ... 0 of 4 at 0x80000 C28xx_CPU1: GEL Output: ... DCSM Initialization Start ... C28xx_CPU1: GEL Output: ... DCSM Initialization Done ... Erasing Flash Erasing Bank 0, Sector 0 Erasing Bank 0, Sector 1: 2% Erasing Bank 0, Sector 2: 5% Erasing Bank 0, Sector 3: 8% Erasing Bank 0, Sector 4: 11% Erasing Bank 0, Sector 5: 14% Erasing Bank 0, Sector 6: 17% Erasing Bank 0, Sector 7: 20% Erasing Bank 0, Sector 8: 23% Erasing Bank 0, Sector 9: 26% Erasing Bank 0, Sector 10: 29% Erasing Bank 0, Sector 11: 32% Erasing Bank 0, Sector 12: 35% Erasing Bank 0, Sector 13: 38% Erasing Bank 0, Sector 14: 41% Erasing Bank 0, Sector 15: 44% 0 of 158 at 0x81000 0 of 38040 at 0x81050 32752 of 38040 at 0x81050: 67% 0 of 182 at 0x87000: 78% 0 of 3042 at 0x88000: 79% 0 of 4 at 0x8bff0: 85% 0 of 2 at 0x8bff8: 85% 0 of 7020 at 0x8c000: 85% Finished: 85% Setting PC to entry point.: 85% Verifying Program: user_files/images/PHAL-G803A_20210428A.hex Preparing ... 0 of 4 at 0x80000 0 of 158 at 0x81000 0 of 38040 at 0x81050 32752 of 38040 at 0x81050: 67% 0 of 182 at 0x87000: 78% 0 of 3042 at 0x88000: 79% 0 of 4 at 0x8bff0: 85% 0 of 2 at 0x8bff8: 85% 0 of 7020 at 0x8c000: 85% Finished: 85% info: C28xx_CPU1: Program verification successful for user_files/images/PHAL-G803A_20210428A.hex Success
Executing default command: > dslite --mode flash -c user_files/configs/f280040c.ccxml -l user_files/settings/generated.ufsettings -s VerifyAfterProgramLoad="No verification" -e -f -v "user_files/images/PHAL-G803A_20210428A.hex" DSLite version 10.1.0.2076 Configuring Debugger (may take a few minutes on first launch)... Initializing Register Database... Initializing: IcePick_C_0 Executing Startup Scripts: IcePick_C_0 Initializing: C28xx_CPU1 Executing Startup Scripts: C28xx_CPU1 Connecting... C28xx_CPU1: GEL Output: Memory Map Initialization Complete C28xx_CPU1: GEL Output: ... DCSM Initialization Start ... C28xx_CPU1: GEL Output: ... DCSM Initialization Done ... C28xx_CPU1: GEL Output: ... DCSM Initialization Start ... C28xx_CPU1: GEL Output: ... DCSM Initialization Done ... Loading Program: user_files/images/PHAL-G803A_20210428A.hex Preparing ... 0 of 4 at 0x80000 C28xx_CPU1: GEL Output: ... DCSM Initialization Start ... C28xx_CPU1: GEL Output: ... DCSM Initialization Done ... Erasing Flash Erasing Bank 0, Sector 0 Erasing Bank 0, Sector 1: 2% Erasing Bank 0, Sector 2: 5% Erasing Bank 0, Sector 3: 8% Erasing Bank 0, Sector 4: 11% Erasing Bank 0, Sector 5: 14% Erasing Bank 0, Sector 6: 17% Erasing Bank 0, Sector 7: 20% Erasing Bank 0, Sector 8: 23% Erasing Bank 0, Sector 9: 26% Erasing Bank 0, Sector 10: 29% Erasing Bank 0, Sector 11: 32% Erasing Bank 0, Sector 12: 35% Erasing Bank 0, Sector 13: 38% Erasing Bank 0, Sector 14: 41% Erasing Bank 0, Sector 15: 44% 0 of 158 at 0x81000 0 of 38040 at 0x81050 32752 of 38040 at 0x81050: 67% 0 of 182 at 0x87000: 78% 0 of 3042 at 0x88000: 79% 0 of 4 at 0x8bff0: 85% 0 of 2 at 0x8bff8: 85% 0 of 7020 at 0x8c000: 85% Finished: 85% Setting PC to entry point.: 85% Verifying Program: user_files/images/PHAL-G803A_20210428A.hex Preparing ... 0 of 4 at 0x80000 0 of 158 at 0x81000 0 of 38040 at 0x81050 error: C28xx_CPU1: File Loader: Verification failed: Values at address 0x8320B@Program do not match Please verify target memory and memory map. Finished
Thanks,
Steve
Steve,
Can you send a DCSM OTP dump for the application image?
Also, please send map file and linker cmd file,
Thanks and regards,
Vamsi
There is no option for that setting ("remain connected after operations"). Typically when using CLI, each operation is independent and the debugger is shut down after the command is run.
Does the address for the verification failure constantly change?
Also, when you actually look at the address in question (via UniFlash GUI), is the value indeed incorrect?