6.3.x to 6.4.x Board Support Package migration guide.#

Executing a 6.3.x BSP's binaries on a 6.4.x target#

This section discusses how to use binaries built for a Neutrino 6.3.x environment. It's assumed that the reader has pre-built binaries from a 6.3.x environment and will use them to generate a new image for 6.4.x. In order to use 6.4.x you need to modify you buildfile and create a new image to include new feature such as io-pkt and new libc.so library. Please refer to the Modify the build file section below for more details.

6.3.x binary compatiblity#

All 6.3.x driver binaries should be compatible with 6.4.x except for audio drivers (/deva) and block device driver (/devb). The /deva and /devb drivers should compile on 6.4.x with no or minor code changes. Please refer to section Compiling the BSP for more details.

Networking under 6.4.x#

Io-net is no longer available under 6.4.x and has been replaced with io-pkt. In order to use a native io-net driver under 6.4.x you need to include the devnp-shim.so, one of the available io-pkt version and our io-net native driver. For more information about networking under 6.4.x visit our networking project and the io-net migration : page.

Note: It is recommend to use a native io-pkt driver (devnp-pkt) when ever possible. In that case the devnp-shim.so is not required in the build file.

Compiling/Migrating a 6.3.x BSP with the 6.4.x SDP#

This section discusses how to compile a 6.3.x BSP with a 6.4.x toolchain. It is assumed that the reader has a 6.3.x zip archive of the BSP to be migrated.

Note: Before you begin, check the http://community.qnx.com/sf/wiki/do/viewPage/projects.bsp/wiki/BSPAndDrivers download page to see if there is a 6.4.x version of the BSP.

Setup your Environment#

Note: Make sure you run the latest version of setenv.sh, otherwise it may get some build error in windows command line. Please check the Attachments files to download the latest version of setenv.sh script.

Modify the build file#

Here are some important changes that need to be made to the buildfile in order to successfully migrate a BSP to 6.4.x.

6.4.x ships with io-pkt

The buildfile needs to include the io-pkt binaries if networking is required:

Here is an example of how to start io-pkt on the i.mx31 platform :

io-pkt-v4 -dcrys8900-mx31ads ioport=0xb4020300,irq=168

For more information on io-pkt, please goto the core networking project page.

ldqnx.so.2 symlink

The buildfile needs to be updated such that:

procmgr_symlink ../../proc/boot/libc.so.3 /usr/lib/ldqnx.so.2

legacy binary support

The buildfile will need to include libc.so.2 in order to execute pre-6.4.x binaries.

Compiling the BSP#

To compile the BSP, cd to the root of the BSP and type make. If all goes well, then an IFS image will be generated and stores in the images directory.

Below are known issues when compiling a 6.3.x BSP using 6.4.x:

Compiler upgrade for 6.4.x

The 6.3.x BSP being migrated may not compile because of the compiler upgrade in Momentics 6.4.x which ships with GCC 4.x. Here is a link to some common compilation errors.


As part of 6.4.x the following is being enforced on mmap:

Posix requires that you specify MAP_PRIVATE or MAP_SHARED as one of the mmap() flags, but earlier versions of our OS let you get away without doing that and assumed MAP_PRIVATE.

Note to maintainers: this page is referenced outside of Foundry27, please do not move to a different URL