blob: 07488fe651fb913aed95b7143018b63193ddedfc [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"
Daniel Schwierzeck0e1dc342014-10-26 14:14:07 +010017 select SUPPORTS_BIG_ENDIAN
18 select SUPPORTS_LITTLE_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
Daniel Schwierzeckaf3971f2016-02-14 18:52:57 +010023 select ROM_EXCEPTION_VECTORS
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
31 select MIPS_L2_CACHE
Paul Burton6242aa12016-05-17 07:43:28 +010032 select OF_CONTROL
33 select OF_ISA_BUS
Daniel Schwierzeck0e1dc342014-10-26 14:14:07 +010034 select SUPPORTS_BIG_ENDIAN
35 select SUPPORTS_LITTLE_ENDIAN
Daniel Schwierzeck02611cb2014-10-26 14:14:07 +010036 select SUPPORTS_CPU_MIPS32_R1
37 select SUPPORTS_CPU_MIPS32_R2
Paul Burton40ba13c2016-05-16 10:52:14 +010038 select SUPPORTS_CPU_MIPS32_R6
Paul Burton0f832b92016-05-26 14:49:36 +010039 select SUPPORTS_CPU_MIPS64_R1
40 select SUPPORTS_CPU_MIPS64_R2
41 select SUPPORTS_CPU_MIPS64_R6
Daniel Schwierzeck9d638ee2015-01-18 22:00:18 +010042 select SWAP_IO_SPACE
Daniel Schwierzeckf53830e2016-01-09 17:32:50 +010043 select MIPS_L1_CACHE_SHIFT_6
Daniel Schwierzeckaf3971f2016-02-14 18:52:57 +010044 select ROM_EXCEPTION_VECTORS
Masahiro Yamadadd840582014-07-30 14:08:14 +090045
46config TARGET_VCT
47 bool "Support vct"
Daniel Schwierzeck0e1dc342014-10-26 14:14:07 +010048 select SUPPORTS_BIG_ENDIAN
Daniel Schwierzeck02611cb2014-10-26 14:14:07 +010049 select SUPPORTS_CPU_MIPS32_R1
50 select SUPPORTS_CPU_MIPS32_R2
Paul Burtondd7c7202015-01-29 01:28:02 +000051 select SYS_MIPS_CACHE_INIT_RAM_LOAD
Daniel Schwierzeckaf3971f2016-02-14 18:52:57 +010052 select ROM_EXCEPTION_VECTORS
Masahiro Yamadadd840582014-07-30 14:08:14 +090053
54config TARGET_DBAU1X00
55 bool "Support dbau1x00"
Daniel Schwierzeck0e1dc342014-10-26 14:14:07 +010056 select SUPPORTS_BIG_ENDIAN
57 select SUPPORTS_LITTLE_ENDIAN
Daniel Schwierzeck02611cb2014-10-26 14:14:07 +010058 select SUPPORTS_CPU_MIPS32_R1
59 select SUPPORTS_CPU_MIPS32_R2
Paul Burtondd7c7202015-01-29 01:28:02 +000060 select SYS_MIPS_CACHE_INIT_RAM_LOAD
Daniel Schwierzeckaf3971f2016-02-14 18:52:57 +010061 select ROM_EXCEPTION_VECTORS
Daniel Schwierzeck0315a282015-12-26 19:55:37 +010062 select MIPS_TUNE_4KC
Masahiro Yamadadd840582014-07-30 14:08:14 +090063
64config TARGET_PB1X00
65 bool "Support pb1x00"
Daniel Schwierzeck0e1dc342014-10-26 14:14:07 +010066 select SUPPORTS_LITTLE_ENDIAN
Daniel Schwierzeck02611cb2014-10-26 14:14:07 +010067 select SUPPORTS_CPU_MIPS32_R1
68 select SUPPORTS_CPU_MIPS32_R2
Paul Burtondd7c7202015-01-29 01:28:02 +000069 select SYS_MIPS_CACHE_INIT_RAM_LOAD
Daniel Schwierzeckaf3971f2016-02-14 18:52:57 +010070 select ROM_EXCEPTION_VECTORS
Daniel Schwierzeck0315a282015-12-26 19:55:37 +010071 select MIPS_TUNE_4KC
Masahiro Yamadadd840582014-07-30 14:08:14 +090072
Wills Wang1d3d0f12016-03-16 16:59:52 +080073config ARCH_ATH79
74 bool "Support QCA/Atheros ath79"
75 select OF_CONTROL
76 select DM
77
Álvaro Fernández Rojasee422142017-04-25 00:39:20 +020078config 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
Purna Chandra Mandal32c1a6e2016-01-28 15:30:10 +053087config MACH_PIC32
88 bool "Support Microchip PIC32"
89 select OF_CONTROL
90 select DM
91
Paul Burtonad8783c2016-09-08 07:47:39 +010092config 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
Daniel Schwierzeckaf3971f2016-02-14 18:52:57 +0100108 select ROM_EXCEPTION_VECTORS
Paul Burtonad8783c2016-09-08 07:47:39 +0100109
Zubair Lutfullah Kakakhelebf2b9e2016-07-29 15:11:20 +0100110config 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
Daniel Schwierzeckaf3971f2016-02-14 18:52:57 +0100121 select ROM_EXCEPTION_VECTORS
Zubair Lutfullah Kakakhelebf2b9e2016-07-29 15:11:20 +0100122 help
123 This supports IMGTEC MIPSfpga platform
124
Masahiro Yamadadd840582014-07-30 14:08:14 +0900125endchoice
126
127source "board/dbau1x00/Kconfig"
Paul Burtonad8783c2016-09-08 07:47:39 +0100128source "board/imgtec/boston/Kconfig"
Masahiro Yamadadd840582014-07-30 14:08:14 +0900129source "board/imgtec/malta/Kconfig"
Zubair Lutfullah Kakakhelebf2b9e2016-07-29 15:11:20 +0100130source "board/imgtec/xilfpga/Kconfig"
Masahiro Yamadadd840582014-07-30 14:08:14 +0900131source "board/micronas/vct/Kconfig"
132source "board/pb1x00/Kconfig"
133source "board/qemu-mips/Kconfig"
Wills Wang1d3d0f12016-03-16 16:59:52 +0800134source "arch/mips/mach-ath79/Kconfig"
Álvaro Fernández Rojasee422142017-04-25 00:39:20 +0200135source "arch/mips/mach-bmips/Kconfig"
Purna Chandra Mandal32c1a6e2016-01-28 15:30:10 +0530136source "arch/mips/mach-pic32/Kconfig"
Masahiro Yamadadd840582014-07-30 14:08:14 +0900137
Daniel Schwierzeck0e1dc342014-10-26 14:14:07 +0100138if MIPS
139
140choice
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
148config SYS_BIG_ENDIAN
149 bool "Big endian"
150 depends on SUPPORTS_BIG_ENDIAN
151
152config SYS_LITTLE_ENDIAN
153 bool "Little endian"
154 depends on SUPPORTS_LITTLE_ENDIAN
155
156endchoice
157
Daniel Schwierzeck02611cb2014-10-26 14:14:07 +0100158choice
159 prompt "CPU selection"
160 default CPU_MIPS32_R2
161
162config CPU_MIPS32_R1
163 bool "MIPS32 Release 1"
164 depends on SUPPORTS_CPU_MIPS32_R1
165 select 32BIT
166 help
Paul Burtonc52ebea2016-05-16 10:52:12 +0100167 Choose this option to build an U-Boot for release 1 through 5 of the
Daniel Schwierzeck02611cb2014-10-26 14:14:07 +0100168 MIPS32 architecture.
169
170config CPU_MIPS32_R2
171 bool "MIPS32 Release 2"
172 depends on SUPPORTS_CPU_MIPS32_R2
173 select 32BIT
174 help
Paul Burtonc52ebea2016-05-16 10:52:12 +0100175 Choose this option to build an U-Boot for release 2 through 5 of the
176 MIPS32 architecture.
177
178config 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
Daniel Schwierzeck02611cb2014-10-26 14:14:07 +0100184 MIPS32 architecture.
185
186config CPU_MIPS64_R1
187 bool "MIPS64 Release 1"
188 depends on SUPPORTS_CPU_MIPS64_R1
189 select 64BIT
190 help
Paul Burtonc52ebea2016-05-16 10:52:12 +0100191 Choose this option to build a kernel for release 1 through 5 of the
Daniel Schwierzeck02611cb2014-10-26 14:14:07 +0100192 MIPS64 architecture.
193
194config CPU_MIPS64_R2
195 bool "MIPS64 Release 2"
196 depends on SUPPORTS_CPU_MIPS64_R2
197 select 64BIT
198 help
Paul Burtonc52ebea2016-05-16 10:52:12 +0100199 Choose this option to build a kernel for release 2 through 5 of the
200 MIPS64 architecture.
201
202config 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
Daniel Schwierzeck02611cb2014-10-26 14:14:07 +0100208 MIPS64 architecture.
209
210endchoice
211
Daniel Schwierzeckaf3971f2016-02-14 18:52:57 +0100212menu "General setup"
213
214config 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
Paul Burton939a2552017-05-12 13:26:11 +0200224config MIPS_CM_BASE
225 hex "MIPS CM GCR Base Address"
226 depends on MIPS_CM
Paul Burtoned048e72017-04-30 21:22:41 +0200227 default 0x16100000 if TARGET_BOSTON
Paul Burton939a2552017-05-12 13:26:11 +0200228 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
Daniel Schwierzeckaf3971f2016-02-14 18:52:57 +0100235endmenu
236
Daniel Schwierzeck25fc6642015-01-14 21:44:13 +0100237menu "OS boot interface"
238
239config 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
Daniel Schwierzeckca65e582015-01-14 21:44:13 +0100248config 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.
Robert P. J. Day1cc0a9f2016-05-04 04:47:31 -0400255 The address of the environment is stored in register $a2.
Daniel Schwierzeckca65e582015-01-14 21:44:13 +0100256
Daniel Schwierzeck5002d8c2015-01-14 21:44:13 +0100257config MIPS_BOOT_FDT
Daniel Schwierzeck90b1c9f2015-02-22 16:58:30 +0100258 bool "Hand over a flattened device tree to Linux kernel"
Daniel Schwierzeck5002d8c2015-01-14 21:44:13 +0100259 default n
260 help
261 Enable this option if you want U-Boot to hand over a flattened
Daniel Schwierzeck90b1c9f2015-02-22 16:58:30 +0100262 device tree to the kernel. According to UHI register $a0 will be set
263 to -2 and the FDT address is stored in $a1.
Daniel Schwierzeck5002d8c2015-01-14 21:44:13 +0100264
Daniel Schwierzeck25fc6642015-01-14 21:44:13 +0100265endmenu
266
Daniel Schwierzeck0e1dc342014-10-26 14:14:07 +0100267config SUPPORTS_BIG_ENDIAN
268 bool
269
270config SUPPORTS_LITTLE_ENDIAN
271 bool
272
Daniel Schwierzeck02611cb2014-10-26 14:14:07 +0100273config SUPPORTS_CPU_MIPS32_R1
274 bool
275
276config SUPPORTS_CPU_MIPS32_R2
277 bool
278
Paul Burtonc52ebea2016-05-16 10:52:12 +0100279config SUPPORTS_CPU_MIPS32_R6
280 bool
281
Daniel Schwierzeck02611cb2014-10-26 14:14:07 +0100282config SUPPORTS_CPU_MIPS64_R1
283 bool
284
285config SUPPORTS_CPU_MIPS64_R2
286 bool
287
Paul Burtonc52ebea2016-05-16 10:52:12 +0100288config SUPPORTS_CPU_MIPS64_R6
289 bool
290
Daniel Schwierzeckc57dafb2015-01-18 21:59:35 +0100291config CPU_MIPS32
292 bool
Paul Burtonc52ebea2016-05-16 10:52:12 +0100293 default y if CPU_MIPS32_R1 || CPU_MIPS32_R2 || CPU_MIPS32_R6
Daniel Schwierzeckc57dafb2015-01-18 21:59:35 +0100294
295config CPU_MIPS64
296 bool
Paul Burtonc52ebea2016-05-16 10:52:12 +0100297 default y if CPU_MIPS64_R1 || CPU_MIPS64_R2 || CPU_MIPS64_R6
Daniel Schwierzeckc57dafb2015-01-18 21:59:35 +0100298
Daniel Schwierzeck0315a282015-12-26 19:55:37 +0100299config MIPS_TUNE_4KC
300 bool
301
302config MIPS_TUNE_14KC
303 bool
304
305config MIPS_TUNE_24KC
306 bool
307
Daniel Schwierzeck5f9cc362016-05-27 15:39:39 +0200308config MIPS_TUNE_34KC
309 bool
310
Marek Vasut0a0a9582016-05-06 20:10:33 +0200311config MIPS_TUNE_74KC
312 bool
313
Daniel Schwierzeck02611cb2014-10-26 14:14:07 +0100314config 32BIT
315 bool
316
317config 64BIT
318 bool
319
Daniel Schwierzeck9d638ee2015-01-18 22:00:18 +0100320config SWAP_IO_SPACE
321 bool
322
Paul Burtondd7c7202015-01-29 01:28:02 +0000323config SYS_MIPS_CACHE_INIT_RAM_LOAD
324 bool
325
Daniel Schwierzeck924ad862016-06-04 16:13:21 +0200326config 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
Paul Burtonace3be42016-05-27 14:28:04 +0100337config SYS_DCACHE_SIZE
338 int
339 default 0
340 help
341 The total size of the L1 Dcache, if known at compile time.
342
Paul Burton37228622016-05-27 14:28:05 +0100343config SYS_DCACHE_LINE_SIZE
Paul Burton4b7b0a02016-06-09 13:09:52 +0100344 int
Paul Burton37228622016-05-27 14:28:05 +0100345 default 0
346 help
347 The size of L1 Dcache lines, if known at compile time.
348
Paul Burtonace3be42016-05-27 14:28:04 +0100349config SYS_ICACHE_SIZE
350 int
351 default 0
352 help
353 The total size of the L1 ICache, if known at compile time.
354
Paul Burton37228622016-05-27 14:28:05 +0100355config SYS_ICACHE_LINE_SIZE
Paul Burtonace3be42016-05-27 14:28:04 +0100356 int
357 default 0
358 help
Paul Burton37228622016-05-27 14:28:05 +0100359 The size of L1 Icache lines, if known at compile time.
Paul Burtonace3be42016-05-27 14:28:04 +0100360
361config SYS_CACHE_SIZE_AUTO
362 def_bool y if SYS_DCACHE_SIZE = 0 && SYS_ICACHE_SIZE = 0 && \
Paul Burton37228622016-05-27 14:28:05 +0100363 SYS_DCACHE_LINE_SIZE = 0 && SYS_ICACHE_LINE_SIZE = 0
Paul Burtonace3be42016-05-27 14:28:04 +0100364 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
Daniel Schwierzeckf53830e2016-01-09 17:32:50 +0100371config MIPS_L1_CACHE_SHIFT_4
372 bool
373
374config MIPS_L1_CACHE_SHIFT_5
375 bool
376
377config MIPS_L1_CACHE_SHIFT_6
378 bool
379
380config MIPS_L1_CACHE_SHIFT_7
381 bool
382
383config 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
Paul Burton4baa0ab2016-09-21 11:18:54 +0100391config 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
Paul Burton05e34252016-01-29 13:54:52 +0000397config DYNAMIC_IO_PORT_BASE
398 bool
399
Paul Burtonb2b135d2016-09-21 11:18:53 +0100400config 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
Daniel Schwierzeck0e1dc342014-10-26 14:14:07 +0100407endif
408
Masahiro Yamadadd840582014-07-30 14:08:14 +0900409endmenu