blob: 071dea04ec7c1f554afe12096d10b6a83dc6a444 [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"
Michal Simek5ed063d2018-07-23 15:55:13 +020017 select ROM_EXCEPTION_VECTORS
Daniel Schwierzeck0e1dc342014-10-26 14:14:07 +010018 select SUPPORTS_BIG_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
Michal Simek5ed063d2018-07-23 15:55:13 +020023 select SUPPORTS_LITTLE_ENDIAN
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
Daniel Schwierzeckd1c3d8b2018-09-07 19:18:44 +020031 select MIPS_INSERT_BOOT_CONFIG
Michal Simek5ed063d2018-07-23 15:55:13 +020032 select MIPS_L1_CACHE_SHIFT_6
Paul Burton566ce04d2016-09-21 11:18:56 +010033 select MIPS_L2_CACHE
Paul Burton6242aa12016-05-17 07:43:28 +010034 select OF_CONTROL
35 select OF_ISA_BUS
Michal Simek5ed063d2018-07-23 15:55:13 +020036 select ROM_EXCEPTION_VECTORS
Daniel Schwierzeck0e1dc342014-10-26 14:14:07 +010037 select SUPPORTS_BIG_ENDIAN
Daniel Schwierzeck02611cb2014-10-26 14:14:07 +010038 select SUPPORTS_CPU_MIPS32_R1
39 select SUPPORTS_CPU_MIPS32_R2
Paul Burton40ba13c2016-05-16 10:52:14 +010040 select SUPPORTS_CPU_MIPS32_R6
Paul Burton0f832b92016-05-26 14:49:36 +010041 select SUPPORTS_CPU_MIPS64_R1
42 select SUPPORTS_CPU_MIPS64_R2
43 select SUPPORTS_CPU_MIPS64_R6
Michal Simek5ed063d2018-07-23 15:55:13 +020044 select SUPPORTS_LITTLE_ENDIAN
Daniel Schwierzeck9d638ee2015-01-18 22:00:18 +010045 select SWAP_IO_SPACE
Michal Simek08a00cb2018-07-23 15:55:14 +020046 imply CMD_DM
Masahiro Yamadadd840582014-07-30 14:08:14 +090047
48config TARGET_VCT
49 bool "Support vct"
Michal Simek5ed063d2018-07-23 15:55:13 +020050 select ROM_EXCEPTION_VECTORS
Daniel Schwierzeck0e1dc342014-10-26 14:14:07 +010051 select SUPPORTS_BIG_ENDIAN
Daniel Schwierzeck02611cb2014-10-26 14:14:07 +010052 select SUPPORTS_CPU_MIPS32_R1
53 select SUPPORTS_CPU_MIPS32_R2
Paul Burtondd7c7202015-01-29 01:28:02 +000054 select SYS_MIPS_CACHE_INIT_RAM_LOAD
Masahiro Yamadadd840582014-07-30 14:08:14 +090055
Wills Wang1d3d0f12016-03-16 16:59:52 +080056config ARCH_ATH79
57 bool "Support QCA/Atheros ath79"
Wills Wang1d3d0f12016-03-16 16:59:52 +080058 select DM
Michal Simek5ed063d2018-07-23 15:55:13 +020059 select OF_CONTROL
Michal Simek08a00cb2018-07-23 15:55:14 +020060 imply CMD_DM
Wills Wang1d3d0f12016-03-16 16:59:52 +080061
Álvaro Fernández Rojasee422142017-04-25 00:39:20 +020062config ARCH_BMIPS
63 bool "Support BMIPS SoCs"
Álvaro Fernández Rojasee422142017-04-25 00:39:20 +020064 select CLK
65 select CPU
Michal Simek5ed063d2018-07-23 15:55:13 +020066 select DM
67 select OF_CONTROL
Álvaro Fernández Rojasee422142017-04-25 00:39:20 +020068 select RAM
69 select SYSRESET
Michal Simek08a00cb2018-07-23 15:55:14 +020070 imply CMD_DM
Álvaro Fernández Rojasee422142017-04-25 00:39:20 +020071
Stefan Roese4c835a62018-09-05 15:12:35 +020072config ARCH_MT7620
73 bool "Support MT7620/7688 SoCs"
74 imply CMD_DM
75 select DISPLAY_CPUINFO
76 select DM
77 select DM_SERIAL
78 imply DM_SPI
79 imply DM_SPI_FLASH
80 select MIPS_TUNE_24KC
81 select OF_CONTROL
82 select ROM_EXCEPTION_VECTORS
83 select SUPPORTS_CPU_MIPS32_R1
84 select SUPPORTS_CPU_MIPS32_R2
85 select SUPPORTS_LITTLE_ENDIAN
Stefan Roese41f6e6e2018-08-16 15:27:32 +020086 select SYSRESET
Stefan Roese4c835a62018-09-05 15:12:35 +020087
Purna Chandra Mandal32c1a6e2016-01-28 15:30:10 +053088config MACH_PIC32
89 bool "Support Microchip PIC32"
Purna Chandra Mandal32c1a6e2016-01-28 15:30:10 +053090 select DM
Michal Simek5ed063d2018-07-23 15:55:13 +020091 select OF_CONTROL
Michal Simek08a00cb2018-07-23 15:55:14 +020092 imply CMD_DM
Purna Chandra Mandal32c1a6e2016-01-28 15:30:10 +053093
Paul Burtonad8783c2016-09-08 07:47:39 +010094config TARGET_BOSTON
95 bool "Support Boston"
96 select DM
97 select DM_SERIAL
Paul Burtonad8783c2016-09-08 07:47:39 +010098 select MIPS_CM
99 select MIPS_L1_CACHE_SHIFT_6
100 select MIPS_L2_CACHE
Paul Burtond2b12a52017-04-30 21:22:42 +0200101 select OF_BOARD_SETUP
Michal Simek5ed063d2018-07-23 15:55:13 +0200102 select OF_CONTROL
103 select ROM_EXCEPTION_VECTORS
Paul Burtonad8783c2016-09-08 07:47:39 +0100104 select SUPPORTS_BIG_ENDIAN
Paul Burtonad8783c2016-09-08 07:47:39 +0100105 select SUPPORTS_CPU_MIPS32_R1
106 select SUPPORTS_CPU_MIPS32_R2
107 select SUPPORTS_CPU_MIPS32_R6
108 select SUPPORTS_CPU_MIPS64_R1
109 select SUPPORTS_CPU_MIPS64_R2
110 select SUPPORTS_CPU_MIPS64_R6
Michal Simek5ed063d2018-07-23 15:55:13 +0200111 select SUPPORTS_LITTLE_ENDIAN
Michal Simek08a00cb2018-07-23 15:55:14 +0200112 imply CMD_DM
Paul Burtonad8783c2016-09-08 07:47:39 +0100113
Zubair Lutfullah Kakakhelebf2b9e2016-07-29 15:11:20 +0100114config TARGET_XILFPGA
115 bool "Support Imagination Xilfpga"
Zubair Lutfullah Kakakhelebf2b9e2016-07-29 15:11:20 +0100116 select DM
Zubair Lutfullah Kakakhelebf2b9e2016-07-29 15:11:20 +0100117 select DM_ETH
Michal Simek5ed063d2018-07-23 15:55:13 +0200118 select DM_GPIO
119 select DM_SERIAL
120 select MIPS_L1_CACHE_SHIFT_4
121 select OF_CONTROL
122 select ROM_EXCEPTION_VECTORS
Zubair Lutfullah Kakakhelebf2b9e2016-07-29 15:11:20 +0100123 select SUPPORTS_CPU_MIPS32_R1
124 select SUPPORTS_CPU_MIPS32_R2
Michal Simek5ed063d2018-07-23 15:55:13 +0200125 select SUPPORTS_LITTLE_ENDIAN
Michal Simek08a00cb2018-07-23 15:55:14 +0200126 imply CMD_DM
Zubair Lutfullah Kakakhelebf2b9e2016-07-29 15:11:20 +0100127 help
128 This supports IMGTEC MIPSfpga platform
129
Masahiro Yamadadd840582014-07-30 14:08:14 +0900130endchoice
131
Paul Burtonad8783c2016-09-08 07:47:39 +0100132source "board/imgtec/boston/Kconfig"
Masahiro Yamadadd840582014-07-30 14:08:14 +0900133source "board/imgtec/malta/Kconfig"
Zubair Lutfullah Kakakhelebf2b9e2016-07-29 15:11:20 +0100134source "board/imgtec/xilfpga/Kconfig"
Masahiro Yamadadd840582014-07-30 14:08:14 +0900135source "board/micronas/vct/Kconfig"
Masahiro Yamadadd840582014-07-30 14:08:14 +0900136source "board/qemu-mips/Kconfig"
Wills Wang1d3d0f12016-03-16 16:59:52 +0800137source "arch/mips/mach-ath79/Kconfig"
Álvaro Fernández Rojasee422142017-04-25 00:39:20 +0200138source "arch/mips/mach-bmips/Kconfig"
Purna Chandra Mandal32c1a6e2016-01-28 15:30:10 +0530139source "arch/mips/mach-pic32/Kconfig"
Stefan Roese4c835a62018-09-05 15:12:35 +0200140source "arch/mips/mach-mt7620/Kconfig"
Masahiro Yamadadd840582014-07-30 14:08:14 +0900141
Daniel Schwierzeck0e1dc342014-10-26 14:14:07 +0100142if MIPS
143
144choice
145 prompt "Endianness selection"
146 help
147 Some MIPS boards can be configured for either little or big endian
148 byte order. These modes require different U-Boot images. In general there
149 is one preferred byteorder for a particular system but some systems are
150 just as commonly used in the one or the other endianness.
151
152config SYS_BIG_ENDIAN
153 bool "Big endian"
154 depends on SUPPORTS_BIG_ENDIAN
155
156config SYS_LITTLE_ENDIAN
157 bool "Little endian"
158 depends on SUPPORTS_LITTLE_ENDIAN
159
160endchoice
161
Daniel Schwierzeck02611cb2014-10-26 14:14:07 +0100162choice
163 prompt "CPU selection"
164 default CPU_MIPS32_R2
165
166config CPU_MIPS32_R1
167 bool "MIPS32 Release 1"
168 depends on SUPPORTS_CPU_MIPS32_R1
169 select 32BIT
170 help
Paul Burtonc52ebea2016-05-16 10:52:12 +0100171 Choose this option to build an U-Boot for release 1 through 5 of the
Daniel Schwierzeck02611cb2014-10-26 14:14:07 +0100172 MIPS32 architecture.
173
174config CPU_MIPS32_R2
175 bool "MIPS32 Release 2"
176 depends on SUPPORTS_CPU_MIPS32_R2
177 select 32BIT
178 help
Paul Burtonc52ebea2016-05-16 10:52:12 +0100179 Choose this option to build an U-Boot for release 2 through 5 of the
180 MIPS32 architecture.
181
182config CPU_MIPS32_R6
183 bool "MIPS32 Release 6"
184 depends on SUPPORTS_CPU_MIPS32_R6
185 select 32BIT
186 help
187 Choose this option to build an U-Boot for release 6 or later of the
Daniel Schwierzeck02611cb2014-10-26 14:14:07 +0100188 MIPS32 architecture.
189
190config CPU_MIPS64_R1
191 bool "MIPS64 Release 1"
192 depends on SUPPORTS_CPU_MIPS64_R1
193 select 64BIT
194 help
Paul Burtonc52ebea2016-05-16 10:52:12 +0100195 Choose this option to build a kernel for release 1 through 5 of the
Daniel Schwierzeck02611cb2014-10-26 14:14:07 +0100196 MIPS64 architecture.
197
198config CPU_MIPS64_R2
199 bool "MIPS64 Release 2"
200 depends on SUPPORTS_CPU_MIPS64_R2
201 select 64BIT
202 help
Paul Burtonc52ebea2016-05-16 10:52:12 +0100203 Choose this option to build a kernel for release 2 through 5 of the
204 MIPS64 architecture.
205
206config CPU_MIPS64_R6
207 bool "MIPS64 Release 6"
208 depends on SUPPORTS_CPU_MIPS64_R6
209 select 64BIT
210 help
211 Choose this option to build a kernel for release 6 or later of the
Daniel Schwierzeck02611cb2014-10-26 14:14:07 +0100212 MIPS64 architecture.
213
214endchoice
215
Daniel Schwierzeckaf3971f2016-02-14 18:52:57 +0100216menu "General setup"
217
218config ROM_EXCEPTION_VECTORS
219 bool "Build U-Boot image with exception vectors"
220 help
221 Enable this to include exception vectors in the U-Boot image. This is
222 required if the U-Boot entry point is equal to the address of the
223 CPU reset exception vector (e.g. U-Boot as ROM loader in Qemu,
224 U-Boot booted from parallel NOR flash).
225 Disable this, if the U-Boot image is booted from DRAM (e.g. by SPL).
226 In that case the image size will be reduced by 0x500 bytes.
227
Paul Burton939a2552017-05-12 13:26:11 +0200228config MIPS_CM_BASE
229 hex "MIPS CM GCR Base Address"
230 depends on MIPS_CM
Paul Burtoned048e72017-04-30 21:22:41 +0200231 default 0x16100000 if TARGET_BOSTON
Paul Burton939a2552017-05-12 13:26:11 +0200232 default 0x1fbf8000
233 help
234 The physical base address at which to map the MIPS Coherence Manager
235 Global Configuration Registers (GCRs). This should be set such that
236 the GCRs occupy a region of the physical address space which is
237 otherwise unused, or at minimum that software doesn't need to access.
238
Daniel Schwierzeck5ef337a2018-09-07 19:02:05 +0200239config MIPS_CACHE_INDEX_BASE
240 hex "Index base address for cache initialisation"
241 default 0x80000000 if CPU_MIPS32
242 default 0xffffffff80000000 if CPU_MIPS64
243 help
244 This is the base address for a memory block, which is used for
245 initialising the cache lines. This is also the base address of a memory
246 block which is used for loading and filling cache lines when
247 SYS_MIPS_CACHE_INIT_RAM_LOAD is selected.
248 Normally this is CKSEG0. If the MIPS system needs to move this block
249 to some SRAM or ScratchPad RAM, adapt this option accordingly.
250
Daniel Schwierzeckaf3971f2016-02-14 18:52:57 +0100251endmenu
252
Daniel Schwierzeck25fc6642015-01-14 21:44:13 +0100253menu "OS boot interface"
254
255config MIPS_BOOT_CMDLINE_LEGACY
256 bool "Hand over legacy command line to Linux kernel"
257 default y
258 help
259 Enable this option if you want U-Boot to hand over the Yamon-style
260 command line to the kernel. All bootargs will be prepared as argc/argv
261 compatible list. The argument count (argc) is stored in register $a0.
262 The address of the argument list (argv) is stored in register $a1.
263
Daniel Schwierzeckca65e582015-01-14 21:44:13 +0100264config MIPS_BOOT_ENV_LEGACY
265 bool "Hand over legacy environment to Linux kernel"
266 default y
267 help
268 Enable this option if you want U-Boot to hand over the Yamon-style
269 environment to the kernel. Information like memory size, initrd
270 address and size will be prepared as zero-terminated key/value list.
Robert P. J. Day1cc0a9f2016-05-04 04:47:31 -0400271 The address of the environment is stored in register $a2.
Daniel Schwierzeckca65e582015-01-14 21:44:13 +0100272
Daniel Schwierzeck5002d8c2015-01-14 21:44:13 +0100273config MIPS_BOOT_FDT
Daniel Schwierzeck90b1c9f2015-02-22 16:58:30 +0100274 bool "Hand over a flattened device tree to Linux kernel"
Daniel Schwierzeck5002d8c2015-01-14 21:44:13 +0100275 default n
276 help
277 Enable this option if you want U-Boot to hand over a flattened
Daniel Schwierzeck90b1c9f2015-02-22 16:58:30 +0100278 device tree to the kernel. According to UHI register $a0 will be set
279 to -2 and the FDT address is stored in $a1.
Daniel Schwierzeck5002d8c2015-01-14 21:44:13 +0100280
Daniel Schwierzeck25fc6642015-01-14 21:44:13 +0100281endmenu
282
Daniel Schwierzeck0e1dc342014-10-26 14:14:07 +0100283config SUPPORTS_BIG_ENDIAN
284 bool
285
286config SUPPORTS_LITTLE_ENDIAN
287 bool
288
Daniel Schwierzeck02611cb2014-10-26 14:14:07 +0100289config SUPPORTS_CPU_MIPS32_R1
290 bool
291
292config SUPPORTS_CPU_MIPS32_R2
293 bool
294
Paul Burtonc52ebea2016-05-16 10:52:12 +0100295config SUPPORTS_CPU_MIPS32_R6
296 bool
297
Daniel Schwierzeck02611cb2014-10-26 14:14:07 +0100298config SUPPORTS_CPU_MIPS64_R1
299 bool
300
301config SUPPORTS_CPU_MIPS64_R2
302 bool
303
Paul Burtonc52ebea2016-05-16 10:52:12 +0100304config SUPPORTS_CPU_MIPS64_R6
305 bool
306
Daniel Schwierzeckc57dafb2015-01-18 21:59:35 +0100307config CPU_MIPS32
308 bool
Paul Burtonc52ebea2016-05-16 10:52:12 +0100309 default y if CPU_MIPS32_R1 || CPU_MIPS32_R2 || CPU_MIPS32_R6
Daniel Schwierzeckc57dafb2015-01-18 21:59:35 +0100310
311config CPU_MIPS64
312 bool
Paul Burtonc52ebea2016-05-16 10:52:12 +0100313 default y if CPU_MIPS64_R1 || CPU_MIPS64_R2 || CPU_MIPS64_R6
Daniel Schwierzeckc57dafb2015-01-18 21:59:35 +0100314
Daniel Schwierzeck0315a282015-12-26 19:55:37 +0100315config MIPS_TUNE_4KC
316 bool
317
318config MIPS_TUNE_14KC
319 bool
320
321config MIPS_TUNE_24KC
322 bool
323
Daniel Schwierzeck5f9cc362016-05-27 15:39:39 +0200324config MIPS_TUNE_34KC
325 bool
326
Marek Vasut0a0a9582016-05-06 20:10:33 +0200327config MIPS_TUNE_74KC
328 bool
329
Daniel Schwierzeck02611cb2014-10-26 14:14:07 +0100330config 32BIT
331 bool
332
333config 64BIT
334 bool
335
Daniel Schwierzeck9d638ee2015-01-18 22:00:18 +0100336config SWAP_IO_SPACE
337 bool
338
Paul Burtondd7c7202015-01-29 01:28:02 +0000339config SYS_MIPS_CACHE_INIT_RAM_LOAD
340 bool
341
Daniel Schwierzeck924ad862016-06-04 16:13:21 +0200342config MIPS_INIT_STACK_IN_SRAM
343 bool
344 default n
345 help
346 Select this if the initial stack frame could be setup in SRAM.
347 Normally the initial stack frame is set up in DRAM which is often
348 only available after lowlevel_init. With this option the initial
349 stack frame and the early C environment is set up before
350 lowlevel_init. Thus lowlevel_init does not need to be implemented
351 in assembler.
352
Paul Burtonace3be42016-05-27 14:28:04 +0100353config SYS_DCACHE_SIZE
354 int
355 default 0
356 help
357 The total size of the L1 Dcache, if known at compile time.
358
Paul Burton37228622016-05-27 14:28:05 +0100359config SYS_DCACHE_LINE_SIZE
Paul Burton4b7b0a02016-06-09 13:09:52 +0100360 int
Paul Burton37228622016-05-27 14:28:05 +0100361 default 0
362 help
363 The size of L1 Dcache lines, if known at compile time.
364
Paul Burtonace3be42016-05-27 14:28:04 +0100365config SYS_ICACHE_SIZE
366 int
367 default 0
368 help
369 The total size of the L1 ICache, if known at compile time.
370
Paul Burton37228622016-05-27 14:28:05 +0100371config SYS_ICACHE_LINE_SIZE
Paul Burtonace3be42016-05-27 14:28:04 +0100372 int
373 default 0
374 help
Paul Burton37228622016-05-27 14:28:05 +0100375 The size of L1 Icache lines, if known at compile time.
Paul Burtonace3be42016-05-27 14:28:04 +0100376
377config SYS_CACHE_SIZE_AUTO
378 def_bool y if SYS_DCACHE_SIZE = 0 && SYS_ICACHE_SIZE = 0 && \
Paul Burton37228622016-05-27 14:28:05 +0100379 SYS_DCACHE_LINE_SIZE = 0 && SYS_ICACHE_LINE_SIZE = 0
Paul Burtonace3be42016-05-27 14:28:04 +0100380 help
381 Select this (or let it be auto-selected by not defining any cache
382 sizes) in order to allow U-Boot to automatically detect the sizes
383 of caches at runtime. This has a small cost in code size & runtime
384 so if you know the cache configuration for your system at compile
385 time it would be beneficial to configure it.
386
Daniel Schwierzeckf53830e2016-01-09 17:32:50 +0100387config MIPS_L1_CACHE_SHIFT_4
388 bool
389
390config MIPS_L1_CACHE_SHIFT_5
391 bool
392
393config MIPS_L1_CACHE_SHIFT_6
394 bool
395
396config MIPS_L1_CACHE_SHIFT_7
397 bool
398
399config MIPS_L1_CACHE_SHIFT
400 int
401 default "7" if MIPS_L1_CACHE_SHIFT_7
402 default "6" if MIPS_L1_CACHE_SHIFT_6
403 default "5" if MIPS_L1_CACHE_SHIFT_5
404 default "4" if MIPS_L1_CACHE_SHIFT_4
405 default "5"
406
Paul Burton4baa0ab2016-09-21 11:18:54 +0100407config MIPS_L2_CACHE
408 bool
409 help
410 Select this if your system includes an L2 cache and you want U-Boot
411 to initialise & maintain it.
412
Paul Burton05e34252016-01-29 13:54:52 +0000413config DYNAMIC_IO_PORT_BASE
414 bool
415
Paul Burtonb2b135d2016-09-21 11:18:53 +0100416config MIPS_CM
417 bool
418 help
419 Select this if your system contains a MIPS Coherence Manager and you
420 wish U-Boot to configure it or make use of it to retrieve system
421 information such as cache configuration.
422
Daniel Schwierzeckd1c3d8b2018-09-07 19:18:44 +0200423config MIPS_INSERT_BOOT_CONFIG
424 bool
425 default n
426 help
427 Enable this to insert some board-specific boot configuration in
428 the U-Boot binary at offset 0x10.
429
430config MIPS_BOOT_CONFIG_WORD0
431 hex
432 depends on MIPS_INSERT_BOOT_CONFIG
433 default 0x420 if TARGET_MALTA
434 default 0x0
435 help
436 Value which is inserted as boot config word 0.
437
438config MIPS_BOOT_CONFIG_WORD1
439 hex
440 depends on MIPS_INSERT_BOOT_CONFIG
441 default 0x0
442 help
443 Value which is inserted as boot config word 1.
444
Daniel Schwierzeck0e1dc342014-10-26 14:14:07 +0100445endif
446
Masahiro Yamadadd840582014-07-30 14:08:14 +0900447endmenu