![Intel IXP45X Developer'S Manual Download Page 618](http://html1.mh-extra.com/html/intel/ixp45x/ixp45x_developers-manual_2073092618.webp)
Intel
®
IXP45X and Intel
®
IXP46X Product Line of Network Processors—Memory Controller
Intel
®
IXP45X and Intel
®
IXP46X Product Line of Network Processors
Developer’s Manual
August 2006
618
Order Number: 306262-004US
If the memory transaction writes less than the data bus width programmed in the
SDCR, then the DDRI SDRAM Control Block translates the write transaction into a read-
modify-write transaction. For a partial write, the DDRI SDRAM Control Block calculates
the ECC for the modified datum and writes it back. If an external unit issues a write
cycle with partial data to an MCU port, the MCU:
1. Issues a 32-bit read.
2. Modifies the value with the new portion to be written.
3. Calculates the ECC on the modified value.
4. Writes the 32-bit value and ECC.
Note:
If the MCU detects a single-bit error during the read, it is corrected BEFORE being
merged with the write data so the corrected data is written back to the array. If a
multi-bit error is detected, the MCU causes an interrupt to the core by writing to the
MCISR. The memory location is overwritten by the MCU with the error data but valid
ECC, making the contents of memory invalid. For more details on how the MCU handles
error conditions, see
“Interrupts/Error Conditions” on page 627
.
shows an example where the data of a write transaction is less than 64-bits
wide. The waveform illustrates how the DDRI SDRAM Control Block issues a read-
modify-write cycle for the data (D
1
).
Note:
In 32-bit wide memory, the DDRI SDRAM Control Block will still generate 8-bit wide
ECC by zero extending the data to 64-bits. A partial write is a write of less than
4 Bytes.
Note:
An undefined INCR read from the AHB bus will cause the MCU to read an entire cache
line (8 words). If ECC error correction and detection is enabled, it is necessary to
initialize a complete cache line before performing an undefined INCR read on any words
or bytes within that cache line. If the entire cache line is not initialized and an
undefined INCR read occurs, any bytes or words that were not initialized will be read,
potentially causing an erroneous ECC error.
Note:
ECC must be enabled or disabled in the ECCR MMR before any transaction to DDRI
occurs, and its state must NOT subsequently be changed after DDRI transactions have
begun.