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#ifndef __CONFIG_H
31#define __CONFIG_H
32
33
34
35
36
37
38#define CONFIG_MPC875 1
39#define CONFIG_STXXTC 1
40
41#define CONFIG_8xx_CONS_SMC1 1
42#undef CONFIG_8xx_CONS_SMC2
43#undef CONFIG_8xx_CONS_NONE
44
45#define CONFIG_BAUDRATE 115200
46
47#define CONFIG_XIN 10000000
48
49
50
51
52#define MPC8XX_HZ 66666666
53
54#define CONFIG_8xx_GCLK_FREQ MPC8XX_HZ
55
56#if 0
57#define CONFIG_BOOTDELAY -1
58#else
59#define CONFIG_BOOTDELAY 5
60#endif
61
62#undef CONFIG_CLOCKS_IN_MHZ
63
64#undef CONFIG_BOOTARGS
65#define CONFIG_BOOTCOMMAND \
66 "tftpboot; " \
67 "setenv bootargs root=/dev/nfs rw nfsroot=${serverip}:${rootpath} " \
68 "ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}::off; " \
69 "bootm"
70
71#define CONFIG_AUTOSCRIPT
72#define CONFIG_LOADS_ECHO 0
73#undef CFG_LOADS_BAUD_CHANGE
74
75#undef CONFIG_WATCHDOG
76
77#define CONFIG_STATUS_LED 1
78#define CONFIG_BOARD_SPECIFIC_LED
79
80
81
82
83#define CONFIG_BOOTP_SUBNETMASK
84#define CONFIG_BOOTP_GATEWAY
85#define CONFIG_BOOTP_HOSTNAME
86#define CONFIG_BOOTP_BOOTPATH
87#define CONFIG_BOOTP_BOOTFILESIZE
88#define CONFIG_BOOTP_NISDOMAIN
89
90
91#undef CONFIG_MAC_PARTITION
92#undef CONFIG_DOS_PARTITION
93
94#define CONFIG_RTC_MPC8xx
95
96#define CONFIG_NET_MULTI 1
97#define FEC_ENET 1
98#undef CFG_DISCOVER_PHY
99#define CONFIG_MII 1
100#define CONFIG_MII_INIT 1
101#undef CONFIG_RMII
102
103#define CONFIG_ETHER_ON_FEC1 1
104#define CONFIG_FEC1_PHY 1
105#undef CONFIG_FEC1_PHY_NORXERR
106
107#define CONFIG_ETHER_ON_FEC2 1
108#define CONFIG_FEC2_PHY 3
109#undef CONFIG_FEC2_PHY_NORXERR
110
111#define CONFIG_ENV_OVERWRITE 1
112
113
114
115
116
117#include <config_cmd_default.h>
118
119#define CONFIG_CMD_DHCP
120#define CONFIG_CMD_MII
121#define CONFIG_CMD_NAND
122#define CONFIG_CMD_NFS
123#define CONFIG_CMD_PING
124
125
126#define CONFIG_BOARD_EARLY_INIT_F 1
127#define CONFIG_MISC_INIT_R
128
129
130
131
132#define CFG_LONGHELP
133#define CFG_PROMPT "xtc> "
134
135#define CFG_HUSH_PARSER 1
136#define CFG_PROMPT_HUSH_PS2 "> "
137
138#if defined(CONFIG_CMD_KGDB)
139#define CFG_CBSIZE 1024
140#else
141#define CFG_CBSIZE 256
142#endif
143#define CFG_PBSIZE (CFG_CBSIZE+sizeof(CFG_PROMPT)+16)
144#define CFG_MAXARGS 16
145#define CFG_BARGSIZE CFG_CBSIZE
146
147#define CFG_MEMTEST_START 0x0300000
148#define CFG_MEMTEST_END 0x0700000
149
150#define CFG_LOAD_ADDR 0x100000
151
152#define CFG_HZ 1000
153
154#define CFG_BAUDRATE_TABLE { 9600, 19200, 38400, 57600, 115200 }
155
156
157
158
159
160
161
162
163
164#define CFG_IMMR 0xFF000000
165
166
167
168
169#define CFG_INIT_RAM_ADDR CFG_IMMR
170#define CFG_INIT_RAM_END 0x3000
171#define CFG_GBL_DATA_SIZE 64
172#define CFG_GBL_DATA_OFFSET (CFG_INIT_RAM_END - CFG_GBL_DATA_SIZE)
173#define CFG_INIT_SP_OFFSET CFG_GBL_DATA_OFFSET
174
175
176
177
178
179
180#define CFG_SDRAM_BASE 0x00000000
181#define CFG_FLASH_BASE 0x40000000
182#if defined(DEBUG)
183#define CFG_MONITOR_LEN (256 << 10)
184#else
185#define CFG_MONITOR_LEN (192 << 10)
186#endif
187
188
189#define CFG_MONITOR_BASE (CFG_FLASH_BASE | 0x00F00000)
190#define CFG_MALLOC_LEN (128 << 10)
191
192#define CFG_RESET_ADDRESS 0x80000000
193
194
195
196
197
198
199#define CFG_BOOTMAPSZ (8 << 20)
200
201
202
203
204#define CONFIG_ENV_IS_IN_FLASH 1
205#define CONFIG_ENV_SECT_SIZE 0x10000
206
207#define CONFIG_ENV_ADDR (CFG_FLASH_BASE + 0x00000000)
208#define CONFIG_ENV_OFFSET 0
209#define CONFIG_ENV_SIZE 0x4000
210
211#define CONFIG_ENV_ADDR_REDUND (CFG_FLASH_BASE + 0x00010000)
212#define CONFIG_ENV_OFFSET_REDUND 0
213#define CONFIG_ENV_SIZE_REDUND CONFIG_ENV_SIZE
214
215#define CFG_FLASH_CFI 1
216#define CONFIG_FLASH_CFI_DRIVER 1
217#undef CFG_FLASH_USE_BUFFER_WRITE
218#define CFG_MAX_FLASH_SECT 128
219#define CFG_MAX_FLASH_BANKS 2
220
221#define CFG_FLASH_BANKS_LIST { CFG_FLASH_BASE, CFG_FLASH_BASE + 0x2000000 }
222
223#define CFG_FLASH_PROTECTION
224
225
226
227
228#define CFG_CACHELINE_SIZE 16
229#if defined(CONFIG_CMD_KGDB)
230#define CFG_CACHELINE_SHIFT 4
231#endif
232
233
234
235
236
237
238
239#if defined(CONFIG_WATCHDOG)
240#define CFG_SYPCR (SYPCR_SWTC | SYPCR_BMT | SYPCR_BME | SYPCR_SWF | \
241 SYPCR_SWE | SYPCR_SWRI| SYPCR_SWP)
242#else
243#define CFG_SYPCR (SYPCR_SWTC | SYPCR_BMT | SYPCR_BME | SYPCR_SWF | SYPCR_SWP)
244#endif
245
246
247
248
249
250
251#define CFG_SIUMCR (SIUMCR_DBGC00 | SIUMCR_DBPC00 | SIUMCR_MLRC01 | SIUMCR_FRC | SIUMCR_GB5E)
252
253
254
255
256
257
258#define CFG_TBSCR (TBSCR_REFA | TBSCR_REFB | TBSCR_TBF)
259
260
261
262
263
264#define CFG_RTCSC (RTCSC_SEC | RTCSC_ALR | RTCSC_RTF| RTCSC_RTE)
265
266
267
268
269
270
271#define CFG_PISCR (PISCR_PS | PISCR_PITF)
272
273
274
275
276
277
278
279
280
281#if CONFIG_XIN == 10000000
282
283#if MPC8XX_HZ == 50000000
284#define CFG_PLPRCR ((0 << PLPRCR_MFN_SHIFT) | (0 << PLPRCR_MFD_SHIFT) | \
285 (1 << PLPRCR_S_SHIFT) | (10 << PLPRCR_MFI_SHIFT) | (0 << PLPRCR_PDF_SHIFT) | \
286 PLPRCR_TEXPS)
287#elif MPC8XX_HZ == 66666666
288#define CFG_PLPRCR ((1 << PLPRCR_MFN_SHIFT) | (2 << PLPRCR_MFD_SHIFT) | \
289 (1 << PLPRCR_S_SHIFT) | (13 << PLPRCR_MFI_SHIFT) | (0 << PLPRCR_PDF_SHIFT) | \
290 PLPRCR_TEXPS)
291#else
292#error unsupported CPU freq for XIN = 10MHz
293#endif
294#else
295#error unsupported freq for XIN (must be 10MHz)
296#endif
297
298
299
300
301
302
303
304
305
306
307
308
309#define SCCR_MASK SCCR_EBDF11
310#if MPC8XX_HZ > 66666666
311#define CFG_SCCR ( SCCR_CRQEN | \
312 SCCR_COM00 | SCCR_DFSYNC00 | SCCR_DFBRG00 | \
313 SCCR_DFNL000 | SCCR_DFNH000 | SCCR_DFLCD000 | \
314 SCCR_DFALCD00 | SCCR_EBDF01)
315#else
316#define CFG_SCCR ( SCCR_CRQEN | \
317 SCCR_COM00 | SCCR_DFSYNC00 | SCCR_DFBRG00 | \
318 SCCR_DFNL000 | SCCR_DFNH000 | SCCR_DFLCD000 | \
319 SCCR_DFALCD00)
320#endif
321
322
323
324
325
326
327
328#define CFG_DER 0
329
330
331
332
333
334
335
336#define FLASH_BASE0_PRELIM 0x40000000
337#define FLASH_BASE1_PRELIM 0x42000000
338
339
340
341
342
343
344#define FLASH_BANK_MAX_SIZE 0x01000000
345
346#define CFG_REMAP_OR_AM 0x80000000
347#define CFG_PRELIM_OR_AM (0xFFFFFFFFLU & ~(FLASH_BANK_MAX_SIZE - 1))
348
349
350#define CFG_OR_TIMING_FLASH (OR_CSNT_SAM | OR_BI | OR_SCY_5_CLK | OR_TRLX)
351
352#define CFG_OR0_REMAP (CFG_REMAP_OR_AM | CFG_OR_TIMING_FLASH)
353#define CFG_OR0_PRELIM (CFG_PRELIM_OR_AM | CFG_OR_TIMING_FLASH)
354#define CFG_BR0_PRELIM ((FLASH_BASE0_PRELIM & BR_BA_MSK) | BR_PS_16 | BR_V )
355
356#define CFG_OR1_PRELIM ((0xFFFFFFFFLU & ~(FLASH_BANK_MAX_SIZE - 1)) | CFG_OR_TIMING_FLASH)
357#define CFG_BR1_PRELIM ((FLASH_BASE1_PRELIM & BR_BA_MSK) | BR_PS_16 | BR_V )
358
359
360
361
362
363#define SDRAM_BASE1_PRELIM 0x00000000
364#define SDRAM_MAX_SIZE (256 << 20)
365
366
367#define CFG_OR_TIMING_SDRAM (OR_CSNT_SAM | OR_G5LS)
368
369#define CFG_OR4_PRELIM ((0xFFFFFFFFLU & ~(SDRAM_MAX_SIZE - 1)) | CFG_OR_TIMING_SDRAM)
370#define CFG_BR4_PRELIM ((SDRAM_BASE1_PRELIM & BR_BA_MSK) | BR_MS_UPMA | BR_PS_32 | BR_V)
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#define CFG_MAMR_PTA 234
404
405
406
407
408
409
410
411
412
413#define CFG_MPTPR_2BK_4K MPTPR_PTP_DIV16
414#define CFG_MPTPR_1BK_4K MPTPR_PTP_DIV32
415
416
417#define CFG_MPTPR_2BK_8K MPTPR_PTP_DIV8
418#define CFG_MPTPR_1BK_8K MPTPR_PTP_DIV16
419
420
421
422
423
424
425#define CFG_MAMR_8COL ((CFG_MAMR_PTA << MAMR_PTA_SHIFT) | MAMR_PTAE | \
426 MAMR_AMA_TYPE_0 | MAMR_DSA_1_CYCL | MAMR_G0CLA_A11 | \
427 MAMR_RLFA_1X | MAMR_WLFA_1X | MAMR_TLFA_4X)
428
429
430#define CFG_MAMR_9COL ((CFG_MAMR_PTA << MAMR_PTA_SHIFT) | MAMR_PTAE | \
431 MAMR_AMA_TYPE_1 | MAMR_DSA_1_CYCL | MAMR_G0CLA_A10 | \
432 MAMR_RLFA_1X | MAMR_WLFA_1X | MAMR_TLFA_4X)
433
434
435
436
437
438
439#define BOOTFLAG_COLD 0x01
440#define BOOTFLAG_WARM 0x02
441
442#define CONFIG_LAST_STAGE_INIT
443
444
445
446#define NAND_SIZE 0x00010000
447#define NAND_BASE 0xF1000000
448
449
450
451
452#define CONFIG_NAND_LEGACY
453#define CFG_NAND_BASE NAND_BASE
454#define CONFIG_MTD_NAND_ECC_JFFS2
455#define CONFIG_MTD_NAND_VERIFY_WRITE
456#define CONFIG_MTD_NAND_UNSAFE
457
458#define CFG_MAX_NAND_DEVICE 1
459#undef NAND_NO_RB
460
461#define SECTORSIZE 512
462#define ADDR_COLUMN 1
463#define ADDR_PAGE 2
464#define ADDR_COLUMN_PAGE 3
465#define NAND_ChipID_UNKNOWN 0x00
466#define NAND_MAX_FLOORS 1
467#define NAND_MAX_CHIPS 1
468
469
470#define NAND_DISABLE_CE(nand) \
471 do { \
472 (((volatile immap_t *)CFG_IMMR)->im_ioport.iop_padat) |= (1 << (15 - 7)); \
473 } while(0)
474
475#define NAND_ENABLE_CE(nand) \
476 do { \
477 (((volatile immap_t *)CFG_IMMR)->im_ioport.iop_padat) &= ~(1 << (15 - 7)); \
478 } while(0)
479
480#define NAND_CTL_CLRALE(nandptr) \
481 do { \
482 (((volatile immap_t *)CFG_IMMR)->im_ioport.iop_pcdat) &= ~(1 << (15 - 15)); \
483 } while(0)
484
485#define NAND_CTL_SETALE(nandptr) \
486 do { \
487 (((volatile immap_t *)CFG_IMMR)->im_ioport.iop_pcdat) |= (1 << (15 - 15)); \
488 } while(0)
489
490#define NAND_CTL_CLRCLE(nandptr) \
491 do { \
492 (((volatile immap_t *)CFG_IMMR)->im_cpm.cp_pbdat) &= ~(1 << (31 - 23)); \
493 } while(0)
494
495#define NAND_CTL_SETCLE(nandptr) \
496 do { \
497 (((volatile immap_t *)CFG_IMMR)->im_cpm.cp_pbdat) |= (1 << (31 - 23)); \
498 } while(0)
499
500#ifndef NAND_NO_RB
501#define NAND_WAIT_READY(nand) \
502 do { \
503 int _tries = 0; \
504 while ((((volatile immap_t *)CFG_IMMR)->im_ioport.iop_padat & (1 << (15 - 6))) == 0) \
505 if (++_tries > 100000) \
506 break; \
507 } while (0)
508#else
509#define NAND_WAIT_READY(nand) udelay(12)
510#endif
511
512#define WRITE_NAND_COMMAND(d, adr) \
513 do { \
514 *(volatile unsigned char *)((unsigned long)(adr)) = (unsigned char)(d); \
515 } while(0)
516
517#define WRITE_NAND_ADDRESS(d, adr) \
518 do { \
519 *(volatile unsigned char *)((unsigned long)(adr)) = (unsigned char)(d); \
520 } while(0)
521
522#define WRITE_NAND(d, adr) \
523 do { \
524 *(volatile unsigned char *)((unsigned long)(adr)) = (unsigned char)(d); \
525 } while(0)
526
527#define READ_NAND(adr) \
528 ((unsigned char)(*(volatile unsigned char *)(unsigned long)(adr)))
529
530
531
532#define CFG_DIRECT_FLASH_TFTP
533#define CFG_DIRECT_NAND_TFTP
534
535
536
537
538
539
540#define STATUS_LED_BIT 0x00000080
541
542#define STATUS_LED_PERIOD (CFG_HZ / 2)
543#define STATUS_LED_STATE STATUS_LED_BLINKING
544
545#define STATUS_LED_ACTIVE 0
546#define STATUS_LED_BOOT 0
547
548#ifndef __ASSEMBLY__
549
550
551
552
553typedef unsigned int led_id_t;
554
555#define __led_toggle(_msk) \
556 do { \
557 ((volatile immap_t *)CFG_IMMR)->im_pcmcia.pcmc_pgcrb ^= (_msk); \
558 } while(0)
559
560#define __led_set(_msk, _st) \
561 do { \
562 if ((_st)) \
563 ((volatile immap_t *)CFG_IMMR)->im_pcmcia.pcmc_pgcrb |= (_msk); \
564 else \
565 ((volatile immap_t *)CFG_IMMR)->im_pcmcia.pcmc_pgcrb &= ~(_msk); \
566 } while(0)
567
568#define __led_init(msk, st) __led_set(msk, st)
569
570#endif
571
572
573
574#define CFG_CONSOLE_IS_IN_ENV 1
575#define CFG_CONSOLE_OVERWRITE_ROUTINE 1
576#define CFG_CONSOLE_ENV_OVERWRITE 1
577
578
579
580
581#undef CONFIG_WATCHDOG
582#define CONFIG_HW_WATCHDOG
583
584
585
586#define CONFIG_AUTO_COMPLETE 1
587#define CONFIG_CRC32_VERIFY 1
588#define CONFIG_HUSH_OLD_PARSER_COMPATIBLE 1
589
590
591
592
593#define CONFIG_OF_LIBFDT 1
594
595#define OF_CPU "PowerPC,MPC870@0"
596#define OF_TBCLK (MPC8XX_HZ / 16)
597
598#endif
599