Project Home
Project Home
Wiki
Wiki
Project Information
Project Info
wiki2804: Nto640FreescaleMpc8641dHpcn1.0.0Releasenotes (Version 2)


Release Notes of QNX Neutrino 6.4.0 BSP for Freescale MPC8641D HPCN 1.0.0#

System requirements#

Target system#

  • Board version: Freescale MPC8641D HPCN (argo navis) Reference Board
  • 8 MB of flash
  • U-Boot 1.1.3 (Mar 28 2006 - 16:03:22)

Host development system#

  • QNX Momentics Development Suite 6.3.2
  • 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 or USB to serial adapter
  • null-modem serial cable
  • Ethernet link

Getting Started#

This section provides details on how to load and start the ifs image over tftp using uboot.

Step 1: Connect your hardware#

Connect the serial cable to the serial port of the MPC8641d board and to the first serial port on the host machine (e.g. ser1 on a Neutrino host).

Step 2: Build the BSP#

For instructions about building a BSP OS image, please refer to the chapter Working with a BSP in the Building Embedded Systems manual.

The resulting ifs image will be

  • bsp-mpc8641d/Images/bsp-mpc8641d.ifs, when using the IDE,
  • images/ifs-mpc8641.raw, when building on the command line.

Copy the ifs image file to the root directory of your tftp server.

Step 3: Setting up the environment#

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

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

Then, apply power to the target board. You should see the U-Boot ROM monitor output.

 
U-Boot 1.1.3 (FSL Development) (Mar 28 2006 - 16:03:22)
Freescale ~PowerPc

CPU:
Core: E600, Version: 0.1, (0x80040201)
System: 8641, Version: 1.0, (0x80900110)
Clocks: CPU:1000 MHz, MPX: 400 MHz, DDR: 200 MHz, LBC:  50 MHz
L2: Enabled

Board: Argo Navis
I2C:   ready
DRAM:      DDR: 512 MB
FLASH: ## Unknown FLASH on Bank 0 - Size = 0x00000000 = 0 MB
           8 MB

PCI-EXPRESS 1: Configured as Host
Scanning PCI bus....PCI scan & enumeration done
In:    serial
Out:   serial
Err:   serial
Net:   eTSEC1: PHY is Vitesse VSC8244 (fc6c2)
        eTSEC2: PHY is Vitesse VSC8244 (fc6c2)
        eTSEC3: PHY is Vitesse VSC8244 (fc6c2)
        eTSEC4: PHY is Vitesse VSC8244 (fc6c2)
        eTSEC1, eTSEC2, eTSEC3, eTSEC4

Hit any key to stop autoboot:  0
=>

Pressing any key will avoid the autoboot.

Use the setenv command to configure the target hardware with the information for a specific network, for example,

 
=> setenv ipaddr 192.168.1.105
=> setenv serverip 192.168.1.1
=> setenv netmask 255.255.255.0
=> setenv bootfile /xfer/ifs-mpc8641.raw
=> saveenv

Saving Environment to EEPROM...
=>

Note: The values in the setenv commands above will change depending upon the network configuration. Please also change the environment variable ethaddr to the proper value. If you boot from the Promjet, these environment variables need to be set each time after a soft or hard reset. If booting from the onboard flash, save the environment in flash after changing them. Use the board number for last byte of ethaddr and one of the unused IP addresses for ipaddr.

Step 5: Start a TFTP download:#

 
=> tftpboot 0x1f0000

TFTP from server 192.168.1.1; our IP address is 192.168.1.105

Filename '/xfer/ifs-mpc8641.raw'.

Load address: 0x1f0000

Loading: #################################################################
         #################################################################
         #################################################################
         ###########################################################

done

Bytes transferred = 1296816 (13c9b0 hex)

=>

At this point the ROM monitor has downloaded the boot image.

 
!Start the OS image:

=> go 0x1f0000

Starting application at 0x001F0000 ...

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

 
Welcome to QNX Neutrino 6.3 on the Freescale MPC8641D board

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

Creating a flash partition#

Caution: Be aware that the ROM Monitor is housed in flash. Check the target hardware manual for the position of the ROM Monitor in Flash. The commands below will destroy any data sitting in flash at an offset of 2 MB for a length of 2 MB

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

      devf-generic -s0xFF000000,8M

2. To prepare the area for the partition, enter the following command:

      flashctl -p/dev/fs0 -l2M -o2M -ve

3. Format the partition:

      flashctl -p/dev/fs0p0 -l2M -o2M -vf

4. Slay, and then restart the driver:

      slay devf-generic &
      devf-generic -s0xFF000000,8M & 

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

Summary of driver commands#

The driver command lines below are specific to the Freescale MPC8641D reference boards. See the online docs for each driver for additional command-line options and other details.

Note: Some of these 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.

Serial#

Command:

devc-ser8250 -e -c500000000 -b115200 0xf8004500,26

Flash#

Command:

devf-generic -s0xff000000,8M

I2C#

Command:

i2c-mpc8641d

PCI#

Command:

pci-mpc8641

Ethernet#

Command:

  • io-pkt-v4 -dmpc85xx syspage -ptcpip
  • ifconfig tsec0 x.x.x.x.

Required libraries:

  • libsocket.so
  • npm-tcpip.so or npm-ttcpip.so
  • devnp-mpc85xx.so (driver)

USB#

Command:

io-usb -dohci -dehci

Required libraries:

  • devu-ohci.so
  • devu-ehci.so
  • libusbdi.so.2

EIDE#

Command:

devb-eide

Required libraries:

  • libcam.so
  • io-blk.so
  • cam-disk.so
  • fs-qnx4.so

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

Known issues for this BSP#

  • This BSP has a known compatibility issue when using the QNX Momentics 6.4.0 devb-eide driver. To get the correct driver, download the devb-eide driver for the MPC8641D Patch (Patch ID 1085) and install it (extract the patch and copy the devb-eide binary file to the .../WORKDIR/install/ppcbe/sbin folder).
  • When the kernel does a context switch, it issues a dummy stwcx. (Store Word Conditional Indexed) command to clear any outstanding reservation, as recommended for the PPC architecture. However, some processors can have issues if this stwcx. to address A occurs while the reservation is already held to a different address B. (Ref# 45538)

Workaround: Download and install the PPCBE procnto-600-smp for Freescale MPC8641D Patch (Patch ID 960). The procnto in this patch first issues a dummy lwarx (Load Word And Reserved Indexed) command to a specific address, and then issues the dummy stwcx. to the same address. This patch creates a system page cpuinfo flag, PPC_CPU_STWCX_BUG, to indicate which CPUs are affected and, on those processors, adds the dummy lwarx to the context switch code.

  • This BSP has been fully tested and is fully compatible with UBOOT version 1.1.3. The BSP has a known compatibility issue when using UBOOT 1.2.0. The devb-eide driver fails to detect the SATA drive (via the legacy ATA interface) after UBOOT performs its detection via the AHCI interface. If SATA support is required, then use UBOOT 1.1.3.