Developer Resources
Technical Articles

QNX Technical Articles

QNX Momentics 6.3.2 Freescale ADS5121e Board Support Package 1.0.0 Release Notes

QNX® Momentics® 6.3.2 Freescale ADS5121e Board Support Package 1.0.0 Release Notes

Date of this edition: October 08, 2008

Target OS: This BSP is compatible with targets running the QNX® Neutrino® RTOS 6.3.2.

Host OS: In order to use this BSP, you must have installed QNX Momentics 6.3.2 as a self-hosted QNX® Neutrino® system, or on one of the following development hosts:

  • Microsoft Windows Vista, XP SP2, or 2000 SP4
  • Linux Red Hat Enterprise Workstation 4 or 5, Red Hat Fedora Core 6 or 7, Ubuntu 6.0.6 LTS or 7.0.4, or SUSE 10

Boards supported: Freescale ADS5121e reference boards

  • For information on installing this BSP, see the installation note.
  • Ensure you've installed the latest version of the QNX Momentics Character Driver Development Kit (DDK), because we've made significant changes to it since we first released it; for more information, see the Character DDK Release Notes.
  • For the most up-to-date version of these release notes, go to our website (www.qnx.com), log into your myQNX account, and then go to the Download area.


Throughout this document, you may see reference numbers associated with particular issues, changes, etc. When corresponding with QNX Technical Support staff about a given issue, please quote the relevant reference number. You might also find the reference numbers useful for tracking issues as they become fixed.

Running QNX Neutrino 6.3.2 on the Freescale ADS5121e reference boards

Before you begin

For information about the hardware or firmware, refer to the documentation for your board. You may also find the following website useful:


We assume that you're already familiar with the following docs:

Title Chapter
Building Embedded Systems Making an OS image; for customizing the BSP from the command line
Building Embedded Systems Working with a BSP; for building the BSP
IDE User's Guide Building OS and Flash Images; for customizing the BSP within the IDE

What's in this BSP?

This BSP contains:

  • binary components:
    • EIDE block driver
    • Graphics driver
    • USB driver
    • DMA library
    • I2C library
    • SPI library
    • CAN library
    • Util library
    • I/O character library
    • canctl utility
  • source code:
    • Startup
    • CAN driver
    • AC97 audio driver
    • I2S audio driver
    • Serial driver
    • Network driver
    • NAND flash driver
    • NOR flash driver
    • I2C driver
    • SPI driver
    • PCI driver
    • DMA library
    • RTC utility
    • DMA mutex utility
  • Freescale ADS5121e Board Support Package release notes (HTML)

Each BSP guide contains board-specific information and instructions on building an OS image for that particular board.

Location of source and documentation

When you install BSPs, you'll find the source code in $QNX_TARGET\usr\src\archives\qnx\ on Windows, and in $QNX_TARGET/usr/src/archives/qnx/ on QNX Neutrino and Linux.

You can read the documentation (including release notes) in the Integrated Development Environment's help system on all host OSs; on self-hosted QNX Neutrino systems, you can also read it in the Photon helpviewer, or you can use a web browser to display:


