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