AnsweredAssumed Answered

MQX TWRMCF54418 Boot Loader Bug

Question asked by DARYL WARKENTIN on Aug 29, 2016
Latest reply on Sep 20, 2016 by DARYL WARKENTIN

The NAND FLASH boot loader code in the TWRMCF54418 bsp has a bug that prevents bit errors from being corrected when firmware images are transferred from FLASH to RAM.

 

In the file mqx/source/bsp/twrmcf54418/bootstrap.c the page transfers are configured for 2kb plus the full spare data length (2kb + 64 bytes) but this overloads the ECC engine and causes it to always report 32-bit errors and prevents it from correcting actual bit errors. The correct transfer length is 2kb + 60 bytes which includes the exact number of ECC bytes and no extra bytes.

 

nfc_ptr->SECSZ = BSP_PHYSICAL_PAGE_SIZE + NANDFLASH_SPARE_AREA_SIZE;

 

needs to be changed to

 

nfc_ptr->SECSZ = BSP_PHYSICAL_PAGE_SIZE + 60;

 

I've checked MQX 4.0 to 4.2 and all versions were affected.

Outcomes