Project Home
Project Home
Wiki
Wiki
Project Information
Project Info
wiki3925: Nto640AmccPpc405ex1.0.0Releasenotes (Version 2)


Release Notes for the AMCC PPC405EX BSP#

System requirements#

Target system#

  • QNX Neutrino RTOS 6.4
  • Processor: AMCC PPC405EX
  • Board version: AMCC Kilauea - ~UDTech Kilauea405EX v1.2
  • ROM Monitor version: U-Boot 1.3.3 (May 19 2008 - 12:55:31)
  • 256M DDR2 SDRAM
  • 64M Spansion NOR flash (S29GL512N)
  • 64M Samsung NAND flash (K9F1208)

Host development system#

  • QNX Momentics 6.4, one of the following host systems:
    • QNX Neutrino 6.4
    • 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 (provided with the board)
  • Ethernet link


Getting Started#

Starting Neutrino#

Step 1: 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 2: Connect your hardware

  • Connect one end of the serial cable to the first serial port UART0 (J13) of the Kilauea405EX board and the other end of the serial cable to the first serial port of your host machine (e.g. ser1 on a Neutrino host).
  • 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.
  • Connect the Ethernet cable to the upper RJ45 port namely Ethernet Port 0 (J23) on the Kilauea405EX board and plug in the other end of the Ethernet cable to your local network.

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

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

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

U-Boot 1.3.3 (May 19 2008 - 12:55:31)

CPU:   AMCC PowerPC 405EX Rev. C at 533.333 MHz (PLB=177, OPB=88, EBC=88 MHz)
       Security support
       Bootstrap Option H - Boot ROM Location I2C (Addr 0x52)
       16 kB I-Cache 16 kB D-Cache
Board: Kilauea - AMCC PPC405EX Evaluation Board
I2C:   ready
DTT1:  38 C
DRAM:  256 MB
FLASH: 64 MB
NAND:  64 MiB
PCI:   Bus Dev VenId DevId Class Int
PCIE0: link is not up.
PCIE0: initialization as root-complex failed
PCIE1: link is not up.
PCIE1: initialization as root-complex failed
Net:   ppc_4xx_eth0, ppc_4xx_eth1

Type "run flash_nfs_fdt" to mount root filesystem over NFS

Hit any key to stop autoboot:  0
=>

Step 3: Setup the environment

Use the printenv command to show the current settings for ipaddr, ethaddr, serverip etc. On your target, type the following, filling in the appropriate IP addresses and ifs file:

=> setenv ipaddr 192.168.1.50
=> setenv serverip 192.168.1.19
=> setenv bootfile /tftpboot/ifs-kilauea405EX.raw
=> setenv loadaddr 0x200000
=> setenv bootcmd 'tftpboot $loadaddr $bootfile; go $loadaddr'

Once these parameters are configured, you can use the saveenv command to store your changes. Refer to the U-Boot documentation for more information.

Step 4: Boot the IFS image

You can use TFTP download (the default) or serial download to transfer the image from your host to the target.

This method requires a raw image, which is simply a binary image, with a header on the beginning, that allows the bootloader to jump to the very beginning of the image (the raw header), where it executes another jump to the first instruction of the image.

After U-boot is configured, boot the ifs-kilauea405EX.raw image as follows (we'll assume it's in a directory called /tftpboot/) from the U-boot prompt:

=> tftpboot 200000 /tftpboot/ifs-kilauea405EX.raw

At this point you should see the ROM monitor download the boot image, indicated by a series of number signs. You'll also see output similar to this when it completes downloading:

Waiting for PHY auto negotiation to complete.. done
ENET Speed is 100 Mbps - FULL duplex connection (EMAC0)
Using ppc_4xx_eth0 device
TFTP from server 192.168.1.19; our IP address is 192.168.1.50
Filename 'ifs-kilauea405EX.raw'.
Load address: 0x200000
Loading: #################################################################
	 #################################################################
	 ###############################################
done
Bytes transferred = 2584580 (277004 hex)
=> 

Now, to run the image, enter:

=> go 200000

You should see output similar to the following, with the QNX Neutrino welcome message on your terminal screen:

## Starting application at 0x00200000 ...

System page at phys:0000b000 user:0000b000 kern:0000b000
Starting next program at v0023ef1c
Welcome to QNX Neutrino 6.4 on the AMCC PPC405EX Evaluation Board
Starting Serial driver...
# 

You can now test the OS simply by executing any shell builtin command or any command residing within the OS image (e.g. ls).

Step 5: Replace the U-Boot bootloader with a native QNX IPL and OS image in flash

At some point, you may wish to replace the U-Boot bootloader with the native QNX IPL code. This may be desirable once you've tweaked the OS image exactly the way you want it, and you want the board to boot the image automatically, immediately on power up.

To replace the U-Boot bootloader:

1.Modify your buildfile to generate a binary image.

2.Boot the board as described above, using U-Boot to TFTP-download the raw OS boot image.

3.Ensure that you can "see" the IPL image file ipl-kilauea405EX and the binary OS image file ifs-kilauea405EX.bin from the image. You can get them on the target using QCONN if you are using the Momentics IDE, or access them remotely over a NFS mount that you have configured on your network.

4.Start the flash filesystem driver and erase the last 128KB of NOR flash as follows:

