QNX Technical Articles
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
|
Contents
- Running QNX Neutrino 6.3.2 on the Freescale ADS5121e reference boards
- System requirements
- Step 1: Connect your hardware
- Step 2: Build the BSP
- Step 3: Transfer the OS image to the target
- System layout
- Summary of driver commands
- Creating a flash partition
- Fixed issues for this BSP
- Known issues for this BSP
- Technical support
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:
${QNX_TARGET}/usr/help/product/momentics/bookset.html
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
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)
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).
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
- On your host machine, start your favorite terminal
program with these settings:
- Baud: 115200
- Bits: 8
- Stop bits: 1
- Parity: none
- Apply power to the board.
- Configure the board for a TFTP transfer.
- 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.
Serial
- Command:
- devc-sermpc512x -c 66000000 -b 115200 -p 3 -e -F -S -x 40
For ADS5121e HW Rev 2D and later, the clock frequency is 66MHz; For ADS5121e HW Rev 2, the clock frequency is 99MHz
PCI
- Command:
- pci-mpc5121
- Notes:
- Required binaries:
- pci-mpc5121
- pci
EIDE Block
- Command:
- devb-eide-mpc5121 eide nobmstr
- Notes:
- Required binaries:
- devb-eide-mpc5121
- libcam.so
- io-blk.so
- cam-xxx.so
- fs-xxx.so
Network
- Command:
- io-net -d mpc5121 mac=662200043039 verbose -ptcpip
- Notes:
- Required libraries and binaries:
- devn-mpc5121.so
- libsocket.so
- npm-tcpip.so
- io-net
- ifconfig
- nicinfo
- netstat
- ping
CAN
- Command:
- dev-can-mpc5121 -u 0 can0
- Notes:
- Required binaries:
- dev-can-mpc5121
NOR Flash
- Command:
- devf-mgt5200 -s0xfc000000,64M -r
- Notes:
- Required binaries:
- devf-mgt5200
- flashctl
NAND Flash
- Command:
- fs-etfs-mpc5121 -m /fs/etfs
- Notes:
- Required binaries:
- fs-etfs-mpc5121
- etfsctl
USB
- Command:
- 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
- Command:
- spi-master -d mpc5121
- Notes:
- Required libraries and binaries:
- spi-mpc5121.so
- spi-master
Audio AC97
- Command:
- 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
- Command:
- 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
- Command:
- i2c-mpc5200 -o1 -p0x8001700 -c100000000 -i9
- Notes:
- Required binaries:
- i2c-mpc5200
Graphics
- Command:
- 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
- Command:
- mpc512x_dma_cfg -c
- Notes:
- Required libraries and binaries:
- mpc512x_dma_cfg
RTC
- Command:
- rtc m41t6x
- rtc -s m41t6x
- Notes: The rtc command must be run after the I2C driver is active
- Required binaries:
- rtc
- date
- i2c-mpc5200
For more information about these commands, see the Neutrino Utilities Reference. |
Creating a flash partition
- Enter the following command to start the flash
filesystem driver:
devf-mgt5200 -s0xfc000000,64M -r
- To prepare the area for the partition, enter the
following command:
flashctl -p/dev/fs0 -o7m -l50m -ve
- Format the partition:
flashctl -p/dev/fs0p0 -o7m -l50m -vf
- 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.