Other Parts Discussed in Thread: CONTROLSUITE
Hi, Champs,
My customer is using F28075 and their product is going to mass production, but recently they found 5pcs boards can't run the program standalone after loading the flash image (with emulator connected after load, it can fully run).
I supported them on-site debug with emulator connected and found the codes will stuck in BOOT ROM (address: 0x3FE444), where is the interrupt void c1brom_handle_nmi() function to handle FLUNCERR in c1brom_interrupts.c source file under folder C:\ti\controlSUITE\libs\utilities\boot_rom\F2807x\revB\rom_sources\F2837x_bootROM\cpu01-bootROM\source:
if(c1brom_nmi_status & NMI_INT_FLUNCERR) /*check for C28FLUNCERR NMI */
{
c1brom_status |= C1_BOOTROM_GOT_A_FLASH_UNCERR_NMI;
//if debugger connected - give a chance to user to know the scenario
asm(" ESTOP0");
//let NMIWD reset the device
while(1);
}
We then identified that NMIFLG.bit.FLUNCERR=1, ERR_STATUS.bit.UNC_ERR_L=1 and UNC_ERR_ADDR_L=0x78010, which means there's an uncorrectable error occurs in the lower 64-bits of a 128-bit memory-aligned data.
Customer software does write value of 0xFFFE to that location, and we observed the content there, it's exactly 0xFFFE as well, but why ECC detected it as uncorrectable error? And how should we handle it as every time to power on, it can not standalone run but will always stuck in the BOOT ROM.
As customer's software is identical and most of their control boards can work well with the same content in 0x78010, do you think it has anything to do with the silicon?
Best Regards,
Ricky Zhang