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