------------------------------------------
Installation of U-Boot using PIBS firmware
------------------------------------------

This document describes how to install U-Boot on the Ocotea PPC440GX
Evaluation Board. We do not erase the PIBS firmware but install U-Boot in the
soldered FLASH. After this you should be able to switch between PIBS and
U-Boot via the switch U46 SW1. Please check that SW1 is off (= open) before
continuing.

Connect to the serial port 0 (J11 lower) of the Ocotea board using the cu
program. See the hints for configuring cu above. Make sure you can
communicate with the PIBS firmware: reset the board and hit ENTER a couple of
times until you see the PIBS prompt (PIBS $). Then proceed as follows:


Read MAC Addresses from PIBS
----------------------------

To read the configured MAC addresses available on your Ocotea board please use
the following commands:

PIBS $ echo $hwdaddr0
000173017FE3
PIBS $ echo $hwdaddr1
000173017FE4
PIBS $ echo $hwdaddr2
000173017FE1
PIBS $ echo $hwdaddr3
000173017FE2

In U-Boot this is stored in the following environment variables:

* Ethernet Address 0: ethaddr = 000173017FE3 (==> 00:01:73:01:7F:E3)
* Ethernet Address 1: eth1addr = 000173017FE4 (==> 00:01:73:01:7F:E4)
* Ethernet Address 2: eth2addr = 000173017FE1 (==> 00:01:73:01:7F:E1)
* Ethernet Address 3: eth3addr = 000173017FE2 (==> 00:01:73:01:7F:E2)


Configure the network interface (ent0 == emac0)
-----------------------------------------------

To download the U-Boot image we need to configure the ethernet interface with
the following commands:

PIBS $ ifconfig ent0 192.168.160.142 netmask 255.255.0.0 up
PIBS $ set ipdstaddr0=192.168.1.1
status: writing PIBS variable value to FLASH
PIBS $ set bootfilename=/tftpboot/ocotea/u-boot.bin
status: writing PIBS variable value to FLASH

Please insert correct parameters for your configuration (ip-addresses and
file-location).


Program U-Boot into soldered User-FLASH
---------------------------------------

Please make sure to use a newer version of U-Boot (at least 1.1.3), since
older versions don't support running from user-FLASH.

To program U-Boot into the soldered user-FLASH use the following command:

PIBS $ storefile bin eth 0xffbc0000

This commands loads the file vis ethernet into ram and copies it into the
user-FLASH.


Switch to U-Boot
----------------

Now you can turn your board off and switch SW1 (U46) to on (= closed). After
powering the board you should see the following message:

U-Boot 1.1.3 (Apr  5 2005 - 22:59:57)

AMCC PowerPC 440 GX Rev. C
Board: AMCC 440GX Evaluation Board
	VCO: 1066 MHz
	CPU: 533 MHz
	PLB: 152 MHz
	OPB: 76 MHz
	EPB: 76 MHz
I2C:   ready
DRAM:  256 MB
FLASH:	5 MB
PCI:   Bus Dev VenId DevId Class Int
In:    serial
Out:   serial
Err:   serial
KGDB:  kgdb ready
ready
Net:   ppc_440x_eth0, ppc_440x_eth1, ppc_440x_eth2, ppc_440x_eth3
BEDBUG:ready
=>


April 06 2005, Stefan Roese <sr@denx.de>