devf-generic -s0xfc000000,64M
flashctl -p /dev/fs0 -o 65408K -l 128K -ve

5.Copy ipl-kilauea405EX to the flash, as follows:

dd if=ipl-kilauea405EX of=/dev/fs0 bs=131072 seek=511

6.To flash the OS image, erase the blocks of NOR flash starting from last 16 MB region (the following commands assume a maximum OS image size of 3 MB):

flashctl -p /dev/fs0 -o 48M -l 3M -ve
dd if=ifs-kilauea405EX.bin of=/dev/fs0 bs=131072 seek=384

When the copy is complete, you can reboot; it should now boot from the native QNX IPL. You should see output as follows:

QNX/Neutrino IPL for AMCC 405EX based Kilauea Board: 
Commands:
  d: download image to RAM
  f: scan flash for image
IPL> 

7.Enter f or F, and the board should boot from the OS image in flash. You'll see Neutrino boot:

System page at phys:0000b000 user:0000b000 kern:0000b000
Starting next program at v00245ea4
Welcome to QNX Neutrino 6.4 on the AMCC PPC405EX Reference Board
# 

If desired, the IPL code can be modified to eliminate the prompt and automatically boot from the flash without user intervention. To do this, modify the <main.c> file of the IPL source, located under:

$BSP_PATH/src/hardware/ipl/boards/kilauea405EX/


Creating a flash partition#

NOR flash

1. Start the NOR flash filesystem driver by issuing the following command:

devf-generic -s0xfc000000,64M

2. Prepare the area for the partition. Because the Linux images are in the first 22 MB of flash and U-Boot is in the last 640KB of flash, you may not want to erase them. Use the -l (length) and -o (offset) options to avoid these areas. Assuming that we want to create a 20 MB partition:

flashctl -p/dev/fs0 -o30M -l20M -ve

3. Format the partition:

flashctl -p/dev/fs0p0 -o30M -l20M -vf

4. Slay, then restart the driver:

slay devf-generic
devf-generic -s0xfc000000,64M

In this example, you have a 20 MB flash partition starting at an offset of 30 MB from the start of flash. You should now have a /fs0p1 mount on the target to which you can copy files.


NAND flash

1. Enter the following command to start the ETFS driver:

fs-etfs-kilauea405EX_512 -m/fs/etfs

2. Stop the filesystem on the device, format and continue:

etfsctl -d /dev/etfs2 -s -f -c

You should now have a /fs/etfs mount on the target to which you can copy files.


Summary of driver commands#

The following table summarizes the commands to launch the various drivers.

ComponentBuildfile CommandRequired BinariesRequired LibrariesSource Location
Startup startup-kilauea405EX . . src/hardware/startup/boards/kilauea405EX
Serial devc-ser8250 -e -c11059200 -b115200 0xef600200,26 0xef600300,0x1 devc-ser8250 . src/hardware/devc/ser8250
USB io-usb -ddwcotg ioport=0xef6c0000,irq=94 io-usb
usb
devu-dwcotg.so
libusbdi.so
.
NOR devf-generic -s0xfc000000,64M devf-generic
flashctl
. src/hardware/flash/boards/generic
NAND fs-etfs-kilauea405EX_512 -m /fs/etfs fs-etfs-kilauea405EX_512
etfsctl
. src/hardware/etfs/nand512/kilauea405EX_512
PCI Express pci-kilauea pci-kilauea
pci
. src/hardware/pci/kilauea
Network io-pkt-v4-hc -dppc405-kilauea405ex mac=001122334455,rmii -ptcpip io-pkt-v4-hc
ifconfig
devn-ppc405-kilauea405ex.so
libsocket.so
devnp-shim.so
src/hardware/devn/ppc405
I2C i2c-ppc405 -p0xEF600400 -i2 i2c-ppc405 . src/hardware/i2c/ppc405
SPI spi-master -dppc405 spi-master spi-ppc405.so src/hardware/spi/ppc405
RTC rtc hw rtc
date
. src/utils/r/rtc

Some of the 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.

PCI Express:#

Note:
The PCI Express interface can only be powered by standard ATX power supply. When using the PCI Express interface, you must
  • Disconnect the 120/240V IN 5V/4A OUT power adapter
  • Connect the ATX power supply
  • Assemble jumper J14
Please note that you should NEVER connect more than one power source (e.g. ATX power supply, Power-over-Ethernet cable or separate power adapter) to the evaluation board at the same time.


Known issues for this BSP#

  • In Microsoft Windows, certain programs (e.g. Norton Ghost) add directories inside double quotation marks (e.g. ...;"c:\Program Files\Norton Ghost\";...) to your PATH environment variable. This causes the Cygwin spawn() function to fail, which in turn causes cp to fail when called by ln-w. (Ref# 20046) Workaround: Modify your PATH environment variable and remove any quotation marks.
  • In those instances where the the ROM monitor's MAC address is different from the one you pass in when running io-net and/or io-pkt, 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 and/or io-pkt, 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.
  • Due to the limited number of channels ( concurrent endpoints ) supported by the USB controller, USB hubs are not officially supported. USB devices must be connected to the root port.
  • The USB port doesn't supply enough power to enumerate certain high-power USB mice. In this case, a lower power mouse must be used.
  • Other 405 reference boards have experienced problems with losing time on the order of 3-5 seconds per hour. (PR:71785)