Project Home
Project Home
Wiki
Wiki
Project Information
Project Info
wiki2712: PRE640BSP_migrationDoc (Version 3)

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

Compiling/Migrating a 6.3.X BSP in with a 6.4.0 host#

This section discusses how to compile a 6.3.x BSP on a 6.4.0 host. 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.0 version of the BSP.

Setup your Environment#

  • open a shell
  • create a working directory (workdir)
  • unzip BSP archive zipfile to workdir ; cd workdir
  • Copy the attached setenv.sh script to workdir
  • execute: ". ./setenv.sh" to setup the enviroment

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.0.

6.4.0 ships with io-pkt

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

  • io-pkt-v4-hc ( or variant)
  • devnp-shim.so (used for devn driver compatibility)
  • libsockset.so
  • native io-pkt driver (devnp-*.so) or legacy io-net driver (devn-*.so)

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.0 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.

Here are some knows issues when compiling a 6.3.x BSP for 6.4.0:

Compiler upgrade for 6.4.0

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

mmap()

As part of 6.4 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.

IDE#

To come

Known Issues#

None

Attachments:
Text setenv.sh [PRE640BSP_migrationDoc/setenv.sh]