Flash Controller Memory Module
545
SPRUHE8E – October 2012 – Revised November 2019
Copyright © 2012–2019, Texas Instruments Incorporated
Internal Memory
4. Do one dummy read from each bank to turn on the bank.
5. Flush the data cache by reading two flash locations separated by at least 32 bytes. The read data
should be ignored for these reads.
6. Wait 1 us
Any reads will now be with the selected read margins. The application can now return to flash if desired.
To exit read-margin mode:
1. Start execution out of RAM
2. Turn off read margin 0 or 1 by writing 0 to the FSPRD register
3. Flush the data cache by reading two flash locations separated by at least 32 bytes. The read data
should be ignored for these reads.
4. Wait 1 µs
Any reads will now be a standard read. The application can now return to flash if desired. The application
can also set the FBFALLBACK register to the original values.
To change one read margin mode to the other:
1. Follow the procedure above to exit read margin mode.
2. Follow the procedure above to enter read margin mode.
5.3.10 Error Correction Code (ECC) Protection
M3-FMC and C28x-FMC contain an embedded single error correction and double error detection
(SECDED) module. SECDED, when enabled, provides the capability to screen out memory faults.
SECDED can detect and correct single-bit data errors and detect address errors/double-bit data errors.
For every 64 bits of flash/OTP data (aligned on a 64-bit memory boundary) that is programmed, eight ECC
check bits have to be calculated and programmed in ECC memory space. Refer to the device data
manual for the flash/OTP ECC memory map.
SECDED works with a total of eight user-calculated error correction code (ECC) check bits associated
with each 64-bit wide data word and its corresponding 128-bit memory-aligned address. Users must
program ECC check bits along with flash data. TI recommends using the AutoEccGeneration option
available in the Plugin/API to program the ECC.
illustrates the ECC logic inputs and outputs.
The Flash API uses hardware ECC logic in the device to generate the ECC data for the given flash data.
The Flash plugin and UniFlash use Flash APIs to generate and program ECC data.