blob: 31b622ff5108a7d4547761a45c69a5745cf67205 [file] [log] [blame]
Masahiro Yamadadd840582014-07-30 14:08:14 +09001menu "MIPS architecture"
2 depends on MIPS
3
4config SYS_ARCH
Masahiro Yamadadd840582014-07-30 14:08:14 +09005 default "mips"
6
Daniel Schwierzeckb9863b62014-10-26 14:14:07 +01007config SYS_CPU
Paul Burton20286cd2016-05-16 10:52:11 +01008 default "mips32" if CPU_MIPS32
9 default "mips64" if CPU_MIPS64
Daniel Schwierzeckb9863b62014-10-26 14:14:07 +010010
Masahiro Yamadadd840582014-07-30 14:08:14 +090011choice
12 prompt "Target select"
Joe Hershbergera26cd042015-05-12 14:46:23 -050013 optional
Masahiro Yamadadd840582014-07-30 14:08:14 +090014
15config TARGET_QEMU_MIPS
16 bool "Support qemu-mips"
Michal Simek5ed063d2018-07-23 15:55:13 +020017 select ROM_EXCEPTION_VECTORS
Daniel Schwierzeck0e1dc342014-10-26 14:14:07 +010018 select SUPPORTS_BIG_ENDIAN
Daniel Schwierzeck02611cb2014-10-26 14:14:07 +010019 select SUPPORTS_CPU_MIPS32_R1
20 select SUPPORTS_CPU_MIPS32_R2
Daniel Schwierzeckaa45f752014-10-26 14:14:07 +010021 select SUPPORTS_CPU_MIPS64_R1
22 select SUPPORTS_CPU_MIPS64_R2
Michal Simek5ed063d2018-07-23 15:55:13 +020023 select SUPPORTS_LITTLE_ENDIAN
Masahiro Yamadadd840582014-07-30 14:08:14 +090024
25config TARGET_MALTA
26 bool "Support malta"
Paul Burton6242aa12016-05-17 07:43:28 +010027 select DM
28 select DM_SERIAL
Paul Burton05e34252016-01-29 13:54:52 +000029 select DYNAMIC_IO_PORT_BASE
Paul Burton566ce04d2016-09-21 11:18:56 +010030 select MIPS_CM
Michal Simek5ed063d2018-07-23 15:55:13 +020031 select MIPS_L1_CACHE_SHIFT_6
Paul Burton566ce04d2016-09-21 11:18:56 +010032 select MIPS_L2_CACHE
Paul Burton6242aa12016-05-17 07:43:28 +010033 select OF_CONTROL
34 select OF_ISA_BUS
Michal Simek5ed063d2018-07-23 15:55:13 +020035 select ROM_EXCEPTION_VECTORS
Daniel Schwierzeck0e1dc342014-10-26 14:14:07 +010036 select SUPPORTS_BIG_ENDIAN
Daniel Schwierzeck02611cb2014-10-26 14:14:07 +010037 select SUPPORTS_CPU_MIPS32_R1
38 select SUPPORTS_CPU_MIPS32_R2
Paul Burton40ba13c2016-05-16 10:52:14 +010039 select SUPPORTS_CPU_MIPS32_R6
Paul Burton0f832b92016-05-26 14:49:36 +010040 select SUPPORTS_CPU_MIPS64_R1
41 select SUPPORTS_CPU_MIPS64_R2
42 select SUPPORTS_CPU_MIPS64_R6
Michal Simek5ed063d2018-07-23 15:55:13 +020043 select SUPPORTS_LITTLE_ENDIAN
Daniel Schwierzeck9d638ee2015-01-18 22:00:18 +010044 select SWAP_IO_SPACE
Michal Simek08a00cb2018-07-23 15:55:14 +020045 imply CMD_DM
Masahiro Yamadadd840582014-07-30 14:08:14 +090046
47config TARGET_VCT
48 bool "Support vct"
Michal Simek5ed063d2018-07-23 15:55:13 +020049 select ROM_EXCEPTION_VECTORS
Daniel Schwierzeck0e1dc342014-10-26 14:14:07 +010050 select SUPPORTS_BIG_ENDIAN
Daniel Schwierzeck02611cb2014-10-26 14:14:07 +010051 select SUPPORTS_CPU_MIPS32_R1
52 select SUPPORTS_CPU_MIPS32_R2
Paul Burtondd7c7202015-01-29 01:28:02 +000053 select SYS_MIPS_CACHE_INIT_RAM_LOAD
Masahiro Yamadadd840582014-07-30 14:08:14 +090054
55config TARGET_DBAU1X00
56 bool "Support dbau1x00"
Michal Simek5ed063d2018-07-23 15:55:13 +020057 select MIPS_TUNE_4KC
58 select ROM_EXCEPTION_VECTORS
Daniel Schwierzeck0e1dc342014-10-26 14:14:07 +010059 select SUPPORTS_BIG_ENDIAN
Daniel Schwierzeck02611cb2014-10-26 14:14:07 +010060 select SUPPORTS_CPU_MIPS32_R1
61 select SUPPORTS_CPU_MIPS32_R2
Michal Simek5ed063d2018-07-23 15:55:13 +020062 select SUPPORTS_LITTLE_ENDIAN
Paul Burtondd7c7202015-01-29 01:28:02 +000063 select SYS_MIPS_CACHE_INIT_RAM_LOAD
Masahiro Yamadadd840582014-07-30 14:08:14 +090064
65config TARGET_PB1X00
66 bool "Support pb1x00"
Michal Simek5ed063d2018-07-23 15:55:13 +020067 select MIPS_TUNE_4KC
68 select ROM_EXCEPTION_VECTORS
Daniel Schwierzeck02611cb2014-10-26 14:14:07 +010069 select SUPPORTS_CPU_MIPS32_R1
70 select SUPPORTS_CPU_MIPS32_R2
Michal Simek5ed063d2018-07-23 15:55:13 +020071 select SUPPORTS_LITTLE_ENDIAN
Paul Burtondd7c7202015-01-29 01:28:02 +000072 select SYS_MIPS_CACHE_INIT_RAM_LOAD
Masahiro Yamadadd840582014-07-30 14:08:14 +090073
Wills Wang1d3d0f12016-03-16 16:59:52 +080074config ARCH_ATH79
75 bool "Support QCA/Atheros ath79"
Wills Wang1d3d0f12016-03-16 16:59:52 +080076 select DM
Michal Simek5ed063d2018-07-23 15:55:13 +020077 select OF_CONTROL
Michal Simek08a00cb2018-07-23 15:55:14 +020078 imply CMD_DM
Wills Wang1d3d0f12016-03-16 16:59:52 +080079
Álvaro Fernández Rojasee422142017-04-25 00:39:20 +020080config ARCH_BMIPS
81 bool "Support BMIPS SoCs"
Álvaro Fernández Rojasee422142017-04-25 00:39:20 +020082 select CLK
83 select CPU
Michal Simek5ed063d2018-07-23 15:55:13 +020084 select DM
85 select OF_CONTROL
Álvaro Fernández Rojasee422142017-04-25 00:39:20 +020086 select RAM
87 select SYSRESET
Michal Simek08a00cb2018-07-23 15:55:14 +020088 imply CMD_DM
Álvaro Fernández Rojasee422142017-04-25 00:39:20 +020089
Purna Chandra Mandal32c1a6e2016-01-28 15:30:10 +053090config MACH_PIC32
91 bool "Support Microchip PIC32"
Purna Chandra Mandal32c1a6e2016-01-28 15:30:10 +053092 select DM
Michal Simek5ed063d2018-07-23 15:55:13 +020093 select OF_CONTROL
Michal Simek08a00cb2018-07-23 15:55:14 +020094 imply CMD_DM
Purna Chandra Mandal32c1a6e2016-01-28 15:30:10 +053095
Paul Burtonad8783c2016-09-08 07:47:39 +010096config TARGET_BOSTON
97 bool "Support Boston"
98 select DM
99 select DM_SERIAL
Paul Burtonad8783c2016-09-08 07:47:39 +0100100 select MIPS_CM
101 select MIPS_L1_CACHE_SHIFT_6
102 select MIPS_L2_CACHE
Paul Burtond2b12a52017-04-30 21:22:42 +0200103 select OF_BOARD_SETUP
Michal Simek5ed063d2018-07-23 15:55:13 +0200104 select OF_CONTROL
105 select ROM_EXCEPTION_VECTORS
Paul Burtonad8783c2016-09-08 07:47:39 +0100106 select SUPPORTS_BIG_ENDIAN
Paul Burtonad8783c2016-09-08 07:47:39 +0100107 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
Michal Simek5ed063d2018-07-23 15:55:13 +0200113 select SUPPORTS_LITTLE_ENDIAN
Michal Simek08a00cb2018-07-23 15:55:14 +0200114 imply CMD_DM
Paul Burtonad8783c2016-09-08 07:47:39 +0100115
Zubair Lutfullah Kakakhelebf2b9e2016-07-29 15:11:20 +0100116config TARGET_XILFPGA
117 bool "Support Imagination Xilfpga"
Zubair Lutfullah Kakakhelebf2b9e2016-07-29 15:11:20 +0100118 select DM
Zubair Lutfullah Kakakhelebf2b9e2016-07-29 15:11:20 +0100119 select DM_ETH
Michal Simek5ed063d2018-07-23 15:55:13 +0200120 select DM_GPIO
121 select DM_SERIAL
122 select MIPS_L1_CACHE_SHIFT_4
123 select OF_CONTROL
124 select ROM_EXCEPTION_VECTORS
Zubair Lutfullah Kakakhelebf2b9e2016-07-29 15:11:20 +0100125 select SUPPORTS_CPU_MIPS32_R1
126 select SUPPORTS_CPU_MIPS32_R2
Michal Simek5ed063d2018-07-23 15:55:13 +0200127 select SUPPORTS_LITTLE_ENDIAN
Michal Simek08a00cb2018-07-23 15:55:14 +0200128 imply CMD_DM
Zubair Lutfullah Kakakhelebf2b9e2016-07-29 15:11:20 +0100129 help
130 This supports IMGTEC MIPSfpga platform
131
Masahiro Yamadadd840582014-07-30 14:08:14 +0900132endchoice
133
134source "board/dbau1x00/Kconfig"
Paul Burtonad8783c2016-09-08 07:47:39 +0100135source "board/imgtec/boston/Kconfig"
Masahiro Yamadadd840582014-07-30 14:08:14 +0900136source "board/imgtec/malta/Kconfig"
Zubair Lutfullah Kakakhelebf2b9e2016-07-29 15:11:20 +0100137source "board/imgtec/xilfpga/Kconfig"
Masahiro Yamadadd840582014-07-30 14:08:14 +0900138source "board/micronas/vct/Kconfig"
139source "board/pb1x00/Kconfig"
140source "board/qemu-mips/Kconfig"
Wills Wang1d3d0f12016-03-16 16:59:52 +0800141source "arch/mips/mach-ath79/Kconfig"
Álvaro Fernández Rojasee422142017-04-25 00:39:20 +0200142source "arch/mips/mach-bmips/Kconfig"
Purna Chandra Mandal32c1a6e2016-01-28 15:30:10 +0530143source "arch/mips/mach-pic32/Kconfig"
Masahiro Yamadadd840582014-07-30 14:08:14 +0900144
Daniel Schwierzeck0e1dc342014-10-26 14:14:07 +0100145if MIPS
146
147choice
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
155config SYS_BIG_ENDIAN
156 bool "Big endian"
157 depends on SUPPORTS_BIG_ENDIAN
158
159config SYS_LITTLE_ENDIAN
160 bool "Little endian"
161 depends on SUPPORTS_LITTLE_ENDIAN
162
163endchoice
164
Daniel Schwierzeck02611cb2014-10-26 14:14:07 +0100165choice
166 prompt "CPU selection"
167 default CPU_MIPS32_R2
168
169config CPU_MIPS32_R1
170 bool "MIPS32 Release 1"
171 depends on SUPPORTS_CPU_MIPS32_R1
172 select 32BIT
173 help
Paul Burtonc52ebea2016-05-16 10:52:12 +0100174 Choose this option to build an U-Boot for release 1 through 5 of the
Daniel Schwierzeck02611cb2014-10-26 14:14:07 +0100175 MIPS32 architecture.
176
177config CPU_MIPS32_R2
178 bool "MIPS32 Release 2"
179 depends on SUPPORTS_CPU_MIPS32_R2
180 select 32BIT
181 help
Paul Burtonc52ebea2016-05-16 10:52:12 +0100182 Choose this option to build an U-Boot for release 2 through 5 of the
183 MIPS32 architecture.
184
185config 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
Daniel Schwierzeck02611cb2014-10-26 14:14:07 +0100191 MIPS32 architecture.
192
193config CPU_MIPS64_R1
194 bool "MIPS64 Release 1"
195 depends on SUPPORTS_CPU_MIPS64_R1
196 select 64BIT
197 help
Paul Burtonc52ebea2016-05-16 10:52:12 +0100198 Choose this option to build a kernel for release 1 through 5 of the
Daniel Schwierzeck02611cb2014-10-26 14:14:07 +0100199 MIPS64 architecture.
200
201config CPU_MIPS64_R2
202 bool "MIPS64 Release 2"
203 depends on SUPPORTS_CPU_MIPS64_R2
204 select 64BIT
205 help
Paul Burtonc52ebea2016-05-16 10:52:12 +0100206 Choose this option to build a kernel for release 2 through 5 of the
207 MIPS64 architecture.
208
209config 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
Daniel Schwierzeck02611cb2014-10-26 14:14:07 +0100215 MIPS64 architecture.
216
217endchoice
218
Daniel Schwierzeckaf3971f2016-02-14 18:52:57 +0100219menu "General setup"
220
221config 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
Paul Burton939a2552017-05-12 13:26:11 +0200231config MIPS_CM_BASE
232 hex "MIPS CM GCR Base Address"
233 depends on MIPS_CM
Paul Burtoned048e72017-04-30 21:22:41 +0200234 default 0x16100000 if TARGET_BOSTON
Paul Burton939a2552017-05-12 13:26:11 +0200235 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
Daniel Schwierzeckaf3971f2016-02-14 18:52:57 +0100242endmenu
243
Daniel Schwierzeck25fc6642015-01-14 21:44:13 +0100244menu "OS boot interface"
245
246config 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
Daniel Schwierzeckca65e582015-01-14 21:44:13 +0100255config 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.
Robert P. J. Day1cc0a9f2016-05-04 04:47:31 -0400262 The address of the environment is stored in register $a2.
Daniel Schwierzeckca65e582015-01-14 21:44:13 +0100263
Daniel Schwierzeck5002d8c2015-01-14 21:44:13 +0100264config MIPS_BOOT_FDT
Daniel Schwierzeck90b1c9f2015-02-22 16:58:30 +0100265 bool "Hand over a flattened device tree to Linux kernel"
Daniel Schwierzeck5002d8c2015-01-14 21:44:13 +0100266 default n
267 help
268 Enable this option if you want U-Boot to hand over a flattened
Daniel Schwierzeck90b1c9f2015-02-22 16:58:30 +0100269 device tree to the kernel. According to UHI register $a0 will be set
270 to -2 and the FDT address is stored in $a1.
Daniel Schwierzeck5002d8c2015-01-14 21:44:13 +0100271
Daniel Schwierzeck25fc6642015-01-14 21:44:13 +0100272endmenu
273
Daniel Schwierzeck0e1dc342014-10-26 14:14:07 +0100274config SUPPORTS_BIG_ENDIAN
275 bool
276
277config SUPPORTS_LITTLE_ENDIAN
278 bool
279
Daniel Schwierzeck02611cb2014-10-26 14:14:07 +0100280config SUPPORTS_CPU_MIPS32_R1
281 bool
282
283config SUPPORTS_CPU_MIPS32_R2
284 bool
285
Paul Burtonc52ebea2016-05-16 10:52:12 +0100286config SUPPORTS_CPU_MIPS32_R6
287 bool
288
Daniel Schwierzeck02611cb2014-10-26 14:14:07 +0100289config SUPPORTS_CPU_MIPS64_R1
290 bool
291
292config SUPPORTS_CPU_MIPS64_R2
293 bool
294
Paul Burtonc52ebea2016-05-16 10:52:12 +0100295config SUPPORTS_CPU_MIPS64_R6
296 bool
297
Daniel Schwierzeckc57dafb2015-01-18 21:59:35 +0100298config CPU_MIPS32
299 bool
Paul Burtonc52ebea2016-05-16 10:52:12 +0100300 default y if CPU_MIPS32_R1 || CPU_MIPS32_R2 || CPU_MIPS32_R6
Daniel Schwierzeckc57dafb2015-01-18 21:59:35 +0100301
302config CPU_MIPS64
303 bool
Paul Burtonc52ebea2016-05-16 10:52:12 +0100304 default y if CPU_MIPS64_R1 || CPU_MIPS64_R2 || CPU_MIPS64_R6
Daniel Schwierzeckc57dafb2015-01-18 21:59:35 +0100305
Daniel Schwierzeck0315a282015-12-26 19:55:37 +0100306config MIPS_TUNE_4KC
307 bool
308
309config MIPS_TUNE_14KC
310 bool
311
312config MIPS_TUNE_24KC
313 bool
314
Daniel Schwierzeck5f9cc362016-05-27 15:39:39 +0200315config MIPS_TUNE_34KC
316 bool
317
Marek Vasut0a0a9582016-05-06 20:10:33 +0200318config MIPS_TUNE_74KC
319 bool
320
Daniel Schwierzeck02611cb2014-10-26 14:14:07 +0100321config 32BIT
322 bool
323
324config 64BIT
325 bool
326
Daniel Schwierzeck9d638ee2015-01-18 22:00:18 +0100327config SWAP_IO_SPACE
328 bool
329
Paul Burtondd7c7202015-01-29 01:28:02 +0000330config SYS_MIPS_CACHE_INIT_RAM_LOAD
331 bool
332
Daniel Schwierzeck924ad862016-06-04 16:13:21 +0200333config 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
Paul Burtonace3be42016-05-27 14:28:04 +0100344config SYS_DCACHE_SIZE
345 int
346 default 0
347 help
348 The total size of the L1 Dcache, if known at compile time.
349
Paul Burton37228622016-05-27 14:28:05 +0100350config SYS_DCACHE_LINE_SIZE
Paul Burton4b7b0a02016-06-09 13:09:52 +0100351 int
Paul Burton37228622016-05-27 14:28:05 +0100352 default 0
353 help
354 The size of L1 Dcache lines, if known at compile time.
355
Paul Burtonace3be42016-05-27 14:28:04 +0100356config SYS_ICACHE_SIZE
357 int
358 default 0
359 help
360 The total size of the L1 ICache, if known at compile time.
361
Paul Burton37228622016-05-27 14:28:05 +0100362config SYS_ICACHE_LINE_SIZE
Paul Burtonace3be42016-05-27 14:28:04 +0100363 int
364 default 0
365 help
Paul Burton37228622016-05-27 14:28:05 +0100366 The size of L1 Icache lines, if known at compile time.
Paul Burtonace3be42016-05-27 14:28:04 +0100367
368config SYS_CACHE_SIZE_AUTO
369 def_bool y if SYS_DCACHE_SIZE = 0 && SYS_ICACHE_SIZE = 0 && \
Paul Burton37228622016-05-27 14:28:05 +0100370 SYS_DCACHE_LINE_SIZE = 0 && SYS_ICACHE_LINE_SIZE = 0
Paul Burtonace3be42016-05-27 14:28:04 +0100371 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
Daniel Schwierzeckf53830e2016-01-09 17:32:50 +0100378config MIPS_L1_CACHE_SHIFT_4
379 bool
380
381config MIPS_L1_CACHE_SHIFT_5
382 bool
383
384config MIPS_L1_CACHE_SHIFT_6
385 bool
386
387config MIPS_L1_CACHE_SHIFT_7
388 bool
389
390config 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
Paul Burton4baa0ab2016-09-21 11:18:54 +0100398config 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
Paul Burton05e34252016-01-29 13:54:52 +0000404config DYNAMIC_IO_PORT_BASE
405 bool
406
Paul Burtonb2b135d2016-09-21 11:18:53 +0100407config 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
Daniel Schwierzeck0e1dc342014-10-26 14:14:07 +0100414endif
415
Masahiro Yamadadd840582014-07-30 14:08:14 +0900416endmenu