|  | 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: | 
|  | =========== | 
|  | ===                     =====             |-----      | | 
|  | |   | <---------------> |     |            |     |     | | 
|  | |PC |       rs232       | BDI |=============[]   |     | | 
|  | |   |                   |2000 |  BDM probe |     |     | | 
|  | |   | <---------------> |     |            |-----      | | 
|  | ===       ethernet      =====             |           | | 
|  | |           | | 
|  | =========== | 
|  | Sandpoint X3 with | 
|  | Unity 8240 proc | 
|  |  | 
|  |  | 
|  | 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 | 
|  | 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 | 
|  | => 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: ################################################################# | 
|  | ################################################################# | 
|  | ################################################################# | 
|  | ######################## | 
|  | 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 |