Project Home
Project Home
Wiki
Wiki
Project Information
Project Info
wiki3009: NtotrunkFujitsuJadeTrunkReleasenotes (Version 1)


Release Notes for the QNX Neutrino 6.4.0 BSP for Fujitsu Jade EVB 1.0.0#

System requirements#

Target system#

  • QNX Neutrino RTOS 6.4.0
  • Board version: Fujitsu Jade Evaluation Board
  • ROM Monitor version UBoot v 1.3.0
  • 32 MB flash

Host development system#

  • QNX Momentics 6.4.0, one of the following host systems:
    • QNX Neutrino 6.4.0
    • Microsoft Windows Vista, XP SP2 or SP3, 2000 SP4
    • Linux Red Hat Enterprise Workstation 4 or 5, Red Hat Fedora Core 6 or 7, Ubuntu 6.0.6 LTS or 7, or SUSE 10
  • Terminal emulation program (Qtalk, Momentics IDE Terminal, tip, HyperTerminal, etc.)
  • RS-232 serial port
  • NULL-modem serial cable
  • Ethernet link

System layout#

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

Memory layout

ItemAddress
OS image loaded at: 0x40100000
Flash base address 0x10000000


Getting Started#

Step 1: Connect your hardware#

1. Connect the serial cable to the first serial port of the Fujitsu Jade EVB 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 Fujitsu Jade EVB 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:

  • Baud: 115200
  • Bits: 8
  • Stop bits: 1
  • Parity: none
  • Flow control: none

2. Make sure the host machine is capable of handling TFTP requests (see the inetd documentation for details).

3. Verify the serial link between the host machine and the target.

4. Verify that an Ethernet link exists between the host machine and the target.

5. Apply power to the target board. You should see output similar to the following:


U-Boot 1.3.0-jadeevalkit-0.7 (Nov 30 2007 - 19:44:31)

DRAM:  128 MB
Flash: 32 MB
In:    serial
Out:   serial
Err:   serial
Hit any key to stop autoboot:  0

Press any key to stop autobooting, and then you'll see the Fujitsu Jade EVB prompt:

xxsvideo>

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

xxsvideo> setenv netmask 255.255.240.0
xxsvideo> setenv ipaddr 10.42.101.242
xxsvideo> setenv gatewayip 10.42.96.1
xxsvideo> setenv serverip 10.42.98.211
xxsvideo> setenv 'bootcmd tftpboot 40100000;go 40100000'
xxsvideo> saveenv

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


Hit any key to stop autoboot:  0
LAN9x18 (0x118a0000) detected.
start Auto negotiation... (take ~2sec)
Auto negotiation complete, 100BaseTX, full duplex
TFTP from server 10.42.98.211; our IP address is 10.42.101.242
Filename '/root/ifs-jade.bin'.
Load address: 0x40100000
Loading: #################################################################
         #################################################################
         #################################################################
         #################################################################
         #######
done
Bytes transferred = 1364208 (14d0f0 hex)
## Starting application at 0x40100000 ...
CPU0: Dcache: 512x32 WB
CPU0: Icache: 512x32
CPU0: 41069265: arm926 rev 5 333MHz

System page at phys:40010000 user:fc404000 kern:fc404000
Starting next program at vfe03ca20
cpu_startnext: cpu0 -> fe03ca20
Welcome to QNX Neutrino Trunk on the Fujitsu JADE (JADE) Board
#

Programming IPL and boot OS images by IPL#

1. Make a backup copy of the ifs-jade.bin image used for U-Boot. 2. Make sure the jade.build is for IPL image (according to the previous note), and then rebuild your image in order to produce a valid IPL file.

3. Once U-Boot is up and running, load an U-Boot ifs-jade.bin image (backed-up previously) onto the board.

4. Set up a shared network drive on your workstation.

In this example we are using a Windows Share folder to accomplish our work. You have to replace the following names with ones that match your configuration.

  • WORKSTATION : Windows Computer Name
  • WS_IP_ADDR : Computer IP Address
  • SHARE_FOLDER : Name use to share folder
  • MOUNT_FOLDER : Folder name under which Neutrino will access your share folder
  • USER_NAME : User name that has read access to the share folder
  • PASSWORD : User's password

5. Ensure that the following utilities are present in your build file.

  • fs-cifs
  • cp
  • slay
  • flashctl
  • dd

6. Execute the following commands in the Neutrino shell.

fs-cifs -l //WORKSTATION:WS_IP_ADDR:/SHARE_FOLDER/MOUNT_FOLDER USER_NAME PASSWORD

cp /MOUNT_FOLDER/ipl-ifs-jade.bin /dev/shmem/jade.bin

slay io-net

flashctl -p /dev/fs0 -o 0m -l 4m -ve

dd if=/dev/shmem/jade.bin of=/dev/fs0 bs=1k seek=0k

Note:

  • Erase the flash only if you've copied a valid IPL image into /dev/shmem.
  • Before programming the IPL, you should have proper tools to reprogram the on-board flash. Any error in flash programming will result in an unusable board.