This “roadmap” page contains links to the various HTML booksets that accompany the OS (e.g. System Architecture, QNX Neutrino Programmer's Guide, Library Reference, Utilities Reference, etc.).

Binaries, buildfiles, IPLs, and other files

Depending on the particular BSP and type of driver, you'll find the files in these locations:

Windows hosts

File Location
Buildfile $QNX_TARGET\cpu\boot\build
IPL and/or startup $QNX_TARGET\cpu\boot\sys
sbin drivers (serial, flash, block, PCI, PCMCIA, USB) $QNX_TARGET\cpu\sbin
dll drivers (audio, graphics, network) $QNX_TARGET\cpu\lib\dll

QNX Neutrino and Linux hosts

File Location
Buildfile $QNX_TARGET/cpu/boot/build
IPL and/or startup $QNX_TARGET/cpu/boot/sys
bin drivers (serial, flash, block, PCI, PCMCIA, USB) $QNX_TARGET/cpu/bin
dll drivers (audio, graphics, network) $QNX_TARGET/cpu/lib/dll

Devices supported

Neutrino supports the following devices on the Freescale ADS5121e reference boards:

  • CAN: MSCAN controllers
  • AUDIO: AC'97-compliant onboard audio controller
  • AUDIO: I2S audio controller
  • SERIAL: Programmable serial controller
  • GRAPHICS: Fujitsu coralPA
  • NETWORK: 10/100 BASE-T ethernet controller
  • BLOCK: ATA/ATAPI Interface
  • NAND FLASH: 512MB HYNIX HY27UG088G5M NAND flash (Only support CE1 at this point)
  • NOR FLASH: 64MB Spansion GL256N11FFI02
  • I2C: Inter-Integrated circuit protocol module
  • SPI: Programmable serial controller
  • PCI: PCI controller
  • USB: EHCI USB host controller

Note: If you need support for a particular device that isn't listed here, please contact us. The solution may be as simple as modifying an existing driver, which you might be able to do yourself, or it may involve more extensive support (e.g. a Custom Engineering arrangement). Contact a QNX technical support representative or Field Application Engineer to help you decide how to proceed.

System requirements

Target system

  • Freescale ADS5121e reference board
  • 64 MB flash
  • U-Boot or IPL

Host development system

  • Terminal emulation program (e.g. HyperTerminal, qtalk, tip, minicom, or Momentics IDE editor)
  • 150 MB of free disk space
  • 32 MB of RAM
  • RS-232 serial port
  • NULL-modem serial cable
  • Ethernet link (optional, but recommended for image transfers)

Note: For other system requirements (e.g. disk, RAM), see the installation notes for QNX Momentics.

Step 1: Connect your hardware

Connect the serial cable to the first serial port of the Freescale ADS5121e reference board and to the first serial port of your host machine (e.g. ser1 on a Neutrino host, /dev/ttyS* on Linux, COM1 on Windows, etc).

Note: If you have a Neutrino host with a serial mouse, you may have to move it to the second serial port on your host, because some terminal programs require the first serial port.

Step 2: Build the BSP

You can build a BSP OS image from the source code or the binary components contained in a BSP package.

For instructions about building a BSP OS image, please refer to the chapter Working with a BSP in the Building Embedded Systems manual.

Step 3: Transfer the OS image to the target

  1. On your host machine, start your favorite terminal program with these settings:
    • Baud: 115200
    • Bits: 8
    • Stop bits: 1
    • Parity: none
  2. Apply power to the board.
  3. Configure the board for a TFTP transfer.
  4. Copy the image from your host to the target using this command:
    tftpboot 0x200000 /xfer/ads5121e.raw
    go 0x200000

You should now see the Neutrino welcome message on your terminal screen:

Welcome to QNX Neutrino 6.3 on the Freescale ADS5121e board

You can now test the OS simply by executing any shell builtin command or any command residing within the OS image (e.g. ls).

System layout

The table below depicts the memory layout for the image and for the flash.

Item Address
OS image loaded at: 0x80200000
OS image begins execution at: 0x80200000
NOR Flash base address 0xfc000000
NAND Flash base address 0x40000000

Summary of driver commands

The driver command lines below are specific to the freescale ADS5121e reference board. See the online docs for each driver for additional command-line options and other details.


devc-sermpc512x -c 66000000 -b 115200 -p 3 -e -F -S -x 40

Note: For ADS5121e HW Rev 2D and later, the clock frequency is 66MHz; For ADS5121e HW Rev 2, the clock frequency is 99MHz


Required binaries:
  • pci-mpc5121
  • pci

EIDE Block

devb-eide-mpc5121 eide nobmstr
Required binaries:
  • devb-eide-mpc5121
  • libcam.so
  • io-blk.so
  • cam-xxx.so
  • fs-xxx.so


io-net -d mpc5121 mac=662200043039 verbose -ptcpip
Required libraries and binaries:
  • devn-mpc5121.so
  • libsocket.so
  • npm-tcpip.so
  • io-net
  • ifconfig
  • nicinfo
  • netstat
  • ping


dev-can-mpc5121 -u 0 can0
Required binaries:
  • dev-can-mpc5121

NOR Flash

devf-mgt5200 -s0xfc000000,64M -r
Required binaries:
  • devf-mgt5200
  • flashctl

NAND Flash

fs-etfs-mpc5121 -m /fs/etfs
Required binaries:
  • fs-etfs-mpc5121
  • etfsctl


io-usb -d ehci-mpc512x ioport=0x80004000,irq=44,verbose=1 -vvv &
Notes: Please use the mini-ATX power supply and remove P1 jumper to obtain the enough power for USB, otherwise the system may reset unexpected.
Required libraries and binaries:
  • devu-ehci-mpc512x.so
  • libusbdi.so
  • io-usb
  • usb
  • devb-umass


spi-master -d mpc5121
Required libraries and binaries:
  • spi-mpc5121.so
  • spi-master

Audio AC97

io-audio -d mpc512x
Notes: DMA mutex infrastructure need to be created before starting this driver
Required libraries and binaries:
  • deva-ctrl-mpc512x.so
  • deva-mixer-ac97.so
  • libasound.so.2
  • deva-util-restore.so
  • libdma-mpc512x.so
  • io-audio

Audio I2S

io-audio -d mpc5121_i2s
Notes: DMA mutex infrastructure need to be created before starting this driver
Required libraries and binaries:
  • deva-ctrl-mpc5121_i2s.so
  • libasound.so.2
  • deva-util-restore.so
  • libdma-mpc512x.so
  • io-audio


i2c-mpc5200 -o1 -p0x8001700 -c100000000 -i9
Required binaries:
  • i2c-mpc5200


io-display -dvid=0,did=0
Notes: The Advanced Graphics Technology Development Kit (TDK) 2.0 with patch 331 are required for this BSP
Required libraries and binaries:
  • devg-mpc5121.so
  • libffb.so.2
  • libgf.so.1
  • io-display
  • vsync
  • display.conf
  • mpc5121.conf

DMA Mutex

mpc512x_dma_cfg -c
Required libraries and binaries:
  • mpc512x_dma_cfg


rtc m41t6x
rtc -s m41t6x
Notes: The rtc command must be run after the I2C driver is active
Required binaries:
  • rtc
  • date
  • i2c-mpc5200

Note: For more information about these commands, see the Neutrino Utilities Reference.

Creating a flash partition

  1. Enter the following command to start the flash filesystem driver:
    devf-mgt5200 -s0xfc000000,64M -r
  2. To prepare the area for the partition, enter the following command:
    flashctl -p/dev/fs0 -o7m -l50m -ve
  3. Format the partition:
    flashctl -p/dev/fs0p0 -o7m -l50m -vf 
  4. Slay, then restart the driver:
    slay devf-mgt5200
    devf-mgt5200 -s0xfc000000,64M -r

You should now have a /fs0p0 directory where you can copy files to.

Fixed issues for this BSP

This version of the BSP addresses the following issues:

Known issues for this BSP

  • The current NAND Flash driver works on ADS5121e Rev3.2 boards. The NAND interface was modified (significantly) for the ADS5121e Rev3.5 and Rev 4 boards. A new NAND Flash driver will be delivered in a follow-on release of the ADS5121e BSP.
  • The current EIDE driver only works in PIO mode. DMA mode will be supported in a follow-on release of the ADS5121e BSP.
  • There are no real audio codec connect to the I2S interface on the board. The I2S audio driver deva-ctrl-mpc5121_i2s.so was tested by loopback mode. An invalid clock rate issue is observed in the loopback mode.
  • The resolution of the playback/capture positional information returned by the audio drivers deva-ctrl-mpc512x.so and deva-ctrl-mpc5121_i2s.so to the client is limited to the fragment size.
  • Don't rename the directory after running setupbsp, or else you won't be able to build or uninstall the BSP properly. (QNX Ref# 38361)
  • If you uninstall this BSP, the uninstaller removes only those files that were originally shipped with the BSP (whether or not you modified them). If you've added any files, they remain on your system. (QNX Ref# 38368)
  • The uninstaller script doesn't remove itself when you uninstall the BSP. (QNX Ref# 38368)
  • If you install a BSP more than once, and then uninstall an instance of it, the documentation for all copies of the BSP is uninstalled. (QNX Ref# 38320)
  • All QNX BSPs ship with an images/Makefile whose purpose is to build an image filesystems (ifs) file using drivers built from source. Currently, it's set up to copy buildfiles from within the source directory structure (source/hardware/startup) to the images directory so that it can generate an ifs. This happens automatically when you do a top-level make, but this mechanism doesn't work when you're making an binary BSP. (QNX Ref# 38242)

    Workaround: For a binary-only BSP, change these lines in the root Makefile:

    all: install links $(if $(wildcard images/*),images)
        @echo done

    to the following:

    all: prebuilt links $(if $(wildcard images/*),images)
        @echo done

Technical support

To obtain technical support for any QNX product, visit the Support + Services area on our website (www.qnx.com). You'll find a wide range of support options, including community forums.