The table below depicts the memory layout for the image and for the flash.
Memory layout
Item | Address |
---|---|
OS image loaded at: | 0x80010000 |
NOR Flash base address | 0x02000000 |
NAND base address | 0x02000000 |
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.
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.
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 #
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.
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.
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.
Component | Buildfile Command | Required Binaries | Required Libraries | Source Location |
---|---|---|---|---|
Startup | startup-dm6446 | . | . | src/hardware/startup/boards/dm6446 |
Serial | devc-ser8250 -e -F -S -b115200 -c27000000/16 0x01c20000^2,0x28 | devc-ser8250 | . | src/hardware/devc/ser8250 |
Network | io-pkt-v4 -ddm644x mac=005647564757 -ptcpip | io-pkt-v4-hc ifconfig | devn-dm644x.so devnp-shim.so libsocket.so | src/hardware/devn/dm644x |
ETFS | fs-etfs-dm644x -m /fs/etfs | fs-etfs-dm644x etfsctl | . | src/hardware/etfs/nand512/dm644x |
Flash | devf-generic -s0x02000000,32M | devf-generic | . | QNX SPD 6.4.x (Binary Only) |
I2C | i2c-dm6446 | i2c-dm6446 | . | src/hardware/i2c/dm6446 |
EIDE | devb-eide-dm644x eide noslave,master=udma=4 blk cache=12M | devb-eide-dm644x | . | src/hardware/devb/eide/arm/dm644x.le |
Audio | io-audio -d dm644x-davinci | io-audio | deva-ctrl-dm644x-davinci.so libasound.so deva-mixer-ac97.so | src/hardware/deva/ctrl/dm644x |
Graphics | io-display -dvid=0,did=0 | io-display | devg-davinci.so libm.so libGLES_CL.so.1 libffb.so.2 libgf.so.1 libdisputil.so | src/hardware/devg/davinci |
SPI | spi-master -d dm644x base=0x01c66800,irq=43,edmairq=0xc111,edmachannel=17 | spi-master | spi-dm644x.so | hardware/spi/dm644x |
USB | io-usb -djacinto ioport=0x01c64000,irq=12 | io-usb | devu-jacinto.so libusbdi.so class drivers | prebuilt only |
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
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.
This driver must be started after the I2C driver is active.
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.
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: