summaryrefslogtreecommitdiffstats
path: root/qemu/roms/u-boot/board/sandpoint/README
blob: c9996a8c06edc5d786fe9231b16ded0c091b7bb0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
This port of U-Boot will run on a Motorola Sandpoint 3 development
system equipped with a Unity X4 PPMC card (MPC8240 CPU) only. It is a
snapshot of work in progress and far from being completed. In order
to run it on the target system, it has to be downloaded using the
DINK32 monitor program that came with your Sandpoint system. Please
note that DINK32 does not accept the S-Record file created by the
U-Boot build process unmodified, because it contains CR/LF line
terminators. You have to strip the CR characters first. There is a
tiny script named 'dinkdl' I created for this purpose.

The Sandpoint port is based on the work of Rob Taylor, who does not
seem to maintain it any more. I can be reached by mail as
tkoeller@gmx.net.

Thomas Koeller


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