|  |  | 
|  | 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 uImage | 
|  | $ cp -p arch/ppc/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 | 
|  | =================================================================== |