358 lines
13 KiB
Text
358 lines
13 KiB
Text
|
|
This file contains basic information on the port of U-Boot to IPHASE4539
|
|
(Interphase 4539 T1/E1/J1 PMC Communications Controller).
|
|
All the changes fit in the common U-Boot infrastructure, providing a new
|
|
IPHASE4539-specific entry in makefiles. To build U-Boot for IPHASE4539,
|
|
type "make IPHASE4539_config", edit the "include/config_IPHASE4539.h"
|
|
file if necessary, then type "make".
|
|
|
|
|
|
Common file modifications:
|
|
--------------------------
|
|
|
|
The following common files have been modified by this project:
|
|
(starting from the ppcboot-1.1.5/ directory)
|
|
|
|
MAKEALL - IPHASE4539 entry added
|
|
Makefile - IPHASE4539_config entry added
|
|
|
|
|
|
New files:
|
|
----------
|
|
|
|
The following new files have been added by this project:
|
|
(starting from the ppcboot-1.1.5/ directory)
|
|
|
|
board/iphase4539/ - board-specific directory
|
|
board/iphase4539/Makefile - board-specific makefile
|
|
board/iphase4539/config.mk - config file
|
|
board/iphase4539/flash.c - flash driver (for AM29LV033C)
|
|
board/iphase4539/ppcboot.lds - linker script
|
|
board/iphase4539/iphase4539.c - ioport and memory initialization
|
|
include/config_IPHASE4539.h - main configuration file
|
|
|
|
|
|
New configuration options:
|
|
--------------------------
|
|
|
|
CONFIG_IPHASE4539
|
|
|
|
Main board-specific option (should be defined for IPHASE4539).
|
|
|
|
|
|
Acceptance criteria tests:
|
|
--------------------------
|
|
|
|
The following tests have been conducted to validate the port of U-Boot
|
|
to IPHASE4539:
|
|
|
|
1. Operation on serial console:
|
|
|
|
With SMC1 defined as console in the main configuration file, the U-Boot
|
|
output appeared on the serial terminal connected to the 2.5mm stereo jack
|
|
connector as follows:
|
|
|
|
------------------------------------------------------------------------------
|
|
=> help
|
|
base - print or set address offset
|
|
bdinfo - print Board Info structure
|
|
bootm - boot application image from memory
|
|
bootp - boot image via network using BootP/TFTP protocol
|
|
bootd - boot default, i.e., run 'bootcmd'
|
|
cmp - memory compare
|
|
coninfo - print console devices and informations
|
|
cp - memory copy
|
|
crc32 - checksum calculation
|
|
dcache - enable or disable data cache
|
|
echo - echo args to console
|
|
erase - erase FLASH memory
|
|
flinfo - print FLASH memory information
|
|
go - start application at address 'addr'
|
|
help - print online help
|
|
icache - enable or disable instruction cache
|
|
iminfo - print header information for application image
|
|
loadb - load binary file over serial line (kermit mode)
|
|
loads - load S-Record file over serial line
|
|
loop - infinite loop on address range
|
|
md - memory display
|
|
mm - memory modify (auto-incrementing)
|
|
mtest - simple RAM test
|
|
mw - memory write (fill)
|
|
nm - memory modify (constant address)
|
|
printenv- print environment variables
|
|
protect - enable or disable FLASH write protection
|
|
rarpboot- boot image via network using RARP/TFTP protocol
|
|
reset - Perform RESET of the CPU
|
|
run - run commands in an environment variable
|
|
saveenv - save environment variables to persistent storage
|
|
setenv - set environment variables
|
|
sleep - delay execution for some time
|
|
source - run script from memory
|
|
tftpboot- boot image via network using TFTP protocol
|
|
and env variables ipaddr and serverip
|
|
version - print monitor version
|
|
? - alias for 'help'
|
|
=>
|
|
------------------------------------------------------------------------------
|
|
|
|
|
|
2. Flash driver operation
|
|
|
|
The following sequence was performed to test the "flinfo" command:
|
|
|
|
------------------------------------------------------------------------------
|
|
=> flinfo
|
|
|
|
Bank # 1: AMD AM29LV033C (32 Mbit, uniform sectors)
|
|
Size: 4 MB in 64 Sectors
|
|
Sector Start Addresses:
|
|
FF800000 (RO) FF810000 (RO) FF820000 FF830000 FF840000
|
|
FF850000 FF860000 FF870000 FF880000 FF890000
|
|
FF8A0000 FF8B0000 FF8C0000 FF8D0000 FF8E0000
|
|
FF8F0000 FF900000 FF910000 FF920000 FF930000
|
|
FF940000 FF950000 FF960000 FF970000 FF980000
|
|
FF990000 FF9A0000 FF9B0000 FF9C0000 FF9D0000
|
|
FF9E0000 FF9F0000 FFA00000 FFA10000 FFA20000
|
|
FFA30000 FFA40000 FFA50000 FFA60000 FFA70000
|
|
FFA80000 FFA90000 FFAA0000 FFAB0000 FFAC0000
|
|
FFAD0000 FFAE0000 FFAF0000 FFB00000 (RO) FFB10000 (RO)
|
|
FFB20000 (RO) FFB30000 (RO) FFB40000 FFB50000 FFB60000
|
|
FFB70000 FFB80000 FFB90000 FFBA0000 FFBB0000
|
|
FFBC0000 FFBD0000 FFBE0000 FFBF0000
|
|
------------------------------------------------------------------------------
|
|
|
|
Note: the Hardware Configuration Word (HWC) of the 8260 is on the
|
|
first sector of the flash and should not be touched. The U-Boot
|
|
environment variables are stored on second sector and U-Boot
|
|
starts at the address 0xFFB00000.
|
|
|
|
|
|
The following sequence was performed to test the erase command:
|
|
|
|
------------------------------------------------------------------------------
|
|
=> cp 0 ff880000 10
|
|
Copy to Flash... done
|
|
=> md ff880000 20
|
|
ff880000: ff000000 60000000 60000000 7c7f1b78 ....`...`...|..x
|
|
ff880010: 7c9e2378 7cbd2b78 7cdc3378 7cfb3b78 |.#x|.+x|.3x|.;x
|
|
ff880020: 3b000000 4811e0f5 48003719 480036a5 ;...H...H.7.H.6.
|
|
ff880030: 480036f9 48003731 48005c5d 7c7a1b78 H.6.H.71H.\]|z.x
|
|
ff880040: ffffffff ffffffff ffffffff ffffffff ................
|
|
ff880050: ffffffff ffffffff ffffffff ffffffff ................
|
|
ff880060: ffffffff ffffffff ffffffff ffffffff ................
|
|
ff880070: ffffffff ffffffff ffffffff ffffffff ................
|
|
=> erase ff880000 ff88ffff
|
|
Erase Flash from 0xff880000 to 0xff88ffff
|
|
.. done
|
|
Erased 1 sectors
|
|
=> md ff880000
|
|
ff880000: ffffffff ffffffff ffffffff ffffffff ................
|
|
ff880010: ffffffff ffffffff ffffffff ffffffff ................
|
|
ff880020: ffffffff ffffffff ffffffff ffffffff ................
|
|
ff880030: ffffffff ffffffff ffffffff ffffffff ................
|
|
ff880040: ffffffff ffffffff ffffffff ffffffff ................
|
|
ff880050: ffffffff ffffffff ffffffff ffffffff ................
|
|
ff880060: ffffffff ffffffff ffffffff ffffffff ................
|
|
ff880070: ffffffff ffffffff ffffffff ffffffff ................
|
|
=> cp 0 ff880000 10
|
|
Copy to Flash... done
|
|
=> md ff880000 20
|
|
ff880000: ff000000 60000000 60000000 7c7f1b78 ....`...`...|..x
|
|
ff880010: 7c9e2378 7cbd2b78 7cdc3378 7cfb3b78 |.#x|.+x|.3x|.;x
|
|
ff880020: 3b000000 4811e0f5 48003719 480036a5 ;...H...H.7.H.6.
|
|
ff880030: 480036f9 48003731 48005c5d 7c7a1b78 H.6.H.71H.\]|z.x
|
|
ff880040: ffffffff ffffffff ffffffff ffffffff ................
|
|
ff880050: ffffffff ffffffff ffffffff ffffffff ................
|
|
ff880060: ffffffff ffffffff ffffffff ffffffff ................
|
|
ff880070: ffffffff ffffffff ffffffff ffffffff ................
|
|
=> erase 1:8
|
|
Erase Flash Sectors 8-8 in Bank # 1
|
|
.. done
|
|
=> md ff880000 20
|
|
ff880000: ffffffff ffffffff ffffffff ffffffff ................
|
|
ff880010: ffffffff ffffffff ffffffff ffffffff ................
|
|
ff880020: ffffffff ffffffff ffffffff ffffffff ................
|
|
ff880030: ffffffff ffffffff ffffffff ffffffff ................
|
|
ff880040: ffffffff ffffffff ffffffff ffffffff ................
|
|
ff880050: ffffffff ffffffff ffffffff ffffffff ................
|
|
ff880060: ffffffff ffffffff ffffffff ffffffff ................
|
|
ff880070: ffffffff ffffffff ffffffff ffffffff ................
|
|
=> cp 0 ff880000 10
|
|
Copy to Flash... done
|
|
=> cp 0 ff890000 10
|
|
=> md ff880000 20
|
|
ff880000: ff000000 60000000 60000000 7c7f1b78 ....`...`...|..x
|
|
ff880010: 7c9e2378 7cbd2b78 7cdc3378 7cfb3b78 |.#x|.+x|.3x|.;x
|
|
ff880020: 3b000000 4811e0f5 48003719 480036a5 ;...H...H.7.H.6.
|
|
ff880030: 480036f9 48003731 48005c5d 7c7a1b78 H.6.H.71H.\]|z.x
|
|
ff880040: ffffffff ffffffff ffffffff ffffffff ................
|
|
ff880050: ffffffff ffffffff ffffffff ffffffff ................
|
|
ff880060: ffffffff ffffffff ffffffff ffffffff ................
|
|
ff880070: ffffffff ffffffff ffffffff ffffffff ................
|
|
=> md ff890000
|
|
ff890000: ff000000 60000000 60000000 7c7f1b78 ....`...`...|..x
|
|
ff890010: 7c9e2378 7cbd2b78 7cdc3378 7cfb3b78 |.#x|.+x|.3x|.;x
|
|
ff890020: 3b000000 4811e0f5 48003719 480036a5 ;...H...H.7.H.6.
|
|
ff890030: 480036f9 48003731 48005c5d 7c7a1b78 H.6.H.71H.\]|z.x
|
|
ff890040: ffffffff ffffffff ffffffff ffffffff ................
|
|
ff890050: ffffffff ffffffff ffffffff ffffffff ................
|
|
ff890060: ffffffff ffffffff ffffffff ffffffff ................
|
|
ff890070: ffffffff ffffffff ffffffff ffffffff ................
|
|
=> erase 1:8-9
|
|
Erase Flash Sectors 8-9 in Bank # 1
|
|
.... done
|
|
=> md ff880000 20
|
|
ff880000: ffffffff ffffffff ffffffff ffffffff ................
|
|
ff880010: ffffffff ffffffff ffffffff ffffffff ................
|
|
ff880020: ffffffff ffffffff ffffffff ffffffff ................
|
|
ff880030: ffffffff ffffffff ffffffff ffffffff ................
|
|
ff880040: ffffffff ffffffff ffffffff ffffffff ................
|
|
ff880050: ffffffff ffffffff ffffffff ffffffff ................
|
|
ff880060: ffffffff ffffffff ffffffff ffffffff ................
|
|
ff880070: ffffffff ffffffff ffffffff ffffffff ................
|
|
=> md ff890000
|
|
ff890000: ffffffff ffffffff ffffffff ffffffff ................
|
|
ff890010: ffffffff ffffffff ffffffff ffffffff ................
|
|
ff890020: ffffffff ffffffff ffffffff ffffffff ................
|
|
ff890030: ffffffff ffffffff ffffffff ffffffff ................
|
|
ff890040: ffffffff ffffffff ffffffff ffffffff ................
|
|
ff890050: ffffffff ffffffff ffffffff ffffffff ................
|
|
ff890060: ffffffff ffffffff ffffffff ffffffff ................
|
|
ff890070: ffffffff ffffffff ffffffff ffffffff ................
|
|
=>
|
|
------------------------------------------------------------------------------
|
|
|
|
|
|
The following sequence was performed to test the Flash programming commands:
|
|
|
|
------------------------------------------------------------------------------
|
|
=> erase ff880000 ff88ffff
|
|
Erase Flash from 0xff880000 to 0xff88ffff
|
|
.. done
|
|
Erased 1 sectors
|
|
=> cp 0 ff880000 10
|
|
Copy to Flash... done
|
|
=> md 0 20
|
|
00000000: ff000000 60000000 60000000 7c7f1b78 ....`...`...|..x
|
|
00000010: 7c9e2378 7cbd2b78 7cdc3378 7cfb3b78 |.#x|.+x|.3x|.;x
|
|
00000020: 3b000000 4811e0f5 48003719 480036a5 ;...H...H.7.H.6.
|
|
00000030: 480036f9 48003731 48005c5d 7c7a1b78 H.6.H.71H.\]|z.x
|
|
00000040: 3c83c000 2c040000 40823378 7c0000a6 <...,...@.3x|...
|
|
00000050: 60000030 7c1b03a6 3c00c000 600035ec `..0|...<...`.5.
|
|
00000060: 7c1a03a6 4c000064 00000000 00000000 |...L..d........
|
|
00000070: 00000000 00000000 00000000 00000000 ................
|
|
=> md ff880000 20
|
|
ff880000: ff000000 60000000 60000000 7c7f1b78 ....`...`...|..x
|
|
ff880010: 7c9e2378 7cbd2b78 7cdc3378 7cfb3b78 |.#x|.+x|.3x|.;x
|
|
ff880020: 3b000000 4811e0f5 48003719 480036a5 ;...H...H.7.H.6.
|
|
ff880030: 480036f9 48003731 48005c5d 7c7a1b78 H.6.H.71H.\]|z.x
|
|
ff880040: ffffffff ffffffff ffffffff ffffffff ................
|
|
ff880050: ffffffff ffffffff ffffffff ffffffff ................
|
|
ff880060: ffffffff ffffffff ffffffff ffffffff ................
|
|
ff880070: ffffffff ffffffff ffffffff ffffffff ................
|
|
=>
|
|
------------------------------------------------------------------------------
|
|
|
|
|
|
The following sequence was performed to test storage of the environment
|
|
variables in Flash:
|
|
|
|
------------------------------------------------------------------------------
|
|
=> setenv foo bar
|
|
=> saveenv
|
|
Un-Protected 1 sectors
|
|
Erasing Flash...
|
|
.. done
|
|
Erased 1 sectors
|
|
Saving Environment to Flash...
|
|
Protected 1 sectors
|
|
=> reset
|
|
...
|
|
=> printenv
|
|
...
|
|
foo=bar
|
|
...
|
|
Environment size: 339/65532 bytes
|
|
=>
|
|
------------------------------------------------------------------------------
|
|
|
|
|
|
The following sequence was performed to test image download and run over
|
|
Ethernet interface (both interfaces were tested):
|
|
|
|
------------------------------------------------------------------------------
|
|
=> tftpboot 40000 hello_world.bin
|
|
ARP broadcast 1
|
|
TFTP from server 10.0.0.1; our IP address is 10.0.0.8
|
|
Filename 'hello_world.bin'.
|
|
Load address: 0x40000
|
|
Loading: #############
|
|
done
|
|
Bytes transferred = 65932 (1018c hex)
|
|
=> go 40004
|
|
## Starting application at 0x00040004 ...
|
|
Hello World
|
|
argc = 1
|
|
argv[0] = "40004"
|
|
argv[1] = "<NULL>"
|
|
Hit any key to exit ...
|
|
|
|
## Application terminated, rc = 0x0
|
|
=>
|
|
------------------------------------------------------------------------------
|
|
|
|
|
|
3. Known Problems
|
|
|
|
None for the moment.
|
|
|
|
|
|
----------------------------------------------------------------------------
|
|
U-Boot and Linux for Interphase 4539 T1/E1/J1 PMC Communications Controller
|
|
----------------------------------------------------------------------------
|
|
|
|
U-Boot:
|
|
|
|
Configure and make U-Boot:
|
|
|
|
$ cd <path>/u-boot
|
|
$ make IPHASE4539_config
|
|
$ make dep
|
|
$ make
|
|
$ cp -p u-boot.bin /tftpboot
|
|
|
|
Load u-boot.bin into the Flash memory at 0xffb00000.
|
|
|
|
|
|
Linux:
|
|
|
|
Configure and make Linux:
|
|
|
|
$ cd <patch>/linux-2.4
|
|
$ make IPHASE4539_config
|
|
$ make oldconfig
|
|
$ make dep
|
|
$ make uImage
|
|
$ cp -p arch/powerpc/mbxboot/uImage /tftpboot
|
|
|
|
Load uImage via tftp and boot it.
|
|
|
|
|
|
Flash organisation:
|
|
|
|
The following preliminary layout of the Flash memory
|
|
is defined:
|
|
|
|
0xff800000 ( 0 - 64 kB): Hardware Configuration Word.
|
|
0xff810000 ( 64 kB - 128 kB): U-Boot Environment.
|
|
0xff820000 ( 128 kB - 3 MB): RAMdisk.
|
|
0xffb00000 ( 3 MB - 3328 kB): U-Boot.
|
|
0xffb40000 (3328 KB - 4 MB): Linux Kernel.
|
|
|
|
|
|
For further information concerning U-Boot and Linux please consult
|
|
the "DENX U-Boot and Linux Guide".
|
|
|
|
|
|
(C) 2002 Wolfgang Grandegger, DENX Software Engineering, wg@denx.de
|
|
===================================================================
|