blob: 579371e8eef4ed93041154b3258b7aeb74957e0b [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
Simon Glass73c18b42017-07-23 21:19:39 -060086 imply ENV_IS_NOWHERE
Álvaro Fernández Rojas98a97a82017-04-25 00:39:20 +020087
Purna Chandra Mandal825b3212016-01-28 15:30:10 +053088config MACH_PIC32
89 bool "Support Microchip PIC32"
90 select OF_CONTROL
91 select DM
92
Paul Burtonf5de32a2016-09-08 07:47:39 +010093config TARGET_BOSTON
94 bool "Support Boston"
95 select DM
96 select DM_SERIAL
97 select OF_CONTROL
98 select MIPS_CM
99 select MIPS_L1_CACHE_SHIFT_6
100 select MIPS_L2_CACHE
Paul Burtona315bcd2017-04-30 21:22:42 +0200101 select OF_BOARD_SETUP
Paul Burtonf5de32a2016-09-08 07:47:39 +0100102 select SUPPORTS_BIG_ENDIAN
103 select SUPPORTS_LITTLE_ENDIAN
104 select SUPPORTS_CPU_MIPS32_R1
105 select SUPPORTS_CPU_MIPS32_R2
106 select SUPPORTS_CPU_MIPS32_R6
107 select SUPPORTS_CPU_MIPS64_R1
108 select SUPPORTS_CPU_MIPS64_R2
109 select SUPPORTS_CPU_MIPS64_R6
Daniel Schwierzeck754cd052016-02-14 18:52:57 +0100110 select ROM_EXCEPTION_VECTORS
Paul Burtonf5de32a2016-09-08 07:47:39 +0100111
Zubair Lutfullah Kakakhel1d153b32016-07-29 15:11:20 +0100112config TARGET_XILFPGA
113 bool "Support Imagination Xilfpga"
114 select OF_CONTROL
115 select DM
116 select DM_SERIAL
117 select DM_GPIO
118 select DM_ETH
119 select SUPPORTS_LITTLE_ENDIAN
120 select SUPPORTS_CPU_MIPS32_R1
121 select SUPPORTS_CPU_MIPS32_R2
122 select MIPS_L1_CACHE_SHIFT_4
Daniel Schwierzeck754cd052016-02-14 18:52:57 +0100123 select ROM_EXCEPTION_VECTORS
Zubair Lutfullah Kakakhel1d153b32016-07-29 15:11:20 +0100124 help
125 This supports IMGTEC MIPSfpga platform
126
Masahiro Yamadad3ae6782014-07-30 14:08:14 +0900127endchoice
128
129source "board/dbau1x00/Kconfig"
Paul Burtonf5de32a2016-09-08 07:47:39 +0100130source "board/imgtec/boston/Kconfig"
Masahiro Yamadad3ae6782014-07-30 14:08:14 +0900131source "board/imgtec/malta/Kconfig"
Zubair Lutfullah Kakakhel1d153b32016-07-29 15:11:20 +0100132source "board/imgtec/xilfpga/Kconfig"
Masahiro Yamadad3ae6782014-07-30 14:08:14 +0900133source "board/micronas/vct/Kconfig"
134source "board/pb1x00/Kconfig"
135source "board/qemu-mips/Kconfig"
Wills Wang833a1a82016-03-16 16:59:52 +0800136source "arch/mips/mach-ath79/Kconfig"
Álvaro Fernández Rojas98a97a82017-04-25 00:39:20 +0200137source "arch/mips/mach-bmips/Kconfig"
Purna Chandra Mandal825b3212016-01-28 15:30:10 +0530138source "arch/mips/mach-pic32/Kconfig"
Masahiro Yamadad3ae6782014-07-30 14:08:14 +0900139
Daniel Schwierzecka4c242b2014-10-26 14:14:07 +0100140if MIPS
141
142choice
143 prompt "Endianness selection"
144 help
145 Some MIPS boards can be configured for either little or big endian
146 byte order. These modes require different U-Boot images. In general there
147 is one preferred byteorder for a particular system but some systems are
148 just as commonly used in the one or the other endianness.
149
150config SYS_BIG_ENDIAN
151 bool "Big endian"
152 depends on SUPPORTS_BIG_ENDIAN
153
154config SYS_LITTLE_ENDIAN
155 bool "Little endian"
156 depends on SUPPORTS_LITTLE_ENDIAN
157
158endchoice
159
Daniel Schwierzeck256034d2014-10-26 14:14:07 +0100160choice
161 prompt "CPU selection"
162 default CPU_MIPS32_R2
163
164config CPU_MIPS32_R1
165 bool "MIPS32 Release 1"
166 depends on SUPPORTS_CPU_MIPS32_R1
167 select 32BIT
168 help
Paul Burton55e29dd2016-05-16 10:52:12 +0100169 Choose this option to build an U-Boot for release 1 through 5 of the
Daniel Schwierzeck256034d2014-10-26 14:14:07 +0100170 MIPS32 architecture.
171
172config CPU_MIPS32_R2
173 bool "MIPS32 Release 2"
174 depends on SUPPORTS_CPU_MIPS32_R2
175 select 32BIT
176 help
Paul Burton55e29dd2016-05-16 10:52:12 +0100177 Choose this option to build an U-Boot for release 2 through 5 of the
Daniel Schwierzeck256034d2014-10-26 14:14:07 +0100178 MIPS32 architecture.
179
Paul Burton55e29dd2016-05-16 10:52:12 +0100180config CPU_MIPS32_R6
181 bool "MIPS32 Release 6"
182 depends on SUPPORTS_CPU_MIPS32_R6
183 select 32BIT
184 help
185 Choose this option to build an U-Boot for release 6 or later of the
186 MIPS32 architecture.
187
Daniel Schwierzeck256034d2014-10-26 14:14:07 +0100188config CPU_MIPS64_R1
189 bool "MIPS64 Release 1"
190 depends on SUPPORTS_CPU_MIPS64_R1
191 select 64BIT
192 help
Paul Burton55e29dd2016-05-16 10:52:12 +0100193 Choose this option to build a kernel for release 1 through 5 of the
Daniel Schwierzeck256034d2014-10-26 14:14:07 +0100194 MIPS64 architecture.
195
196config CPU_MIPS64_R2
197 bool "MIPS64 Release 2"
198 depends on SUPPORTS_CPU_MIPS64_R2
199 select 64BIT
200 help
Paul Burton55e29dd2016-05-16 10:52:12 +0100201 Choose this option to build a kernel for release 2 through 5 of the
202 MIPS64 architecture.
203
204config CPU_MIPS64_R6
205 bool "MIPS64 Release 6"
206 depends on SUPPORTS_CPU_MIPS64_R6
207 select 64BIT
208 help
209 Choose this option to build a kernel for release 6 or later of the
Daniel Schwierzeck256034d2014-10-26 14:14:07 +0100210 MIPS64 architecture.
211
212endchoice
213
Daniel Schwierzeck754cd052016-02-14 18:52:57 +0100214menu "General setup"
215
216config ROM_EXCEPTION_VECTORS
217 bool "Build U-Boot image with exception vectors"
218 help
219 Enable this to include exception vectors in the U-Boot image. This is
220 required if the U-Boot entry point is equal to the address of the
221 CPU reset exception vector (e.g. U-Boot as ROM loader in Qemu,
222 U-Boot booted from parallel NOR flash).
223 Disable this, if the U-Boot image is booted from DRAM (e.g. by SPL).
224 In that case the image size will be reduced by 0x500 bytes.
225
Paul Burton3d6864a2017-05-12 13:26:11 +0200226config MIPS_CM_BASE
227 hex "MIPS CM GCR Base Address"
228 depends on MIPS_CM
Paul Burtona6ac9652017-04-30 21:22:41 +0200229 default 0x16100000 if TARGET_BOSTON
Paul Burton3d6864a2017-05-12 13:26:11 +0200230 default 0x1fbf8000
231 help
232 The physical base address at which to map the MIPS Coherence Manager
233 Global Configuration Registers (GCRs). This should be set such that
234 the GCRs occupy a region of the physical address space which is
235 otherwise unused, or at minimum that software doesn't need to access.
236
Daniel Schwierzeck754cd052016-02-14 18:52:57 +0100237endmenu
238
Daniel Schwierzeckf9749fa2015-01-14 21:44:13 +0100239menu "OS boot interface"
240
241config MIPS_BOOT_CMDLINE_LEGACY
242 bool "Hand over legacy command line to Linux kernel"
243 default y
244 help
245 Enable this option if you want U-Boot to hand over the Yamon-style
246 command line to the kernel. All bootargs will be prepared as argc/argv
247 compatible list. The argument count (argc) is stored in register $a0.
248 The address of the argument list (argv) is stored in register $a1.
249
Daniel Schwierzeckc07dc602015-01-14 21:44:13 +0100250config MIPS_BOOT_ENV_LEGACY
251 bool "Hand over legacy environment to Linux kernel"
252 default y
253 help
254 Enable this option if you want U-Boot to hand over the Yamon-style
255 environment to the kernel. Information like memory size, initrd
256 address and size will be prepared as zero-terminated key/value list.
Robert P. J. Day8c60f922016-05-04 04:47:31 -0400257 The address of the environment is stored in register $a2.
Daniel Schwierzeckc07dc602015-01-14 21:44:13 +0100258
Daniel Schwierzeck8d7ff4d2015-01-14 21:44:13 +0100259config MIPS_BOOT_FDT
Daniel Schwierzeckd1b29d22015-02-22 16:58:30 +0100260 bool "Hand over a flattened device tree to Linux kernel"
Daniel Schwierzeck8d7ff4d2015-01-14 21:44:13 +0100261 default n
262 help
263 Enable this option if you want U-Boot to hand over a flattened
Daniel Schwierzeckd1b29d22015-02-22 16:58:30 +0100264 device tree to the kernel. According to UHI register $a0 will be set
265 to -2 and the FDT address is stored in $a1.
Daniel Schwierzeck8d7ff4d2015-01-14 21:44:13 +0100266
Daniel Schwierzeckf9749fa2015-01-14 21:44:13 +0100267endmenu
268
Daniel Schwierzecka4c242b2014-10-26 14:14:07 +0100269config SUPPORTS_BIG_ENDIAN
270 bool
271
272config SUPPORTS_LITTLE_ENDIAN
273 bool
274
Daniel Schwierzeck256034d2014-10-26 14:14:07 +0100275config SUPPORTS_CPU_MIPS32_R1
276 bool
277
278config SUPPORTS_CPU_MIPS32_R2
279 bool
280
Paul Burton55e29dd2016-05-16 10:52:12 +0100281config SUPPORTS_CPU_MIPS32_R6
282 bool
283
Daniel Schwierzeck256034d2014-10-26 14:14:07 +0100284config SUPPORTS_CPU_MIPS64_R1
285 bool
286
287config SUPPORTS_CPU_MIPS64_R2
288 bool
289
Paul Burton55e29dd2016-05-16 10:52:12 +0100290config SUPPORTS_CPU_MIPS64_R6
291 bool
292
Daniel Schwierzeckdfbad0f2015-01-18 21:59:35 +0100293config CPU_MIPS32
294 bool
Paul Burton55e29dd2016-05-16 10:52:12 +0100295 default y if CPU_MIPS32_R1 || CPU_MIPS32_R2 || CPU_MIPS32_R6
Daniel Schwierzeckdfbad0f2015-01-18 21:59:35 +0100296
297config CPU_MIPS64
298 bool
Paul Burton55e29dd2016-05-16 10:52:12 +0100299 default y if CPU_MIPS64_R1 || CPU_MIPS64_R2 || CPU_MIPS64_R6
Daniel Schwierzeckdfbad0f2015-01-18 21:59:35 +0100300
Daniel Schwierzeckaadd3322015-12-26 19:55:37 +0100301config MIPS_TUNE_4KC
302 bool
303
304config MIPS_TUNE_14KC
305 bool
306
307config MIPS_TUNE_24KC
308 bool
309
Daniel Schwierzeckc7661d52016-05-27 15:39:39 +0200310config MIPS_TUNE_34KC
311 bool
312
Marek Vasuta9c6e8b2016-05-06 20:10:33 +0200313config MIPS_TUNE_74KC
314 bool
315
Daniel Schwierzeck256034d2014-10-26 14:14:07 +0100316config 32BIT
317 bool
318
319config 64BIT
320 bool
321
Daniel Schwierzeck7dca6862015-01-18 22:00:18 +0100322config SWAP_IO_SPACE
323 bool
324
Paul Burton6832bdc2015-01-29 01:28:02 +0000325config SYS_MIPS_CACHE_INIT_RAM_LOAD
326 bool
327
Daniel Schwierzeck41dc35e2016-06-04 16:13:21 +0200328config MIPS_INIT_STACK_IN_SRAM
329 bool
330 default n
331 help
332 Select this if the initial stack frame could be setup in SRAM.
333 Normally the initial stack frame is set up in DRAM which is often
334 only available after lowlevel_init. With this option the initial
335 stack frame and the early C environment is set up before
336 lowlevel_init. Thus lowlevel_init does not need to be implemented
337 in assembler.
338
Paul Burton5e511422016-05-27 14:28:04 +0100339config SYS_DCACHE_SIZE
340 int
341 default 0
342 help
343 The total size of the L1 Dcache, if known at compile time.
344
Paul Burton62f13522016-05-27 14:28:05 +0100345config SYS_DCACHE_LINE_SIZE
Paul Burton79e49fd2016-06-09 13:09:52 +0100346 int
Paul Burton62f13522016-05-27 14:28:05 +0100347 default 0
348 help
349 The size of L1 Dcache lines, if known at compile time.
350
Paul Burton5e511422016-05-27 14:28:04 +0100351config SYS_ICACHE_SIZE
352 int
353 default 0
354 help
355 The total size of the L1 ICache, if known at compile time.
356
Paul Burton62f13522016-05-27 14:28:05 +0100357config SYS_ICACHE_LINE_SIZE
Paul Burton5e511422016-05-27 14:28:04 +0100358 int
359 default 0
360 help
Paul Burton62f13522016-05-27 14:28:05 +0100361 The size of L1 Icache lines, if known at compile time.
Paul Burton5e511422016-05-27 14:28:04 +0100362
363config SYS_CACHE_SIZE_AUTO
364 def_bool y if SYS_DCACHE_SIZE = 0 && SYS_ICACHE_SIZE = 0 && \
Paul Burton62f13522016-05-27 14:28:05 +0100365 SYS_DCACHE_LINE_SIZE = 0 && SYS_ICACHE_LINE_SIZE = 0
Paul Burton5e511422016-05-27 14:28:04 +0100366 help
367 Select this (or let it be auto-selected by not defining any cache
368 sizes) in order to allow U-Boot to automatically detect the sizes
369 of caches at runtime. This has a small cost in code size & runtime
370 so if you know the cache configuration for your system at compile
371 time it would be beneficial to configure it.
372
Daniel Schwierzeck02ca55e2016-01-09 17:32:50 +0100373config MIPS_L1_CACHE_SHIFT_4
374 bool
375
376config MIPS_L1_CACHE_SHIFT_5
377 bool
378
379config MIPS_L1_CACHE_SHIFT_6
380 bool
381
382config MIPS_L1_CACHE_SHIFT_7
383 bool
384
385config MIPS_L1_CACHE_SHIFT
386 int
387 default "7" if MIPS_L1_CACHE_SHIFT_7
388 default "6" if MIPS_L1_CACHE_SHIFT_6
389 default "5" if MIPS_L1_CACHE_SHIFT_5
390 default "4" if MIPS_L1_CACHE_SHIFT_4
391 default "5"
392
Paul Burton81560782016-09-21 11:18:54 +0100393config MIPS_L2_CACHE
394 bool
395 help
396 Select this if your system includes an L2 cache and you want U-Boot
397 to initialise & maintain it.
398
Paul Burton8d6600b2016-01-29 13:54:52 +0000399config DYNAMIC_IO_PORT_BASE
400 bool
401
Paul Burton79ac1742016-09-21 11:18:53 +0100402config MIPS_CM
403 bool
404 help
405 Select this if your system contains a MIPS Coherence Manager and you
406 wish U-Boot to configure it or make use of it to retrieve system
407 information such as cache configuration.
408
Daniel Schwierzecka4c242b2014-10-26 14:14:07 +0100409endif
410
Masahiro Yamadad3ae6782014-07-30 14:08:14 +0900411endmenu