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

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

Executing a 6.3.x BSP's binaries on a 6.4.0 host#

This section discuss how to use binaries build under a 6.3.x Neutrino environment. It is assume that the reader has pre-build binaries from a 6.3.x environment and will use them to generate a new image for 6.4.0. In order to use 6.4.0 you need to modify you build file 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 except for audio drivers (/deva) and block device driver (/devb). The /deva and /devb drivers should compile on 6.4 with no or minor code changes. Please refer to section Compiling the BSP for more details.

Networking under 6.4.0#

Io-net is no longer available under 6.4.0 and has been replaced with io-pkt. In order to use a native io-net driver under 6.4.0 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.0 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 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 ( for windows: run 'bash' which is included with Momentics 6.4.0)
  • 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
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.

Alternative Setup for Open BSPs#

The setupbsp script included in Momentics 6.3.2 has been migrated to 6.4.0 and can be used to install the BSP as an alternative to unzipping the zipfile archive directly.
  • From shell, run: "setupbsp workdir archive.zip"
  • When prompted to build the BSP, type 'n' so that migration can be complete before building.

For more information type "use setupbsp" from the shell.

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.

Below are known issues when compiling a 6.3.x BSP using 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.4. 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



Note to maintainers: this page is referenced outside of Foundry27, please do not move to a different URL
Attachments:
Text setenv.sh [PRE640BSP_migrationDoc/setenv.sh]