Project Home
Project Home
Wiki
Wiki
Project Information
Project Info
wiki2773: Nto640FreescaleI.mx27AdsTrunkReleasenotes (Version 1)

Release Notes of the QNX 6.4.0 BSP for Freescale i.MX27 ADS Trunk#

System requirements#

Target system#

  • QNX Neutrino RTOS 6.4.0
  • Board version: Freescale i.mx27ads reference board
  • ROM Monitor version UBoot or QNX IPL

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
  • Latest version of the QNX Momentics Character Driver Development Kit (DDK)
  • Terminal emulation program (Qtalk, Momentics IDE Terminal, tip, HyperTerminal, etc.)
  • RS-232 serial port
  • NULL-modem serial cable
  • Ethernet link

What's in this BSP?#

Refer to the BSP release notes for the contents of the Freescale i.mx27ads BSP.

Neutrino supports the following devices on the Freescale i.MX27 ADS:

  • AMD Flash -- 32 MB flash (S71WS256NDO)
  • Saumsung NAND Flash -- 128 MB NAND flash (K9K1G08U0B-JIB0)
  • 10 BaseT Ethernet controller -- Crystal LAN CS8900A
  • 10/100Mbps Fast Ethernet Controller (FEC) -- AMD Am79C874VD
  • USB host1 FS & USB host2 HS
  • USB OTG_FS device
  • On-board UART -- MX27 UART
  • I2C

Devices_supported#

  • Board version: i.MX27 ADS
  • ARM926EJ-S processor
  • 64 MB SDRAM
  • 32 MB NOR flash
  • 128 MB NAND flash

Getting Started#

Step 1: Connect your hardware#

1. Set up the board. Refer to the manual for the correct default jumper settings to use.
2. Connect the serial cable to the first serial port of the i.MX27 ADS and the first serial port of your host machine (e.g. ser1 on a Neutrino host).

  • If you have a Neutrino host with a <em>serial</em> mouse,you may have to move it to the second serial port on your host, because some terminal programs require the first serial port.
3. Connect an RJ-45 ethernet cable between the ethernet port on the i.MX27 ADS 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 using the ROM monitor#

On your host machine, start your favorite terminal program with these settings:
  • Baud: 115200
  • Bits: 8
  • Stop bits: 1
  • Parity: none

1. Make sure the host machine is capable of handling TFTP requests (see the inetd documentation for details).
2. Verify the serial link between the host machine and the target.
3. Verify that an Ethernet link exists between the host machine and the target.
4. Apply power to the target board.

You should see output similar to the following:

RedBoot(tm) bootstrap and debug environment [ROMRAM] 
Non-certified release, version FSL 200749 - built 17:00:12, Dec 13 2007

Platform: MX27 ADS/EVB (Freescale i.MX27 based) PASS 2.1 [x32 SDR] 
Copyright (C) 2000, 2001, 2002, 2003, 2004 Red Hat, Inc.

RAM: 0x00000000-0x07f00000, [0x00025260-0x07ed1000] available
FLASH: 0xc0000000 - 0xc2000000, 256 blocks of 0x00020000 bytes each.
RedBoot>

Setting up the environment#

1. At the RedBoot prompt, issue the following command to change the current environment:
	fconfig
The current configurations will be displayed; change the configuration if you want.
	Run script at boot: false
	Use BOOTP for network configuration: false
	Gateway IP address: 10.42.96.1
	Local IP address: 10.42.103.53
	Local IP address mask: 255.255.240.0
	Default server IP address: 10.42.98.230
	Board specifics: 0
	Console baud rate: 115200
	Set eth0 network hardware address [MAC]: true
	eth0 network hardware address [MAC]: 0x40:0x00:0x00:0xEA:0x18:0xF0
	Set FEC network hardware address [MAC]: false 
	GDB connection port: 9000
	Force console for special debug messages: false
	Network debug at boot time: false
	Default network device: cs8900a_eth0
	alias/bsp_tag: BSP_VER=rel3
	Update RedBoot non-volatile configuration - continue (y/n)?

Typey to accept the new configuration; RedBoot will write the new configuration to the flash.

2. Once the above setup is complete, you can run the load command at the RedBoot prompt to download the image:

	load -r -b 0x00100000 /images/mx27.ifs
	RedBoot will display the following message and start downloading the 
	boot image: 

	Using default protocol (TFTP)
	If the image is successfully loaded, you will see the following message 
	from the RedBoot prompt: 

	Raw file loaded 0x00100000-0x002cbef7, assumed entry at 0x00100000
3. Type:
	run 0x00100000

You should now see the QNX Neutrino welcome message on your terminal screen:

