mips: mtmips: select essential drivers in Kconfig
[oweals/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_QEMU_MIPS
16         bool "Support qemu-mips"
17         select ROM_EXCEPTION_VECTORS
18         select SUPPORTS_BIG_ENDIAN
19         select SUPPORTS_CPU_MIPS32_R1
20         select SUPPORTS_CPU_MIPS32_R2
21         select SUPPORTS_CPU_MIPS64_R1
22         select SUPPORTS_CPU_MIPS64_R2
23         select SUPPORTS_LITTLE_ENDIAN
24
25 config TARGET_MALTA
26         bool "Support malta"
27         select DM
28         select DM_SERIAL
29         select DYNAMIC_IO_PORT_BASE
30         select MIPS_CM
31         select MIPS_INSERT_BOOT_CONFIG
32         select MIPS_L1_CACHE_SHIFT_6
33         select MIPS_L2_CACHE
34         select OF_CONTROL
35         select OF_ISA_BUS
36         select ROM_EXCEPTION_VECTORS
37         select SUPPORTS_BIG_ENDIAN
38         select SUPPORTS_CPU_MIPS32_R1
39         select SUPPORTS_CPU_MIPS32_R2
40         select SUPPORTS_CPU_MIPS32_R6
41         select SUPPORTS_CPU_MIPS64_R1
42         select SUPPORTS_CPU_MIPS64_R2
43         select SUPPORTS_CPU_MIPS64_R6
44         select SUPPORTS_LITTLE_ENDIAN
45         select SWAP_IO_SPACE
46         imply CMD_DM
47
48 config TARGET_VCT
49         bool "Support vct"
50         select ROM_EXCEPTION_VECTORS
51         select SUPPORTS_BIG_ENDIAN
52         select SUPPORTS_CPU_MIPS32_R1
53         select SUPPORTS_CPU_MIPS32_R2
54         select SYS_MIPS_CACHE_INIT_RAM_LOAD
55
56 config ARCH_ATH79
57         bool "Support QCA/Atheros ath79"
58         select DM
59         select OF_CONTROL
60         imply CMD_DM
61
62 config ARCH_MSCC
63         bool "Support MSCC VCore-III"
64         select OF_CONTROL
65         select DM
66
67 config ARCH_BMIPS
68         bool "Support BMIPS SoCs"
69         select CLK
70         select CPU
71         select DM
72         select OF_CONTROL
73         select RAM
74         select SYSRESET
75         imply CMD_DM
76
77 config ARCH_MTMIPS
78         bool "Support MediaTek MIPS platforms"
79         select CLK
80         imply CMD_DM
81         select DISPLAY_CPUINFO
82         select DM
83         imply DM_ETH
84         imply DM_GPIO
85         select DM_RESET
86         select DM_SERIAL
87         select PINCTRL
88         select PINMUX
89         select PINCONF
90         select RESET_MTMIPS
91         imply DM_SPI
92         imply DM_SPI_FLASH
93         select LAST_STAGE_INIT
94         select MIPS_TUNE_24KC
95         select OF_CONTROL
96         select ROM_EXCEPTION_VECTORS
97         select SUPPORTS_CPU_MIPS32_R1
98         select SUPPORTS_CPU_MIPS32_R2
99         select SUPPORTS_LITTLE_ENDIAN
100         select SYSRESET
101
102 config ARCH_JZ47XX
103         bool "Support Ingenic JZ47xx"
104         select SUPPORT_SPL
105         select OF_CONTROL
106         select DM
107
108 config MACH_PIC32
109         bool "Support Microchip PIC32"
110         select DM
111         select OF_CONTROL
112         imply CMD_DM
113
114 config TARGET_BOSTON
115         bool "Support Boston"
116         select DM
117         select DM_SERIAL
118         select MIPS_CM
119         select MIPS_L1_CACHE_SHIFT_6
120         select MIPS_L2_CACHE
121         select OF_BOARD_SETUP
122         select OF_CONTROL
123         select ROM_EXCEPTION_VECTORS
124         select SUPPORTS_BIG_ENDIAN
125         select SUPPORTS_CPU_MIPS32_R1
126         select SUPPORTS_CPU_MIPS32_R2
127         select SUPPORTS_CPU_MIPS32_R6
128         select SUPPORTS_CPU_MIPS64_R1
129         select SUPPORTS_CPU_MIPS64_R2
130         select SUPPORTS_CPU_MIPS64_R6
131         select SUPPORTS_LITTLE_ENDIAN
132         imply CMD_DM
133
134 config TARGET_XILFPGA
135         bool "Support Imagination Xilfpga"
136         select DM
137         select DM_ETH
138         select DM_GPIO
139         select DM_SERIAL
140         select MIPS_L1_CACHE_SHIFT_4
141         select OF_CONTROL
142         select ROM_EXCEPTION_VECTORS
143         select SUPPORTS_CPU_MIPS32_R1
144         select SUPPORTS_CPU_MIPS32_R2
145         select SUPPORTS_LITTLE_ENDIAN
146         imply CMD_DM
147         help
148           This supports IMGTEC MIPSfpga platform
149
150 endchoice
151
152 source "board/imgtec/boston/Kconfig"
153 source "board/imgtec/malta/Kconfig"
154 source "board/imgtec/xilfpga/Kconfig"
155 source "board/micronas/vct/Kconfig"
156 source "board/qemu-mips/Kconfig"
157 source "arch/mips/mach-ath79/Kconfig"
158 source "arch/mips/mach-mscc/Kconfig"
159 source "arch/mips/mach-bmips/Kconfig"
160 source "arch/mips/mach-jz47xx/Kconfig"
161 source "arch/mips/mach-pic32/Kconfig"
162 source "arch/mips/mach-mtmips/Kconfig"
163
164 if MIPS
165
166 choice
167         prompt "Endianness selection"
168         help
169           Some MIPS boards can be configured for either little or big endian
170           byte order. These modes require different U-Boot images. In general there
171           is one preferred byteorder for a particular system but some systems are
172           just as commonly used in the one or the other endianness.
173
174 config SYS_BIG_ENDIAN
175         bool "Big endian"
176         depends on SUPPORTS_BIG_ENDIAN
177
178 config SYS_LITTLE_ENDIAN
179         bool "Little endian"
180         depends on SUPPORTS_LITTLE_ENDIAN
181
182 endchoice
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 endchoice
237
238 menu "General setup"
239
240 config ROM_EXCEPTION_VECTORS
241         bool "Build U-Boot image with exception vectors"
242         help
243           Enable this to include exception vectors in the U-Boot image. This is
244           required if the U-Boot entry point is equal to the address of the
245           CPU reset exception vector (e.g. U-Boot as ROM loader in Qemu,
246           U-Boot booted from parallel NOR flash).
247           Disable this, if the U-Boot image is booted from DRAM (e.g. by SPL).
248           In that case the image size will be reduced by 0x500 bytes.
249
250 config MIPS_CM_BASE
251         hex "MIPS CM GCR Base Address"
252         depends on MIPS_CM
253         default 0x16100000 if TARGET_BOSTON
254         default 0x1fbf8000
255         help
256           The physical base address at which to map the MIPS Coherence Manager
257           Global Configuration Registers (GCRs). This should be set such that
258           the GCRs occupy a region of the physical address space which is
259           otherwise unused, or at minimum that software doesn't need to access.
260
261 config MIPS_CACHE_INDEX_BASE
262         hex "Index base address for cache initialisation"
263         default 0x80000000 if CPU_MIPS32
264         default 0xffffffff80000000 if CPU_MIPS64
265         help
266           This is the base address for a memory block, which is used for
267           initialising the cache lines. This is also the base address of a memory
268           block which is used for loading and filling cache lines when
269           SYS_MIPS_CACHE_INIT_RAM_LOAD is selected.
270           Normally this is CKSEG0. If the MIPS system needs to move this block
271           to some SRAM or ScratchPad RAM, adapt this option accordingly.
272
273 config MIPS_RELOCATION_TABLE_SIZE
274         hex "Relocation table size"
275         range 0x100 0x10000
276         default "0x8000"
277         ---help---
278           A table of relocation data will be appended to the U-Boot binary
279           and parsed in relocate_code() to fix up all offsets in the relocated
280           U-Boot.
281
282           This option allows the amount of space reserved for the table to be
283           adjusted in a range from 256 up to 64k. The default is 32k and should
284           be ok in most cases. Reduce this value to shrink the size of U-Boot
285           binary.
286
287           The build will fail and a valid size suggested if this is too small.
288
289           If unsure, leave at the default value.
290
291 endmenu
292
293 menu "OS boot interface"
294
295 config MIPS_BOOT_CMDLINE_LEGACY
296         bool "Hand over legacy command line to Linux kernel"
297         default y
298         help
299           Enable this option if you want U-Boot to hand over the Yamon-style
300           command line to the kernel. All bootargs will be prepared as argc/argv
301           compatible list. The argument count (argc) is stored in register $a0.
302           The address of the argument list (argv) is stored in register $a1.
303
304 config MIPS_BOOT_ENV_LEGACY
305         bool "Hand over legacy environment to Linux kernel"
306         default y
307         help
308           Enable this option if you want U-Boot to hand over the Yamon-style
309           environment to the kernel. Information like memory size, initrd
310           address and size will be prepared as zero-terminated key/value list.
311           The address of the environment is stored in register $a2.
312
313 config MIPS_BOOT_FDT
314         bool "Hand over a flattened device tree to Linux kernel"
315         default n
316         help
317           Enable this option if you want U-Boot to hand over a flattened
318           device tree to the kernel. According to UHI register $a0 will be set
319           to -2 and the FDT address is stored in $a1.
320
321 endmenu
322
323 config SUPPORTS_BIG_ENDIAN
324         bool
325
326 config SUPPORTS_LITTLE_ENDIAN
327         bool
328
329 config SUPPORTS_CPU_MIPS32_R1
330         bool
331
332 config SUPPORTS_CPU_MIPS32_R2
333         bool
334
335 config SUPPORTS_CPU_MIPS32_R6
336         bool
337
338 config SUPPORTS_CPU_MIPS64_R1
339         bool
340
341 config SUPPORTS_CPU_MIPS64_R2
342         bool
343
344 config SUPPORTS_CPU_MIPS64_R6
345         bool
346
347 config CPU_MIPS32
348         bool
349         default y if CPU_MIPS32_R1 || CPU_MIPS32_R2 || CPU_MIPS32_R6
350
351 config CPU_MIPS64
352         bool
353         default y if CPU_MIPS64_R1 || CPU_MIPS64_R2 || CPU_MIPS64_R6
354
355 config MIPS_TUNE_4KC
356         bool
357
358 config MIPS_TUNE_14KC
359         bool
360
361 config MIPS_TUNE_24KC
362         bool
363
364 config MIPS_TUNE_34KC
365         bool
366
367 config MIPS_TUNE_74KC
368         bool
369
370 config 32BIT
371         bool
372
373 config 64BIT
374         bool
375
376 config SWAP_IO_SPACE
377         bool
378
379 config SYS_MIPS_CACHE_INIT_RAM_LOAD
380         bool
381
382 config MIPS_INIT_STACK_IN_SRAM
383         bool
384         default n
385         help
386           Select this if the initial stack frame could be setup in SRAM.
387           Normally the initial stack frame is set up in DRAM which is often
388           only available after lowlevel_init. With this option the initial
389           stack frame and the early C environment is set up before
390           lowlevel_init. Thus lowlevel_init does not need to be implemented
391           in assembler.
392
393 config SYS_DCACHE_SIZE
394         int
395         default 0
396         help
397           The total size of the L1 Dcache, if known at compile time.
398
399 config SYS_DCACHE_LINE_SIZE
400         int
401         default 0
402         help
403           The size of L1 Dcache lines, if known at compile time.
404
405 config SYS_ICACHE_SIZE
406         int
407         default 0
408         help
409           The total size of the L1 ICache, if known at compile time.
410
411 config SYS_ICACHE_LINE_SIZE
412         int
413         default 0
414         help
415           The size of L1 Icache lines, if known at compile time.
416
417 config SYS_SCACHE_LINE_SIZE
418         int
419         default 0
420         help
421           The size of L2 cache lines, if known at compile time.
422
423
424 config SYS_CACHE_SIZE_AUTO
425         def_bool y if SYS_DCACHE_SIZE = 0 && SYS_ICACHE_SIZE = 0 && \
426                 SYS_DCACHE_LINE_SIZE = 0 && SYS_ICACHE_LINE_SIZE = 0 && \
427                 SYS_SCACHE_LINE_SIZE = 0
428         help
429           Select this (or let it be auto-selected by not defining any cache
430           sizes) in order to allow U-Boot to automatically detect the sizes
431           of caches at runtime. This has a small cost in code size & runtime
432           so if you know the cache configuration for your system at compile
433           time it would be beneficial to configure it.
434
435 config MIPS_L1_CACHE_SHIFT_4
436         bool
437
438 config MIPS_L1_CACHE_SHIFT_5
439         bool
440
441 config MIPS_L1_CACHE_SHIFT_6
442         bool
443
444 config MIPS_L1_CACHE_SHIFT_7
445         bool
446
447 config MIPS_L1_CACHE_SHIFT
448         int
449         default "7" if MIPS_L1_CACHE_SHIFT_7
450         default "6" if MIPS_L1_CACHE_SHIFT_6
451         default "5" if MIPS_L1_CACHE_SHIFT_5
452         default "4" if MIPS_L1_CACHE_SHIFT_4
453         default "5"
454
455 config MIPS_L2_CACHE
456         bool
457         help
458           Select this if your system includes an L2 cache and you want U-Boot
459           to initialise & maintain it.
460
461 config DYNAMIC_IO_PORT_BASE
462         bool
463
464 config MIPS_CM
465         bool
466         help
467           Select this if your system contains a MIPS Coherence Manager and you
468           wish U-Boot to configure it or make use of it to retrieve system
469           information such as cache configuration.
470
471 config MIPS_INSERT_BOOT_CONFIG
472         bool
473         default n
474         help
475           Enable this to insert some board-specific boot configuration in
476           the U-Boot binary at offset 0x10.
477
478 config MIPS_BOOT_CONFIG_WORD0
479         hex
480         depends on MIPS_INSERT_BOOT_CONFIG
481         default 0x420 if TARGET_MALTA
482         default 0x0
483         help
484           Value which is inserted as boot config word 0.
485
486 config MIPS_BOOT_CONFIG_WORD1
487         hex
488         depends on MIPS_INSERT_BOOT_CONFIG
489         default 0x0
490         help
491           Value which is inserted as boot config word 1.
492
493 endif
494
495 endmenu