Update the startup and IPL library source

Every QNX BSP includes a current snapshot of the QNX startup library code, and for those BSPs that also include an Initial Program Loader (IPL), we also include the source to the IPL library. Since we’re updating a QNX 6.5.0 BSP to QNX SDP 6.6 and because the QNX SDP 6.6 version of the startup library (and IPL library) code includes various QNX SDP 6.6 BSPs, it’s a simple operation to do a replacement of the QNX 6.5.0 library source with the equivalent QNX SDP 6.6 version.

The startup library code has undergone a number of significant updates, which correspond to various new features and functionality of the QNX SDP 6.6 kernel, so updating the startup library code will definitely reduce the likelihood of compatibility issues and crashes when you attempt to run your updated QNX 6.5.0 BSP in a QNX SDP 6.6 environment.

To update the startup and IPL library source:
  1. Assuming you’ve already downloaded a current QNX SDP 6.6 BSP for the same CPU architecture as the BSP that you’re updating, you can type the following commands:
    # cd /root/bsps/sabrelite_650/src/hardware/startup/
    # rm –Rf lib
    # cp –R /root/bsps/sabrelite_660/src/hardware/startup/lib .
    # cd ../ipl
    # rm –Rf lib
    # cp –R /root/bsps/sabrelite_660/src/hardware/ipl/lib
  2. Return to the BSP root directory and run the following commands again:
    # cd /root/bsps/sabrelite_650/
    # make clean  (this command will remove all of the contents of the /install directory)
    # make

Now, your startup code should be compatible with the QNX SDP 6.6 kernel and environment. In addition, you'll gain the added benefit of replacing library source code that would have otherwise generated many warnings (due to compiling with a newer, more strict version of the GNU/gcc toolchain), with library source code that's already been modified for compilation under the QNX SDP 6.6 toolchain.

In general, the same procedure can (and should) be done for any other source that typically ships with QNX BSPs (for example, DMA library source, standard device drivers, etc.). It may save you significant time and effort to take a look through the various QNX SDP 6.6 BSP offerings, and see what source code is available that might be compatible with devices or hardware that you’re attempting to port from an existing QNX 6.5.0 BSP. As an example; earlier, we compared the serial driver source code from the original QNX 6.5.0 BSP to the same source code in the current QNX SDP 6.6 BSP, to see what changes were necessary to get the 6.5.0 version to build. Although this was useful for illustration purposes, a better solution would be to replace the original QNX 6.5.0 version of the serial driver with the QNX SDP 6.6 version because the newer version is available.