Information
Enhanced Local Bus Controller
MPC8308 PowerQUICC II Pro Processor Reference Manual, Rev. 1
10-58 Freescale Semiconductor
The placement of ECC code words in relation to FMR[ECCM] is shown in Figure 10-49. For small-page
devices, only a single 512-byte main region is ECC-protected. For large-page devices, there are four
adjacent main regions, and each has a 16-byte spare region—of which only one is shown in the figure. If
eLBC is configured to generate ECC (BRn[DECC] = 10), FCM will substitute on full-page write transfers
the three code word bytes in place of the spare region data originally provided at the locations shown in
Figure 10-49 and write the same 24-bit ECC code in the appropriate FECCn register for software
reference. Transfers shorter than a full page, however, require software to prepare the appropriate ECC in
the spare region. Similarly, FCM can check and correct bit errors on full-page reads if BRn[DECC] = 01
or 10. A correctable error is a single bit error in any 512-byte block of main region data, as judged by
comparison of a regenerated ECC with the ECC retrieved from the spare region, or a single bit error in the
retrieved ECC only. Bit errors in the main region are corrected before FCM completes its final read transfer
and signals an event in LTESR[CC]. The bit vector in LTECCR[SBCE] can be checked on FCM CC event
to find out if any 512-byte block or the corresponding ECC have single bit correctable errors. Errors that
appear more complex (two or more bits in error per 512-byte block) are not corrected, but are flagged as
parity errors by FCM. The bit vector in LTEATR[PB] or LTECCR[MBUE] can be checked to determine
which 512-byte blocks in a large-page NAND Flash main region were found to be uncorrectable.
10.4.3.2 Programming FCM
FCM has a fully general command and data transfer sequencer that caters for both common and
specific/proprietary NAND Flash command sequences. The command sequencer reads a program out of
the FIR register, which can hold up to 8 instructions, each represented by a 4-bit op-code, as illustrated in
Figure 10-50. The first instruction executed is read from FIR[OP0], the next is read from FIR[OP1], and
likewise to subsequent instructions, ending at FIR[OP7] or until the only instructions remaining are NOPs.
If FIR contains nothing but NOP instructions, FCM will not assert LCSn, otherwise, LCSn is asserted prior
to the first instruction and remains asserted until the last instruction has completed. If LTESR[CC] is
enabled, completion of the last instruction will trigger a command completion event interrupt from eLBC.
Prior to executing a sequence, necessary operands for the instructions will need to be set in the FMR, FCR,
MDR, FBCR, FBAR, and FPAR registers. The AS0–AS3 address and data pointers associated with FCM’s
use of MDR all reset to select AS0 at the start of the instruction sequence. A complete list of op-codes can
be found in Section 10.3.1.18, “Flash Instruction Register (FIR).”
ECCM
Byte 0 Byte 511Other MainsSpare 0 56789101112131415
0 Main Region —EC0EC1EC2 —
1 Main Region —EC0EC1EC2—
Figure 10-49. ECC Placement in NAND Flash Spare Regions in Relation to FMR[ECCM]