blob: 77d1ac65d26180d7425407051d94bdbc16c2eb52 [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
Masahiro Yamadad3ae6782014-07-30 14:08:14 +090024
25config TARGET_MALTA
26 bool "Support malta"
Paul Burtona31a3df2016-05-17 07:43:28 +010027 select DM
28 select DM_SERIAL
Paul Burton8d6600b2016-01-29 13:54:52 +000029 select DYNAMIC_IO_PORT_BASE
Paul Burton59a4c8b2016-09-21 11:18:56 +010030 select MIPS_CM
31 select MIPS_L2_CACHE
Paul Burtona31a3df2016-05-17 07:43:28 +010032 select OF_CONTROL
33 select OF_ISA_BUS
Daniel Schwierzecka4c242b2014-10-26 14:14:07 +010034 select SUPPORTS_BIG_ENDIAN
35 select SUPPORTS_LITTLE_ENDIAN
Daniel Schwierzeck256034d2014-10-26 14:14:07 +010036 select SUPPORTS_CPU_MIPS32_R1
37 select SUPPORTS_CPU_MIPS32_R2
Paul Burton1c10e0d2016-05-16 10:52:14 +010038 select SUPPORTS_CPU_MIPS32_R6
Paul Burton825cfbd2016-05-26 14:49:36 +010039 select SUPPORTS_CPU_MIPS64_R1
40 select SUPPORTS_CPU_MIPS64_R2
41 select SUPPORTS_CPU_MIPS64_R6
Daniel Schwierzeck7dca6862015-01-18 22:00:18 +010042 select SWAP_IO_SPACE
Daniel Schwierzeck02ca55e2016-01-09 17:32:50 +010043 select MIPS_L1_CACHE_SHIFT_6
Daniel Schwierzeck754cd052016-02-14 18:52:57 +010044 select ROM_EXCEPTION_VECTORS
Masahiro Yamadad3ae6782014-07-30 14:08:14 +090045
46config TARGET_VCT
47 bool "Support vct"
Daniel Schwierzecka4c242b2014-10-26 14:14:07 +010048 select SUPPORTS_BIG_ENDIAN
Daniel Schwierzeck256034d2014-10-26 14:14:07 +010049 select SUPPORTS_CPU_MIPS32_R1
50 select SUPPORTS_CPU_MIPS32_R2
Paul Burton6832bdc2015-01-29 01:28:02 +000051 select SYS_MIPS_CACHE_INIT_RAM_LOAD
Daniel Schwierzeck754cd052016-02-14 18:52:57 +010052 select ROM_EXCEPTION_VECTORS
Masahiro Yamadad3ae6782014-07-30 14:08:14 +090053
54config TARGET_DBAU1X00
55 bool "Support dbau1x00"
Daniel Schwierzecka4c242b2014-10-26 14:14:07 +010056 select SUPPORTS_BIG_ENDIAN
57 select SUPPORTS_LITTLE_ENDIAN
Daniel Schwierzeck256034d2014-10-26 14:14:07 +010058 select SUPPORTS_CPU_MIPS32_R1
59 select SUPPORTS_CPU_MIPS32_R2
Paul Burton6832bdc2015-01-29 01:28:02 +000060 select SYS_MIPS_CACHE_INIT_RAM_LOAD
Daniel Schwierzeck754cd052016-02-14 18:52:57 +010061 select ROM_EXCEPTION_VECTORS
Daniel Schwierzeckaadd3322015-12-26 19:55:37 +010062 select MIPS_TUNE_4KC
Masahiro Yamadad3ae6782014-07-30 14:08:14 +090063
64config TARGET_PB1X00
65 bool "Support pb1x00"
Daniel Schwierzecka4c242b2014-10-26 14:14:07 +010066 select SUPPORTS_LITTLE_ENDIAN
Daniel Schwierzeck256034d2014-10-26 14:14:07 +010067 select SUPPORTS_CPU_MIPS32_R1
68 select SUPPORTS_CPU_MIPS32_R2
Paul Burton6832bdc2015-01-29 01:28:02 +000069 select SYS_MIPS_CACHE_INIT_RAM_LOAD
Daniel Schwierzeck754cd052016-02-14 18:52:57 +010070 select ROM_EXCEPTION_VECTORS
Daniel Schwierzeckaadd3322015-12-26 19:55:37 +010071 select MIPS_TUNE_4KC
Masahiro Yamadad3ae6782014-07-30 14:08:14 +090072
Wills Wang833a1a82016-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 Rojas98a97a82017-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 Mandal825b3212016-01-28 15:30:10 +053087config MACH_PIC32
88 bool "Support Microchip PIC32"
89 select OF_CONTROL
90 select DM
91
Paul Burtonf5de32a2016-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 Schwierzeck754cd052016-02-14 18:52:57 +0100108 select ROM_EXCEPTION_VECTORS
Paul Burtonf5de32a2016-09-08 07:47:39 +0100109
Zubair Lutfullah Kakakhel1d153b32016-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 Schwierzeck754cd052016-02-14 18:52:57 +0100121 select ROM_EXCEPTION_VECTORS
Zubair Lutfullah Kakakhel1d153b32016-07-29 15:11:20 +0100122 help
123 This supports IMGTEC MIPSfpga platform
124
Masahiro Yamadad3ae6782014-07-30 14:08:14 +0900125endchoice
126
127source "board/dbau1x00/Kconfig"
Paul Burtonf5de32a2016-09-08 07:47:39 +0100128source "board/imgtec/boston/Kconfig"
Masahiro Yamadad3ae6782014-07-30 14:08:14 +0900129source "board/imgtec/malta/Kconfig"
Zubair Lutfullah Kakakhel1d153b32016-07-29 15:11:20 +0100130source "board/imgtec/xilfpga/Kconfig"
Masahiro Yamadad3ae6782014-07-30 14:08:14 +0900131source "board/micronas/vct/Kconfig"
132source "board/pb1x00/Kconfig"
133source "board/qemu-mips/Kconfig"
Wills Wang833a1a82016-03-16 16:59:52 +0800134source "arch/mips/mach-ath79/Kconfig"
Álvaro Fernández Rojas98a97a82017-04-25 00:39:20 +0200135source "arch/mips/mach-bmips/Kconfig"
Purna Chandra Mandal825b3212016-01-28 15:30:10 +0530136source "arch/mips/mach-pic32/Kconfig"
Masahiro Yamadad3ae6782014-07-30 14:08:14 +0900137
Daniel Schwierzecka4c242b2014-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 Schwierzeck256034d2014-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 Burton55e29dd2016-05-16 10:52:12 +0100167 Choose this option to build an U-Boot for release 1 through 5 of the
Daniel Schwierzeck256034d2014-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 Burton55e29dd2016-05-16 10:52:12 +0100175 Choose this option to build an U-Boot for release 2 through 5 of the
Daniel Schwierzeck256034d2014-10-26 14:14:07 +0100176 MIPS32 architecture.
177
Paul Burton55e29dd2016-05-16 10:52:12 +0100178config 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
184 MIPS32 architecture.
185
Daniel Schwierzeck256034d2014-10-26 14:14:07 +0100186config CPU_MIPS64_R1
187 bool "MIPS64 Release 1"
188 depends on SUPPORTS_CPU_MIPS64_R1
189 select 64BIT
190 help
Paul Burton55e29dd2016-05-16 10:52:12 +0100191 Choose this option to build a kernel for release 1 through 5 of the
Daniel Schwierzeck256034d2014-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 Burton55e29dd2016-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 Schwierzeck256034d2014-10-26 14:14:07 +0100208 MIPS64 architecture.
209
210endchoice
211
Daniel Schwierzeck754cd052016-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 Burton3d6864a2017-05-12 13:26:11 +0200224config MIPS_CM_BASE
225 hex "MIPS CM GCR Base Address"
226 depends on MIPS_CM
227 default 0x1fbf8000
228 help
229 The physical base address at which to map the MIPS Coherence Manager
230 Global Configuration Registers (GCRs). This should be set such that
231 the GCRs occupy a region of the physical address space which is
232 otherwise unused, or at minimum that software doesn't need to access.
233
Daniel Schwierzeck754cd052016-02-14 18:52:57 +0100234endmenu
235
Daniel Schwierzeckf9749fa2015-01-14 21:44:13 +0100236menu "OS boot interface"
237
238config MIPS_BOOT_CMDLINE_LEGACY
239 bool "Hand over legacy command line to Linux kernel"
240 default y
241 help
242 Enable this option if you want U-Boot to hand over the Yamon-style
243 command line to the kernel. All bootargs will be prepared as argc/argv
244 compatible list. The argument count (argc) is stored in register $a0.
245 The address of the argument list (argv) is stored in register $a1.
246
Daniel Schwierzeckc07dc602015-01-14 21:44:13 +0100247config MIPS_BOOT_ENV_LEGACY
248 bool "Hand over legacy environment to Linux kernel"
249 default y
250 help
251 Enable this option if you want U-Boot to hand over the Yamon-style
252 environment to the kernel. Information like memory size, initrd
253 address and size will be prepared as zero-terminated key/value list.
Robert P. J. Day8c60f922016-05-04 04:47:31 -0400254 The address of the environment is stored in register $a2.
Daniel Schwierzeckc07dc602015-01-14 21:44:13 +0100255
Daniel Schwierzeck8d7ff4d2015-01-14 21:44:13 +0100256config MIPS_BOOT_FDT
Daniel Schwierzeckd1b29d22015-02-22 16:58:30 +0100257 bool "Hand over a flattened device tree to Linux kernel"
Daniel Schwierzeck8d7ff4d2015-01-14 21:44:13 +0100258 default n
259 help
260 Enable this option if you want U-Boot to hand over a flattened
Daniel Schwierzeckd1b29d22015-02-22 16:58:30 +0100261 device tree to the kernel. According to UHI register $a0 will be set
262 to -2 and the FDT address is stored in $a1.
Daniel Schwierzeck8d7ff4d2015-01-14 21:44:13 +0100263
Daniel Schwierzeckf9749fa2015-01-14 21:44:13 +0100264endmenu
265
Daniel Schwierzecka4c242b2014-10-26 14:14:07 +0100266config SUPPORTS_BIG_ENDIAN
267 bool
268
269config SUPPORTS_LITTLE_ENDIAN
270 bool
271
Daniel Schwierzeck256034d2014-10-26 14:14:07 +0100272config SUPPORTS_CPU_MIPS32_R1
273 bool
274
275config SUPPORTS_CPU_MIPS32_R2
276 bool
277
Paul Burton55e29dd2016-05-16 10:52:12 +0100278config SUPPORTS_CPU_MIPS32_R6
279 bool
280
Daniel Schwierzeck256034d2014-10-26 14:14:07 +0100281config SUPPORTS_CPU_MIPS64_R1
282 bool
283
284config SUPPORTS_CPU_MIPS64_R2
285 bool
286
Paul Burton55e29dd2016-05-16 10:52:12 +0100287config SUPPORTS_CPU_MIPS64_R6
288 bool
289
Daniel Schwierzeckdfbad0f2015-01-18 21:59:35 +0100290config CPU_MIPS32
291 bool
Paul Burton55e29dd2016-05-16 10:52:12 +0100292 default y if CPU_MIPS32_R1 || CPU_MIPS32_R2 || CPU_MIPS32_R6
Daniel Schwierzeckdfbad0f2015-01-18 21:59:35 +0100293
294config CPU_MIPS64
295 bool
Paul Burton55e29dd2016-05-16 10:52:12 +0100296 default y if CPU_MIPS64_R1 || CPU_MIPS64_R2 || CPU_MIPS64_R6
Daniel Schwierzeckdfbad0f2015-01-18 21:59:35 +0100297
Daniel Schwierzeckaadd3322015-12-26 19:55:37 +0100298config MIPS_TUNE_4KC
299 bool
300
301config MIPS_TUNE_14KC
302 bool
303
304config MIPS_TUNE_24KC
305 bool
306
Daniel Schwierzeckc7661d52016-05-27 15:39:39 +0200307config MIPS_TUNE_34KC
308 bool
309
Marek Vasuta9c6e8b2016-05-06 20:10:33 +0200310config MIPS_TUNE_74KC
311 bool
312
Daniel Schwierzeck256034d2014-10-26 14:14:07 +0100313config 32BIT
314 bool
315
316config 64BIT
317 bool
318
Daniel Schwierzeck7dca6862015-01-18 22:00:18 +0100319config SWAP_IO_SPACE
320 bool
321
Paul Burton6832bdc2015-01-29 01:28:02 +0000322config SYS_MIPS_CACHE_INIT_RAM_LOAD
323 bool
324
Daniel Schwierzeck41dc35e2016-06-04 16:13:21 +0200325config MIPS_INIT_STACK_IN_SRAM
326 bool
327 default n
328 help
329 Select this if the initial stack frame could be setup in SRAM.
330 Normally the initial stack frame is set up in DRAM which is often
331 only available after lowlevel_init. With this option the initial
332 stack frame and the early C environment is set up before
333 lowlevel_init. Thus lowlevel_init does not need to be implemented
334 in assembler.
335
Paul Burton5e511422016-05-27 14:28:04 +0100336config SYS_DCACHE_SIZE
337 int
338 default 0
339 help
340 The total size of the L1 Dcache, if known at compile time.
341
Paul Burton62f13522016-05-27 14:28:05 +0100342config SYS_DCACHE_LINE_SIZE
Paul Burton79e49fd2016-06-09 13:09:52 +0100343 int
Paul Burton62f13522016-05-27 14:28:05 +0100344 default 0
345 help
346 The size of L1 Dcache lines, if known at compile time.
347
Paul Burton5e511422016-05-27 14:28:04 +0100348config SYS_ICACHE_SIZE
349 int
350 default 0
351 help
352 The total size of the L1 ICache, if known at compile time.
353
Paul Burton62f13522016-05-27 14:28:05 +0100354config SYS_ICACHE_LINE_SIZE
Paul Burton5e511422016-05-27 14:28:04 +0100355 int
356 default 0
357 help
Paul Burton62f13522016-05-27 14:28:05 +0100358 The size of L1 Icache lines, if known at compile time.
Paul Burton5e511422016-05-27 14:28:04 +0100359
360config SYS_CACHE_SIZE_AUTO
361 def_bool y if SYS_DCACHE_SIZE = 0 && SYS_ICACHE_SIZE = 0 && \
Paul Burton62f13522016-05-27 14:28:05 +0100362 SYS_DCACHE_LINE_SIZE = 0 && SYS_ICACHE_LINE_SIZE = 0
Paul Burton5e511422016-05-27 14:28:04 +0100363 help
364 Select this (or let it be auto-selected by not defining any cache
365 sizes) in order to allow U-Boot to automatically detect the sizes
366 of caches at runtime. This has a small cost in code size & runtime
367 so if you know the cache configuration for your system at compile
368 time it would be beneficial to configure it.
369
Daniel Schwierzeck02ca55e2016-01-09 17:32:50 +0100370config MIPS_L1_CACHE_SHIFT_4
371 bool
372
373config MIPS_L1_CACHE_SHIFT_5
374 bool
375
376config MIPS_L1_CACHE_SHIFT_6
377 bool
378
379config MIPS_L1_CACHE_SHIFT_7
380 bool
381
382config MIPS_L1_CACHE_SHIFT
383 int
384 default "7" if MIPS_L1_CACHE_SHIFT_7
385 default "6" if MIPS_L1_CACHE_SHIFT_6
386 default "5" if MIPS_L1_CACHE_SHIFT_5
387 default "4" if MIPS_L1_CACHE_SHIFT_4
388 default "5"
389
Paul Burton81560782016-09-21 11:18:54 +0100390config MIPS_L2_CACHE
391 bool
392 help
393 Select this if your system includes an L2 cache and you want U-Boot
394 to initialise & maintain it.
395
Paul Burton8d6600b2016-01-29 13:54:52 +0000396config DYNAMIC_IO_PORT_BASE
397 bool
398
Paul Burton79ac1742016-09-21 11:18:53 +0100399config MIPS_CM
400 bool
401 help
402 Select this if your system contains a MIPS Coherence Manager and you
403 wish U-Boot to configure it or make use of it to retrieve system
404 information such as cache configuration.
405
Daniel Schwierzecka4c242b2014-10-26 14:14:07 +0100406endif
407
Masahiro Yamadad3ae6782014-07-30 14:08:14 +0900408endmenu