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