| |
| 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 |
| =================================================================== |