summaryrefslogtreecommitdiff
path: root/arch/powerpc/cpu/mpc83xx/elbc/Kconfig.elbc1
blob: 1dc3e75076cb0f3851d9cbc114f08eac9c325b5d (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
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
menuconfig ELBC_BR1_OR1
	bool "ELBC BR1/OR1"

if ELBC_BR1_OR1

config BR1_OR1_NAME
	string "Identifier"

config BR1_OR1_BASE
	hex "Port base"

choice
	prompt "Port size"

config BR1_PORTSIZE_8BIT
	bool "8-bit"

config BR1_PORTSIZE_16BIT
	depends on !BR1_MACHINE_FCM
	bool "16-bit"


config BR1_PORTSIZE_32BIT
	depends on !BR1_MACHINE_FCM
	depends on ARCH_MPC8360 || ARCH_MPC8379
	bool "32-bit"

endchoice

if BR1_MACHINE_FCM

choice
	prompt "Data Error Checking"

config BR1_ERRORCHECKING_DISABLED
	bool "Disabled"

config BR1_ERRORCHECKING_ECC_CHECKING
	bool "ECC checking / No ECC generation"

config BR1_ERRORCHECKING_BOTH
	bool "ECC checking and generation"

endchoice

endif

config BR1_WRITE_PROTECT
	bool "Write-protect"

config BR1_MACHINE_UPM
	bool

choice
	prompt "Machine select"

config BR1_MACHINE_GPCM
	bool "GPCM"

config BR1_MACHINE_FCM
	depends on !ARCH_MPC832X && !ARCH_MPC8360
	bool "FCM"

config BR1_MACHINE_SDRAM
	depends on ARCH_MPC8360
	bool "SDRAM"

config BR1_MACHINE_UPMA
	select BR1_MACHINE_UPM
	bool "UPM (A)"

config BR1_MACHINE_UPMB
	select BR1_MACHINE_UPM
	bool "UPM (B)"

config BR1_MACHINE_UPMC
	select BR1_MACHINE_UPM
	bool "UPM (C)"

endchoice

if ARCH_MPC8313 || ARCH_MPC8323 || ARCH_MPC8360

choice
	prompt "Atomic operations"

config BR1_ATOMIC_NONE
	bool "No atomic operations"

config BR1_ATOMIC_RAWA
	bool "Read-after-write-atomic"

config BR1_ATOMIC_WARA
	bool "Write-after-read-atomic"

endchoice

endif

if BR1_MACHINE_GPCM || BR1_MACHINE_FCM || BR1_MACHINE_UPM || BR1_MACHINE_SDRAM

choice
	prompt "Address mask"

config OR1_AM_32_KBYTES
	depends on !BR1_MACHINE_SDRAM
	bool "32 kb"

config OR1_AM_64_KBYTES
	bool "64 kb"

config OR1_AM_128_KBYTES
	bool "128 kb"

config OR1_AM_256_KBYTES
	bool "256 kb"

config OR1_AM_512_KBYTES
	bool "512 kb"

config OR1_AM_1_MBYTES
	bool "1 mb"

config OR1_AM_2_MBYTES
	bool "2 mb"

config OR1_AM_4_MBYTES
	bool "4 mb"

config OR1_AM_8_MBYTES
	bool "8 mb"

config OR1_AM_16_MBYTES
	bool "16 mb"

config OR1_AM_32_MBYTES
	bool "32 mb"

config OR1_AM_64_MBYTES
	bool "64 mb"

# XXX: Some boards define 128MB AM with GPCM, even though it should not be
# possible according to the manuals
config OR1_AM_128_MBYTES
	bool "128 mb"

# XXX: Some boards define 256MB AM with GPCM, even though it should not be
# possible according to the manuals
config OR1_AM_256_MBYTES
	bool "256 mb"

config OR1_AM_512_MBYTES
	depends on BR1_MACHINE_FCM
	bool "512 mb"

# XXX: Some boards define 1GB AM with GPCM, even though it should not be
# possible according to the manuals
config OR1_AM_1_GBYTES
	bool "1 gb"

config OR1_AM_2_GBYTES
	depends on BR1_MACHINE_FCM
	bool "2 gb"

config OR1_AM_4_GBYTES
	depends on BR1_MACHINE_FCM
	bool "4 gb"

endchoice

config OR1_XAM_SET
	bool "Set unused bytes after address mask"
choice
	prompt "Buffer control disable"

config OR1_BCTLD_ASSERTED
	bool "Asserted"

config OR1_BCTLD_NOT_ASSERTED
	bool "Not asserted"

endchoice

endif

if BR1_MACHINE_GPCM || BR1_MACHINE_FCM

choice
	prompt "Cycle length in bus clocks"

config OR1_SCY_0
	bool "No wait states"

config OR1_SCY_1
	bool "1 wait state"

config OR1_SCY_2
	bool "2 wait states"

config OR1_SCY_3
	bool "3 wait states"

config OR1_SCY_4
	bool "4 wait states"

config OR1_SCY_5
	bool "5 wait states"

config OR1_SCY_6
	bool "6 wait states"

config OR1_SCY_7
	bool "7 wait states"

config OR1_SCY_8
	depends on BR1_MACHINE_GPCM
	bool "8 wait states"

config OR1_SCY_9
	depends on BR1_MACHINE_GPCM
	bool "9 wait states"

config OR1_SCY_10
	depends on BR1_MACHINE_GPCM
	bool "10 wait states"

config OR1_SCY_11
	depends on BR1_MACHINE_GPCM
	bool "11 wait states"

config OR1_SCY_12
	depends on BR1_MACHINE_GPCM
	bool "12 wait states"

config OR1_SCY_13
	depends on BR1_MACHINE_GPCM
	bool "13 wait states"

config OR1_SCY_14
	depends on BR1_MACHINE_GPCM
	bool "14 wait states"

config OR1_SCY_15
	depends on BR1_MACHINE_GPCM
	bool "15 wait states"

endchoice

endif # BR1_MACHINE_GPCM || BR1_MACHINE_FCM

if BR1_MACHINE_GPCM

choice
	prompt "Chip select negotiation time"

config OR1_CSNT_NORMAL
	bool "Normal"

config OR1_CSNT_EARLIER
	bool "Earlier"

endchoice

choice
	prompt "Address to chip-select setup"

config OR1_ACS_SAME_TIME
	bool "At the same time"

config OR1_ACS_HALF_CYCLE_EARLIER
	bool "Half of a bus clock cycle earlier"

config OR1_ACS_QUARTER_CYCLE_EARLIER
	bool "Half/Quarter of a bus clock cycle earlier"

endchoice

choice
	prompt "Extra address to check-select setup"

config OR1_XACS_NORMAL
	bool "Normal"

config OR1_XACS_EXTENDED
	bool "Extended"

endchoice

choice
	prompt "External address termination"

config OR1_SETA_INTERNAL
	bool "Access is terminated internally"

config OR1_SETA_EXTERNAL
	bool "Access is terminated externally"

endchoice

endif # BR1_MACHINE_GPCM

if BR1_MACHINE_FCM

choice
	prompt "NAND Flash EEPROM page size"

config OR1_PGS_SMALL
	bool "Small page device"

config OR1_PGS_LARGE
	bool "Large page device"

endchoice

choice
	prompt "Chip select to command time"

config OR1_CSCT_1_CYCLE
	depends on OR1_TRLX_NORMAL
	bool "1 cycle"

config OR1_CSCT_2_CYCLE
	depends on OR1_TRLX_RELAXED
	bool "2 cycles"

config OR1_CSCT_4_CYCLE
	depends on OR1_TRLX_NORMAL
	bool "4 cycles"

config OR1_CSCT_8_CYCLE
	depends on OR1_TRLX_RELAXED
	bool "8 cycles"

endchoice

choice
	prompt "Command setup time"

config OR1_CST_COINCIDENT
	depends on OR1_TRLX_NORMAL
	bool "Coincident with any command"

config OR1_CST_QUARTER_CLOCK
	depends on OR1_TRLX_NORMAL
	bool "0.25 clocks after"

config OR1_CST_HALF_CLOCK
	depends on OR1_TRLX_RELAXED
	bool "0.5 clocks after"

config OR1_CST_ONE_CLOCK
	depends on OR1_TRLX_RELAXED
	bool "1 clock after"

endchoice

choice
	prompt "Command hold time"

config OR1_CHT_HALF_CLOCK
	depends on OR1_TRLX_NORMAL
	bool "0.5 clocks before"

config OR1_CHT_ONE_CLOCK
	depends on OR1_TRLX_NORMAL
	bool "1 clock before"

config OR1_CHT_ONE_HALF_CLOCK
	depends on OR1_TRLX_RELAXED
	bool "1.5 clocks before"

config OR1_CHT_TWO_CLOCK
	depends on OR1_TRLX_RELAXED
	bool "2 clocks before"

endchoice

choice
	prompt "Reset setup time"

config OR1_RST_THREE_QUARTER_CLOCK
	depends on OR1_TRLX_NORMAL
	bool "0.75 clocks prior"

config OR1_RST_ONE_HALF_CLOCK
	depends on OR1_TRLX_RELAXED
	bool "0.5 clocks prior"

config OR1_RST_ONE_CLOCK
	bool "1 clock prior"

endchoice

endif # BR1_MACHINE_FCM

if BR1_MACHINE_UPM

choice
	prompt "Burst inhibit"

config OR1_BI_BURSTSUPPORT
	bool "Support burst access"

config OR1_BI_BURSTINHIBIT
	bool "Inhibit burst access"

endchoice

endif # BR1_MACHINE_UPM

if BR1_MACHINE_SDRAM

choice
	prompt "Number of column address lines"

config OR1_COLS_7
	bool "7"

config OR1_COLS_8
	bool "8"

config OR1_COLS_9
	bool "9"

config OR1_COLS_10
	bool "10"

config OR1_COLS_11
	bool "11"

config OR1_COLS_12
	bool "12"

config OR1_COLS_13
	bool "13"

config OR1_COLS_14
	bool "14"

endchoice

choice
	prompt "Number of rows address lines"

config OR1_ROWS_9
	bool "9"

config OR1_ROWS_10
	bool "10"

config OR1_ROWS_11
	bool "11"

config OR1_ROWS_12
	bool "12"

config OR1_ROWS_13
	bool "13"

config OR1_ROWS_14
	bool "14"

config OR1_ROWS_15
	bool "15"

endchoice

choice
	prompt "Page mode select"

config OR1_PMSEL_BTB
	bool "Back-to-back"

config OR1_PMSEL_KEPT_OPEN
	bool "Page kept open until page miss or refresh"

endchoice

endif # BR1_MACHINE_SDRAM

choice
	prompt "Relaxed timing"

config OR1_TRLX_NORMAL
	bool "Normal"

config OR1_TRLX_RELAXED
	bool "Relaxed"

endchoice

choice
	prompt "Extended hold time"

config OR1_EHTR_NORMAL
	depends on OR1_TRLX_NORMAL
	bool "Normal"

config OR1_EHTR_1_CYCLE
	depends on OR1_TRLX_NORMAL
	bool "1 idle clock cycle inserted"

config OR1_EHTR_4_CYCLE
	depends on OR1_TRLX_RELAXED
	bool "4 idle clock cycles inserted"

config OR1_EHTR_8_CYCLE
	depends on OR1_TRLX_RELAXED
	bool "8 idle clock cycles inserted"

endchoice

if !ARCH_MPC8308

choice
	prompt "External address latch delay"

config OR1_EAD_NONE
	bool "None"

config OR1_EAD_EXTRA
	bool "Extra"

endchoice

endif # !ARCH_MPC8308

endif # ELBC_BR1_OR1

config BR1_PORTSIZE
	hex
	default 0x800 if BR1_PORTSIZE_8BIT
	default 0x1000 if BR1_PORTSIZE_16BIT
	default 0x1800 if BR1_PORTSIZE_32BIT

config BR1_ERRORCHECKING
	hex
	default 0x0 if !BR1_MACHINE_FCM
	default 0x0 if BR1_ERRORCHECKING_DISABLED
	default 0x200 if BR1_ERRORCHECKING_ECC_CHECKING
	default 0x400 if BR1_ERRORCHECKING_BOTH

config BR1_WRITE_PROTECT_BIT
	hex
	default 0x0 if !BR1_WRITE_PROTECT
	default 0x100 if BR1_WRITE_PROTECT

config BR1_MACHINE
	hex
	default 0x0 if BR1_MACHINE_GPCM
	default 0x20 if BR1_MACHINE_FCM
	default 0x60 if BR1_MACHINE_SDRAM
	default 0x80 if BR1_MACHINE_UPMA
	default 0xa0 if BR1_MACHINE_UPMB
	default 0xc0 if BR1_MACHINE_UPMC

config BR1_ATOMIC
	hex
	default 0x0 if !ARCH_MPC8313 && !ARCH_MPC8323 && !ARCH_MPC8360
	default 0x0 if BR1_ATOMIC_NONE
	default 0x4 if BR1_ATOMIC_RAWA
	default 0x8 if BR1_ATOMIC_WARA

config BR1_VALID_BIT
	hex
	default 0x0 if !ELBC_BR1_OR1
	default 0x1 if ELBC_BR1_OR1

config OR1_AM
	hex
	default 0xffff8000 if OR1_AM_32_KBYTES && !BR1_MACHINE_SDRAM
	default 0xffff0000 if OR1_AM_64_KBYTES
	default 0xfffe0000 if OR1_AM_128_KBYTES
	default 0xfffc0000 if OR1_AM_256_KBYTES
	default 0xfff80000 if OR1_AM_512_KBYTES
	default 0xfff00000 if OR1_AM_1_MBYTES
	default 0xffe00000 if OR1_AM_2_MBYTES
	default 0xffc00000 if OR1_AM_4_MBYTES
	default 0xff800000 if OR1_AM_8_MBYTES
	default 0xff000000 if OR1_AM_16_MBYTES
	default 0xfe000000 if OR1_AM_32_MBYTES
	default 0xfc000000 if OR1_AM_64_MBYTES
	default 0xf8000000 if OR1_AM_128_MBYTES
	default 0xf0000000 if OR1_AM_256_MBYTES
	default 0xe0000000 if OR1_AM_512_MBYTES
	default 0xc0000000 if OR1_AM_1_GBYTES
	default 0x80000000 if OR1_AM_2_GBYTES
	default 0x00000000 if OR1_AM_4_GBYTES

config OR1_XAM
	hex
	default 0x0 if !OR1_XAM_SET
	default 0x6000 if OR1_XAM_SET

config OR1_BCTLD
	hex
	default 0x0 if OR1_BCTLD_ASSERTED
	default 0x1000 if OR1_BCTLD_NOT_ASSERTED

config OR1_BI
	hex
	default 0x0 if !BR1_MACHINE_UPM
	default 0x0 if OR1_BI_BURSTSUPPORT
	default 0x100 if OR1_BI_BURSTINHIBIT

config OR1_COLS
	hex
	default 0x0 if !BR1_MACHINE_SDRAM
	default 0x0 if OR1_COLS_7
	default 0x400 if OR1_COLS_8
	default 0x800 if OR1_COLS_9
	default 0xc00 if OR1_COLS_10
	default 0x1000 if OR1_COLS_11
	default 0x1400 if OR1_COLS_12
	default 0x1800 if OR1_COLS_13
	default 0x1c00 if OR1_COLS_14

config OR1_ROWS
	hex
	default 0x0 if !BR1_MACHINE_SDRAM
	default 0x0 if OR1_ROWS_9
	default 0x40 if OR1_ROWS_10
	default 0x80 if OR1_ROWS_11
	default 0xc0 if OR1_ROWS_12
	default 0x100 if OR1_ROWS_13
	default 0x140 if OR1_ROWS_14
	default 0x180 if OR1_ROWS_15

config OR1_PMSEL
	hex
	default 0x0 if !BR1_MACHINE_SDRAM
	default 0x0 if OR1_PMSEL_BTB
	default 0x20 if OR1_PMSEL_KEPT_OPEN

config OR1_SCY
	hex
	default 0x0 if !BR1_MACHINE_GPCM && !BR1_MACHINE_FCM
	default 0x0 if OR1_SCY_0
	default 0x10 if OR1_SCY_1
	default 0x20 if OR1_SCY_2
	default 0x30 if OR1_SCY_3
	default 0x40 if OR1_SCY_4
	default 0x50 if OR1_SCY_5
	default 0x60 if OR1_SCY_6
	default 0x70 if OR1_SCY_7
	default 0x80 if OR1_SCY_8
	default 0x90 if OR1_SCY_9
	default 0xa0 if OR1_SCY_10
	default 0xb0 if OR1_SCY_11
	default 0xc0 if OR1_SCY_12
	default 0xd0 if OR1_SCY_13
	default 0xe0 if OR1_SCY_14
	default 0xf0 if OR1_SCY_15

config OR1_PGS
	hex
	default 0x0 if !BR1_MACHINE_FCM
	default 0x0 if OR1_PGS_SMALL
	default 0x400 if OR1_PGS_LARGE

config OR1_CSCT
	hex
	default 0x0 if !BR1_MACHINE_FCM
	default 0x0 if OR1_CSCT_1_CYCLE
	default 0x0 if OR1_CSCT_2_CYCLE
	default 0x200 if OR1_CSCT_4_CYCLE
	default 0x200 if OR1_CSCT_8_CYCLE

config OR1_CST
	hex
	default 0x0 if !BR1_MACHINE_FCM
	default 0x0 if OR1_CST_COINCIDENT
	default 0x100 if OR1_CST_QUARTER_CLOCK
	default 0x0 if OR1_CST_HALF_CLOCK
	default 0x100 if OR1_CST_ONE_CLOCK

config OR1_CHT
	hex
	default 0x0 if !BR1_MACHINE_FCM
	default 0x0 if OR1_CHT_HALF_CLOCK
	default 0x80 if OR1_CHT_ONE_CLOCK
	default 0x0 if OR1_CHT_ONE_HALF_CLOCK
	default 0x80 if OR1_CHT_TWO_CLOCK

config OR1_RST
	hex
	default 0x0 if !BR1_MACHINE_FCM
	default 0x0 if OR1_RST_THREE_QUARTER_CLOCK
	default 0x8 if OR1_RST_ONE_CLOCK
	default 0x0 if OR1_RST_ONE_HALF_CLOCK

config OR1_CSNT
	hex
	default 0x0 if !BR1_MACHINE_GPCM
	default 0x0 if OR1_CSNT_NORMAL
	default 0x800 if OR1_CSNT_EARLIER

config OR1_ACS
	hex
	default 0x0 if !BR1_MACHINE_GPCM
	default 0x0 if OR1_ACS_SAME_TIME
	default 0x400 if OR1_ACS_QUARTER_CYCLE_EARLIER
	default 0x600 if OR1_ACS_HALF_CYCLE_EARLIER

config OR1_XACS
	hex
	default 0x0 if !BR1_MACHINE_GPCM
	default 0x0 if OR1_XACS_NORMAL
	default 0x100 if OR1_XACS_EXTENDED

config OR1_SETA
	hex
	default 0x0 if !BR1_MACHINE_GPCM
	default 0x0 if OR1_SETA_INTERNAL
	default 0x8 if OR1_SETA_EXTERNAL

config OR1_TRLX
	hex
	default 0x0 if OR1_TRLX_NORMAL
	default 0x4 if OR1_TRLX_RELAXED

config OR1_EHTR
	hex
	default 0x0 if OR1_EHTR_NORMAL
	default 0x2 if OR1_EHTR_1_CYCLE
	default 0x0 if OR1_EHTR_4_CYCLE
	default 0x2 if OR1_EHTR_8_CYCLE

config OR1_EAD
	hex
	default 0x0 if ARCH_MPC8308
	default 0x0 if OR1_EAD_NONE
	default 0x1 if OR1_EAD_EXTRA