| |||
| Home > System Architecture > Flash memory | |||
The baseboard can be built with 16, 32, or 64MB of flash using 64 or 128Mb devices. (Typically, 16MB of flash is used.) Regardless of the size of flash memory, the top 256KB of the flash device is reserved for the system boot code. The remaining flash memory is available for your own code requirements.
The physical address of the boot code varies according to
the amount of flash fitted as shown in Figure 3.4. The true start of flash is 0x24000000 and
the flash extends to the size of the device fitted. For convenience,
and to maintain compatibility with previous Integrator systems,
a boot code alias region is provided at 0x20000000 and
contains 256 aliased copies of the 256KB boot code area.
The bottom of the memory map is a configurable region. If
the REMAP bit is 0, flash memory appears at 0x0.
See the documentation supplied with your core module for more information
on REMAP.
Switch S2[1] selects boot or user code at 0x0,
see Setting the DIP switches.
The copies of the boot code at 0x20000000 are
aliases. The boot code can also be mapped to 0x00000000 by
setting REMAP to 0 and setting SW2[1] to 1.
For more information on REMAP, see the documentation provided with the core module.
Table 3.3 shows the mapping of the flash memory for 16, 32, and 64MB configurations.
Table 3.3. Flash memory mapping
| Memory | Address range | Content |
|---|---|---|
| 16MB | 0x00000000–0x000FFFFF | four copies of 0x24FC0000–0x24FFFFFF (REMAP= 0) |
0x20000000–0x23FFFFFF | 256 copies of 0x24FC0000–0x24FFFFFF | |
0x24000000–0x24FBFFFF | User code area | |
0x24FC0000–0x24FFFFFF | Boot code area | |
0x25000000–0x27FFFFFF | Not selected, reads return undefined values | |
| 32MB | 0x00000000–0x000FFFFF | four copies of 0x25FC0000–0x25FFFFFF (REMAP= 0) |
0x20000000–0x23FFFFFF | 256 copies of 0x25FC0000–0x25FFFFFF | |
0x24000000–0x25FBFFFF | User code area | |
0x25FC0000–0x25FFFFFF | Boot code area | |
0x26000000–0x27FFFFFF | Not selected, reads return undefined values | |
| 64MB | 0x00000000–0x000FFFFF | four copies of 0x27FC0000–0x27FFFFFF (REMAP= 0) |
0x20000000–0x23FFFFFF | 256 copies of 0x27FC0000–0x27FFFFFF | |
0x24000000–0x27FBFFFF | User code area | |
0x27FC0000–0x27FFFFFF | Boot code area |
The programmable logic device on the baseboard provides an AHB slave interface to the flash. Two links, EXTRABANK and FLASHSIZE are set at build time to indicate to the slave interface how many devices are fitted and their type (see Table 3.4).