Blame view

doc/README.TQM8260 17.5 KB
e22117437   wdenk   Initial revision
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
  
  This file contains basic information on the port of U-Boot to TQM8260.
  All the changes fit in the common U-Boot infrastructure, providing a
  new TQM8260-specific entry in makefiles. To build U-Boot for TQM8260,
  type "make TQM8260_config", edit the "include/config_TQM8260.h" file
  if necessary, then type "make".
  
  
  Common file modifications:
  --------------------------
  
  The following common files have been modified by this project:
  (starting from the ppcboot-0.9.3/ directory)
  
  MAKEALL			- TQM8260 entry added
  Makefile		- TQM8260_config entry added
a47a12bec   Stefan Roese   Move arch/ppc to ...
17
18
  arch/powerpc/cpu/mpc8260/Makefile	- soft_i2c.o module added
  arch/powerpc/cpu/mpc8260/ether_scc.c	- TQM8260-specific definitions added, an obvious
e22117437   wdenk   Initial revision
19
  			  bug fixed (fcr -> scr)
a47a12bec   Stefan Roese   Move arch/ppc to ...
20
  arch/powerpc/cpu/mpc8260/ether_fcc.c	- TQM8260-specific definitions added
e22117437   wdenk   Initial revision
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
  include/flash.h		- added definitions for the AM29LV640D Flash chip
  
  
  New files:
  ----------
  
  The following new files have been added by this project:
  (starting from the ppcboot-0.9.3/ directory)
  
  board/tqm8260/		  - board-specific directory
  board/tqm8260/Makefile	  - board-specific makefile
  board/tqm8260/config.mk	  - config file
  board/tqm8260/flash.c	  - flash driver (for AM29LV640D)
  board/tqm8260/ppcboot.lds - linker script
  board/tqm8260/tqm8260.c	  - ioport and memory initialization
a47a12bec   Stefan Roese   Move arch/ppc to ...
36
  arch/powerpc/cpu/mpc8260/soft_i2c.c	  - software i2c EEPROM driver
e22117437   wdenk   Initial revision
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
  include/config_TQM8260.h  - main configuration file
  
  
  New configuration options:
  --------------------------
  
  CONFIG_TQM8260
  
  	Main board-specific option (should be defined for TQM8260).
  
  CONFIG_82xx_CONS_SMC1
  
  	If defined, SMC1 will be used as the console
  
  CONFIG_82xx_CONS_SMC2
  
  	If defined, SMC2 will be used as the console
6d0f6bcf3   Jean-Christophe PLAGNIOL-VILLARD   rename CFG_ macro...
54
  CONFIG_SYS_INIT_LOCAL_SDRAM
e22117437   wdenk   Initial revision
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
  
  	If defined, the SDRAM on the local bus will be initialized and
  	mapped at BR2.
  
  
  Acceptance criteria tests:
  --------------------------
  
  The following tests have been conducted to validate the port of U-Boot
  to TQM8260:
  
  1. Operation on serial console:
  
  With the CONFIG_82xx_CONS_SMC1 option defined in the main configuration file,
  the U-Boot output appeared on the serial terminal connected to COM1 as
  follows:
  
  ------------------------------------------------------------------------------
  => help
  go      - start application at address 'addr'
  run     - run commands in an environment variable
  bootm   - boot application image from memory
  bootp   - boot image via network using BootP/TFTP protocol
  tftpboot- boot image via network using TFTP protocol
8bde7f776   wdenk   * Code cleanup:
79
  	       and env variables ipaddr and serverip
