Initial Program Loaders (IPLs)
QNX SDP8.0Building Embedded SystemsConfigurationDeveloper
	IPLs first set up the minimum environment needed to execute their compiled C code, then find the OS image and load it into memory, and then jump to the QNX startup code.
An IPL is minimalist; it uses as little code as possible to get the startup code to run.
				An IPL performs the following tasks, in sequence:
				
			- Complete hardware initializations, if needed.
 - Set up a stack for the C-language environment.
 - Find and validate the OS image.
 - Load the OS image into memory.
 - Jump to the startup code in the OS image.
 
An IPL can be stored on either a linearly mapped device, such as a NOR Flash memory
				device, or a non-linearly mapped device, such as an eMMC, SD card, or SPI NOR Flash
				device. Like the board architecture, the type of memory device on which the IPL and
				the OS image are stored determines the design of the IPL (see the next section and
				Image storage
 later in this chapter).
Factors affecting IPL design
The design and content of an IPL are affected by numerous factors, including:
				
		- Board
 - IPLs are target architecture-specific. IPLs for x86 processors and ARM
							processors are very different (see 
From reset to startup
). - Supported removeable media
 - The type of removable media that the board retrieves the boot image from determines the boot strategies and techniques that the IPL can use.
 - Size of the storage media
 - Whether the IFS image is compressed or uncompressed depends on the size and performance of the storage media.
 
Page updated: 
