RedBoot for Intel XScale evaluation boards
June 18, 2003
README
========================================================================


This ReadMe contains instructions for running Redboot on the following
Intel XScale based boards:

  - IXDP425
  - GRG
  - Motorola PrPMC1100

You will need the GNUPro xscale-elf toolchain which should be installed
as per the GNUPro documentation.


Overview
--------
These implementations of RedBoot support several configurations:

  * RedBoot running from the board's FLASH boot sector.

  * RedBoot running from RAM with RedBoot in the FLASH boot sector.

Installing Initial RedBoot Image
--------------------------------
Initial installations of RedBoot require the use of a flash utility or device
programmer as indicated by the board manufacturer. Please see appropriate
documentation for details on initial flash programming. A set of prebuilt files
are provided. This set corresponds to each of the supported configurations and
includes an ELF file (.elf), a binary image (.bin), and an S-record file (.srec).

* RedBoot on IXDP425

  - Running from the FLASH boot sector:

  bin/ixdp425/redboot_ROM.bin
  bin/ixdp425/redboot_ROM.elf
  bin/ixdp425/redboot_ROM.srec

  - Running from RAM with RedBoot in the FLASH boot sector:

  bin/ixdp425/redboot_RAM.bin
  bin/ixdp425/redboot_RAM.elf
  bin/ixdp425/redboot_RAM.srec


* RedBoot on GRG

  - Running from the FLASH boot sector:

  bin/grg/redboot_ROM.bin
  bin/grg/redboot_ROM.elf
  bin/grg/redboot_ROM.srec

  - Running from RAM with RedBoot in the FLASH boot sector:

  bin/grg/redboot_RAM.bin
  bin/grg/redboot_RAM.elf
  bin/grg/redboot_RAM.srec


* RedBoot on PrPMC1100

  - Running from the FLASH boot sector:

  bin/prpmc1100/redboot_ROM.bin
  bin/prpmc1100/redboot_ROM.elf
  bin/prpmc1100/redboot_ROM.srec

  - Running from RAM with RedBoot in the FLASH boot sector:

  bin/prpmc1100/redboot_RAM.bin
  bin/prpmc1100/redboot_RAM.elf
  bin/prpmc1100/redboot_RAM.srec


Initial installations deal with the FLASH based RedBoots. Installation and
use of RAM based RedBoots is documented elsewhere.

To install RedBoot to run from the FLASH boot sector, use the manufacturer's
flash utility to install the redboot_ROM.bin image.

After booting the initial installation of RedBoot, this warning may be
printed:

  FLASH configuration checksum error or invalid key

This is normal and indicates that the FLASH must be configured for use by
RedBoot. Even if the above message is not printed, it is a good idea to
reinitialize the FLASH anyway. Do this with the fis command:

  RedBoot> fis init
  About to initialize [format] FLASH image system - are you sure (y/n)? y
  *** Initialize FLASH Image System
      Warning: device contents not erased, some blocks may not be usable
  ... Unlock from 0xf1fc0000-0xf2000000: .
  ... Erase from 0xf1fc0000-0xf2000000: .
  ... Program from 0x03fbf000-0x03fff000 at 0xf1fc0000: .
  ... Lock from 0xf1fc0000-0xf2000000: .


Followed by the fconfig command:

  RedBoot> fconfig -i
  Initialize non-volatile configuration - continue (y/n)? y
  Run script at boot: false
  Use BOOTP for network configuration: true
  Console baud rate: 115200
  DNS server IP address: 
  GDB connection port: 9000
  Force console for special debug messages: false
  Network debug at boot time: false
  Update RedBoot non-volatile configuration - continue (y/n)? y
  ... Unlock from 0xf1f80000-0xf1f81000: .
  ... Erase from 0xf1f80000-0xf1f81000: .
  ... Program from 0x03fb2000-0x03fb3000 at 0xf1f80000: .
  ... Lock from 0xf1f80000-0xf1f81000: .


