Initial revision
diff --git a/doc/README.IPHASE4539 b/doc/README.IPHASE4539
new file mode 100644
index 0000000..d3db38e
--- /dev/null
+++ b/doc/README.IPHASE4539
@@ -0,0 +1,358 @@
+
+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
+autoscr - run script from memory
+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
+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 pImage
+	$ cp -p arch/ppc/mbxboot/pImage /tftpboot
+
+	Load pImage 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
+===================================================================