* Patch by Stephen Williams, 01 Apr 2004:
[platform/kernel/u-boot.git] / doc / README.Sandpoint8240
1 The port was tested on a Sandpoint 8240 X3 board, with U-Boot
2 installed in the flash memory of the CPU card. Please use the
3 following DIP switch settings:
4
5 Motherboard:
6
7 SW1.1: on       SW1.2: on       SW1.3: on       SW1.4: on
8 SW1.5: on       SW1.6: on       SW1.7: on       SW1.8: on
9
10 SW2.1: on       SW2.2: on       SW2.3: on       SW2.4: on
11 SW2.5: on       SW2.6: on       SW2.7: on       SW2.8: on
12
13
14 CPU Card:
15
16 SW2.1: OFF      SW2.2: OFF      SW2.3: on       SW2.4: on
17 SW2.5: OFF      SW2.6: OFF      SW2.7: OFF      SW2.8: OFF
18
19 SW3.1: OFF      SW3.2: on       SW3.3: OFF      SW3.4: OFF
20 SW3.5: on       SW3.6: OFF      SW3.7: OFF      SW3.8: on
21
22
23 The followind detailed description of installation and initial steps
24 with U-Boot and QNX was provided by Jim Sandoz <sandoz@lucent.com>:
25
26
27 Directions for installing U-Boot on Sandpoint+Unity8240
28 using the Abatron BDI2000 BDM/JTAG debugger ...
29
30 Background and Reference info:
31 http://u-boot.sourceforge.net/
32 http://www.abatron.ch/
33 http://www.abatron.ch/BDI/bdihw.html
34 http://www.abatron.ch/DataSheets/BDI2000.pdf
35 http://www.abatron.ch/Manuals/ManGdbCOP-2000C.pdf
36 http://e-www.motorola.com/collateral/SPX3UM.pdf
37 http://e-www.motorola.com/collateral/UNITYX4CONFIG.pdf
38
39
40 Connection Diagram:
41                                             ===========
42  ===                     =====             |-----      |
43 |   | <---------------> |     |            |     |     |
44 |PC |       rs232       | BDI |=============[]   |     |
45 |   |                   |2000 |  BDM probe |     |     |
46 |   | <---------------> |     |            |-----      |
47  ===       ethernet      =====             |           |
48                                            |           |
49                                             ===========
50                                          Sandpoint X3 with
51                                           Unity 8240 proc
52
53
54 PART 1)
55   DIP Switch Settings:
56
57 Sandpoint X3 8240 processor board DIP switch settings, with
58 U-Boot to be installed in the flash memory of the CPU card:
59
60 Motorola Sandpoint X3 Motherboard:
61 SW1.1: on       SW1.2: on       SW1.3: on       SW1.4: on
62 SW1.5: on       SW1.6: on       SW1.7: on       SW1.8: on
63 SW2.1: on       SW2.2: on       SW2.3: on       SW2.4: on
64 SW2.5: on       SW2.6: on       SW2.7: on       SW2.8: on
65
66 Motorola Unity 8240 CPU Card:
67 SW2.1: OFF      SW2.2: OFF      SW2.3: on       SW2.4: on
68 SW2.5: OFF      SW2.6: OFF      SW2.7: OFF      SW2.8: OFF
69 SW3.1: OFF      SW3.2: on       SW3.3: OFF      SW3.4: OFF
70 SW3.5: on       SW3.6: OFF      SW3.7: OFF      SW3.8: on
71
72
73 PART 2)
74   Connect the BDI2000 Cable to the Sandpoint/Unity 8240:
75
76 BDM Pin 1 on the Unity 8240 processor board is towards the
77 PCI PMC connectors, or away from the socketed SDRAM, i.e.:
78
79   ====================
80   | ---------------- |
81   | |    SDRAM     | |
82   | |              | |
83   | ---------------- |
84   | |~|              |
85   | |B|       ++++++ |
86   | |D|       + uP + |
87   | |M|       +8240+ |
88   |  ~ 1      ++++++ |
89   |                  |
90   |                  |
91   |                  |
92   | PMC conn ======  |
93   |   =====  ======  |
94   |                  |
95   ====================
96
97
98 PART 3)
99   Setting up the BDI2000, and preparing for TCP/IP network comms:
100
101 Connect the BDI2000 to the PC using the supplied serial cable.
102 Download the BDI2000 software and install it using setup.exe.
103
104 [Note: of course you  can  also  use  the  Linux  command  line  tool
105 "bdisetup"  to  configure  your BDI2000 - the sources are included on
106 the floppy disk that comes with your BDI2000. Just in case you  don't
107 have any Windows PC's - like me :-)   -- wd ]
108
109 Power up the BDI2000; then follow directions to assign the IP
110 address and related network information.  Note that U-Boot
111 will be loaded to the Sandpoint via tftp.  You need to either
112 use the Abatron-provided tftp application or provide a tftp
113 server (e.g. Linux/Solaris/*BSD) somewhere on your network.
114 Once the IP address etc are assigned via the RS232 port,
115 further communication with the BDI2000 will happen via the
116 ethernet connection.
117
118 PART 4)
119   Making a TCP/IP network connection to the Abatron BDI2000:
120
121 Telnet to the Abatron BDI2000.  Assuming that all of the
122 networking info was loaded via RS232 correctly, you will see
123 the following (scrolling):
124
125 - TARGET: waiting for target Vcc
126 - TARGET: waiting for target Vcc
127
128
129 PART 5)
130   Power up the target Sandpoint:
131 If the BDM connections are correct, the following will now appear:
132
133 - TARGET: waiting for target Vcc
134 - TARGET: waiting for target Vcc
135 - TARGET: processing power-up delay
136 - TARGET: processing user reset request
137 - BDI asserts HRESET
138 - Reset JTAG controller passed
139 - Bypass check: 0x55 => 0xAA
140 - Bypass check: 0x55 => 0xAA
141 - JTAG exists check passed
142 - Target PVR is 0x00810101
143 - COP status is 0x01
144 - Check running state passed
145 - BDI scans COP freeze command
146 - BDI removes HRESET
147 - COP status is 0x05
148 - Check stopped state passed
149 - Check LSRL length passed
150 - BDI sets breakpoint at 0xFFF00100
151 - BDI resumes program execution
152 - Waiting for target stop passed
153 - TARGET: Target PVR is 0x00810101
154 - TARGET: reseting target passed
155 - TARGET: processing target startup ....
156 - TARGET: processing target startup passed
157 BDI>
158
159
160 PART 6)
161   Erase the current contents of the flash memory:
162
163 BDI>era 0xFFF00000
164     Erasing flash at 0xfff00000
165     Erasing flash passed
166 BDI>era 0xFFF04000
167     Erasing flash at 0xfff04000
168     Erasing flash passed
169 BDI>era 0xFFF06000
170     Erasing flash at 0xfff06000
171     Erasing flash passed
172 BDI>era 0xFFF08000
173     Erasing flash at 0xfff08000
174     Erasing flash passed
175 BDI>era 0xFFF10000
176     Erasing flash at 0xfff10000
177     Erasing flash passed
178 BDI>era 0xFFF20000
179     Erasing flash at 0xfff20000
180     Erasing flash passed
181
182
183 PART 7)
184   Program the flash memory with the U-Boot image:
185
186 BDI>prog 0xFFF00000 u-boot.bin bin
187     Programming u-boot.bin , please wait ....
188     Programming flash passed
189
190
191 PART 8)
192   Connect PC to Sandpoint:
193 Using a crossover serial cable, attach the PC serial port to the
194 Sandpoint's COM1.  Set communications parameters to 8N1 / 9600 baud.
195
196
197 PART 9)
198   Reset the Unity and begin U-Boot execution:
199
200 BDI>reset
201 - TARGET: processing user reset request
202 - TARGET: Target PVR is 0x00810101
203 - TARGET: reseting target passed
204 - TARGET: processing target init list ....
205 - TARGET: processing target init list passed
206
207 BDI>go
208
209 Now see output from U-Boot running, sent via serial port:
210
211 U-Boot 1.1.4 (Jan 23 2002 - 18:29:19)
212
213 CPU:   MPC8240 Revision 1.1 at 264 MHz: 16 kB I-Cache 16 kB D-Cache
214 Board: Sandpoint 8240 Unity
215 DRAM:  64 MB
216 FLASH:  2 MB
217 PCI:    scanning bus0 ...
218   bus dev fn venID devID class  rev MBAR0    MBAR1    IPIN ILINE
219   00  00  00 1057  0003  060000 13  00000008 00000000 01   00
220   00  0b  00 10ad  0565  060100 10  00000000 00000000 00   00
221   00  0f  00 8086  1229  020000 08  80000000 80000001 01   00
222 In:    serial
223 Out:   serial
224 Err:   serial
225 =>
226
227
228 PART 10)
229   Set and save any required environmental variables, examples of some:
230
231 => setenv ethaddr 00:03:47:97:D0:79
232 => setenv bootfile your_qnx_image_here
233 => setenv hostname sandpointX
234 => setenv netmask 255.255.255.0
235 => setenv ipaddr 192.168.0.11
236 => setenv serverip 192.168.0.10
237 => setenv gatewayip=192.168.0.1
238 => saveenv
239 Saving Enviroment to Flash...
240 Un-Protected 1 sectors
241 Erasing Flash...
242  done
243 Erased 1 sectors
244 Writing to Flash... done
245 Protected 1 sectors
246 =>
247
248 **** Example environment: ****
249
250 => printenv
251 baudrate=9600
252 bootfile=telemetry
253 hostname=sp1
254 ethaddr=00:03:47:97:E4:6B
255 load=tftp 100000 u-boot.bin
256 update=protect off all;era FFF00000 FFF3FFFF;cp.b 100000 FFF00000 $(filesize);saveenv
257 filesize=1f304
258 gatewayip=145.17.228.1
259 netmask=255.255.255.0
260 ipaddr=145.17.228.42
261 serverip=145.17.242.46
262 stdin=serial
263 stdout=serial
264 stderr=serial
265
266 Environment size: 332/8188 bytes
267 =>
268
269 here's some text useful stuff for cut-n-paste:
270 setenv hostname sandpoint1
271 setenv netmask 255.255.255.0
272 setenv ipaddr 145.17.228.81
273 setenv serverip 145.17.242.46
274 setenv gatewayip 145.17.228.1
275 saveenv
276
277 PART 11)
278   Test U-Boot by tftp'ing new U-Boot, overwriting current:
279
280 => protect off all
281 Un-Protect Flash Bank # 1
282 => tftp 100000 u-boot.bin
283 eth: Intel i82559 PCI EtherExpressPro @0x80000000(bus=0, device=15, func=0)
284 ARP broadcast 1
285 TFTP from server 145.17.242.46; our IP address is 145.17.228.42; sending through
286  gateway 145.17.228.1
287 Filename 'u-boot.bin'.
288 Load address: 0x100000
289 Loading: #########################
290 done
291 Bytes transferred = 127628 (1f28c hex)
292 => era all
293 Erase Flash Bank # 1
294  done
295 Erase Flash Bank # 2 - missing
296 => cp.b 0x100000 FFF00000 1f28c
297 Copy to Flash... done
298 => saveenv
299 Saving Enviroment to Flash...
300 Un-Protected 1 sectors
301 Erasing Flash...
302  done
303 Erased 1 sectors
304 Writing to Flash... done
305 Protected 1 sectors
306 => reset
307
308 You can put these commands into some environment variables;
309
310 => setenv load tftp 100000 u-boot.bin
311 => setenv update protect off all\;era FFF00000 FFF3FFFF\;cp.b 100000 FFF00000 \$(filesize)\;saveenv
312 => saveenv
313
314 Then you just have to type "run load" then "run update"
315
316 => run load
317 eth: Intel i82559 PCI EtherExpressPro @0x80000000(bus=0, device=15, func=0)
318 ARP broadcast 1
319 TFTP from server 145.17.242.46; our IP address is 145.17.228.42; sending through
320  gateway 145.17.228.1
321 Filename 'u-boot.bin'.
322 Load address: 0x100000
323 Loading: #########################
324 done
325 Bytes transferred = 127748 (1f304 hex)
326 => run update
327 Un-Protect Flash Bank # 1
328 Un-Protect Flash Bank # 2
329 Erase Flash from 0xfff00000 to 0xfff3ffff
330  done
331 Erased 7 sectors
332 Copy to Flash... done
333 Saving Enviroment to Flash...
334 Un-Protected 1 sectors
335 Erasing Flash...
336  done
337 Erased 1 sectors
338 Writing to Flash... done
339 Protected 1 sectors
340 =>
341
342
343 PART 12)
344   Load OS image (ELF format) via U-Boot using tftp
345
346
347 => tftp 800000 sandpoint-simple.elf
348 eth: Intel i82559 PCI EtherExpressPro @0x80000000(bus=0, device=15, func=0)
349 ARP broadcast 1
350 TFTP from server 145.17.242.46; our IP address is 145.17.228.42; sending through
351  gateway 145.17.228.1
352 Filename 'sandpoint-simple.elf'.
353 Load address: 0x800000
354 Loading: #################################################################
355          #################################################################
356          #################################################################
357          ########################
358 done
359 Bytes transferred = 1120284 (11181c hex)
360 ==>
361
362 PART 13)
363   Begin OS image execution: (note that unless you have the
364 serial parameters of your OS image set to 9600 (i.e. same as
365 the U-Boot binary) you will get garbage here until you change
366 the serial communications speed.
367
368 => bootelf 800000
369 Loading  @ 0x001f0100 (1120028 bytes)
370 ## Starting application at 0x001f1d28 ...
371 Replace init_hwinfo() with a board specific version
372
373 Loading QNX6....
374
375 Header size=0x0000009c, Total Size=0x000005c0, #Cpu=1, Type=1
376 <...loader and kernel messages snipped...>
377
378 Welcome to Neutrino on the Sandpoint
379 #
380
381
382 other information:
383
384 CVS Retrieval Notes:
385
386 U-Boot's SourceForge CVS repository can be checked out
387 through anonymous (pserver) CVS with the following
388 instruction set. The module you wish to check out must
389 be specified as the modulename. When prompted for a
390 password for anonymous, simply press the Enter key.
391
392 cvs -d:pserver:anonymous@cvs.u-boot.sourceforge.net:/cvsroot/u-boot login
393
394 cvs -z6 -d:pserver:anonymous@cvs.u-boot.sourceforge.net:/cvsroot/u-boot co -P u-boot