Customizing an IPL

If you need to customize your IPL, it's best to work from an existing one, and preferably one for an SoC similar to the one you are using for your project.

The source code for a QNX IPLs is available in the QNX BSP for the relevant hardware platform. It is stored in a directory under bsp_working_dir/src/hardware/ipl/boards/. The source tree structure looks like this:

Figure 1. The IPL source code directory structure.
Note: If your board uses only a U-Boot bootloader, your BSP may not have an ipl directory.

The first thing you should do before you begin customizing an IPL is to review and understand the QNX-supplied IPL for your board. If there is no BSP for the board you are using, start with a BSP for the board that most closely resembles the board you are using.

When you have reviewed and understood the QNX IPL, you will need to complete the following tasks to create a custom IPL:

  1. Create a new directory under bsp_working_dir/src/hardware/ipl/boards with your board name.
  2. Copy all files and subdirectories from a similar board into the new directory.
  3. Modify the files as appropriate.
  4. Rebuild your BSP with the new IPL (see Building a BSP in the Using a BSP chapter, and the BSP User's Guide for the BSP from which you started your work).
Note: Systems that boot from disk or over the network typically come with an APIC (x86) or ROM monitor (ARM), which already contains a large part of the IPL. If this is the case for your system, you can probably skip directly to the Startup Programs chapter.