Kbuild: add LDFLAGS_STANDALONE
[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_BMIPS
63         bool "Support BMIPS SoCs"
64         select CLK
65         select CPU
66         select DM
67         select OF_CONTROL
68         select RAM
69         select SYSRESET
70         imply CMD_DM
71
72 config ARCH_MT7620
73         bool "Support MT7620/7688 SoCs"
74         imply CMD_DM
75         select DISPLAY_CPUINFO
76         select DM
77         imply DM_ETH
78         imply DM_GPIO
79         select DM_SERIAL
80         imply DM_SPI
81         imply DM_SPI_FLASH
82         select ARCH_MISC_INIT if WATCHDOG
83         select MIPS_TUNE_24KC
84         select OF_CONTROL
85         select ROM_EXCEPTION_VECTORS
86         select SUPPORTS_CPU_MIPS32_R1
87         select SUPPORTS_CPU_MIPS32_R2
88         select SUPPORTS_LITTLE_ENDIAN
89         select SYSRESET
90
91 config MACH_PIC32
92         bool "Support Microchip PIC32"
93         select DM
94         select OF_CONTROL
95         imply CMD_DM
96
97 config TARGET_BOSTON
98         bool "Support Boston"
99         select DM
100         select DM_SERIAL
101         select MIPS_CM
102         select MIPS_L1_CACHE_SHIFT_6
103         select MIPS_L2_CACHE
104         select OF_BOARD_SETUP
105         select OF_CONTROL
106         select ROM_EXCEPTION_VECTORS
107         select SUPPORTS_BIG_ENDIAN
108         select SUPPORTS_CPU_MIPS32_R1
109         select SUPPORTS_CPU_MIPS32_R2
110         select SUPPORTS_CPU_MIPS32_R6
111         select SUPPORTS_CPU_MIPS64_R1
112         select SUPPORTS_CPU_MIPS64_R2
113         select SUPPORTS_CPU_MIPS64_R6
114         select SUPPORTS_LITTLE_ENDIAN
115         imply CMD_DM
116
117 config TARGET_XILFPGA
118         bool "Support Imagination Xilfpga"
119         select DM
120         select DM_ETH
121         select DM_GPIO
122         select DM_SERIAL
123         select MIPS_L1_CACHE_SHIFT_4
124         select OF_CONTROL
125         select ROM_EXCEPTION_VECTORS
126         select SUPPORTS_CPU_MIPS32_R1
127         select SUPPORTS_CPU_MIPS32_R2
128         select SUPPORTS_LITTLE_ENDIAN
129         imply CMD_DM
130         help
131           This supports IMGTEC MIPSfpga platform
132
133 endchoice
134
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/qemu-mips/Kconfig"
140 source "arch/mips/mach-ath79/Kconfig"
141 source "arch/mips/mach-bmips/Kconfig"
142 source "arch/mips/mach-pic32/Kconfig"
143 source "arch/mips/mach-mt7620/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 config MIPS_CACHE_INDEX_BASE
243         hex "Index base address for cache initialisation"
244         default 0x80000000 if CPU_MIPS32
245         default 0xffffffff80000000 if CPU_MIPS64
246         help
247           This is the base address for a memory block, which is used for
248           initialising the cache lines. This is also the base address of a memory
249           block which is used for loading and filling cache lines when
250           SYS_MIPS_CACHE_INIT_RAM_LOAD is selected.
251           Normally this is CKSEG0. If the MIPS system needs to move this block
252           to some SRAM or ScratchPad RAM, adapt this option accordingly.
253
254 config MIPS_RELOCATION_TABLE_SIZE
255         hex "Relocation table size"
256         range 0x100 0x10000
257         default "0x8000"
258         ---help---
259           A table of relocation data will be appended to the U-Boot binary
260           and parsed in relocate_code() to fix up all offsets in the relocated
261           U-Boot.
262
263           This option allows the amount of space reserved for the table to be
264           adjusted in a range from 256 up to 64k. The default is 32k and should
265           be ok in most cases. Reduce this value to shrink the size of U-Boot
266           binary.
267
268           The build will fail and a valid size suggested if this is too small.
269
270           If unsure, leave at the default value.
271
272 endmenu
273
274 menu "OS boot interface"
275
276 config MIPS_BOOT_CMDLINE_LEGACY
277         bool "Hand over legacy command line to Linux kernel"
278         default y
279         help
280           Enable this option if you want U-Boot to hand over the Yamon-style
281           command line to the kernel. All bootargs will be prepared as argc/argv
282           compatible list. The argument count (argc) is stored in register $a0.
283           The address of the argument list (argv) is stored in register $a1.
284
285 config MIPS_BOOT_ENV_LEGACY
286         bool "Hand over legacy environment to Linux kernel"
287         default y
288         help
289           Enable this option if you want U-Boot to hand over the Yamon-style
290           environment to the kernel. Information like memory size, initrd
291           address and size will be prepared as zero-terminated key/value list.
292           The address of the environment is stored in register $a2.
293
294 config MIPS_BOOT_FDT
295         bool "Hand over a flattened device tree to Linux kernel"
296         default n
297         help
298           Enable this option if you want U-Boot to hand over a flattened
299           device tree to the kernel. According to UHI register $a0 will be set
300           to -2 and the FDT address is stored in $a1.
301
302 endmenu
303
304 config SUPPORTS_BIG_ENDIAN
305         bool
306
307 config SUPPORTS_LITTLE_ENDIAN
308         bool
309
310 config SUPPORTS_CPU_MIPS32_R1
311         bool
312
313 config SUPPORTS_CPU_MIPS32_R2
314         bool
315
316 config SUPPORTS_CPU_MIPS32_R6
317         bool
318
319 config SUPPORTS_CPU_MIPS64_R1
320         bool
321
322 config SUPPORTS_CPU_MIPS64_R2
323         bool
324
325 config SUPPORTS_CPU_MIPS64_R6
326         bool
327
328 config CPU_MIPS32
329         bool
330         default y if CPU_MIPS32_R1 || CPU_MIPS32_R2 || CPU_MIPS32_R6
331
332 config CPU_MIPS64
333         bool
334         default y if CPU_MIPS64_R1 || CPU_MIPS64_R2 || CPU_MIPS64_R6
335
336 config MIPS_TUNE_4KC
337         bool
338
339 config MIPS_TUNE_14KC
340         bool
341
342 config MIPS_TUNE_24KC
343         bool
344
345 config MIPS_TUNE_34KC
346         bool
347
348 config MIPS_TUNE_74KC
349         bool
350
351 config 32BIT
352         bool
353
354 config 64BIT
355         bool
356
357 config SWAP_IO_SPACE
358         bool
359
360 config SYS_MIPS_CACHE_INIT_RAM_LOAD
361         bool
362
363 config MIPS_INIT_STACK_IN_SRAM
364         bool
365         default n
366         help
367           Select this if the initial stack frame could be setup in SRAM.
368           Normally the initial stack frame is set up in DRAM which is often
369           only available after lowlevel_init. With this option the initial
370           stack frame and the early C environment is set up before
371           lowlevel_init. Thus lowlevel_init does not need to be implemented
372           in assembler.
373
374 config SYS_DCACHE_SIZE
375         int
376         default 0
377         help
378           The total size of the L1 Dcache, if known at compile time.
379
380 config SYS_DCACHE_LINE_SIZE
381         int
382         default 0
383         help
384           The size of L1 Dcache lines, if known at compile time.
385
386 config SYS_ICACHE_SIZE
387         int
388         default 0
389         help
390           The total size of the L1 ICache, if known at compile time.
391
392 config SYS_ICACHE_LINE_SIZE
393         int
394         default 0
395         help
396           The size of L1 Icache lines, if known at compile time.
397
398 config SYS_CACHE_SIZE_AUTO
399         def_bool y if SYS_DCACHE_SIZE = 0 && SYS_ICACHE_SIZE = 0 && \
400                 SYS_DCACHE_LINE_SIZE = 0 && SYS_ICACHE_LINE_SIZE = 0
401         help
402           Select this (or let it be auto-selected by not defining any cache
403           sizes) in order to allow U-Boot to automatically detect the sizes
404           of caches at runtime. This has a small cost in code size & runtime
405           so if you know the cache configuration for your system at compile
406           time it would be beneficial to configure it.
407
408 config MIPS_L1_CACHE_SHIFT_4
409         bool
410
411 config MIPS_L1_CACHE_SHIFT_5
412         bool
413
414 config MIPS_L1_CACHE_SHIFT_6
415         bool
416
417 config MIPS_L1_CACHE_SHIFT_7
418         bool
419
420 config MIPS_L1_CACHE_SHIFT
421         int
422         default "7" if MIPS_L1_CACHE_SHIFT_7
423         default "6" if MIPS_L1_CACHE_SHIFT_6
424         default "5" if MIPS_L1_CACHE_SHIFT_5
425         default "4" if MIPS_L1_CACHE_SHIFT_4
426         default "5"
427
428 config MIPS_L2_CACHE
429         bool
430         help
431           Select this if your system includes an L2 cache and you want U-Boot
432           to initialise & maintain it.
433
434 config DYNAMIC_IO_PORT_BASE
435         bool
436
437 config MIPS_CM
438         bool
439         help
440           Select this if your system contains a MIPS Coherence Manager and you
441           wish U-Boot to configure it or make use of it to retrieve system
442           information such as cache configuration.
443
444 config MIPS_INSERT_BOOT_CONFIG
445         bool
446         default n
447         help
448           Enable this to insert some board-specific boot configuration in
449           the U-Boot binary at offset 0x10.
450
451 config MIPS_BOOT_CONFIG_WORD0
452         hex
453         depends on MIPS_INSERT_BOOT_CONFIG
454         default 0x420 if TARGET_MALTA
455         default 0x0
456         help
457           Value which is inserted as boot config word 0.
458
459 config MIPS_BOOT_CONFIG_WORD1
460         hex
461         depends on MIPS_INSERT_BOOT_CONFIG
462         default 0x0
463         help
464           Value which is inserted as boot config word 1.
465
466 endif
467
468 endmenu