The General-Purpose Memory Controller (GPMC) with
Error Location Module (ELM) is dedicated for
interfacing with external memory devices and has
the following main features:
- Support of 8- or 16-bit-wide data path to
external memory devices
- Supports up to 4 independent chip-select regions
of programmable size and programmable base
addresses on 16MB, 32MB, 64MB, or 128MB boundary
in a total address space of 1GB
- Support of the following wide range of external
memories/devices:
- Asynchronous or synchronous 8-bit wide memory or
device (non-burst device)
- Asynchronous or synchronous 16-bit wide memory or
device
- 16-bit non-multiplexed NOR flash device
- 16-bit address and data multiplexed NOR flash
device
- 8-bit and 16-bit NAND flash device
- 16-bit pseudo-SRAM (pSRAM) device
- Supports various interface protocols when
communicating with external memory or external
devices:
- Asynchronous read/write access
- Asynchronous read page access (4, 8, and 16
Word16)
- Synchronous read/write access
- Synchronous read burst access without wrap
capability (4, 8, and 16 Word16)
- Synchronous read burst access with wrap
capability (4, 8, and 16 Word16)
- Supports on-the-fly error code detection using
the Bose-Chaudhuri-Hocquenghem (BCH) or Hamming
code to improve the reliability of NAND with a
minimum effect on software (NAND flash with
512-byte page size or greater)
- ELM module which used in a conjunction with the
GPMC and provides ECC calculation (up to 16-bit)
for NAND support and ability to work in both
page-based and continuous modes, has the following
main features:
- 4, 8, and 16 bits per 512-byte block
error-location, based on BCH algorithms
- Eight simultaneous processing contexts
- Page-based and continuous modes
- Interrupt generation on error-location process
completion