Finish converting CONFIG_SYS_CACHELINE_SIZE to Kconfig
[platform/kernel/u-boot.git] / arch / mips / Kconfig
1 menu "MIPS architecture"
2         depends on MIPS
3
4 config SYS_ARCH
5         default "mips"
6
7 config SYS_CPU
8         default "mips32" if CPU_MIPS32
9         default "mips64" if CPU_MIPS64
10
11 choice
12         prompt "Target select"
13         optional
14
15 config TARGET_MALTA
16         bool "Support malta"
17         select BOARD_EARLY_INIT_R
18         select DM
19         select DM_SERIAL
20         select DM_PCI
21         select DM_ETH
22         select DYNAMIC_IO_PORT_BASE
23         select MIPS_CM
24         select MIPS_INSERT_BOOT_CONFIG
25         select SYS_CACHE_SHIFT_6
26         select MIPS_L2_CACHE
27         select OF_CONTROL
28         select OF_ISA_BUS
29         select PCI_MAP_SYSTEM_MEMORY
30         select ROM_EXCEPTION_VECTORS
31         select SUPPORTS_BIG_ENDIAN
32         select SUPPORTS_CPU_MIPS32_R1
33         select SUPPORTS_CPU_MIPS32_R2
34         select SUPPORTS_CPU_MIPS32_R6
35         select SUPPORTS_CPU_MIPS64_R1
36         select SUPPORTS_CPU_MIPS64_R2
37         select SUPPORTS_CPU_MIPS64_R6
38         select SUPPORTS_LITTLE_ENDIAN
39         select SWAP_IO_SPACE
40         imply CMD_DM
41
42 config TARGET_VCT
43         bool "Support vct"
44         select ROM_EXCEPTION_VECTORS
45         select SUPPORTS_BIG_ENDIAN
46         select SUPPORTS_CPU_MIPS32_R1
47         select SUPPORTS_CPU_MIPS32_R2
48         select SYS_MIPS_CACHE_INIT_RAM_LOAD
49
50 config ARCH_ATH79
51         bool "Support QCA/Atheros ath79"
52         select DM
53         select OF_CONTROL
54         imply CMD_DM
55
56 config ARCH_MSCC
57         bool "Support MSCC VCore-III"
58         select OF_CONTROL
59         select DM
60
61 config ARCH_BMIPS
62         bool "Support BMIPS SoCs"
63         select CLK
64         select CPU
65         select DM
66         select OF_CONTROL
67         select RAM
68         select SYSRESET
69         imply CMD_DM
70
71 config ARCH_MTMIPS
72         bool "Support MediaTek MIPS platforms"
73         select CLK
74         imply CMD_DM
75         select DISPLAY_CPUINFO
76         select DM
77         imply DM_ETH
78         imply DM_GPIO
79         select DM_RESET
80         select DM_SERIAL
81         select PINCTRL
82         select PINMUX
83         select PINCONF
84         select RESET_MTMIPS
85         imply DM_SPI
86         imply DM_SPI_FLASH
87         select LAST_STAGE_INIT
88         select MIPS_TUNE_24KC
89         select OF_CONTROL
90         select ROM_EXCEPTION_VECTORS
91         select SUPPORTS_CPU_MIPS32_R1
92         select SUPPORTS_CPU_MIPS32_R2
93         select SUPPORTS_LITTLE_ENDIAN
94         select SUPPORT_SPL
95
96 config ARCH_JZ47XX
97         bool "Support Ingenic JZ47xx"
98         select SUPPORT_SPL
99         select OF_CONTROL
100         select DM
101
102 config ARCH_OCTEON
103         bool "Support Marvell Octeon CN7xxx platforms"
104         select CPU_CAVIUM_OCTEON
105         select DISPLAY_CPUINFO
106         select DMA_ADDR_T_64BIT
107         select DM
108         select DM_ETH
109         select DM_GPIO
110         select DM_I2C
111         select DM_SERIAL
112         select DM_SPI
113         select MIPS_L2_CACHE
114         select MIPS_MACH_EARLY_INIT
115         select MIPS_TUNE_OCTEON3
116         select ROM_EXCEPTION_VECTORS
117         select SUPPORTS_BIG_ENDIAN
118         select SUPPORTS_CPU_MIPS64_OCTEON
119         select PHYS_64BIT
120         select OF_CONTROL
121         select OF_LIVE
122         imply CMD_DM
123
124 config MACH_PIC32
125         bool "Support Microchip PIC32"
126         select DM
127         select OF_CONTROL
128         imply CMD_DM
129
130 config TARGET_BOSTON
131         bool "Support Boston"
132         select DM
133         select DM_SERIAL
134         select MIPS_CM
135         select SYS_CACHE_SHIFT_6
136         select MIPS_L2_CACHE
137         select OF_BOARD_SETUP
138         select OF_CONTROL
139         select ROM_EXCEPTION_VECTORS
140         select SUPPORTS_BIG_ENDIAN
141         select SUPPORTS_CPU_MIPS32_R1
142         select SUPPORTS_CPU_MIPS32_R2
143         select SUPPORTS_CPU_MIPS32_R6
144         select SUPPORTS_CPU_MIPS64_R1
145         select SUPPORTS_CPU_MIPS64_R2
146         select SUPPORTS_CPU_MIPS64_R6
147         select SUPPORTS_LITTLE_ENDIAN
148         imply CMD_DM
149
150 config TARGET_XILFPGA
151         bool "Support Imagination Xilfpga"
152         select DM
153         select DM_ETH
154         select DM_GPIO
155         select DM_SERIAL
156         select SYS_CACHE_SHIFT_4
157         select OF_CONTROL
158         select ROM_EXCEPTION_VECTORS
159         select SUPPORTS_CPU_MIPS32_R1
160         select SUPPORTS_CPU_MIPS32_R2
161         select SUPPORTS_LITTLE_ENDIAN
162         imply CMD_DM
163         help
164           This supports IMGTEC MIPSfpga platform
165
166 endchoice
167
168 source "board/imgtec/boston/Kconfig"
169 source "board/imgtec/malta/Kconfig"
170 source "board/imgtec/xilfpga/Kconfig"
171 source "arch/mips/mach-ath79/Kconfig"
172 source "arch/mips/mach-mscc/Kconfig"
173 source "arch/mips/mach-bmips/Kconfig"
174 source "arch/mips/mach-jz47xx/Kconfig"
175 source "arch/mips/mach-pic32/Kconfig"
176 source "arch/mips/mach-mtmips/Kconfig"
177 source "arch/mips/mach-octeon/Kconfig"
178
179 if MIPS
180
181 choice
182         prompt "Endianness selection"
183         help
184           Some MIPS boards can be configured for either little or big endian
185           byte order. These modes require different U-Boot images. In general there
186           is one preferred byteorder for a particular system but some systems are
187           just as commonly used in the one or the other endianness.
188
189 config SYS_BIG_ENDIAN
190         bool "Big endian"
191         depends on SUPPORTS_BIG_ENDIAN
192
193 config SYS_LITTLE_ENDIAN
194         bool "Little endian"
195         depends on SUPPORTS_LITTLE_ENDIAN
196
197 endchoice
198
199 choice
200         prompt "CPU selection"
201         default CPU_MIPS32_R2
202
203 config CPU_MIPS32_R1
204         bool "MIPS32 Release 1"
205         depends on SUPPORTS_CPU_MIPS32_R1
206         select 32BIT
207         help
208           Choose this option to build an U-Boot for release 1 through 5 of the
209           MIPS32 architecture.
210
211 config CPU_MIPS32_R2
212         bool "MIPS32 Release 2"
213         depends on SUPPORTS_CPU_MIPS32_R2
214         select 32BIT
215         help
216           Choose this option to build an U-Boot for release 2 through 5 of the
217           MIPS32 architecture.
218
219 config CPU_MIPS32_R6
220         bool "MIPS32 Release 6"
221         depends on SUPPORTS_CPU_MIPS32_R6
222         select 32BIT
223         help
224           Choose this option to build an U-Boot for release 6 or later of the
225           MIPS32 architecture.
226
227 config CPU_MIPS64_R1
228         bool "MIPS64 Release 1"
229         depends on SUPPORTS_CPU_MIPS64_R1
230         select 64BIT
231         help
232           Choose this option to build a kernel for release 1 through 5 of the
233           MIPS64 architecture.
234
235 config CPU_MIPS64_R2
236         bool "MIPS64 Release 2"
237         depends on SUPPORTS_CPU_MIPS64_R2
238         select 64BIT
239         help
240           Choose this option to build a kernel for release 2 through 5 of the
241           MIPS64 architecture.
242
243 config CPU_MIPS64_R6
244         bool "MIPS64 Release 6"
245         depends on SUPPORTS_CPU_MIPS64_R6
246         select 64BIT
247         help
248           Choose this option to build a kernel for release 6 or later of the
249           MIPS64 architecture.
250
251 config CPU_MIPS64_OCTEON
252         bool "Marvell Octeon series of CPUs"
253         depends on SUPPORTS_CPU_MIPS64_OCTEON
254         select 64BIT
255         help
256          Choose this option for Marvell Octeon CPUs.  These CPUs are between
257          MIPS64 R5 and R6 with other extensions.
258
259 endchoice
260
261 menu "General setup"
262
263 config ROM_EXCEPTION_VECTORS
264         bool "Build U-Boot image with exception vectors"
265         help
266           Enable this to include exception vectors in the U-Boot image. This is
267           required if the U-Boot entry point is equal to the address of the
268           CPU reset exception vector (e.g. U-Boot as ROM loader in Qemu,
269           U-Boot booted from parallel NOR flash).
270           Disable this, if the U-Boot image is booted from DRAM (e.g. by SPL).
271           In that case the image size will be reduced by 0x500 bytes.
272
273 config MIPS_CM_BASE
274         hex "MIPS CM GCR Base Address"
275         depends on MIPS_CM
276         default 0x16100000 if TARGET_BOSTON
277         default 0x1fbf8000
278         help
279           The physical base address at which to map the MIPS Coherence Manager
280           Global Configuration Registers (GCRs). This should be set such that
281           the GCRs occupy a region of the physical address space which is
282           otherwise unused, or at minimum that software doesn't need to access.
283
284 config MIPS_CACHE_INDEX_BASE
285         hex "Index base address for cache initialisation"
286         default 0x80000000 if CPU_MIPS32
287         default 0xffffffff80000000 if CPU_MIPS64
288         help
289           This is the base address for a memory block, which is used for
290           initialising the cache lines. This is also the base address of a memory
291           block which is used for loading and filling cache lines when
292           SYS_MIPS_CACHE_INIT_RAM_LOAD is selected.
293           Normally this is CKSEG0. If the MIPS system needs to move this block
294           to some SRAM or ScratchPad RAM, adapt this option accordingly.
295
296 config MIPS_MACH_EARLY_INIT
297         bool "Enable mach specific very early init code"
298         help
299           Use this to enable the call to mips_mach_early_init() very early
300           from start.S. This function can be used e.g. to do some very early
301           CPU / SoC intitialization or image copying. Its called very early
302           and at this stage the PC might not match the linking address
303           (CONFIG_TEXT_BASE) - no absolute jump done until this call.
304
305 config MIPS_CACHE_SETUP
306         bool "Allow generic start code to initialize and setup caches"
307         default n if SKIP_LOWLEVEL_INIT
308         default y
309         help
310           This allows the generic start code to invoke the generic initialization
311           of the CPU caches. Disabling this can be useful for RAM boot scenarios
312           (EJTAG, SPL payload) or for machines which don't need cache initialization
313           or which want to provide their own cache implementation.
314
315           If unsure, say yes.
316
317 config MIPS_CACHE_DISABLE
318         bool "Allow generic start code to initially disable caches"
319         default n if SKIP_LOWLEVEL_INIT
320         default y
321         help
322           This allows the generic start code to initially disable the CPU caches
323           and run uncached until the caches are initialized and enabled. Disabling
324           this can be useful on machines which don't need cache initialization or
325           which want to provide their own cache implementation.
326
327           If unsure, say yes.
328
329 config MIPS_RELOCATION_TABLE_SIZE
330         hex "Relocation table size"
331         range 0x100 0x10000
332         default "0x8000"
333         ---help---
334           A table of relocation data will be appended to the U-Boot binary
335           and parsed in relocate_code() to fix up all offsets in the relocated
336           U-Boot.
337
338           This option allows the amount of space reserved for the table to be
339           adjusted in a range from 256 up to 64k. The default is 32k and should
340           be ok in most cases. Reduce this value to shrink the size of U-Boot
341           binary.
342
343           The build will fail and a valid size suggested if this is too small.
344
345           If unsure, leave at the default value.
346
347 config RESTORE_EXCEPTION_VECTOR_BASE
348         bool "Restore exception vector base before booting linux kernel"
349         default n
350         help
351           In U-Boot the exception vector base will be moved to top of memory,
352           to be used to display register dump when exception occurs.
353           But some old linux kernel does not honor the base set in CP0_EBASE.
354           A modified exception vector base will cause kernel crash.
355
356           This option will restore the exception vector base to its previous
357           value.
358
359           If unsure, say N.
360
361 config OVERRIDE_EXCEPTION_VECTOR_BASE
362         bool "Override the exception vector base to be restored"
363         depends on RESTORE_EXCEPTION_VECTOR_BASE
364         default n
365         help
366           Enable this option if you want to use a different exception vector
367           base rather than the previously saved one.
368
369 config NEW_EXCEPTION_VECTOR_BASE
370         hex "New exception vector base"
371         depends on OVERRIDE_EXCEPTION_VECTOR_BASE
372         range 0x80000000 0xbffff000
373         default 0x80000000
374         help
375           The exception vector base to be restored before booting linux kernel
376
377 config INIT_STACK_WITHOUT_MALLOC_F
378         bool "Do not reserve malloc space on initial stack"
379         default n
380         help
381           Enable this option if you don't want to reserve malloc space on
382           initial stack. This is useful if the initial stack can't hold large
383           malloc space. Platform should set the malloc_base later when DRAM is
384           ready to use.
385
386 config SPL_INIT_STACK_WITHOUT_MALLOC_F
387         bool "Do not reserve malloc space on initial stack in SPL"
388         default n
389         help
390           Enable this option if you don't want to reserve malloc space on
391           initial stack. This is useful if the initial stack can't hold large
392           malloc space. Platform should set the malloc_base later when DRAM is
393           ready to use.
394
395 config SPL_LOADER_SUPPORT
396         bool
397         default n
398         help
399           Enable this option if you want to use SPL loaders without DM enabled.
400
401 endmenu
402
403 menu "OS boot interface"
404
405 config MIPS_BOOT_CMDLINE_LEGACY
406         bool "Hand over legacy command line to Linux kernel"
407         default y
408         help
409           Enable this option if you want U-Boot to hand over the Yamon-style
410           command line to the kernel. All bootargs will be prepared as argc/argv
411           compatible list. The argument count (argc) is stored in register $a0.
412           The address of the argument list (argv) is stored in register $a1.
413
414 config MIPS_BOOT_ENV_LEGACY
415         bool "Hand over legacy environment to Linux kernel"
416         default y
417         help
418           Enable this option if you want U-Boot to hand over the Yamon-style
419           environment to the kernel. Information like memory size, initrd
420           address and size will be prepared as zero-terminated key/value list.
421           The address of the environment is stored in register $a2.
422
423 config MIPS_BOOT_FDT
424         bool "Hand over a flattened device tree to Linux kernel"
425         default n
426         help
427           Enable this option if you want U-Boot to hand over a flattened
428           device tree to the kernel. According to UHI register $a0 will be set
429           to -2 and the FDT address is stored in $a1.
430
431 endmenu
432
433 config SUPPORTS_BIG_ENDIAN
434         bool
435
436 config SUPPORTS_LITTLE_ENDIAN
437         bool
438
439 config SUPPORTS_CPU_MIPS32_R1
440         bool
441
442 config SUPPORTS_CPU_MIPS32_R2
443         bool
444
445 config SUPPORTS_CPU_MIPS32_R6
446         bool
447
448 config SUPPORTS_CPU_MIPS64_R1
449         bool
450
451 config SUPPORTS_CPU_MIPS64_R2
452         bool
453
454 config SUPPORTS_CPU_MIPS64_R6
455         bool
456
457 config SUPPORTS_CPU_MIPS64_OCTEON
458         bool
459
460 config CPU_CAVIUM_OCTEON
461         bool
462
463 config CPU_MIPS32
464         bool
465         default y if CPU_MIPS32_R1 || CPU_MIPS32_R2 || CPU_MIPS32_R6
466
467 config CPU_MIPS64
468         bool
469         default y if CPU_MIPS64_R1 || CPU_MIPS64_R2 || CPU_MIPS64_R6
470         default y if CPU_MIPS64_OCTEON
471
472 config MIPS_TUNE_4KC
473         bool
474
475 config MIPS_TUNE_14KC
476         bool
477
478 config MIPS_TUNE_24KC
479         bool
480
481 config MIPS_TUNE_34KC
482         bool
483
484 config MIPS_TUNE_74KC
485         bool
486
487 config MIPS_TUNE_OCTEON3
488         bool
489
490 config 32BIT
491         bool
492
493 config 64BIT
494         bool
495
496 config SWAP_IO_SPACE
497         bool
498
499 config SYS_MIPS_CACHE_INIT_RAM_LOAD
500         bool
501
502 config MIPS_INIT_STACK_IN_SRAM
503         bool
504         default n
505         help
506           Select this if the initial stack frame could be setup in SRAM.
507           Normally the initial stack frame is set up in DRAM which is often
508           only available after lowlevel_init. With this option the initial
509           stack frame and the early C environment is set up before
510           lowlevel_init. Thus lowlevel_init does not need to be implemented
511           in assembler.
512
513 config MIPS_SRAM_INIT
514         bool
515         default n
516         depends on MIPS_INIT_STACK_IN_SRAM
517         help
518           Select this if the SRAM for initial stack needs to be initialized
519           before it can be used. If enabled, a function mips_sram_init() will
520           be called just before setup_stack_gd.
521
522 config DMA_ADDR_T_64BIT
523         bool
524         help
525          Select this to enable 64-bit DMA addressing
526
527 config SYS_DCACHE_SIZE
528         int
529         default 0
530         help
531           The total size of the L1 Dcache, if known at compile time.
532
533 config SYS_DCACHE_LINE_SIZE
534         int
535         default 0
536         help
537           The size of L1 Dcache lines, if known at compile time.
538
539 config SYS_ICACHE_SIZE
540         int
541         default 0
542         help
543           The total size of the L1 ICache, if known at compile time.
544
545 config SYS_ICACHE_LINE_SIZE
546         int
547         default 0
548         help
549           The size of L1 Icache lines, if known at compile time.
550
551 config SYS_SCACHE_LINE_SIZE
552         int
553         default 0
554         help
555           The size of L2 cache lines, if known at compile time.
556
557
558 config SYS_CACHE_SIZE_AUTO
559         def_bool y if SYS_DCACHE_SIZE = 0 && SYS_ICACHE_SIZE = 0 && \
560                 SYS_DCACHE_LINE_SIZE = 0 && SYS_ICACHE_LINE_SIZE = 0 && \
561                 SYS_SCACHE_LINE_SIZE = 0
562         help
563           Select this (or let it be auto-selected by not defining any cache
564           sizes) in order to allow U-Boot to automatically detect the sizes
565           of caches at runtime. This has a small cost in code size & runtime
566           so if you know the cache configuration for your system at compile
567           time it would be beneficial to configure it.
568
569 config MIPS_L2_CACHE
570         bool
571         help
572           Select this if your system includes an L2 cache and you want U-Boot
573           to initialise & maintain it.
574
575 config DYNAMIC_IO_PORT_BASE
576         bool
577
578 config MIPS_CM
579         bool
580         help
581           Select this if your system contains a MIPS Coherence Manager and you
582           wish U-Boot to configure it or make use of it to retrieve system
583           information such as cache configuration.
584
585 config MIPS_INSERT_BOOT_CONFIG
586         bool
587         default n
588         help
589           Enable this to insert some board-specific boot configuration in
590           the U-Boot binary at offset 0x10.
591
592 config MIPS_BOOT_CONFIG_WORD0
593         hex
594         depends on MIPS_INSERT_BOOT_CONFIG
595         default 0x420 if TARGET_MALTA
596         default 0x0
597         help
598           Value which is inserted as boot config word 0.
599
600 config MIPS_BOOT_CONFIG_WORD1
601         hex
602         depends on MIPS_INSERT_BOOT_CONFIG
603         default 0x0
604         help
605           Value which is inserted as boot config word 1.
606
607 endif
608
609 endmenu