blob: f71597f6dac483561bbe96669d6791e93e2b2936 [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"
Michal Simek84f3dec2018-07-23 15:55:13 +020017 select ROM_EXCEPTION_VECTORS
Daniel Schwierzecka4c242b2014-10-26 14:14:07 +010018 select SUPPORTS_BIG_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
Michal Simek84f3dec2018-07-23 15:55:13 +020023 select SUPPORTS_LITTLE_ENDIAN
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
Daniel Schwierzeck2cc9a772018-09-07 19:18:44 +020031 select MIPS_INSERT_BOOT_CONFIG
Michal Simek84f3dec2018-07-23 15:55:13 +020032 select MIPS_L1_CACHE_SHIFT_6
Paul Burton59a4c8b2016-09-21 11:18:56 +010033 select MIPS_L2_CACHE
Paul Burtona31a3df2016-05-17 07:43:28 +010034 select OF_CONTROL
35 select OF_ISA_BUS
Michal Simek84f3dec2018-07-23 15:55:13 +020036 select ROM_EXCEPTION_VECTORS
Daniel Schwierzecka4c242b2014-10-26 14:14:07 +010037 select SUPPORTS_BIG_ENDIAN
Daniel Schwierzeck256034d2014-10-26 14:14:07 +010038 select SUPPORTS_CPU_MIPS32_R1
39 select SUPPORTS_CPU_MIPS32_R2
Paul Burton1c10e0d2016-05-16 10:52:14 +010040 select SUPPORTS_CPU_MIPS32_R6
Paul Burton825cfbd2016-05-26 14:49:36 +010041 select SUPPORTS_CPU_MIPS64_R1
42 select SUPPORTS_CPU_MIPS64_R2
43 select SUPPORTS_CPU_MIPS64_R6
Michal Simek84f3dec2018-07-23 15:55:13 +020044 select SUPPORTS_LITTLE_ENDIAN
Daniel Schwierzeck7dca6862015-01-18 22:00:18 +010045 select SWAP_IO_SPACE
Michal Simek2e7c8192018-07-23 15:55:14 +020046 imply CMD_DM
Masahiro Yamadad3ae6782014-07-30 14:08:14 +090047
48config TARGET_VCT
49 bool "Support vct"
Michal Simek84f3dec2018-07-23 15:55:13 +020050 select ROM_EXCEPTION_VECTORS
Daniel Schwierzecka4c242b2014-10-26 14:14:07 +010051 select SUPPORTS_BIG_ENDIAN
Daniel Schwierzeck256034d2014-10-26 14:14:07 +010052 select SUPPORTS_CPU_MIPS32_R1
53 select SUPPORTS_CPU_MIPS32_R2
Paul Burton6832bdc2015-01-29 01:28:02 +000054 select SYS_MIPS_CACHE_INIT_RAM_LOAD
Masahiro Yamadad3ae6782014-07-30 14:08:14 +090055
Wills Wang833a1a82016-03-16 16:59:52 +080056config ARCH_ATH79
57 bool "Support QCA/Atheros ath79"
Wills Wang833a1a82016-03-16 16:59:52 +080058 select DM
Michal Simek84f3dec2018-07-23 15:55:13 +020059 select OF_CONTROL
Michal Simek2e7c8192018-07-23 15:55:14 +020060 imply CMD_DM
Wills Wang833a1a82016-03-16 16:59:52 +080061
Álvaro Fernández Rojas98a97a82017-04-25 00:39:20 +020062config ARCH_BMIPS
63 bool "Support BMIPS SoCs"
Álvaro Fernández Rojas98a97a82017-04-25 00:39:20 +020064 select CLK
65 select CPU
Michal Simek84f3dec2018-07-23 15:55:13 +020066 select DM
67 select OF_CONTROL
Álvaro Fernández Rojas98a97a82017-04-25 00:39:20 +020068 select RAM
69 select SYSRESET
Michal Simek2e7c8192018-07-23 15:55:14 +020070 imply CMD_DM
Álvaro Fernández Rojas98a97a82017-04-25 00:39:20 +020071
Purna Chandra Mandal825b3212016-01-28 15:30:10 +053072config MACH_PIC32
73 bool "Support Microchip PIC32"
Purna Chandra Mandal825b3212016-01-28 15:30:10 +053074 select DM
Michal Simek84f3dec2018-07-23 15:55:13 +020075 select OF_CONTROL
Michal Simek2e7c8192018-07-23 15:55:14 +020076 imply CMD_DM
Purna Chandra Mandal825b3212016-01-28 15:30:10 +053077
Paul Burtonf5de32a2016-09-08 07:47:39 +010078config TARGET_BOSTON
79 bool "Support Boston"
80 select DM
81 select DM_SERIAL
Paul Burtonf5de32a2016-09-08 07:47:39 +010082 select MIPS_CM
83 select MIPS_L1_CACHE_SHIFT_6
84 select MIPS_L2_CACHE
Paul Burtona315bcd2017-04-30 21:22:42 +020085 select OF_BOARD_SETUP
Michal Simek84f3dec2018-07-23 15:55:13 +020086 select OF_CONTROL
87 select ROM_EXCEPTION_VECTORS
Paul Burtonf5de32a2016-09-08 07:47:39 +010088 select SUPPORTS_BIG_ENDIAN
Paul Burtonf5de32a2016-09-08 07:47:39 +010089 select SUPPORTS_CPU_MIPS32_R1
90 select SUPPORTS_CPU_MIPS32_R2
91 select SUPPORTS_CPU_MIPS32_R6
92 select SUPPORTS_CPU_MIPS64_R1
93 select SUPPORTS_CPU_MIPS64_R2
94 select SUPPORTS_CPU_MIPS64_R6
Michal Simek84f3dec2018-07-23 15:55:13 +020095 select SUPPORTS_LITTLE_ENDIAN
Michal Simek2e7c8192018-07-23 15:55:14 +020096 imply CMD_DM
Paul Burtonf5de32a2016-09-08 07:47:39 +010097
Zubair Lutfullah Kakakhel1d153b32016-07-29 15:11:20 +010098config TARGET_XILFPGA
99 bool "Support Imagination Xilfpga"
Zubair Lutfullah Kakakhel1d153b32016-07-29 15:11:20 +0100100 select DM
Zubair Lutfullah Kakakhel1d153b32016-07-29 15:11:20 +0100101 select DM_ETH
Michal Simek84f3dec2018-07-23 15:55:13 +0200102 select DM_GPIO
103 select DM_SERIAL
Zubair Lutfullah Kakakhel1d153b32016-07-29 15:11:20 +0100104 select MIPS_L1_CACHE_SHIFT_4
Michal Simek84f3dec2018-07-23 15:55:13 +0200105 select OF_CONTROL
Daniel Schwierzeck754cd052016-02-14 18:52:57 +0100106 select ROM_EXCEPTION_VECTORS
Michal Simek84f3dec2018-07-23 15:55:13 +0200107 select SUPPORTS_CPU_MIPS32_R1
108 select SUPPORTS_CPU_MIPS32_R2
109 select SUPPORTS_LITTLE_ENDIAN
Michal Simek2e7c8192018-07-23 15:55:14 +0200110 imply CMD_DM
Zubair Lutfullah Kakakhel1d153b32016-07-29 15:11:20 +0100111 help
112 This supports IMGTEC MIPSfpga platform
113
Masahiro Yamadad3ae6782014-07-30 14:08:14 +0900114endchoice
115
Paul Burtonf5de32a2016-09-08 07:47:39 +0100116source "board/imgtec/boston/Kconfig"
Masahiro Yamadad3ae6782014-07-30 14:08:14 +0900117source "board/imgtec/malta/Kconfig"
Zubair Lutfullah Kakakhel1d153b32016-07-29 15:11:20 +0100118source "board/imgtec/xilfpga/Kconfig"
Masahiro Yamadad3ae6782014-07-30 14:08:14 +0900119source "board/micronas/vct/Kconfig"
Masahiro Yamadad3ae6782014-07-30 14:08:14 +0900120source "board/qemu-mips/Kconfig"
Wills Wang833a1a82016-03-16 16:59:52 +0800121source "arch/mips/mach-ath79/Kconfig"
Álvaro Fernández Rojas98a97a82017-04-25 00:39:20 +0200122source "arch/mips/mach-bmips/Kconfig"
Purna Chandra Mandal825b3212016-01-28 15:30:10 +0530123source "arch/mips/mach-pic32/Kconfig"
Masahiro Yamadad3ae6782014-07-30 14:08:14 +0900124
Daniel Schwierzecka4c242b2014-10-26 14:14:07 +0100125if MIPS
126
127choice
128 prompt "Endianness selection"
129 help
130 Some MIPS boards can be configured for either little or big endian
131 byte order. These modes require different U-Boot images. In general there
132 is one preferred byteorder for a particular system but some systems are
133 just as commonly used in the one or the other endianness.
134
135config SYS_BIG_ENDIAN
136 bool "Big endian"
137 depends on SUPPORTS_BIG_ENDIAN
138
139config SYS_LITTLE_ENDIAN
140 bool "Little endian"
141 depends on SUPPORTS_LITTLE_ENDIAN
142
143endchoice
144
Daniel Schwierzeck256034d2014-10-26 14:14:07 +0100145choice
146 prompt "CPU selection"
147 default CPU_MIPS32_R2
148
149config CPU_MIPS32_R1
150 bool "MIPS32 Release 1"
151 depends on SUPPORTS_CPU_MIPS32_R1
152 select 32BIT
153 help
Paul Burton55e29dd2016-05-16 10:52:12 +0100154 Choose this option to build an U-Boot for release 1 through 5 of the
Daniel Schwierzeck256034d2014-10-26 14:14:07 +0100155 MIPS32 architecture.
156
157config CPU_MIPS32_R2
158 bool "MIPS32 Release 2"
159 depends on SUPPORTS_CPU_MIPS32_R2
160 select 32BIT
161 help
Paul Burton55e29dd2016-05-16 10:52:12 +0100162 Choose this option to build an U-Boot for release 2 through 5 of the
Daniel Schwierzeck256034d2014-10-26 14:14:07 +0100163 MIPS32 architecture.
164
Paul Burton55e29dd2016-05-16 10:52:12 +0100165config CPU_MIPS32_R6
166 bool "MIPS32 Release 6"
167 depends on SUPPORTS_CPU_MIPS32_R6
168 select 32BIT
169 help
170 Choose this option to build an U-Boot for release 6 or later of the
171 MIPS32 architecture.
172
Daniel Schwierzeck256034d2014-10-26 14:14:07 +0100173config CPU_MIPS64_R1
174 bool "MIPS64 Release 1"
175 depends on SUPPORTS_CPU_MIPS64_R1
176 select 64BIT
177 help
Paul Burton55e29dd2016-05-16 10:52:12 +0100178 Choose this option to build a kernel for release 1 through 5 of the
Daniel Schwierzeck256034d2014-10-26 14:14:07 +0100179 MIPS64 architecture.
180
181config CPU_MIPS64_R2
182 bool "MIPS64 Release 2"
183 depends on SUPPORTS_CPU_MIPS64_R2
184 select 64BIT
185 help
Paul Burton55e29dd2016-05-16 10:52:12 +0100186 Choose this option to build a kernel for release 2 through 5 of the
187 MIPS64 architecture.
188
189config CPU_MIPS64_R6
190 bool "MIPS64 Release 6"
191 depends on SUPPORTS_CPU_MIPS64_R6
192 select 64BIT
193 help
194 Choose this option to build a kernel for release 6 or later of the
Daniel Schwierzeck256034d2014-10-26 14:14:07 +0100195 MIPS64 architecture.
196
197endchoice
198
Daniel Schwierzeck754cd052016-02-14 18:52:57 +0100199menu "General setup"
200
201config ROM_EXCEPTION_VECTORS
202 bool "Build U-Boot image with exception vectors"
203 help
204 Enable this to include exception vectors in the U-Boot image. This is
205 required if the U-Boot entry point is equal to the address of the
206 CPU reset exception vector (e.g. U-Boot as ROM loader in Qemu,
207 U-Boot booted from parallel NOR flash).
208 Disable this, if the U-Boot image is booted from DRAM (e.g. by SPL).
209 In that case the image size will be reduced by 0x500 bytes.
210
Paul Burton3d6864a2017-05-12 13:26:11 +0200211config MIPS_CM_BASE
212 hex "MIPS CM GCR Base Address"
213 depends on MIPS_CM
Paul Burtona6ac9652017-04-30 21:22:41 +0200214 default 0x16100000 if TARGET_BOSTON
Paul Burton3d6864a2017-05-12 13:26:11 +0200215 default 0x1fbf8000
216 help
217 The physical base address at which to map the MIPS Coherence Manager
218 Global Configuration Registers (GCRs). This should be set such that
219 the GCRs occupy a region of the physical address space which is
220 otherwise unused, or at minimum that software doesn't need to access.
221
Daniel Schwierzeck754cd052016-02-14 18:52:57 +0100222endmenu
223
Daniel Schwierzeckf9749fa2015-01-14 21:44:13 +0100224menu "OS boot interface"
225
226config MIPS_BOOT_CMDLINE_LEGACY
227 bool "Hand over legacy command line to Linux kernel"
228 default y
229 help
230 Enable this option if you want U-Boot to hand over the Yamon-style
231 command line to the kernel. All bootargs will be prepared as argc/argv
232 compatible list. The argument count (argc) is stored in register $a0.
233 The address of the argument list (argv) is stored in register $a1.
234
Daniel Schwierzeckc07dc602015-01-14 21:44:13 +0100235config MIPS_BOOT_ENV_LEGACY
236 bool "Hand over legacy environment to Linux kernel"
237 default y
238 help
239 Enable this option if you want U-Boot to hand over the Yamon-style
240 environment to the kernel. Information like memory size, initrd
241 address and size will be prepared as zero-terminated key/value list.
Robert P. J. Day8c60f922016-05-04 04:47:31 -0400242 The address of the environment is stored in register $a2.
Daniel Schwierzeckc07dc602015-01-14 21:44:13 +0100243
Daniel Schwierzeck8d7ff4d2015-01-14 21:44:13 +0100244config MIPS_BOOT_FDT
Daniel Schwierzeckd1b29d22015-02-22 16:58:30 +0100245 bool "Hand over a flattened device tree to Linux kernel"
Daniel Schwierzeck8d7ff4d2015-01-14 21:44:13 +0100246 default n
247 help
248 Enable this option if you want U-Boot to hand over a flattened
Daniel Schwierzeckd1b29d22015-02-22 16:58:30 +0100249 device tree to the kernel. According to UHI register $a0 will be set
250 to -2 and the FDT address is stored in $a1.
Daniel Schwierzeck8d7ff4d2015-01-14 21:44:13 +0100251
Daniel Schwierzeckf9749fa2015-01-14 21:44:13 +0100252endmenu
253
Daniel Schwierzecka4c242b2014-10-26 14:14:07 +0100254config SUPPORTS_BIG_ENDIAN
255 bool
256
257config SUPPORTS_LITTLE_ENDIAN
258 bool
259
Daniel Schwierzeck256034d2014-10-26 14:14:07 +0100260config SUPPORTS_CPU_MIPS32_R1
261 bool
262
263config SUPPORTS_CPU_MIPS32_R2
264 bool
265
Paul Burton55e29dd2016-05-16 10:52:12 +0100266config SUPPORTS_CPU_MIPS32_R6
267 bool
268
Daniel Schwierzeck256034d2014-10-26 14:14:07 +0100269config SUPPORTS_CPU_MIPS64_R1
270 bool
271
272config SUPPORTS_CPU_MIPS64_R2
273 bool
274
Paul Burton55e29dd2016-05-16 10:52:12 +0100275config SUPPORTS_CPU_MIPS64_R6
276 bool
277
Daniel Schwierzeckdfbad0f2015-01-18 21:59:35 +0100278config CPU_MIPS32
279 bool
Paul Burton55e29dd2016-05-16 10:52:12 +0100280 default y if CPU_MIPS32_R1 || CPU_MIPS32_R2 || CPU_MIPS32_R6
Daniel Schwierzeckdfbad0f2015-01-18 21:59:35 +0100281
282config CPU_MIPS64
283 bool
Paul Burton55e29dd2016-05-16 10:52:12 +0100284 default y if CPU_MIPS64_R1 || CPU_MIPS64_R2 || CPU_MIPS64_R6
Daniel Schwierzeckdfbad0f2015-01-18 21:59:35 +0100285
Daniel Schwierzeckaadd3322015-12-26 19:55:37 +0100286config MIPS_TUNE_4KC
287 bool
288
289config MIPS_TUNE_14KC
290 bool
291
292config MIPS_TUNE_24KC
293 bool
294
Daniel Schwierzeckc7661d52016-05-27 15:39:39 +0200295config MIPS_TUNE_34KC
296 bool
297
Marek Vasuta9c6e8b2016-05-06 20:10:33 +0200298config MIPS_TUNE_74KC
299 bool
300
Daniel Schwierzeck256034d2014-10-26 14:14:07 +0100301config 32BIT
302 bool
303
304config 64BIT
305 bool
306
Daniel Schwierzeck7dca6862015-01-18 22:00:18 +0100307config SWAP_IO_SPACE
308 bool
309
Paul Burton6832bdc2015-01-29 01:28:02 +0000310config SYS_MIPS_CACHE_INIT_RAM_LOAD
311 bool
312
Daniel Schwierzeck41dc35e2016-06-04 16:13:21 +0200313config MIPS_INIT_STACK_IN_SRAM
314 bool
315 default n
316 help
317 Select this if the initial stack frame could be setup in SRAM.
318 Normally the initial stack frame is set up in DRAM which is often
319 only available after lowlevel_init. With this option the initial
320 stack frame and the early C environment is set up before
321 lowlevel_init. Thus lowlevel_init does not need to be implemented
322 in assembler.
323
Paul Burton5e511422016-05-27 14:28:04 +0100324config SYS_DCACHE_SIZE
325 int
326 default 0
327 help
328 The total size of the L1 Dcache, if known at compile time.
329
Paul Burton62f13522016-05-27 14:28:05 +0100330config SYS_DCACHE_LINE_SIZE
Paul Burton79e49fd2016-06-09 13:09:52 +0100331 int
Paul Burton62f13522016-05-27 14:28:05 +0100332 default 0
333 help
334 The size of L1 Dcache lines, if known at compile time.
335
Paul Burton5e511422016-05-27 14:28:04 +0100336config SYS_ICACHE_SIZE
337 int
338 default 0
339 help
340 The total size of the L1 ICache, if known at compile time.
341
Paul Burton62f13522016-05-27 14:28:05 +0100342config SYS_ICACHE_LINE_SIZE
Paul Burton5e511422016-05-27 14:28:04 +0100343 int
344 default 0
345 help
Paul Burton62f13522016-05-27 14:28:05 +0100346 The size of L1 Icache lines, if known at compile time.
Paul Burton5e511422016-05-27 14:28:04 +0100347
348config SYS_CACHE_SIZE_AUTO
349 def_bool y if SYS_DCACHE_SIZE = 0 && SYS_ICACHE_SIZE = 0 && \
Paul Burton62f13522016-05-27 14:28:05 +0100350 SYS_DCACHE_LINE_SIZE = 0 && SYS_ICACHE_LINE_SIZE = 0
Paul Burton5e511422016-05-27 14:28:04 +0100351 help
352 Select this (or let it be auto-selected by not defining any cache
353 sizes) in order to allow U-Boot to automatically detect the sizes
354 of caches at runtime. This has a small cost in code size & runtime
355 so if you know the cache configuration for your system at compile
356 time it would be beneficial to configure it.
357
Daniel Schwierzeck02ca55e2016-01-09 17:32:50 +0100358config MIPS_L1_CACHE_SHIFT_4
359 bool
360
361config MIPS_L1_CACHE_SHIFT_5
362 bool
363
364config MIPS_L1_CACHE_SHIFT_6
365 bool
366
367config MIPS_L1_CACHE_SHIFT_7
368 bool
369
370config MIPS_L1_CACHE_SHIFT
371 int
372 default "7" if MIPS_L1_CACHE_SHIFT_7
373 default "6" if MIPS_L1_CACHE_SHIFT_6
374 default "5" if MIPS_L1_CACHE_SHIFT_5
375 default "4" if MIPS_L1_CACHE_SHIFT_4
376 default "5"
377
Paul Burton81560782016-09-21 11:18:54 +0100378config MIPS_L2_CACHE
379 bool
380 help
381 Select this if your system includes an L2 cache and you want U-Boot
382 to initialise & maintain it.
383
Paul Burton8d6600b2016-01-29 13:54:52 +0000384config DYNAMIC_IO_PORT_BASE
385 bool
386
Paul Burton79ac1742016-09-21 11:18:53 +0100387config MIPS_CM
388 bool
389 help
390 Select this if your system contains a MIPS Coherence Manager and you
391 wish U-Boot to configure it or make use of it to retrieve system
392 information such as cache configuration.
393
Daniel Schwierzeck2cc9a772018-09-07 19:18:44 +0200394config MIPS_INSERT_BOOT_CONFIG
395 bool
396 default n
397 help
398 Enable this to insert some board-specific boot configuration in
399 the U-Boot binary at offset 0x10.
400
401config MIPS_BOOT_CONFIG_WORD0
402 hex
403 depends on MIPS_INSERT_BOOT_CONFIG
404 default 0x420 if TARGET_MALTA
405 default 0x0
406 help
407 Value which is inserted as boot config word 0.
408
409config MIPS_BOOT_CONFIG_WORD1
410 hex
411 depends on MIPS_INSERT_BOOT_CONFIG
412 default 0x0
413 help
414 Value which is inserted as boot config word 1.
415
Daniel Schwierzecka4c242b2014-10-26 14:14:07 +0100416endif
417
Masahiro Yamadad3ae6782014-07-30 14:08:14 +0900418endmenu