7. Boot OS images by IPL

  • Once you've programmed ipl-ifs-jade.bin to flash, you can use the IPL to download the image through the serial port or run the image from the flash directly.
  • Power on the target board, The terminal emulator will show the following output:
            QNX Neutrino Initial Program Loader for Fujitsu JADE
            Commands:

            Press 'D' for serial download, using the sendnto utility
            Press 'F' to boot an OS image in flash
Note: If you press 'd' or 'D', the terminal emulator will prompt you to download the image through the serial port, as follows:
            send image now...

Use the sendnto utility to download the image.

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 -s0x10000000,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 -l31M -U

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

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

4. Format the partition:

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

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

slay devf-generic

devf-generic -s0x10000000,32M

You should now have /fs0p1 directory 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
Startup startup-jade . . src/hardware/startup/boards/jade
Serial devc-ser8250 -e -F -S -b115200 -c41500000 0xfffe1000^2,24devc-ser8250 . src/hardware/devc/ser8250
Network io-pkt-v4 -dsmc9118 ioport=0x02000000,irq=10,mac=662200021605,verbose -ptcpip & io-pkt-v4-hc
ifconfig
devn-smc9118.so
devnp-shim.so
libsocket.so
src/hardware/devn/smc9118
Flash devf-generic -s0x10000000,32M devf-generic . QNX SPD 6.4.x (Binary Only)
I2C i2c-mb8x i2c-mb8x . src/hardware/i2c/mb8x
Audio io-audio -d jadei io-audio deva-ctrl-jade.so
libasound.so
deva-mixer-ac97.so
deva-util-restore.so
src/hardware/deva/ctrl/jade
Graphics io-display -dvid=0,did=0 io-display devg-jade.so
libm.so
libGLES_CL.so.1
libffb.so.2
libgf.so.1
libdisputil.so
src/hardware/devg/jade
SPI spi-mb8x -k spi-master spi-mb8x.so hardware/spi/mb8x
USB io-usb -dohci ioport=0xfff81000,irq=53 & io-usb devu-ohci.so
devu-ehci.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:

  • /etc/system/config/display.conf
  • /etc/system/config/jacinto.conf

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:

  • NTSC 720x480 interlaced output (composite, s-video, component)
  • PAL 720x576 interlaced output (composite, s-video, component)

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

  • Video Window 0, supporting YUV422 or RGB888 formats
  • Video Window 1, supporting YUV422 or RGB888 formats
  • OSD Window 0, supporting RGB565 format
  • OSD Window 1, supporting RGB565 format

You can control the following features for all layers:

  • window start position and size
  • horizontal and vertical zoom (2X, 4X)

The OSD windows can support the following features:

  • alpha blending (16 levels)
  • transparency (when a pixel matches the transparent color, the pixel will be transparent and the underlying video pixels will be displayed)

Note Caveats:

  • Although the driver supports NTSC and PAL composite, s-video, and component outputs, due to hardware availability, we could verify only the NTSC format and composite and s-video outputs at this time.
  • The OSD window restrictions (from the TI documentation) include:
    • Video Window 1 and all OSD windows must be fully contained within the Video Window.
    • Only one video layer can be set to RGB888 at one time.
    • Only one OSD window can be set to display 16-bit RGB data (but we've been able to run 2 RGB windows).
    • The OSD RGB565 window shouldn't overlap Video Window 1.
    • Video Window 1 start X position must be offset a multiple of 16 pixels from the left edge of Video Window 0.
  • There is no hardware-accelerated 2D or 3D rendering.
  • Transparency of the OSD windows appears to work only with a pixel value of 0, due to an apparent hardware limitation.
  • We don't support digital (LCD) output at this point, due to hardware limitations.
  • The VPSS display controller on the DM644x can't display memory addresses above 128 MB (from TI Errata). If your system has more than 128MB of memory, you will need to reserve memory for the controller in the bottom 128MB. You can do this by using the -r option to startup. The -r option takes two parameters: physical address,size (in bytes) For example, to reserved 8 MB of memory for the VPSS controller, specify:

startup-dm6446 -r0x83800000,0x800000

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

  • vbase=address (where address matches that used with the -r option to startup)
  • vsize=size (where size is in bytes and matches that used with the -r option to startup)

Known issues for this BSP#

  • You can't access flash and the hard drive at the same time. The default version of startup supports the flash. To enable EIDE support, specify the -E option to startup-dm6446 in your buildfile.
  • The on-board flash is AM29LV256M, which has 32 MB, but only 16 MB are addressable on the DM644x EVM. The highest address A23 is connected to Vcc, so you will see a mirror partition when creating a flash partition.
  • The audio driver works only when I2C is running in low-speed mode (10 kbps). You should start I2C before starting the audio driver, using the following command: i2c-dm6446 --b10000
  • If you use a surface format of GF_FORMAT_BGR888, your application may terminate with a SIGBUS signal with the Advanced Graphics TDK 2.0. This problem will be fixed in the next version of the TDK. (Ref# 54335)
  • In those instances where the the ROM monitor's MAC address is different from the one you pass in when running io-net, the host can cache the ROM monitor's address. This can result in a loss of connectivity. Workaround: If you need to specify a MAC address to io-net, we recommend that you use the same MAC address that the ROM monitor uses. This will ensure that if the host caches the ROM monitor's MAC address, you'll still be able to communicate with the target. Otherwise you might need to delete the target's arp entry on your host.