The ROM code can boot directly from XIP devices, such as NOR flash memories, that have the following characteristics:
- The GPMC is the communication interface.
- Memories up to 1Gibit (128MiB) can be connected.
- 8-bit or 16-bit data bus width, configured through sysboot[13] (=1 for 16-bit)
- Non-muxed or address/data multiplexed mode, configured through sysboot[12:11] (=0x1 for A/D mux)
- The GPMC clock is 133 MHz.
- The device is connected to CS0 mapped to address 0x0800 0000.
- The wait pin gpmc_wait0 signal is monitored according to the sysboot[10] configuration pin (=1 is enabled)
For an XIP memory booting, no user intervention is required; the following debugging steps are described. Only the CH, which is not mandatory, lets users change clock settings and GPMC parameters. Failure in CH copying causes a return to the main booting procedure, which selects the next device for booting.
Booting from an XIP device consists of the following steps:
- Configure the GPMC for XIP device access.
- Verify that the CH is present at address 0x0800 0000. If the CH is present, copy the entire sector (512 bytes) to internal RAM and execute the CH.
- Set the image location:
- 0x0800 0000 if the CH is not found
- 0x0800 0200 if the CH is found
- Verify that a bootable image is at the image location.
- If the image is found, execute it.
- If the image is not found, return from XIP booting to the main booting loop.