NPE Ethernet Support
--------------------
The IXDP425, GRG, and PrPMC1100 boards support the two builtin NPE ethernet
ports. The IXDP425 and GRG also support PCI based i82559 NICs. For the GRG
and IXDP425 board, the default ethernet port is the PCI based NIC. For the
PrPMC1100 board, the default is the EthA port. The GRG board has a group
of four RJ-45 connectors for the first NPE port to use. RedBoot uses only
the leftmost RJ-45 connector from the group of four.

RedBoot allows you to set a preferred default ethernet port using the RedBoot
"fconfig" command. If the default ethernet device is not found (for instance,
the PCI card is not installed), RedBoot will try to use one of the other ports.
The default port is selected with the "fconfig net_device" command. Acceptable
devices for the "fconfig net_device" command are:

   i82559_eth0
   npe_eth0
   npe_eth1

It may be necessary to set the MAC address (or Ethernet Station Address) of
the port before it is usable by RedBoot. The IXDP425 and PrPMC1100 board store
the MAC addresses for the NPE ethernet ports in onboard serial EEPROMs. The GRG
board uses the main flash to hold the NPE ports MAC addresses. To set the MAC
address of an NPE port on the IXDP425 or PrPMC1100 board, use the "set_npe_mac"
command. This command accepts a "-p" switch to specify the port (0 for NPEB,
1 for NPEC) and a MAC address formatted as xx:xx:xx:xx:xx:xx or xxxxxxxxxxxx.
For instance, to set the MAC address for npe_eth0 (NPEB) use:

  RedBoot> set_npe_mac -p 0 00:01:AF:00:20:EC

To set the MAC address of an NPE port on the GRG board, use the RedBoot
fconfig. To set the MAC address of npe_eth0 (NPEB) use:

  RedBoot> fconfig npe_eth0_esa

To set the MAC address of npe_eth1 (NPEC) use:

  RedBoot> fconfig npe_eth1_esa


Rebuilding RedBoot
------------------

The build process is nearly identical all of the four supported configurations.
Assuming that the provided RedBoot source tree is located in the current 
directory and that we want to build a RedBoot that runs from the FLASH boot
sector, the build process for the IXDP425 is:

  % export TOPDIR=`pwd`
  % export ECOS_REPOSITORY=${TOPDIR}/packages
  % export VERSION=current
  % mkdir ${TOPDIR}/build
  % cd ${TOPDIR}/build
  % ecosconfig new ixdp425 redboot
  % ecosconfig import ${ECOS_REPOSITORY}/hal/arm/xscale/ixdp425/${VERSION}/misc/redboot_ROM.ecm
  % ecosconfig tree
  % make

For the GRG board, the build process is:

  % export TOPDIR=`pwd`
  % export ECOS_REPOSITORY=${TOPDIR}/packages
  % export VERSION=current
  % mkdir ${TOPDIR}/build
  % cd ${TOPDIR}/build
  % ecosconfig new grg redboot
  % ecosconfig import ${ECOS_REPOSITORY}/hal/arm/xscale/grg/${VERSION}/misc/redboot_ROM.ecm
  % ecosconfig tree
  % make

For the PrPMC1100 board, the build process is:

  % export TOPDIR=`pwd`
  % export ECOS_REPOSITORY=${TOPDIR}/packages
  % export VERSION=current
  % mkdir ${TOPDIR}/build
  % cd ${TOPDIR}/build
  % ecosconfig new prpmc1100 redboot
  % ecosconfig import ${ECOS_REPOSITORY}/hal/arm/xscale/prpmc1100/${VERSION}/misc/redboot_ROM.ecm
  % ecosconfig tree
  % make

If a different configuration is desired, simply use the above build processes but
substitute an alternate configuration file for the ecosconfig import command.

Building ecosconfig
-------------------

An ecosconfig binary is supplied in the bin directory, but you may wish
to build it from source.

Detailed instructions for building the command-line tool ecosconfig
on UNIX can be found in host/README. For example:

  mkdir $TEMP/redboot-build
  cd $TEMP/redboot-build
  $TOPDIR/host/configure --prefix=$TEMP/redboot-build --with-tcl=/usr
  make 
