blob: b53206bf8ee78fb655c093e93a3ea9fc2ace8a26 [file] [log] [blame]
Masahiro Yamadad3ae6782014-07-30 14:08:14 +09001menu "MIPS architecture"
2 depends on MIPS
3
4config SYS_ARCH
Masahiro Yamadad3ae6782014-07-30 14:08:14 +09005 default "mips"
6
Daniel Schwierzeck99e7af22014-10-26 14:14:07 +01007config SYS_CPU
Paul Burton32464372016-05-16 10:52:11 +01008 default "mips32" if CPU_MIPS32
9 default "mips64" if CPU_MIPS64
Daniel Schwierzeck99e7af22014-10-26 14:14:07 +010010
Masahiro Yamadad3ae6782014-07-30 14:08:14 +090011choice
12 prompt "Target select"
Joe Hershbergerf0699602015-05-12 14:46:23 -050013 optional
Masahiro Yamadad3ae6782014-07-30 14:08:14 +090014
15config TARGET_QEMU_MIPS
16 bool "Support qemu-mips"
Daniel Schwierzecka4c242b2014-10-26 14:14:07 +010017 select SUPPORTS_BIG_ENDIAN
18 select SUPPORTS_LITTLE_ENDIAN
Daniel Schwierzeck256034d2014-10-26 14:14:07 +010019 select SUPPORTS_CPU_MIPS32_R1
20 select SUPPORTS_CPU_MIPS32_R2
Daniel Schwierzeck94384d12014-10-26 14:14:07 +010021 select SUPPORTS_CPU_MIPS64_R1
22 select SUPPORTS_CPU_MIPS64_R2
Daniel Schwierzeck754cd052016-02-14 18:52:57 +010023 select ROM_EXCEPTION_VECTORS
Simon Glass41f661d2017-07-23 21:19:41 -060024 imply ENV_IS_IN_FLASH
Masahiro Yamadad3ae6782014-07-30 14:08:14 +090025
26config TARGET_MALTA
27 bool "Support malta"
Paul Burtona31a3df2016-05-17 07:43:28 +010028 select DM
29 select DM_SERIAL
Paul Burton8d6600b2016-01-29 13:54:52 +000030 select DYNAMIC_IO_PORT_BASE
Paul Burton59a4c8b2016-09-21 11:18:56 +010031 select MIPS_CM
32 select MIPS_L2_CACHE
Paul Burtona31a3df2016-05-17 07:43:28 +010033 select OF_CONTROL
34 select OF_ISA_BUS
Daniel Schwierzecka4c242b2014-10-26 14:14:07 +010035 select SUPPORTS_BIG_ENDIAN
36 select SUPPORTS_LITTLE_ENDIAN
Daniel Schwierzeck256034d2014-10-26 14:14:07 +010037 select SUPPORTS_CPU_MIPS32_R1
38 select SUPPORTS_CPU_MIPS32_R2
Paul Burton1c10e0d2016-05-16 10:52:14 +010039 select SUPPORTS_CPU_MIPS32_R6
Paul Burton825cfbd2016-05-26 14:49:36 +010040 select SUPPORTS_CPU_MIPS64_R1
41 select SUPPORTS_CPU_MIPS64_R2
42 select SUPPORTS_CPU_MIPS64_R6
Daniel Schwierzeck7dca6862015-01-18 22:00:18 +010043 select SWAP_IO_SPACE
Daniel Schwierzeck02ca55e2016-01-09 17:32:50 +010044 select MIPS_L1_CACHE_SHIFT_6
Daniel Schwierzeck754cd052016-02-14 18:52:57 +010045 select ROM_EXCEPTION_VECTORS
Simon Glass41f661d2017-07-23 21:19:41 -060046 imply ENV_IS_IN_FLASH
Masahiro Yamadad3ae6782014-07-30 14:08:14 +090047
48config TARGET_VCT
49 bool "Support vct"
Daniel Schwierzecka4c242b2014-10-26 14:14:07 +010050 select SUPPORTS_BIG_ENDIAN
Daniel Schwierzeck256034d2014-10-26 14:14:07 +010051 select SUPPORTS_CPU_MIPS32_R1
52 select SUPPORTS_CPU_MIPS32_R2
Paul Burton6832bdc2015-01-29 01:28:02 +000053 select SYS_MIPS_CACHE_INIT_RAM_LOAD
Daniel Schwierzeck754cd052016-02-14 18:52:57 +010054 select ROM_EXCEPTION_VECTORS
Masahiro Yamadad3ae6782014-07-30 14:08:14 +090055
56config TARGET_DBAU1X00
57 bool "Support dbau1x00"
Daniel Schwierzecka4c242b2014-10-26 14:14:07 +010058 select SUPPORTS_BIG_ENDIAN
59 select SUPPORTS_LITTLE_ENDIAN
Daniel Schwierzeck256034d2014-10-26 14:14:07 +010060 select SUPPORTS_CPU_MIPS32_R1
61 select SUPPORTS_CPU_MIPS32_R2
Paul Burton6832bdc2015-01-29 01:28:02 +000062 select SYS_MIPS_CACHE_INIT_RAM_LOAD
Daniel Schwierzeck754cd052016-02-14 18:52:57 +010063 select ROM_EXCEPTION_VECTORS
Daniel Schwierzeckaadd3322015-12-26 19:55:37 +010064 select MIPS_TUNE_4KC
Masahiro Yamadad3ae6782014-07-30 14:08:14 +090065
66config TARGET_PB1X00
67 bool "Support pb1x00"
Daniel Schwierzecka4c242b2014-10-26 14:14:07 +010068 select SUPPORTS_LITTLE_ENDIAN
Daniel Schwierzeck256034d2014-10-26 14:14:07 +010069 select SUPPORTS_CPU_MIPS32_R1
70 select SUPPORTS_CPU_MIPS32_R2
Paul Burton6832bdc2015-01-29 01:28:02 +000071 select SYS_MIPS_CACHE_INIT_RAM_LOAD
Daniel Schwierzeck754cd052016-02-14 18:52:57 +010072 select ROM_EXCEPTION_VECTORS
Daniel Schwierzeckaadd3322015-12-26 19:55:37 +010073 select MIPS_TUNE_4KC
Masahiro Yamadad3ae6782014-07-30 14:08:14 +090074
Wills Wang833a1a82016-03-16 16:59:52 +080075config ARCH_ATH79
76 bool "Support QCA/Atheros ath79"
77 select OF_CONTROL
78 select DM
79
Álvaro Fernández Rojas98a97a82017-04-25 00:39:20 +020080config ARCH_BMIPS
81 bool "Support BMIPS SoCs"
82 select OF_CONTROL
83 select DM
84 select CLK
85 select CPU
86 select RAM
87 select SYSRESET
Simon Glass73c18b42017-07-23 21:19:39 -060088 imply ENV_IS_NOWHERE
Álvaro Fernández Rojas98a97a82017-04-25 00:39:20 +020089
Purna Chandra Mandal825b3212016-01-28 15:30:10 +053090config MACH_PIC32
91 bool "Support Microchip PIC32"
92 select OF_CONTROL
93 select DM
94
Paul Burtonf5de32a2016-09-08 07:47:39 +010095config TARGET_BOSTON
96 bool "Support Boston"
97 select DM
98 select DM_SERIAL
99 select OF_CONTROL
100 select MIPS_CM
101 select MIPS_L1_CACHE_SHIFT_6
102 select MIPS_L2_CACHE
Paul Burtona315bcd2017-04-30 21:22:42 +0200103 select OF_BOARD_SETUP
Paul Burtonf5de32a2016-09-08 07:47:39 +0100104 select SUPPORTS_BIG_ENDIAN
105 select SUPPORTS_LITTLE_ENDIAN
106 select SUPPORTS_CPU_MIPS32_R1
107 select SUPPORTS_CPU_MIPS32_R2
108 select SUPPORTS_CPU_MIPS32_R6
109 select SUPPORTS_CPU_MIPS64_R1
110 select SUPPORTS_CPU_MIPS64_R2
111 select SUPPORTS_CPU_MIPS64_R6
Daniel Schwierzeck754cd052016-02-14 18:52:57 +0100112 select ROM_EXCEPTION_VECTORS
Simon Glass41f661d2017-07-23 21:19:41 -0600113 imply ENV_IS_IN_FLASH
Paul Burtonf5de32a2016-09-08 07:47:39 +0100114
Zubair Lutfullah Kakakhel1d153b32016-07-29 15:11:20 +0100115config TARGET_XILFPGA
116 bool "Support Imagination Xilfpga"
117 select OF_CONTROL
118 select DM
119 select DM_SERIAL
120 select DM_GPIO
121 select DM_ETH
122 select SUPPORTS_LITTLE_ENDIAN
123 select SUPPORTS_CPU_MIPS32_R1
124 select SUPPORTS_CPU_MIPS32_R2
125 select MIPS_L1_CACHE_SHIFT_4
Daniel Schwierzeck754cd052016-02-14 18:52:57 +0100126 select ROM_EXCEPTION_VECTORS
Zubair Lutfullah Kakakhel1d153b32016-07-29 15:11:20 +0100127 help
128 This supports IMGTEC MIPSfpga platform
129
Masahiro Yamadad3ae6782014-07-30 14:08:14 +0900130endchoice
131
132source "board/dbau1x00/Kconfig"
Paul Burtonf5de32a2016-09-08 07:47:39 +0100133source "board/imgtec/boston/Kconfig"
Masahiro Yamadad3ae6782014-07-30 14:08:14 +0900134source "board/imgtec/malta/Kconfig"
Zubair Lutfullah Kakakhel1d153b32016-07-29 15:11:20 +0100135source "board/imgtec/xilfpga/Kconfig"
Masahiro Yamadad3ae6782014-07-30 14:08:14 +0900136source "board/micronas/vct/Kconfig"
137source "board/pb1x00/Kconfig"
138source "board/qemu-mips/Kconfig"
Wills Wang833a1a82016-03-16 16:59:52 +0800139source "arch/mips/mach-ath79/Kconfig"
Álvaro Fernández Rojas98a97a82017-04-25 00:39:20 +0200140source "arch/mips/mach-bmips/Kconfig"
Purna Chandra Mandal825b3212016-01-28 15:30:10 +0530141source "arch/mips/mach-pic32/Kconfig"
Masahiro Yamadad3ae6782014-07-30 14:08:14 +0900142
Daniel Schwierzecka4c242b2014-10-26 14:14:07 +0100143if MIPS
144
145choice
146 prompt "Endianness selection"
147 help
148 Some MIPS boards can be configured for either little or big endian
149 byte order. These modes require different U-Boot images. In general there
150 is one preferred byteorder for a particular system but some systems are
151 just as commonly used in the one or the other endianness.
152
153config SYS_BIG_ENDIAN
154 bool "Big endian"
155 depends on SUPPORTS_BIG_ENDIAN
156
157config SYS_LITTLE_ENDIAN
158 bool "Little endian"
159 depends on SUPPORTS_LITTLE_ENDIAN
160
161endchoice
162
Daniel Schwierzeck256034d2014-10-26 14:14:07 +0100163choice
164 prompt "CPU selection"
165 default CPU_MIPS32_R2
166
167config CPU_MIPS32_R1
168 bool "MIPS32 Release 1"
169 depends on SUPPORTS_CPU_MIPS32_R1
170 select 32BIT
171 help
Paul Burton55e29dd2016-05-16 10:52:12 +0100172 Choose this option to build an U-Boot for release 1 through 5 of the
Daniel Schwierzeck256034d2014-10-26 14:14:07 +0100173 MIPS32 architecture.
174
175config CPU_MIPS32_R2
176 bool "MIPS32 Release 2"
177 depends on SUPPORTS_CPU_MIPS32_R2
178 select 32BIT
179 help
Paul Burton55e29dd2016-05-16 10:52:12 +0100180 Choose this option to build an U-Boot for release 2 through 5 of the
Daniel Schwierzeck256034d2014-10-26 14:14:07 +0100181 MIPS32 architecture.
182
Paul Burton55e29dd2016-05-16 10:52:12 +0100183config CPU_MIPS32_R6
184 bool "MIPS32 Release 6"
185 depends on SUPPORTS_CPU_MIPS32_R6
186 select 32BIT
187 help
188 Choose this option to build an U-Boot for release 6 or later of the
189 MIPS32 architecture.
190
Daniel Schwierzeck256034d2014-10-26 14:14:07 +0100191config CPU_MIPS64_R1
192 bool "MIPS64 Release 1"
193 depends on SUPPORTS_CPU_MIPS64_R1
194 select 64BIT
195 help
Paul Burton55e29dd2016-05-16 10:52:12 +0100196 Choose this option to build a kernel for release 1 through 5 of the
Daniel Schwierzeck256034d2014-10-26 14:14:07 +0100197 MIPS64 architecture.
198
199config CPU_MIPS64_R2
200 bool "MIPS64 Release 2"
201 depends on SUPPORTS_CPU_MIPS64_R2
202 select 64BIT
Simon Glass41f661d2017-07-23 21:19:41 -0600203 imply ENV_IS_IN_FLASH
Daniel Schwierzeck256034d2014-10-26 14:14:07 +0100204 help
Paul Burton55e29dd2016-05-16 10:52:12 +0100205 Choose this option to build a kernel for release 2 through 5 of the
206 MIPS64 architecture.
207
208config CPU_MIPS64_R6
209 bool "MIPS64 Release 6"
210 depends on SUPPORTS_CPU_MIPS64_R6
211 select 64BIT
212 help
213 Choose this option to build a kernel for release 6 or later of the
Daniel Schwierzeck256034d2014-10-26 14:14:07 +0100214 MIPS64 architecture.
215
216endchoice
217
Daniel Schwierzeck754cd052016-02-14 18:52:57 +0100218menu "General setup"
219
220config ROM_EXCEPTION_VECTORS
221 bool "Build U-Boot image with exception vectors"
222 help
223 Enable this to include exception vectors in the U-Boot image. This is
224 required if the U-Boot entry point is equal to the address of the
225 CPU reset exception vector (e.g. U-Boot as ROM loader in Qemu,
226 U-Boot booted from parallel NOR flash).
227 Disable this, if the U-Boot image is booted from DRAM (e.g. by SPL).
228 In that case the image size will be reduced by 0x500 bytes.
229
Paul Burton3d6864a2017-05-12 13:26:11 +0200230config MIPS_CM_BASE
231 hex "MIPS CM GCR Base Address"
232 depends on MIPS_CM
Paul Burtona6ac9652017-04-30 21:22:41 +0200233 default 0x16100000 if TARGET_BOSTON
Paul Burton3d6864a2017-05-12 13:26:11 +0200234 default 0x1fbf8000
235 help
236 The physical base address at which to map the MIPS Coherence Manager
237 Global Configuration Registers (GCRs). This should be set such that
238 the GCRs occupy a region of the physical address space which is
239 otherwise unused, or at minimum that software doesn't need to access.
240
Daniel Schwierzeck754cd052016-02-14 18:52:57 +0100241endmenu
242
Daniel Schwierzeckf9749fa2015-01-14 21:44:13 +0100243menu "OS boot interface"
244
245config MIPS_BOOT_CMDLINE_LEGACY
246 bool "Hand over legacy command line to Linux kernel"
247 default y
248 help
249 Enable this option if you want U-Boot to hand over the Yamon-style
250 command line to the kernel. All bootargs will be prepared as argc/argv
251 compatible list. The argument count (argc) is stored in register $a0.
252 The address of the argument list (argv) is stored in register $a1.
253
Daniel Schwierzeckc07dc602015-01-14 21:44:13 +0100254config MIPS_BOOT_ENV_LEGACY
255 bool "Hand over legacy environment to Linux kernel"
256 default y
257 help
258 Enable this option if you want U-Boot to hand over the Yamon-style
259 environment to the kernel. Information like memory size, initrd
260 address and size will be prepared as zero-terminated key/value list.
Robert P. J. Day8c60f922016-05-04 04:47:31 -0400261 The address of the environment is stored in register $a2.
Daniel Schwierzeckc07dc602015-01-14 21:44:13 +0100262
Daniel Schwierzeck8d7ff4d2015-01-14 21:44:13 +0100263config MIPS_BOOT_FDT
Daniel Schwierzeckd1b29d22015-02-22 16:58:30 +0100264 bool "Hand over a flattened device tree to Linux kernel"
Daniel Schwierzeck8d7ff4d2015-01-14 21:44:13 +0100265 default n
266 help
267 Enable this option if you want U-Boot to hand over a flattened
Daniel Schwierzeckd1b29d22015-02-22 16:58:30 +0100268 device tree to the kernel. According to UHI register $a0 will be set
269 to -2 and the FDT address is stored in $a1.
Daniel Schwierzeck8d7ff4d2015-01-14 21:44:13 +0100270
Daniel Schwierzeckf9749fa2015-01-14 21:44:13 +0100271endmenu
272
Daniel Schwierzecka4c242b2014-10-26 14:14:07 +0100273config SUPPORTS_BIG_ENDIAN
274 bool
275
276config SUPPORTS_LITTLE_ENDIAN
277 bool
278
Daniel Schwierzeck256034d2014-10-26 14:14:07 +0100279config SUPPORTS_CPU_MIPS32_R1
280 bool
281
282config SUPPORTS_CPU_MIPS32_R2
283 bool
284
Paul Burton55e29dd2016-05-16 10:52:12 +0100285config SUPPORTS_CPU_MIPS32_R6
286 bool
287
Daniel Schwierzeck256034d2014-10-26 14:14:07 +0100288config SUPPORTS_CPU_MIPS64_R1
289 bool
290
291config SUPPORTS_CPU_MIPS64_R2
292 bool
293
Paul Burton55e29dd2016-05-16 10:52:12 +0100294config SUPPORTS_CPU_MIPS64_R6
295 bool
296
Daniel Schwierzeckdfbad0f2015-01-18 21:59:35 +0100297config CPU_MIPS32
298 bool
Paul Burton55e29dd2016-05-16 10:52:12 +0100299 default y if CPU_MIPS32_R1 || CPU_MIPS32_R2 || CPU_MIPS32_R6
Daniel Schwierzeckdfbad0f2015-01-18 21:59:35 +0100300
301config CPU_MIPS64
302 bool
Paul Burton55e29dd2016-05-16 10:52:12 +0100303 default y if CPU_MIPS64_R1 || CPU_MIPS64_R2 || CPU_MIPS64_R6
Daniel Schwierzeckdfbad0f2015-01-18 21:59:35 +0100304
Daniel Schwierzeckaadd3322015-12-26 19:55:37 +0100305config MIPS_TUNE_4KC
306 bool
307
308config MIPS_TUNE_14KC
309 bool
310
311config MIPS_TUNE_24KC
312 bool
313
Daniel Schwierzeckc7661d52016-05-27 15:39:39 +0200314config MIPS_TUNE_34KC
315 bool
316
Marek Vasuta9c6e8b2016-05-06 20:10:33 +0200317config MIPS_TUNE_74KC
318 bool
319
Daniel Schwierzeck256034d2014-10-26 14:14:07 +0100320config 32BIT
321 bool
322
323config 64BIT
324 bool
325
Daniel Schwierzeck7dca6862015-01-18 22:00:18 +0100326config SWAP_IO_SPACE
327 bool
328
Paul Burton6832bdc2015-01-29 01:28:02 +0000329config SYS_MIPS_CACHE_INIT_RAM_LOAD
330 bool
331
Daniel Schwierzeck41dc35e2016-06-04 16:13:21 +0200332config MIPS_INIT_STACK_IN_SRAM
333 bool
334 default n
335 help
336 Select this if the initial stack frame could be setup in SRAM.
337 Normally the initial stack frame is set up in DRAM which is often
338 only available after lowlevel_init. With this option the initial
339 stack frame and the early C environment is set up before
340 lowlevel_init. Thus lowlevel_init does not need to be implemented
341 in assembler.
342
Paul Burton5e511422016-05-27 14:28:04 +0100343config SYS_DCACHE_SIZE
344 int
345 default 0
346 help
347 The total size of the L1 Dcache, if known at compile time.
348
Paul Burton62f13522016-05-27 14:28:05 +0100349config SYS_DCACHE_LINE_SIZE
Paul Burton79e49fd2016-06-09 13:09:52 +0100350 int
Paul Burton62f13522016-05-27 14:28:05 +0100351 default 0
352 help
353 The size of L1 Dcache lines, if known at compile time.
354
Paul Burton5e511422016-05-27 14:28:04 +0100355config SYS_ICACHE_SIZE
356 int
357 default 0
358 help
359 The total size of the L1 ICache, if known at compile time.
360
Paul Burton62f13522016-05-27 14:28:05 +0100361config SYS_ICACHE_LINE_SIZE
Paul Burton5e511422016-05-27 14:28:04 +0100362 int
363 default 0
364 help
Paul Burton62f13522016-05-27 14:28:05 +0100365 The size of L1 Icache lines, if known at compile time.
Paul Burton5e511422016-05-27 14:28:04 +0100366
367config SYS_CACHE_SIZE_AUTO
368 def_bool y if SYS_DCACHE_SIZE = 0 && SYS_ICACHE_SIZE = 0 && \
Paul Burton62f13522016-05-27 14:28:05 +0100369 SYS_DCACHE_LINE_SIZE = 0 && SYS_ICACHE_LINE_SIZE = 0
Paul Burton5e511422016-05-27 14:28:04 +0100370 help
371 Select this (or let it be auto-selected by not defining any cache
372 sizes) in order to allow U-Boot to automatically detect the sizes
373 of caches at runtime. This has a small cost in code size & runtime
374 so if you know the cache configuration for your system at compile
375 time it would be beneficial to configure it.
376
Daniel Schwierzeck02ca55e2016-01-09 17:32:50 +0100377config MIPS_L1_CACHE_SHIFT_4
378 bool
379
380config MIPS_L1_CACHE_SHIFT_5
381 bool
382
383config MIPS_L1_CACHE_SHIFT_6
384 bool
385
386config MIPS_L1_CACHE_SHIFT_7
387 bool
388
389config MIPS_L1_CACHE_SHIFT
390 int
391 default "7" if MIPS_L1_CACHE_SHIFT_7
392 default "6" if MIPS_L1_CACHE_SHIFT_6
393 default "5" if MIPS_L1_CACHE_SHIFT_5
394 default "4" if MIPS_L1_CACHE_SHIFT_4
395 default "5"
396
Paul Burton81560782016-09-21 11:18:54 +0100397config MIPS_L2_CACHE
398 bool
399 help
400 Select this if your system includes an L2 cache and you want U-Boot
401 to initialise & maintain it.
402
Paul Burton8d6600b2016-01-29 13:54:52 +0000403config DYNAMIC_IO_PORT_BASE
404 bool
405
Paul Burton79ac1742016-09-21 11:18:53 +0100406config MIPS_CM
407 bool
408 help
409 Select this if your system contains a MIPS Coherence Manager and you
410 wish U-Boot to configure it or make use of it to retrieve system
411 information such as cache configuration.
412
Daniel Schwierzecka4c242b2014-10-26 14:14:07 +0100413endif
414
Masahiro Yamadad3ae6782014-07-30 14:08:14 +0900415endmenu