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