© 2008, QNX Software Systems GmbH & Co. KG. All rights reserved.
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 |
See the latest release notes for details on what is included in this BSP.
Neutrino supports the following devices on the TI Jacinto EVM:
![]() |
|
![]() |
For other system requirements (e.g. disk, RAM), see the installation notes for QNX Momentics. |
![]() |
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. |
You can build a BSP OS image from the source code contained in the 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.
![]() |
Make sure the host machine is capable of handling TFTP requests (see inetd documentation for details). |
U-Boot 1.1.3 (Jan 22 2007 - 16:13:39)
U-Boot code: 62080000 -> 620977D0 BSS: -> 6209C4C8
RAM Configuration:
Bank #0: 60000000 128 MB
******************** DRI version 0.05 *******************
qjwang@ti.com
ARM Clock :- 324MHz
SDRAM Clock :- 110MHz
SPANSION NOR Flash: 64 MB
In: serial
Out: serial
Err: serial
Hit any key to stop autoboot: 3
Jacinto #
Jacinto # printenv
Jacinto # setenv netmask 255.255.240.0 Jacinto # setenv ipaddr 10.42.101.242 Jacinto # setenv gatewayip 10.42.96.1 Jacinto # setenv serverip 10.42.98.211 Jacinto # setenv 'bootcmd tftpboot 40010000;go 40010000'
Jacinto # saveenv
Using MAC Address 00:0E:99:02:61:53
TFTP from server 10.42.98.211; our IP address is 10.42.101.242
Filename 'ifs-jacinto.raw'.
Load address: 0x40010000
Loading: T T T T T T T #################################################################
##########################################################
done
Bytes transferred = 627276 (9924c hex)
## Starting application at 0x40010000 ...
Dcache: 512x32 WB
Icache: 512x32
arm926 rev 5 324MHz
System page at phys:40166000 user:fc404000 kern:fc404000
Starting next program at vfe0203a4
Welcome to QNX Neutrino 6.x on a TI Jacinto EVM
#
![]() |
Before burning the IPL, you might want to save the first 1 MB of flash in order to save the ROM monitor. |
# ./mkflashimage
![]() |
You need to change the default image filename to ifs-jacinto.bin, and you can ignore the warning message “Warning: Output file cannot represent architecture UNKNOWN!” |
# devf-generic -s0x20000000,64M # flashctl -p/dev/fs0 -l6M -ve # cp -V /dev/shmem/ipl-ifs-jacinto.bin /dev/fs0
![]() |
When booting serially, images larger than 6 MB won't load unless you first modify the IPL source. |
You can test the OS simply by executing any shell builtin command or any command residing within the OS image (e.g. ls).
Once the initial image is running, you can update the OS image using the network and flash drivers. For sample command lines, please see the “Summary of driver commands” section.
The table below depicts the memory layout for the image and for the flash.
| Item | Address |
|---|---|
| OS image loaded at: | 0x40010000 |
| Flash base address | 0x20000000 |
The driver command lines below are specific to the TI Jacinto EVM board. See the online docs for each driver for additional command-line options and other details.
![]() |
Some of the following drivers are commented out in the default buildfile. To use the drivers in the target hardware, you'll need to uncomment them in your buildfile, rebuild the image, and load the image into the board. |
Required binaries:
Required binaries:
Required binaries:
Required libraries:
Required binaries:
Required binaries:
Required libraries:
Required binaries:
Required libraries:
Required binaries:
Required libraries:
![]() |
This driver must be started after the I2C driver is active. |
Required binaries:
Required libraries:
Required binaries:
Required libraries:
![]() |
|
Required config files:
![]() |
For more information about these commands, see the Neutrino Utilities Reference. |
The graphics driver supports these display interfaces:
It's possible to do dual-display output using the VPSS analog output and the Internal Raster Controller. You can set this up in the jacinto.conf configuration file.
The driver supports the following analog outputs:
You can use jacinto.conf to configure digital output. We tested the driver with the LG Philips LB080WV3 LCD.
The VPSS controller supports the following layers or “OSD windows”:
You can control the following features for all layers:
The OSD windows can support the follow features:
You can enable or configure OSD Rectangular Cursor support using jacinto.conf.
![]() |
The OSD window restrictions (from the TI documentation) include:
|
The Raster Controller has been validated with the Sharp LQ050Q5DR01 TFT LCD. The Raster controller supports a single layer and runs only at the RGB565 pixel format.
The graphics driver can run with SW rendering or can have accelerated 2D/3D rendering using a DSP image containing the TES eVRU graphics library.
Hardware-accelerated 2D rendering using the eVRU graphics library is supported for RGB565, RGB888, and ARGB8888 color formats. The 2D accelerated features are:
![]() |
The alpha map must be the same size as the fill/blit size. |
Hardware-accelerated 3D rendering using the eVRU graphics library is limited, and is disabled by default to allow OpenGLES conformance. To enable the accelerated 3D rendering, set the sw3d option in jacinto.conf to 0 (sw3d=0). When enabled, the following features are accelerated for RGB565 and RGB888:
The Jacinto has two memory buses (EMIFA, EMIFB). We've found that for certain graphics operations, performance is improved if the source and destination surfaces are on separate EMIFs.
You can reserve memory from the system by using the -rBASE,SIZE option, where BASE is the physical base address of memory, and SIZE is the number of bytes to reserve.
To take advantage of this, you can specific two memory regions to devg-jacinto.so, using the following new options in jacinto.conf:
The EMIFA base address is 0x40000000 and is 128 MB in size, and the EMIFB base address is 0x60000000 and is 128 MB in size.
In developing/testing this functionality, we used the following startup line:
startup-jacinto -r 0x60000000,0x200000 -r0x47E00000,0x200000 -L 0x67800000,0x800000 -vvvvv
The above line reserves 2 MB in EMIFA and 2 MB in EMIFB. The resulting entries in jacinto.conf are:
bbase=0x60000000,bsize=0x200000,abase=0x47e00000,asize=0x200000
The devg-jacinto.so driver creates two memory pools to allocate surfaces from while surfaces can be allocated.
By default, the driver attempts to allocate memory from POOL B (specified by bbase and bsize). If this allocation fails, the surface is allocated by the graphics framework from general system memory. It doesn't attempt to allocate the surface from the other pool.
You can select POOL A (specified by abase and asize) by passing in the GF_SURFACE_CREATE_CPU_FAST_ACCESS flag to gf_surface_create() or gf_surface_create_layer() as shown in the following examples:
if (gf_surface_create( &images[0], device, 100, 100, GF_FORMAT_BGR888,
NULL, GF_SURFACE_CREATE_2D_ACCESSIBLE |
GF_SURFACE_CREATE_CPU_FAST_ACCESS) != GF_ERR_OK) {
return -1;
}
if (gf_surface_create_layer( &t_surface, &info->layer, 1, 0,
info->width, info->height, info->layer_format,
NULL, GF_SURFACE_CREATE_CPU_FAST_ACCESS) != GF_ERR_OK) {
return 0;
}
If this allocation fails, the surface is allocated by the graphics framework from general system memory. It doesn't attempt to allocate the surface from the other pool.
If you don't specify memory regions to that driver, all surfaces are created by the graphics framework in general memory (whether or not memory was reserved at startup).
It's possible to have the TI AVME and QNX graphics coexist in the same system. To do this, the following must occur:
For details on the avme options, see jacinto.conf.
devf-generic -s0x20000000,64M
![]() |
Because the ROM monitor or IPL/OS image are in the first 6 megabyte of flash , you may not want to erase them. Use the -l (length) and -o (offset) options to avoid these areas. |
flashctl -p/dev/fs0 -o6M -l58M -ve
flashctl -p/dev/fs0p0 -o6M -l58M -vf
slay devf-generic devf-generic -s0x20000000,64M
You should now have a /fs0p0 and /fs0p1 directory automounted.
| For information on: | Go to: |
|---|---|
| Generating IPL, startup, and other modules from BSP source code | Building Embedded Systems, Working with a BSP |
| Using mkifs to generate an OS image from a buildfile | Building Embedded Systems, Making an OS image |
| Writing, compiling, and debugging your applications using command-line tools | Programmer's Guide |
| Building your applications using the Integrated Development Environment (IDE) | IDE User's Guide, Building OS and Flash Images |
| Writing a device driver | DDK Guides |
| The complete QNX doc set | Documentation Roadmap (e.g. under Windows XP via the start menu: ) |
| Release notes | www.qnx.com (look for the appropriate release notes after logging into your myQNX account) |
| Technical support forums | See the release notes for details. Look for the appropriate newsgroup. |
In QNX BSPs, we use the following conventions for naming files:
| Part of filename | Description | Example |
|---|---|---|
| .bin | Suffix for binary format file. | ifs-artesyn.bin |
| .build | Suffix for buildfile. | sandpoint.build |
| efs- | Prefix for QNX Embedded Filesystem file; generated by mkefs. | efs-sengine.srec |
| .elf | Suffix for ELF (Executable and Linking Format) file. | ipl-ifs-mbx800.elf |
| ifs- | Prefix for QNX Image Filesystem file; generated by mkifs. | ifs-800fads.elf |
| ipl- | Prefix for IPL (Initial Program Loader) file. | ipl-eagle.srec |
| .openbios | Suffix for OpenBIOS format file. | ifs-walnut.openbios |
| .prepboot | Suffix for Motorola PRePboot format file. | ifs-prpmc800.prepboot |
| .srec | Suffix for S-record format file. | ifs-malta.srec |