Skip to content
Snippets Groups Projects
README.Sandpoint8240 10.5 KiB
Newer Older
  • Learn to ignore specific revisions
  • Wolfgang Denk's avatar
    Wolfgang Denk committed
    The port was tested on a Sandpoint 8240 X3 board, with U-Boot
    installed in the flash memory of the CPU card. Please use the
    following DIP switch settings:
    
    Motherboard:
    
    SW1.1: on	SW1.2: on	SW1.3: on	SW1.4: on
    SW1.5: on	SW1.6: on	SW1.7: on	SW1.8: on
    
    SW2.1: on	SW2.2: on	SW2.3: on	SW2.4: on
    SW2.5: on	SW2.6: on	SW2.7: on	SW2.8: on
    
    
    CPU Card:
    
    SW2.1: OFF	SW2.2: OFF	SW2.3: on	SW2.4: on
    SW2.5: OFF	SW2.6: OFF	SW2.7: OFF	SW2.8: OFF
    
    SW3.1: OFF	SW3.2: on	SW3.3: OFF	SW3.4: OFF
    SW3.5: on	SW3.6: OFF	SW3.7: OFF	SW3.8: on
    
    
    The followind detailed description of installation and initial steps
    with U-Boot and QNX was provided by Jim Sandoz <sandoz@lucent.com>:
    
    
    Directions for installing U-Boot on Sandpoint+Unity8240
    using the Abatron BDI2000 BDM/JTAG debugger ...
    
    Background and Reference info:
    http://u-boot.sourceforge.net/
    http://www.abatron.ch/
    http://www.abatron.ch/BDI/bdihw.html
    http://www.abatron.ch/DataSheets/BDI2000.pdf
    http://www.abatron.ch/Manuals/ManGdbCOP-2000C.pdf
    http://e-www.motorola.com/collateral/SPX3UM.pdf
    http://e-www.motorola.com/collateral/UNITYX4CONFIG.pdf
    
    
    Connection Diagram:
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    					    ===========
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
     ===                     =====             |-----      |
    |   | <---------------> |     |            |     |     |
    |PC |       rs232       | BDI |=============[]   |     |
    |   |                   |2000 |  BDM probe |     |     |
    |   | <---------------> |     |            |-----      |
     ===       ethernet      =====             |           |
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    					   |           |
    					    ===========
    					 Sandpoint X3 with
    					  Unity 8240 proc
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    
    
    PART 1)
      DIP Switch Settings:
    
    Sandpoint X3 8240 processor board DIP switch settings, with
    U-Boot to be installed in the flash memory of the CPU card:
    
    Motorola Sandpoint X3 Motherboard:
    SW1.1: on	SW1.2: on	SW1.3: on	SW1.4: on
    SW1.5: on	SW1.6: on	SW1.7: on	SW1.8: on
    SW2.1: on	SW2.2: on	SW2.3: on	SW2.4: on
    SW2.5: on	SW2.6: on	SW2.7: on	SW2.8: on
    
    Motorola Unity 8240 CPU Card:
    SW2.1: OFF	SW2.2: OFF	SW2.3: on	SW2.4: on
    SW2.5: OFF	SW2.6: OFF	SW2.7: OFF	SW2.8: OFF
    SW3.1: OFF	SW3.2: on	SW3.3: OFF	SW3.4: OFF
    SW3.5: on	SW3.6: OFF	SW3.7: OFF	SW3.8: on
    
    
    PART 2)
      Connect the BDI2000 Cable to the Sandpoint/Unity 8240:
    
    BDM Pin 1 on the Unity 8240 processor board is towards the
    PCI PMC connectors, or away from the socketed SDRAM, i.e.:
    
      ====================
      | ---------------- |
      | |    SDRAM     | |
      | |              | |
      | ---------------- |
      | |~|              |
      | |B|       ++++++ |
      | |D|       + uP + |
      | |M|       +8240+ |
      |  ~ 1      ++++++ |
      |                  |
      |                  |
      |                  |
      | PMC conn ======  |
      |   =====  ======  |
      |                  |
      ====================
    
    
    PART 3)
      Setting up the BDI2000, and preparing for TCP/IP network comms:
    
    Connect the BDI2000 to the PC using the supplied serial cable.
    Download the BDI2000 software and install it using setup.exe.
    
    [Note: of course you  can  also  use  the  Linux  command  line  tool
    "bdisetup"  to  configure  your BDI2000 - the sources are included on
    the floppy disk that comes with your BDI2000. Just in case you  don't
    have any Windows PC's - like me :-)   -- wd ]
    
    Power up the BDI2000; then follow directions to assign the IP
    address and related network information.  Note that U-Boot
    will be loaded to the Sandpoint via tftp.  You need to either
    use the Abatron-provided tftp application or provide a tftp
    server (e.g. Linux/Solaris/*BSD) somewhere on your network.
    Once the IP address etc are assigned via the RS232 port,
    further communication with the BDI2000 will happen via the
    ethernet connection.
    
    PART 4)
      Making a TCP/IP network connection to the Abatron BDI2000:
    
    Telnet to the Abatron BDI2000.  Assuming that all of the
    networking info was loaded via RS232 correctly, you will see
    the following (scrolling):
    
    - TARGET: waiting for target Vcc
    - TARGET: waiting for target Vcc
    
    
    PART 5)
      Power up the target Sandpoint:
    If the BDM connections are correct, the following will now appear:
    
    - TARGET: waiting for target Vcc
    - TARGET: waiting for target Vcc
    - TARGET: processing power-up delay
    - TARGET: processing user reset request
    - BDI asserts HRESET
    - Reset JTAG controller passed
    - Bypass check: 0x55 => 0xAA
    - Bypass check: 0x55 => 0xAA
    - JTAG exists check passed
    - Target PVR is 0x00810101
    - COP status is 0x01
    - Check running state passed
    - BDI scans COP freeze command
    - BDI removes HRESET
    - COP status is 0x05
    - Check stopped state passed
    - Check LSRL length passed
    - BDI sets breakpoint at 0xFFF00100
    - BDI resumes program execution
    - Waiting for target stop passed
    - TARGET: Target PVR is 0x00810101
    - TARGET: reseting target passed
    - TARGET: processing target startup ....
    - TARGET: processing target startup passed
    BDI>
    
    
    PART 6)
      Erase the current contents of the flash memory:
    
    BDI>era 0xFFF00000
        Erasing flash at 0xfff00000
        Erasing flash passed
    BDI>era 0xFFF04000
        Erasing flash at 0xfff04000
        Erasing flash passed
    BDI>era 0xFFF06000
        Erasing flash at 0xfff06000
        Erasing flash passed
    BDI>era 0xFFF08000
        Erasing flash at 0xfff08000
        Erasing flash passed
    BDI>era 0xFFF10000
        Erasing flash at 0xfff10000
        Erasing flash passed
    BDI>era 0xFFF20000
        Erasing flash at 0xfff20000
        Erasing flash passed
    
    
    PART 7)
      Program the flash memory with the U-Boot image:
    
    BDI>prog 0xFFF00000 u-boot.bin bin
        Programming u-boot.bin , please wait ....
        Programming flash passed
    
    
    PART 8)
      Connect PC to Sandpoint:
    Using a crossover serial cable, attach the PC serial port to the
    Sandpoint's COM1.  Set communications parameters to 8N1 / 9600 baud.
    
    
    PART 9)
      Reset the Unity and begin U-Boot execution:
    
    BDI>reset
    - TARGET: processing user reset request
    - TARGET: Target PVR is 0x00810101
    - TARGET: reseting target passed
    - TARGET: processing target init list ....
    - TARGET: processing target init list passed
    
    BDI>go
    
    Now see output from U-Boot running, sent via serial port:
    
    U-Boot 1.1.4 (Jan 23 2002 - 18:29:19)
    
    CPU:   MPC8240 Revision 1.1 at 264 MHz: 16 kB I-Cache 16 kB D-Cache
    Board: Sandpoint 8240 Unity
    DRAM:  64 MB
    FLASH:  2 MB
    PCI:    scanning bus0 ...
      bus dev fn venID devID class  rev MBAR0    MBAR1    IPIN ILINE
      00  00  00 1057  0003  060000 13  00000008 00000000 01   00
      00  0b  00 10ad  0565  060100 10  00000000 00000000 00   00
      00  0f  00 8086  1229  020000 08  80000000 80000001 01   00
    In:    serial
    Out:   serial
    Err:   serial
    =>
    
    
    PART 10)
      Set and save any required environmental variables, examples of some:
    
    => setenv ethaddr 00:03:47:97:D0:79
    => setenv bootfile your_qnx_image_here
    => setenv hostname sandpointX
    => setenv netmask 255.255.255.0
    => setenv ipaddr 192.168.0.11
    => setenv serverip 192.168.0.10
    => setenv gatewayip=192.168.0.1
    => saveenv
    Saving Enviroment to Flash...
    Un-Protected 1 sectors
    Erasing Flash...
     done
    Erased 1 sectors
    Writing to Flash... done
    Protected 1 sectors
    =>
    
    **** Example environment: ****
    
    => printenv
    baudrate=9600
    bootfile=telemetry
    hostname=sp1
    ethaddr=00:03:47:97:E4:6B
    load=tftp 100000 u-boot.bin
    
    update=protect off all;era FFF00000 FFF3FFFF;cp.b 100000 FFF00000 ${filesize};saveenv
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    filesize=1f304
    gatewayip=145.17.228.1
    netmask=255.255.255.0
    ipaddr=145.17.228.42
    serverip=145.17.242.46
    stdin=serial
    stdout=serial
    stderr=serial
    
    Environment size: 332/8188 bytes
    =>
    
    here's some text useful stuff for cut-n-paste:
    setenv hostname sandpoint1
    setenv netmask 255.255.255.0
    setenv ipaddr 145.17.228.81
    setenv serverip 145.17.242.46
    setenv gatewayip 145.17.228.1
    saveenv
    
    PART 11)
      Test U-Boot by tftp'ing new U-Boot, overwriting current:
    
    => protect off all
    Un-Protect Flash Bank # 1
    => tftp 100000 u-boot.bin
    eth: Intel i82559 PCI EtherExpressPro @0x80000000(bus=0, device=15, func=0)
    ARP broadcast 1
    TFTP from server 145.17.242.46; our IP address is 145.17.228.42; sending through
     gateway 145.17.228.1
    Filename 'u-boot.bin'.
    Load address: 0x100000
    Loading: #########################
    done
    Bytes transferred = 127628 (1f28c hex)
    => era all
    Erase Flash Bank # 1
     done
    Erase Flash Bank # 2 - missing
    => cp.b 0x100000 FFF00000 1f28c
    Copy to Flash... done
    => saveenv
    Saving Enviroment to Flash...
    Un-Protected 1 sectors
    Erasing Flash...
     done
    Erased 1 sectors
    Writing to Flash... done
    Protected 1 sectors
    => reset
    
    You can put these commands into some environment variables;
    
    => setenv load tftp 100000 u-boot.bin
    
    => setenv update protect off all\;era FFF00000 FFF3FFFF\;cp.b 100000 FFF00000 \${filesize}\;saveenv
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    => saveenv
    
    Then you just have to type "run load" then "run update"
    
    => run load
    eth: Intel i82559 PCI EtherExpressPro @0x80000000(bus=0, device=15, func=0)
    ARP broadcast 1
    TFTP from server 145.17.242.46; our IP address is 145.17.228.42; sending through
     gateway 145.17.228.1
    Filename 'u-boot.bin'.
    Load address: 0x100000
    Loading: #########################
    done
    Bytes transferred = 127748 (1f304 hex)
    => run update
    Un-Protect Flash Bank # 1
    Un-Protect Flash Bank # 2
    Erase Flash from 0xfff00000 to 0xfff3ffff
     done
    Erased 7 sectors
    Copy to Flash... done
    Saving Enviroment to Flash...
    Un-Protected 1 sectors
    Erasing Flash...
     done
    Erased 1 sectors
    Writing to Flash... done
    Protected 1 sectors
    =>
    
    
    PART 12)
      Load OS image (ELF format) via U-Boot using tftp
    
    
    => tftp 800000 sandpoint-simple.elf
    eth: Intel i82559 PCI EtherExpressPro @0x80000000(bus=0, device=15, func=0)
    ARP broadcast 1
    TFTP from server 145.17.242.46; our IP address is 145.17.228.42; sending through
     gateway 145.17.228.1
    Filename 'sandpoint-simple.elf'.
    Load address: 0x800000
    Loading: #################################################################
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    	 #################################################################
    	 #################################################################
    	 ########################
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    done
    Bytes transferred = 1120284 (11181c hex)
    ==>
    
    PART 13)
      Begin OS image execution: (note that unless you have the
    serial parameters of your OS image set to 9600 (i.e. same as
    the U-Boot binary) you will get garbage here until you change
    the serial communications speed.
    
    => bootelf 800000
    Loading  @ 0x001f0100 (1120028 bytes)
    ## Starting application at 0x001f1d28 ...
    Replace init_hwinfo() with a board specific version
    
    Loading QNX6....
    
    Header size=0x0000009c, Total Size=0x000005c0, #Cpu=1, Type=1
    <...loader and kernel messages snipped...>
    
    Welcome to Neutrino on the Sandpoint
    #
    
    
    other information:
    
    CVS Retrieval Notes:
    
    U-Boot's SourceForge CVS repository can be checked out
    through anonymous (pserver) CVS with the following
    instruction set. The module you wish to check out must
    be specified as the modulename. When prompted for a
    password for anonymous, simply press the Enter key.
    
    cvs -d:pserver:anonymous@cvs.u-boot.sourceforge.net:/cvsroot/u-boot login
    
    cvs -z6 -d:pserver:anonymous@cvs.u-boot.sourceforge.net:/cvsroot/u-boot co -P u-boot