07488fe651fb913aed95b7143018b63193ddedfc
[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 SUPPORTS_BIG_ENDIAN
18         select SUPPORTS_LITTLE_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 ROM_EXCEPTION_VECTORS
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_L2_CACHE
32         select OF_CONTROL
33         select OF_ISA_BUS
34         select SUPPORTS_BIG_ENDIAN
35         select SUPPORTS_LITTLE_ENDIAN
36         select SUPPORTS_CPU_MIPS32_R1
37         select SUPPORTS_CPU_MIPS32_R2
38         select SUPPORTS_CPU_MIPS32_R6
39         select SUPPORTS_CPU_MIPS64_R1
40         select SUPPORTS_CPU_MIPS64_R2
41         select SUPPORTS_CPU_MIPS64_R6
42         select SWAP_IO_SPACE
43         select MIPS_L1_CACHE_SHIFT_6
44         select ROM_EXCEPTION_VECTORS
45
46 config TARGET_VCT
47         bool "Support vct"
48         select SUPPORTS_BIG_ENDIAN
49         select SUPPORTS_CPU_MIPS32_R1
50         select SUPPORTS_CPU_MIPS32_R2
51         select SYS_MIPS_CACHE_INIT_RAM_LOAD
52         select ROM_EXCEPTION_VECTORS
53
54 config TARGET_DBAU1X00
55         bool "Support dbau1x00"
56         select SUPPORTS_BIG_ENDIAN
57         select SUPPORTS_LITTLE_ENDIAN
58         select SUPPORTS_CPU_MIPS32_R1
59         select SUPPORTS_CPU_MIPS32_R2
60         select SYS_MIPS_CACHE_INIT_RAM_LOAD
61         select ROM_EXCEPTION_VECTORS
62         select MIPS_TUNE_4KC
63
64 config TARGET_PB1X00
65         bool "Support pb1x00"
66         select SUPPORTS_LITTLE_ENDIAN
67         select SUPPORTS_CPU_MIPS32_R1
68         select SUPPORTS_CPU_MIPS32_R2
69         select SYS_MIPS_CACHE_INIT_RAM_LOAD
70         select ROM_EXCEPTION_VECTORS
71         select MIPS_TUNE_4KC
72
73 config ARCH_ATH79
74         bool "Support QCA/Atheros ath79"
75         select OF_CONTROL
76         select DM
77
78 config ARCH_BMIPS
79         bool "Support BMIPS SoCs"
80         select OF_CONTROL
81         select DM
82         select CLK
83         select CPU
84         select RAM
85         select SYSRESET
86
87 config MACH_PIC32
88         bool "Support Microchip PIC32"
89         select OF_CONTROL
90         select DM
91
92 config TARGET_BOSTON
93         bool "Support Boston"
94         select DM
95         select DM_SERIAL
96         select OF_CONTROL
97         select MIPS_CM
98         select MIPS_L1_CACHE_SHIFT_6
99         select MIPS_L2_CACHE
100         select SUPPORTS_BIG_ENDIAN
101         select SUPPORTS_LITTLE_ENDIAN
102         select SUPPORTS_CPU_MIPS32_R1
103         select SUPPORTS_CPU_MIPS32_R2
104         select SUPPORTS_CPU_MIPS32_R6
105         select SUPPORTS_CPU_MIPS64_R1
106         select SUPPORTS_CPU_MIPS64_R2
107         select SUPPORTS_CPU_MIPS64_R6
108         select ROM_EXCEPTION_VECTORS
109
110 config TARGET_XILFPGA
111         bool "Support Imagination Xilfpga"
112         select OF_CONTROL
113         select DM
114         select DM_SERIAL
115         select DM_GPIO
116         select DM_ETH
117         select SUPPORTS_LITTLE_ENDIAN
118         select SUPPORTS_CPU_MIPS32_R1
119         select SUPPORTS_CPU_MIPS32_R2
120         select MIPS_L1_CACHE_SHIFT_4
121         select ROM_EXCEPTION_VECTORS
122         help
123           This supports IMGTEC MIPSfpga platform
124
125 endchoice
126
127 source "board/dbau1x00/Kconfig"
128 source "board/imgtec/boston/Kconfig"
129 source "board/imgtec/malta/Kconfig"
130 source "board/imgtec/xilfpga/Kconfig"
131 source "board/micronas/vct/Kconfig"
132 source "board/pb1x00/Kconfig"
133 source "board/qemu-mips/Kconfig"
134 source "arch/mips/mach-ath79/Kconfig"
135 source "arch/mips/mach-bmips/Kconfig"
136 source "arch/mips/mach-pic32/Kconfig"
137
138 if MIPS
139
140 choice
141         prompt "Endianness selection"
142         help
143           Some MIPS boards can be configured for either little or big endian
144           byte order. These modes require different U-Boot images. In general there
145           is one preferred byteorder for a particular system but some systems are
146           just as commonly used in the one or the other endianness.
147
148 config SYS_BIG_ENDIAN
149         bool "Big endian"
150         depends on SUPPORTS_BIG_ENDIAN
151
152 config SYS_LITTLE_ENDIAN
153         bool "Little endian"
154         depends on SUPPORTS_LITTLE_ENDIAN
155
156 endchoice
157
158 choice
159         prompt "CPU selection"
160         default CPU_MIPS32_R2
161
162 config CPU_MIPS32_R1
163         bool "MIPS32 Release 1"
164         depends on SUPPORTS_CPU_MIPS32_R1
165         select 32BIT
166         help
167           Choose this option to build an U-Boot for release 1 through 5 of the
168           MIPS32 architecture.
169
170 config CPU_MIPS32_R2
171         bool "MIPS32 Release 2"
172         depends on SUPPORTS_CPU_MIPS32_R2
173         select 32BIT
174         help
175           Choose this option to build an U-Boot for release 2 through 5 of the
176           MIPS32 architecture.
177
178 config CPU_MIPS32_R6
179         bool "MIPS32 Release 6"
180         depends on SUPPORTS_CPU_MIPS32_R6
181         select 32BIT
182         help
183           Choose this option to build an U-Boot for release 6 or later of the
184           MIPS32 architecture.
185
186 config CPU_MIPS64_R1
187         bool "MIPS64 Release 1"
188         depends on SUPPORTS_CPU_MIPS64_R1
189         select 64BIT
190         help
191           Choose this option to build a kernel for release 1 through 5 of the
192           MIPS64 architecture.
193
194 config CPU_MIPS64_R2
195         bool "MIPS64 Release 2"
196         depends on SUPPORTS_CPU_MIPS64_R2
197         select 64BIT
198         help
199           Choose this option to build a kernel for release 2 through 5 of the
200           MIPS64 architecture.
201
202 config CPU_MIPS64_R6
203         bool "MIPS64 Release 6"
204         depends on SUPPORTS_CPU_MIPS64_R6
205         select 64BIT
206         help
207           Choose this option to build a kernel for release 6 or later of the
208           MIPS64 architecture.
209
210 endchoice
211
212 menu "General setup"
213
214 config ROM_EXCEPTION_VECTORS
215         bool "Build U-Boot image with exception vectors"
216         help
217           Enable this to include exception vectors in the U-Boot image. This is
218           required if the U-Boot entry point is equal to the address of the
219           CPU reset exception vector (e.g. U-Boot as ROM loader in Qemu,
220           U-Boot booted from parallel NOR flash).
221           Disable this, if the U-Boot image is booted from DRAM (e.g. by SPL).
222           In that case the image size will be reduced by 0x500 bytes.
223
224 config MIPS_CM_BASE
225         hex "MIPS CM GCR Base Address"
226         depends on MIPS_CM
227         default 0x16100000 if TARGET_BOSTON
228         default 0x1fbf8000
229         help
230           The physical base address at which to map the MIPS Coherence Manager
231           Global Configuration Registers (GCRs). This should be set such that
232           the GCRs occupy a region of the physical address space which is
233           otherwise unused, or at minimum that software doesn't need to access.
234
235 endmenu
236
237 menu "OS boot interface"
238
239 config MIPS_BOOT_CMDLINE_LEGACY
240         bool "Hand over legacy command line to Linux kernel"
241         default y
242         help
243           Enable this option if you want U-Boot to hand over the Yamon-style
244           command line to the kernel. All bootargs will be prepared as argc/argv
245           compatible list. The argument count (argc) is stored in register $a0.
246           The address of the argument list (argv) is stored in register $a1.
247
248 config MIPS_BOOT_ENV_LEGACY
249         bool "Hand over legacy environment to Linux kernel"
250         default y
251         help
252           Enable this option if you want U-Boot to hand over the Yamon-style
253           environment to the kernel. Information like memory size, initrd
254           address and size will be prepared as zero-terminated key/value list.
255           The address of the environment is stored in register $a2.
256
257 config MIPS_BOOT_FDT
258         bool "Hand over a flattened device tree to Linux kernel"
259         default n
260         help
261           Enable this option if you want U-Boot to hand over a flattened
262           device tree to the kernel. According to UHI register $a0 will be set
263           to -2 and the FDT address is stored in $a1.
264
265 endmenu
266
267 config SUPPORTS_BIG_ENDIAN
268         bool
269
270 config SUPPORTS_LITTLE_ENDIAN
271         bool
272
273 config SUPPORTS_CPU_MIPS32_R1
274         bool
275
276 config SUPPORTS_CPU_MIPS32_R2
277         bool
278
279 config SUPPORTS_CPU_MIPS32_R6
280         bool
281
282 config SUPPORTS_CPU_MIPS64_R1
283         bool
284
285 config SUPPORTS_CPU_MIPS64_R2
286         bool
287
288 config SUPPORTS_CPU_MIPS64_R6
289         bool
290
291 config CPU_MIPS32
292         bool
293         default y if CPU_MIPS32_R1 || CPU_MIPS32_R2 || CPU_MIPS32_R6
294
295 config CPU_MIPS64
296         bool
297         default y if CPU_MIPS64_R1 || CPU_MIPS64_R2 || CPU_MIPS64_R6
298
299 config MIPS_TUNE_4KC
300         bool
301
302 config MIPS_TUNE_14KC
303         bool
304
305 config MIPS_TUNE_24KC
306         bool
307
308 config MIPS_TUNE_34KC
309         bool
310
311 config MIPS_TUNE_74KC
312         bool
313
314 config 32BIT
315         bool
316
317 config 64BIT
318         bool
319
320 config SWAP_IO_SPACE
321         bool
322
323 config SYS_MIPS_CACHE_INIT_RAM_LOAD
324         bool
325
326 config MIPS_INIT_STACK_IN_SRAM
327         bool
328         default n
329         help
330           Select this if the initial stack frame could be setup in SRAM.
331           Normally the initial stack frame is set up in DRAM which is often
332           only available after lowlevel_init. With this option the initial
333           stack frame and the early C environment is set up before
334           lowlevel_init. Thus lowlevel_init does not need to be implemented
335           in assembler.
336
337 config SYS_DCACHE_SIZE
338         int
339         default 0
340         help
341           The total size of the L1 Dcache, if known at compile time.
342
343 config SYS_DCACHE_LINE_SIZE
344         int
345         default 0
346         help
347           The size of L1 Dcache lines, if known at compile time.
348
349 config SYS_ICACHE_SIZE
350         int
351         default 0
352         help
353           The total size of the L1 ICache, if known at compile time.
354
355 config SYS_ICACHE_LINE_SIZE
356         int
357         default 0
358         help
359           The size of L1 Icache lines, if known at compile time.
360
361 config SYS_CACHE_SIZE_AUTO
362         def_bool y if SYS_DCACHE_SIZE = 0 && SYS_ICACHE_SIZE = 0 && \
363                 SYS_DCACHE_LINE_SIZE = 0 && SYS_ICACHE_LINE_SIZE = 0
364         help
365           Select this (or let it be auto-selected by not defining any cache
366           sizes) in order to allow U-Boot to automatically detect the sizes
367           of caches at runtime. This has a small cost in code size & runtime
368           so if you know the cache configuration for your system at compile
369           time it would be beneficial to configure it.
370
371 config MIPS_L1_CACHE_SHIFT_4
372         bool
373
374 config MIPS_L1_CACHE_SHIFT_5
375         bool
376
377 config MIPS_L1_CACHE_SHIFT_6
378         bool
379
380 config MIPS_L1_CACHE_SHIFT_7
381         bool
382
383 config MIPS_L1_CACHE_SHIFT
384         int
385         default "7" if MIPS_L1_CACHE_SHIFT_7
386         default "6" if MIPS_L1_CACHE_SHIFT_6
387         default "5" if MIPS_L1_CACHE_SHIFT_5
388         default "4" if MIPS_L1_CACHE_SHIFT_4
389         default "5"
390
391 config MIPS_L2_CACHE
392         bool
393         help
394           Select this if your system includes an L2 cache and you want U-Boot
395           to initialise & maintain it.
396
397 config DYNAMIC_IO_PORT_BASE
398         bool
399
400 config MIPS_CM
401         bool
402         help
403           Select this if your system contains a MIPS Coherence Manager and you
404           wish U-Boot to configure it or make use of it to retrieve system
405           information such as cache configuration.
406
407 endif
408
409 endmenu