Welcome to Neutrino on the i.MX27ADS (ARM 926 core) Board

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.

System layout#

The memory layout for the image and for the flash:
  • OS image loaded at:0x00100000
  • Ethernet base address0xd4040300 (IRQ: 26)
  • Flash base address0xC0000000

The interrupt vector table can be found in the buildfile located at $QNX_TARGET/armle/boot/build/.

Summary of driver commands#

The driver command lines below are specific to the Freescale i.MX27 ADS 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.

Startup#

Command:
startup-mx21ads [startup-options] 

Note:The USB host modules aren't enabled after boot; you need to use these command-line options:

  • -U1: enable USB Host 1 FS
  • -U2: enable USB Host 2 HS
  • -U3: enable USB OTG_FS device and I2C
  • -c : enable I2C

Serial:#

Command:
devc-sermx1 -e -F -b115200 -c13300000 0x1000a000,20 

Flash (NOR):#

Command:
devf-mx31ads -s0xc0000000,32M 

Required libraries:

  • devf-mx31ads
  • flashctl

ETFS flash (NAND):#

Command to run the ETFS NAND flash driver (64 MB):
 
fs-etfs-mx31ads_512 -D addr=0xd8000000

You need to use the -e option the first time you start NAND flash driver.

fs-etfs-mx31ads_512 -e -D addr=0xd8000000 

Required libraries:

  • fs-etfs-mx31ads_512
  • etfsctl

To erase and format the NAND flash partition:

etfsctl -d /dev/etfs2 -S -e
etfsctl -d /dev/etfs2 -S -f -c

You should slay and restart the driver, after which you should have the mountpoint /fs/etfs/, which you can use to copy files to.

Ethernet:#

Command:
io-pkt-v4 -dcrys8900 ioport=0xd4040300,irq=26,mac=00e02991234e -ptcpip

Required libraries:

  • libsocket.so
  • npm-tcpip.so or npm-ttcpip.so
  • devn-crys8900.so (driver)

FEC:#

Command:
 
io-pktv4 -d mcimx27 irq=50 -p tcpip

Required libraries:

  • libsocket.so
  • npm-tcpip.so or npm-ttcpip.so
  • devn-mcimx27.so (driver)

I2C:#

Command:
i2c-imx31ads -p0x10012000, -i12

Required libraries:

  • i2c-imx31ads

USB host :#

Note:See the startup section above for the correct startup arguments.

Command:

	For USB host 1 FS: 
	io-usb -d ehci-mx31 ioport=0x10024300,irq=54,verbose=4 
	For USB host 2 HS: 
	io-usb -d ehci-mx31 ioport=0x10024500,irq=55,verbose=4 

Required libraries:

  • devu-ehci-mx31.so
  • libusbdi.so
  • io-usb
  • usb

USB OTG_FS Mass Storage Device :#

1. See the startup section above for the correct startup arguments.
2. The I2C driver should be run first.
3. USB Mass Storage Device drivers consist of two parts: the low-level hardware USB device controller driver: devu-usbumass-mx27ads.so, and a higher-level hardware independent driver: devu-umass_client-block.
4. Before you run devu-umass_client-block driver , you should format this device. For example:
	devb-ram ram capacity=16384,nodinit,cache=0m 
	fdisk /dev/hd0 add -t 6 
	mount -e /dev/hd0 
	mkdosfs /dev/hd0t6 
	mount -t dos /dev/hd0t6 /umfs 
Command for USB OTG_FS Mass Storage device:
i2c-imx31ads -p0x10012000, -i12 
io-usb-dcd -vvv -n"/dev/io-usb-dcd/io-usb" -dusbumass-mx27ads ioport=0x10024000,irq=56,verbose=2 
devu-umass_client-block -vvv -s"/dev/io-usb-dcd/io-usb" -l lun=0,devno=1,iface=0,fname=/dev/hd0 & 

Required libraries:

  • devu-usbumass-mx27ads.so
  • devu-umass_client-block
  • libusbdci.so
  • io-usb-dcd
  • usb

Creating a flash partition#

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

devf-mx31ads -s0xc0000000,32M
2. Erase the flash: Because the ROM monitor and the QNX boot image are in the flash, you may not want to erase them. Use the -l (length) and -o (offset) options to avoid these areas. For example, if the OS image has a maximum size of 3 MB, and you want to create a 16 MB partition,
flashctl -p/dev/fs0 -o4M -l16M -ve 
3. Format the partition:
flashctl -p/dev/fs0p0 -o4M -l16M -vf 
4. Slay, then restart the driver:
slay devf-mx31ads
devf-mx31ads -s0xc0000000,32M

You should now have a /fs0p0 directory which you can copy files to.