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

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#

  • open a shell ( for windows: run 'bash' which is included with Momentics 6.4.x)
  • 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.

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:

  • io-pkt-v4-hc ( or variant)
  • devnp-shim.so (used for devn driver compatibility)
  • libsocket.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.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.

mmap()

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
Attachments:
Text setenv.sh [PRE640BSP_migrationDoc/setenv.sh]



Active Tab Versions Inactive Tab - left sideAssociations Inactive Tab - left sideAttachments (1) Inactive Tab - left sideBack LinksInactive Tab - right side  
    Version From To Version Comment Created By
    Version 16 updated GCC compiler info Shawn Lennox(deleted)  -  05/26/2009
    Version 15 fixed typos Shawn Lennox(deleted)  -  05/26/2009
    Version 14 updated for Momentics 6.4.1 Shawn Lennox(deleted)  -  05/26/2009
    Version 13 Eric Naud  -  02/20/2009
    Version 12 Fixed typo Frederic Plante(deleted)  -  12/01/2008
    Version 11 Fixing a typo with the GCC version ship on 6.4.0 Nicolas Gagnon(deleted)  -  11/04/2008
    Version 10 Nicolas Gagnon(deleted)  -  10/27/2008
    Version 9 Nicolas Gagnon(deleted)  -  10/27/2008
    Version 8 added info about setupbsp Shawn Lennox(deleted)  -  10/21/2008
    Version 7 revised comment about bash under windows Shawn Lennox(deleted)  -  10/21/2008
    Version 6 added note about bash under windows Shawn Lennox(deleted)  -  10/21/2008
    Version 5 Nicolas Gagnon(deleted)  -  10/21/2008
    Version 4 Frederic Plante(deleted)  -  10/20/2008
    Version 3 added IDE and Known Issues Shawn Lennox(deleted)  -  10/20/2008
    Version 2 Initial revision Shawn Lennox(deleted)  -  10/20/2008
    Version 1 Nicolas Gagnon(deleted)  -  10/01/2008