Skip to content
Snippets Groups Projects
README.IPHASE4539 13.3 KiB
Newer Older
  • Learn to ignore specific revisions
  • Wolfgang Denk's avatar
    Wolfgang Denk committed
    
    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
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    tftpboot- boot image via network using TFTP protocol
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    	       and env variables ipaddr and serverip
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    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
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    
    
    	Load uImage via tftp and boot it.
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    
    
    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
    ===================================================================