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