Execute-in-place (XIP) functionality is the ability to run an application directly from linear flash memory, instead of copying the application into RAM memory and running it from there. To support XIP, a device must be linear in nature, meaning it can be mapped into a memory window and read directly through the window as if the linear flash memory were RAM or ROM. Among linear flash memory devices, only NOR-based devices, such as minicards or resident flash arrays, can be used for XIP. NAND-based devices, such as DiskOnChip do not support XIP because they use complicated access methods to access memory cells within the device. For example, the electrical specifications of DiskOnChip match those of disk drives; disk drives are block devices, and therefore cannot be used to read individual addresses.
Implementing XIP from a built-in linear flash memory device does not require use of the TrueFFS driver. It is required only to install a file system on a linear flash memory device and access it as a random-access storage device. XIP does not need a file system; therefore, implementing XIP does not require use of the TrueFFS driver. An OEM can implement XIP if the target platform provides built-in linear flash memory, such as a resident flash array, or PC Card–based linear flash memory that can be mapped into the system’s address space.
OEMs should consider the following factors when implementing XIP from a linear flash memory device:
For additional information about implementation, see Booting Windows CE from Linear Flash Memory.