e22117437   wdenk   Initial revision
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
412
413
414
  rarpboot- boot image via network using RARP/TFTP protocol
  bootd   - boot default, i.e., run 'bootcmd'
  loads   - load S-Record file over serial line
  loadb   - load binary file over serial line (kermit mode)
  md      - memory display
  mm      - memory modify (auto-incrementing)
  nm      - memory modify (constant address)
  mw      - memory write (fill)
  cp      - memory copy
  cmp     - memory compare
  crc32   - checksum calculation
  base    - print or set address offset
  printenv- print environment variables
  setenv  - set environment variables
  saveenv - save environment variables to persistent storage
  protect - enable or disable FLASH write protection
  erase   - erase FLASH memory
  flinfo  - print FLASH memory information
  bdinfo  - print Board Info structure
  iminfo  - print header information for application image
  coninfo - print console devices and informations
  eeprom  - EEPROM sub-system
  loop    - infinite loop on address range
  mtest   - simple RAM test
  icache  - enable or disable instruction cache
  dcache  - enable or disable data cache
  reset   - Perform RESET of the CPU
  echo    - echo args to console
  version - print monitor version
  help    - print online help
  ?       - alias for 'help'
  =>
  ------------------------------------------------------------------------------
  
  
  2. Flash driver operation
  
  The following sequence was performed to test the "flinfo" command:
  
  ------------------------------------------------------------------------------
  => flinfo
  
  Bank # 1: AMD 29LV640D (64 M, uniform sector)
    Size: 32 MB in 128 Sectors
    Sector Start Addresses:
      40000000      40040000 (RO) 40080000      400C0000      40100000
      40140000      40180000      401C0000      40200000      40240000
      40280000      402C0000      40300000      40340000      40380000
      403C0000      40400000      40440000      40480000      404C0000
      40500000      40540000      40580000      405C0000      40600000
      40640000      40680000      406C0000      40700000      40740000
      40780000      407C0000      40800000      40840000      40880000
      408C0000      40900000      40940000      40980000      409C0000
      40A00000      40A40000      40A80000      40AC0000      40B00000
      40B40000      40B80000      40BC0000      40C00000      40C40000
      40C80000      40CC0000      40D00000      40D40000      40D80000
      40DC0000      40E00000      40E40000      40E80000      40EC0000
      40F00000      40F40000      40F80000      40FC0000      41000000
      41040000      41080000      410C0000      41100000      41140000
      41180000      411C0000      41200000      41240000      41280000
      412C0000      41300000      41340000      41380000      413C0000
      41400000      41440000      41480000      414C0000      41500000
      41540000      41580000      415C0000      41600000      41640000
      41680000      416C0000      41700000      41740000      41780000
      417C0000      41800000      41840000      41880000      418C0000
      41900000      41940000      41980000      419C0000      41A00000
      41A40000      41A80000      41AC0000      41B00000      41B40000
      41B80000      41BC0000      41C00000      41C40000      41C80000
      41CC0000      41D00000      41D40000      41D80000      41DC0000
      41E00000      41E40000      41E80000      41EC0000      41F00000
      41F40000      41F80000      41FC0000
  =>
  ------------------------------------------------------------------------------
  
  
  The following sequence was performed to test the erase command:
  
  ------------------------------------------------------------------------------
  => cp 0 40080000 10
  Copy to Flash... done
  => erase 40080000 400bffff
  Erase Flash from 0x40080000 to 0x400bffff
  .. done
  Erased 1 sectors
  => md 40080000
  40080000: ffffffff ffffffff ffffffff ffffffff    ................
  40080010: ffffffff ffffffff ffffffff ffffffff    ................
  40080020: ffffffff ffffffff ffffffff ffffffff    ................
  40080030: ffffffff ffffffff ffffffff ffffffff    ................
  40080040: ffffffff ffffffff ffffffff ffffffff    ................
  40080050: ffffffff ffffffff ffffffff ffffffff    ................
  40080060: ffffffff ffffffff ffffffff ffffffff    ................
  40080070: ffffffff ffffffff ffffffff ffffffff    ................
  40080080: ffffffff ffffffff ffffffff ffffffff    ................
  40080090: ffffffff ffffffff ffffffff ffffffff    ................
  400800a0: ffffffff ffffffff ffffffff ffffffff    ................
  400800b0: ffffffff ffffffff ffffffff ffffffff    ................
  400800c0: ffffffff ffffffff ffffffff ffffffff    ................
  400800d0: ffffffff ffffffff ffffffff ffffffff    ................
  400800e0: ffffffff ffffffff ffffffff ffffffff    ................
  400800f0: ffffffff ffffffff ffffffff ffffffff    ................
  => cp 0 40080000 10
  Copy to Flash... done
  => erase 1:2
  Erase Flash Sectors 2-2 in Bank # 1
  .. done
  => md 40080000
  40080000: ffffffff ffffffff ffffffff ffffffff    ................
  40080010: ffffffff ffffffff ffffffff ffffffff    ................
  40080020: ffffffff ffffffff ffffffff ffffffff    ................
  40080030: ffffffff ffffffff ffffffff ffffffff    ................
  40080040: ffffffff ffffffff ffffffff ffffffff    ................
  40080050: ffffffff ffffffff ffffffff ffffffff    ................
  40080060: ffffffff ffffffff ffffffff ffffffff    ................
  40080070: ffffffff ffffffff ffffffff ffffffff    ................
  40080080: ffffffff ffffffff ffffffff ffffffff    ................
  40080090: ffffffff ffffffff ffffffff ffffffff    ................
  400800a0: ffffffff ffffffff ffffffff ffffffff    ................
  400800b0: ffffffff ffffffff ffffffff ffffffff    ................
  400800c0: ffffffff ffffffff ffffffff ffffffff    ................
  400800d0: ffffffff ffffffff ffffffff ffffffff    ................
  400800e0: ffffffff ffffffff ffffffff ffffffff    ................
  400800f0: ffffffff ffffffff ffffffff ffffffff    ................
  => cp 0 40080000 10
  Copy to Flash... done
  => cp 0 400c0000 10
  Copy to Flash... done
  => erase 1:2-3
  Erase Flash Sectors 2-3 in Bank # 1
  ... done
  => md 40080000
  40080000: ffffffff ffffffff ffffffff ffffffff    ................
  40080010: ffffffff ffffffff ffffffff ffffffff    ................
  40080020: ffffffff ffffffff ffffffff ffffffff    ................
  40080030: ffffffff ffffffff ffffffff ffffffff    ................
  40080040: ffffffff ffffffff ffffffff ffffffff    ................
  40080050: ffffffff ffffffff ffffffff ffffffff    ................
  40080060: ffffffff ffffffff ffffffff ffffffff    ................
  40080070: ffffffff ffffffff ffffffff ffffffff    ................
  40080080: ffffffff ffffffff ffffffff ffffffff    ................
  40080090: ffffffff ffffffff ffffffff ffffffff    ................
  400800a0: ffffffff ffffffff ffffffff ffffffff    ................
  400800b0: ffffffff ffffffff ffffffff ffffffff    ................
  400800c0: ffffffff ffffffff ffffffff ffffffff    ................
  400800d0: ffffffff ffffffff ffffffff ffffffff    ................
  400800e0: ffffffff ffffffff ffffffff ffffffff    ................
  400800f0: ffffffff ffffffff ffffffff ffffffff    ................
  => md 400c0000
  400c0000: ffffffff ffffffff ffffffff ffffffff    ................
  400c0010: ffffffff ffffffff ffffffff ffffffff    ................
  400c0020: ffffffff ffffffff ffffffff ffffffff    ................
  400c0030: ffffffff ffffffff ffffffff ffffffff    ................
  400c0040: ffffffff ffffffff ffffffff ffffffff    ................
  400c0050: ffffffff ffffffff ffffffff ffffffff    ................
  400c0060: ffffffff ffffffff ffffffff ffffffff    ................
  400c0070: ffffffff ffffffff ffffffff ffffffff    ................
  400c0080: ffffffff ffffffff ffffffff ffffffff    ................
  400c0090: ffffffff ffffffff ffffffff ffffffff    ................
  400c00a0: ffffffff ffffffff ffffffff ffffffff    ................
  400c00b0: ffffffff ffffffff ffffffff ffffffff    ................
  400c00c0: ffffffff ffffffff ffffffff ffffffff    ................
  400c00d0: ffffffff ffffffff ffffffff ffffffff    ................
  400c00e0: ffffffff ffffffff ffffffff ffffffff    ................
  400c00f0: ffffffff ffffffff ffffffff ffffffff    ................
  =>
  ------------------------------------------------------------------------------
  
  
  The following sequence was performed to test the Flash programming commands:
  
  ------------------------------------------------------------------------------
  => erase 40080000 400bffff
  Erase Flash from 0x40080000 to 0x400bffff
  .. done
  Erased 1 sectors
  => cp 0 40080000 10
  Copy to Flash... done
  => md 0
  00000000: 00000000 00000104 61100200 01000000    ........a.......
  00000010: 00000000 00000000 81140000 82000100    ................
  00000020: 01080000 00004000 22800000 00000600    ......@.".......
  00000030: 00200800 00000000 10000100 00008000    . ..............
  00000040: 00812000 00000200 00020000 80000000    .. .............
  00000050: 00028001 00001000 00040400 00000200    ................
  00000060: 20480000 00000000 20090000 00142000     H...... ..... .
  00000070: 00000000 00004000 24210000 10000000    ......@.$!......
  00000080: 02440002 10000000 00200008 00000000    .D....... ......
  00000090: 02440900 00000000 30a40000 00004400    .D......0.....D.
  000000a0: 04420800 00000000 00000040 00020000    .B.........@....
  000000b0: 05020000 00100000 00060000 00000000    ................
  000000c0: 00400000 00000000 00080000 00040000    .@..............
  000000d0: 10400000 00800004 00000000 00000200    .@..............
  000000e0: 80890000 00010004 00080000 00000020    ...............
  000000f0: 08000000 10000000 00010000 00000000    ................
  => md 40080000
  40080000: 00000000 00000104 61100200 01000000    ........a.......
  40080010: 00000000 00000000 81140000 82000100    ................
  40080020: 01080000 00004000 22800000 00000600    ......@.".......
  40080030: 00200800 00000000 10000100 00008000    . ..............
  40080040: ffffffff ffffffff ffffffff ffffffff    ................
  40080050: ffffffff ffffffff ffffffff ffffffff    ................
  40080060: ffffffff ffffffff ffffffff ffffffff    ................
  40080070: ffffffff ffffffff ffffffff ffffffff    ................
  40080080: ffffffff ffffffff ffffffff ffffffff    ................
  40080090: ffffffff ffffffff ffffffff ffffffff    ................
  400800a0: ffffffff ffffffff ffffffff ffffffff    ................
  400800b0: ffffffff ffffffff ffffffff ffffffff    ................
  400800c0: ffffffff ffffffff ffffffff ffffffff    ................
  400800d0: ffffffff ffffffff ffffffff ffffffff    ................
  400800e0: ffffffff ffffffff ffffffff ffffffff    ................
  400800f0: ffffffff ffffffff ffffffff ffffffff    ................
  =>
  ------------------------------------------------------------------------------
  
  
  The following sequence was performed to test storage of the environment
  variables in Flash:
  
  ------------------------------------------------------------------------------
  => setenv foo bar
  => saveenv
  Un-Protected 1 sectors
  Erasing Flash...
  .. done
  Erased 1 sectors
  Saving Environment to Flash...
  Protected 1 sectors
  => reset
  ...
  => printenv
  bootdelay=CONFIG_BOOTDELAY
  baudrate=9600
  ipaddr=192.168.4.7
  serverip=192.168.4.1
  ethaddr=66:55:44:33:22:11
  foo=bar
  stdin=serial
  stdout=serial
  stderr=serial
  
  Environment size: 170/262140 bytes
  =>
  ------------------------------------------------------------------------------
  
  
  The following sequence was performed to test image download and run over
  Ethernet interface (both interfaces were tested):
  
  ------------------------------------------------------------------------------
  => tftpboot 40000 hello_world.bin
  ARP broadcast 1
  TFTP from server 192.168.2.2; our IP address is 192.168.2.7
  Filename 'hello_world.bin'.
  Load address: 0x40000
  Loading: #############
  done
  Bytes transferred = 65912 (10178 hex)
  => go 40004
  ## Starting application at 0x00040004 ...
  Hello World
  argc = 1
  argv[0] = "40004"
  argv[1] = "<NULL>"
  Hit any key to exit ...
  
  ## Application terminated, rc = 0x0
  =>
  ------------------------------------------------------------------------------
  
  
  The following sequence was performed to test eeprom read/write commands:
  
  ------------------------------------------------------------------------------
  => md 40000
  00040000: 00018148 9421ffe0 7c0802a6 bf61000c    ...H.!..|....a..
  00040010: 90010024 48000005 7fc802a6 801effe8    ...$H...........
  00040020: 7fc0f214 7c7f1b78 813f004c 7c9c2378    ....|..x.?.L|.#x
  00040030: 807e8000 7cbd2b78 80090010 3b600000    .~..|.+x....;`..
  00040040: 7c0803a6 4e800021 813f004c 7f84e378    |...N..!.?.L...x
  00040050: 807e8004 80090010 7c0803a6 4e800021    .~......|...N..!
  00040060: 7c1be000 4181003c 80bd0000 813f004c    |...A..<.....?.L
  00040070: 3bbd0004 2c050000 40820008 80be8008    ;...,...@.......
  00040080: 80090010 7f64db78 807e800c 3b7b0001    .....d.x.~..;{..
  00040090: 7c0803a6 4e800021 7c1be000 4081ffcc    |...N..!|...@...
  000400a0: 813f004c 807e8010 80090010 7c0803a6    .?.L.~......|...
  000400b0: 4e800021 813f004c 80090004 7c0803a6    N..!.?.L....|...
  000400c0: 4e800021 2c030000 4182ffec 813f004c    N..!,...A....?.L
  000400d0: 80090000 7c0803a6 4e800021 813f004c    ....|...N..!.?.L
  000400e0: 807e8014 80090010 7c0803a6 4e800021    .~......|...N..!
  000400f0: 38600000 80010024 7c0803a6 bb61000c    8`.....$|....a..
  => eeprom write 40000 0 40
  
  EEPROM write: addr 00040000  off 0000  count 64 ... done
  => mw 50000 0 1000
  => eeprom read 50000 0 40
  
  EEPROM read: addr 00050000  off 0000  count 64 ... done
  => md 50000
  00050000: 00018148 9421ffe0 7c0802a6 bf61000c    ...H.!..|....a..
  00050010: 90010024 48000005 7fc802a6 801effe8    ...$H...........
  00050020: 7fc0f214 7c7f1b78 813f004c 7c9c2378    ....|..x.?.L|.#x
  00050030: 807e8000 7cbd2b78 80090010 3b600000    .~..|.+x....;`..
  00050040: 00000000 00000000 00000000 00000000    ................
  00050050: 00000000 00000000 00000000 00000000    ................
  00050060: 00000000 00000000 00000000 00000000    ................
  00050070: 00000000 00000000 00000000 00000000    ................
  00050080: 00000000 00000000 00000000 00000000    ................
  00050090: 00000000 00000000 00000000 00000000    ................
  000500a0: 00000000 00000000 00000000 00000000    ................
  000500b0: 00000000 00000000 00000000 00000000    ................
  000500c0: 00000000 00000000 00000000 00000000    ................
  000500d0: 00000000 00000000 00000000 00000000    ................
  000500e0: 00000000 00000000 00000000 00000000    ................
  000500f0: 00000000 00000000 00000000 00000000    ................
  =>
  ------------------------------------------------------------------------------
  
  
  Patch per Mon, 06 Aug 2001 17:57:27:
  
  - upgraded Flash support (added support for the following chips:
    AM29LV800T/B, AM29LV160T/B, AM29DL322T/B, AM29DL323T/B)
  - BCR tweakage for the 8260 bus mode
  - SIUMCR tweakage enabling the MI interrupt (IRQ7)
  
  To simplify switching between the bus modes, a new configuration
  option (CONFIG_BUSMODE_60x) has been added to the "config_TQM8260.h"
  file. If it is defined, BCR will be configured for the 60x mode,
  otherwise - for the 8260 mode.
  
  Concerning the SIUMCR modification: it's hard to predict whether it
  will induce any problems on the other (60x mode) board. However, the
  problems (if they appear) should be easy to notice - if the board
  does not boot, it's most likely caused by the DPPC configuration in
  SIUMCR.