[Calypso6M Reset Issue] - Double Bit ECC errors detected during Flash usage for EEPROM Emulation

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

[Calypso6M Reset Issue] - Double Bit ECC errors detected during Flash usage for EEPROM Emulation

1,200 Views
kpitsupportshas
Contributor I

Dear Support Team,

 

We have integrated the NXP MCAL version MPC574XG_MCAL_1_0_1_RTM_ASR_REL_4_0_REV_0003_20150710  to the Calypso6M (part number SPC5748CMMJ6, mask 1N81M). The NXP flash driver and NXP Flash EEPROM Emulation Module are currently configured to utilise sectors starting 0x00FB0000 and 0x00FB8000 for NVM purposes.

 

We have been experiencing recently a double bit ECC error detection in the EEPROM Emulation Memory on the latest hardware samples that we have received. We have done analysis on the issue and have observed that the failed parts have the Error Flag set in the MEMU_0 for the Flash and SRAM (ERR_FLAG set to 0x00000A08). The flash memory area that has been reported to be faulty is 0x00FB0000, 0x00FB0008 (FLASH_UNCERR_ADDR set to 0x00FB0000 or 0x00FB0008). The same is the case with the SYS RAM (SYS_RAM_UNCERR_ADDR set to 0x00FB0000 or 0x00FB0008).

 

Apart from handling the corrupt flash area, we wanted to understand the reason for the flash area to be corrupted during NVM emulation and if there are known issues/application notes available for the issue.

 

I have attached the CPU register snapshot for the working and non-working ECU for your reference.

 

Regards,

Nijeesh

Original Attachment has been moved to: Flash_ForWorkingECU-(1).txt.zip

Original Attachment has been moved to: Flash_ForNotWorkingECU.txt.zip

Labels (1)
0 Kudos
3 Replies

755 Views
lukaszadrapa
NXP TechSupport
NXP TechSupport

The feature (replacing of corrupted word by illegal instruction + suppression of report to MEMU) is NOT working on this device. The description will be removed from reference manual.

That means that exception is always triggered when double bit error occurs in flash. It doesn’t matter if the flash block is dedicated for EEPROM Emulation or not. So, the exception must be handled appropriately.

Regards,

Lukas

0 Kudos

755 Views
lukaszadrapa
NXP TechSupport
NXP TechSupport

It looks like exception is triggered also on flash blocks dedicated for EEPROM emulation. Need to confirm this with design...

Lukas

0 Kudos

755 Views
lukaszadrapa
NXP TechSupport
NXP TechSupport

Hi,

ECC error can occur:

- when erase/program operation is terminated by unexpected reset, so the flash is left in undetermined state.

- when we program double word which is not fully erased (over-programming)

- when too many erase/program cycles have been performed (wear-out)

In case of EEPROM Emulation, the most common reason is unexpected reset.

Flash block dedicated for EEPROM do not report ECC errors to the MEMU. Single bit errors are corrected, multi-bit errors are replaced by fixed word 0x1555_1555 (representing an illegal instruction) and are not forwarded to the MEMU. It is user responsibility to check the returned value and also corresponding flags.

EEPROM Emulation driver use EER_OPTION to distinguish between devices. All MPC56xx and also MPC5777C use exception handler, other MPC57xx works as described above.

When ECC error occurs in the flash, the solution is to erase affected block. EEPROM Emulation driver does that automatically.

Regards,

Lukas

0 Kudos