Release Notes for the QNX Neutrino 6.4.0 BSP for Texas Instruments DM644X EVM 1.0.0#

System requirements#

Target system#

Host development system#


System layout#

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

Memory layout

ItemAddress
OS image loaded at:0x80010000
NOR Flash base address0x02000000
NAND base address0x02000000


Getting Started#

Step 1: Connect your hardware#

1. Connect the serial cable to the first serial port of the DM644x EVM and the first serial port of your host machine (e.g. ser1 on a Neutrino host).

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

2. Connect an RJ-45 ethernet cable between the ethernet port on the DM644x EVM and your local network.

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 #

Boot OS images by ROM monitor#

1. On your host machine, start your favorite terminal program with these settings:

2. Start your target. You should see output similar to the following:

U-Boot 1.1.3 (Dec  4 2006 - 12:05:38)

U-Boot code: 81080000 -> 81097628  BSS: -> 810A0018
RAM Configuration:
Bank #0: 80000000 256 MB
Flash: 16 MB
In:    serial
Out:   serial
Err:   serial
ARM Clock :- 297MHz
DDR Clock :- 162MHz
Hit any key to stop autoboot:  0

Press any key to stop autobooting, and then you'll see the DaVinci EVM prompt:

DaVinci EVM #

On your target, type the following, filling in the appropriate IP addresses and ifs file:

DaVinci EVM # setenv netmask 255.255.240.0
DaVinci EVM # setenv ipaddr 10.42.101.242
DaVinci EVM # setenv gatewayip 10.42.96.1
DaVinci EVM # setenv serverip 10.42.98.211
DaVinci EVM # setenv 'bootcmd tftpboot 80010000;go 80010000'
DaVinci EVM # saveenv

Restart your target. You should see output similar to the following:

Hit any key to stop autoboot:  0
TFTP from server 10.42.98.211; our IP address is 10.42.101.242                               
Filename 'ifs-dm6446.raw'.
TFTP from server 10.42.98.211; our IP address is 10.42.101.242                               
Load address: 0x80010000
Loading: #################################################################
         #################################################################
         #################################################################
         ############################################################
done
Bytes transferred = 1303956 (13e594 hex)
DaVinci EVM # go 0x80010000
## Starting application at 0x80010000 ...
CPU0: Dcache: 256x32 WB
CPU0: Icache: 512x32
CPU0: 41069265: arm926 rev 5 283MHz

System page at phys:802ad000 user:fc404000 kern:fc404000
Starting next program at vfe03da20
cpu_startnext: cpu0 -> fe03da20
Welcome to QNX Neutrino 6.4.0 on a TI Davinci-DM644x Platform
#

Step 4: Start working with Neutrino OS#

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 “Driver Command Summary” section.

Creating a flash partition#

1. Enter the following command to start the flash filesystem driver:

devf-generic -s0x02000000,32M

2. Unlock the entire flash, except for the first megabyte:

Note:Because the ROM monitor is in the first megabyte of flash, you may not want to erase it. Use the -l (length) and -o (offset) options to avoid this area.

flashctl -p/dev/fs0 -o1M -l15M -U

3. Erase the flash, except for the first megabyte:

flashctl -p/dev/fs0 -o1M -l15M -ve

4. Format the partition:

flashctl -p/dev/fs0p0 -o1M -l15M -vf

5. Slay, then restart the driver to mount the new partition:

slay devf-generic devf-generic -s0x02000000,32M

You should now have /fs0p1 and /fs0p3 directories automounted.

Driver Command Summary#

The driver command lines below are specific to the TI DM644x EVM board. See the online docs for each driver for additional command-line options and other details.

Note: 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.

ComponentBuildfile CommandRequired BinariesRequired LibrariesSource Location
Startupstartup-dm6446 ..src/hardware/startup/boards/dm6446
Serialdevc-ser8250 -e -F -S -b115200 -c27000000/16 0x01c20000^2,0x28devc-ser8250.src/hardware/devc/ser8250
Networkio-pkt-v4 -ddm644x mac=005647564757 -ptcpip io-pkt-v4-hc
ifconfig
devn-dm644x.so
devnp-shim.so
libsocket.so
src/hardware/devn/dm644x
ETFSfs-etfs-dm644x -m /fs/etfs fs-etfs-dm644x
etfsctl
.src/hardware/etfs/nand512/dm644x
Flashdevf-generic -s0x02000000,32M devf-generic.QNX SPD 6.4.x (Binary Only)
I2Ci2c-dm6446 i2c-dm6446.src/hardware/i2c/dm6446
EIDEdevb-eide-dm644x eide noslave,master=udma=4 blk cache=12M devb-eide-dm644x.src/hardware/devb/eide/arm/dm644x.le
Audioio-audio -d dm644x-davinci io-audiodeva-ctrl-dm644x-davinci.so
libasound.so
deva-mixer-ac97.so
src/hardware/deva/ctrl/dm644x
Graphicsio-display -dvid=0,did=0 io-displaydevg-davinci.so
libm.so
libGLES_CL.so.1
libffb.so.2
libgf.so.1
libdisputil.so
src/hardware/devg/davinci
SPIspi-master -d dm644x base=0x01c66800,irq=43,edmairq=0xc111,edmachannel=17 spi-masterspi-dm644x.sohardware/spi/dm644x
USBio-usb -djacinto ioport=0x01c64000,irq=12 io-usbdevu-jacinto.so
libusbdi.so
class drivers
prebuilt only

Startup:#

Some modules aren't enabled after boot up, so you need to use command-line options to startup to enable them. You must pass these options before any other startup options.

To enable the EIDE driver, use the -E option at startup:

startup-dm6446 -L 0x84000000,0x4000000 -E -v

Flash/NAND Flash:#

The Flash, NAND Flash, or SRAM are mapped into the same memory space and selectable via J4. Only one device can be selected at a time. For information about the hardware or firmware, refer to the documentation for the TI DM644x board.

Audio:#

This driver must be started after the I2C driver is active.

Graphics:#

To start the drive:

io-display -dvid=0,did=0

Note: Starting io-display simply starts the display server. Nothing will appear on the display until a graphical application is run (i.e. vsync or egl-gears).

Required config files:

The /etc/system/config/display.conf configuration file describes the graphics memory interface settings. It should contain the following for a 720x480 resolution:

device {
    drivername=davinci
    vid=0
    did=0
    deviceindex=0
    modeopts=/etc/system/config/davinci.conf
    display {
        xres=720
        yres=480
        refresh=60
        pixel_format=rgb565
        }
    }

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

About graphics#

The driver supports only the following analog outputs:

The VPSS controller supports 4 layers / "OSD windows":

You can control the following features for all layers:

The OSD windows can support the following features:

Note Caveats:

startup-dm6446 -r0x83800000,0x800000

To tell the graphics driver to use the memory, specify the following options in davinci.conf:

Known issues for this BSP#