blob: 997e145450c585ac18a4246d5de435d0e11c25d1 [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
Gregory CLEMENTaf05ee52018-12-14 16:16:47 +010062config ARCH_MSCC
63 bool "Support MSCC VCore-III"
64 select OF_CONTROL
65 select DM
66
Álvaro Fernández Rojas98a97a82017-04-25 00:39:20 +020067config ARCH_BMIPS
68 bool "Support BMIPS SoCs"
Álvaro Fernández Rojas98a97a82017-04-25 00:39:20 +020069 select CLK
70 select CPU
Michal Simek84f3dec2018-07-23 15:55:13 +020071 select DM
72 select OF_CONTROL
Álvaro Fernández Rojas98a97a82017-04-25 00:39:20 +020073 select RAM
74 select SYSRESET
Michal Simek2e7c8192018-07-23 15:55:14 +020075 imply CMD_DM
Álvaro Fernández Rojas98a97a82017-04-25 00:39:20 +020076
developer89f051b2019-04-30 11:13:58 +080077config ARCH_MTMIPS
78 bool "Support MediaTek MIPS platforms"
developer591826e2019-09-25 17:45:43 +080079 select CLK
Stefan Roese65da15e2018-09-05 15:12:35 +020080 imply CMD_DM
81 select DISPLAY_CPUINFO
82 select DM
Stefan Roese8bbb6bf2018-10-09 08:59:09 +020083 imply DM_ETH
84 imply DM_GPIO
developer591826e2019-09-25 17:45:43 +080085 select DM_RESET
Stefan Roese65da15e2018-09-05 15:12:35 +020086 select DM_SERIAL
developer591826e2019-09-25 17:45:43 +080087 select PINCTRL
88 select PINMUX
89 select PINCONF
90 select RESET_MTMIPS
Stefan Roese65da15e2018-09-05 15:12:35 +020091 imply DM_SPI
92 imply DM_SPI_FLASH
Stefan Roese17679e42019-05-28 08:11:37 +020093 select LAST_STAGE_INIT
Stefan Roese65da15e2018-09-05 15:12:35 +020094 select MIPS_TUNE_24KC
95 select OF_CONTROL
96 select ROM_EXCEPTION_VECTORS
97 select SUPPORTS_CPU_MIPS32_R1
98 select SUPPORTS_CPU_MIPS32_R2
99 select SUPPORTS_LITTLE_ENDIAN
Stefan Roese845e0fd2018-08-16 15:27:32 +0200100 select SYSRESET
developer19d572e2020-04-21 09:28:47 +0200101 select SUPPORT_SPL
Stefan Roese65da15e2018-09-05 15:12:35 +0200102
Paul Burton96c68472018-12-16 19:25:22 -0300103config ARCH_JZ47XX
104 bool "Support Ingenic JZ47xx"
105 select SUPPORT_SPL
106 select OF_CONTROL
107 select DM
108
Aaron Williamsb2ea8182020-06-30 12:08:56 +0200109config ARCH_OCTEON
110 bool "Support Marvell Octeon CN7xxx platforms"
111 select CPU_CAVIUM_OCTEON
112 select DISPLAY_CPUINFO
113 select DMA_ADDR_T_64BIT
114 select DM
115 select DM_SERIAL
116 select DM_GPIO
117 select DM_ETH
118 select MIPS_L2_CACHE
Stefan Roese15ba8022020-06-30 12:33:17 +0200119 select MIPS_MACH_EARLY_INIT
Aaron Williamsb2ea8182020-06-30 12:08:56 +0200120 select MIPS_TUNE_OCTEON3
121 select ROM_EXCEPTION_VECTORS
122 select SUPPORTS_BIG_ENDIAN
123 select SUPPORTS_CPU_MIPS64_OCTEON
124 select PHYS_64BIT
125 select OF_CONTROL
126 select OF_LIVE
127 imply CMD_DM
128
Purna Chandra Mandal825b3212016-01-28 15:30:10 +0530129config MACH_PIC32
130 bool "Support Microchip PIC32"
Purna Chandra Mandal825b3212016-01-28 15:30:10 +0530131 select DM
Michal Simek84f3dec2018-07-23 15:55:13 +0200132 select OF_CONTROL
Michal Simek2e7c8192018-07-23 15:55:14 +0200133 imply CMD_DM
Purna Chandra Mandal825b3212016-01-28 15:30:10 +0530134
Paul Burtonf5de32a2016-09-08 07:47:39 +0100135config TARGET_BOSTON
136 bool "Support Boston"
137 select DM
138 select DM_SERIAL
Paul Burtonf5de32a2016-09-08 07:47:39 +0100139 select MIPS_CM
140 select MIPS_L1_CACHE_SHIFT_6
141 select MIPS_L2_CACHE
Paul Burtona315bcd2017-04-30 21:22:42 +0200142 select OF_BOARD_SETUP
Michal Simek84f3dec2018-07-23 15:55:13 +0200143 select OF_CONTROL
144 select ROM_EXCEPTION_VECTORS
Paul Burtonf5de32a2016-09-08 07:47:39 +0100145 select SUPPORTS_BIG_ENDIAN
Paul Burtonf5de32a2016-09-08 07:47:39 +0100146 select SUPPORTS_CPU_MIPS32_R1
147 select SUPPORTS_CPU_MIPS32_R2
148 select SUPPORTS_CPU_MIPS32_R6
149 select SUPPORTS_CPU_MIPS64_R1
150 select SUPPORTS_CPU_MIPS64_R2
151 select SUPPORTS_CPU_MIPS64_R6
Michal Simek84f3dec2018-07-23 15:55:13 +0200152 select SUPPORTS_LITTLE_ENDIAN
Michal Simek2e7c8192018-07-23 15:55:14 +0200153 imply CMD_DM
Paul Burtonf5de32a2016-09-08 07:47:39 +0100154
Zubair Lutfullah Kakakhel1d153b32016-07-29 15:11:20 +0100155config TARGET_XILFPGA
156 bool "Support Imagination Xilfpga"
Zubair Lutfullah Kakakhel1d153b32016-07-29 15:11:20 +0100157 select DM
Zubair Lutfullah Kakakhel1d153b32016-07-29 15:11:20 +0100158 select DM_ETH
Michal Simek84f3dec2018-07-23 15:55:13 +0200159 select DM_GPIO
160 select DM_SERIAL
Zubair Lutfullah Kakakhel1d153b32016-07-29 15:11:20 +0100161 select MIPS_L1_CACHE_SHIFT_4
Michal Simek84f3dec2018-07-23 15:55:13 +0200162 select OF_CONTROL
Daniel Schwierzeck754cd052016-02-14 18:52:57 +0100163 select ROM_EXCEPTION_VECTORS
Michal Simek84f3dec2018-07-23 15:55:13 +0200164 select SUPPORTS_CPU_MIPS32_R1
165 select SUPPORTS_CPU_MIPS32_R2
166 select SUPPORTS_LITTLE_ENDIAN
Michal Simek2e7c8192018-07-23 15:55:14 +0200167 imply CMD_DM
Zubair Lutfullah Kakakhel1d153b32016-07-29 15:11:20 +0100168 help
169 This supports IMGTEC MIPSfpga platform
170
Masahiro Yamadad3ae6782014-07-30 14:08:14 +0900171endchoice
172
Paul Burtonf5de32a2016-09-08 07:47:39 +0100173source "board/imgtec/boston/Kconfig"
Masahiro Yamadad3ae6782014-07-30 14:08:14 +0900174source "board/imgtec/malta/Kconfig"
Zubair Lutfullah Kakakhel1d153b32016-07-29 15:11:20 +0100175source "board/imgtec/xilfpga/Kconfig"
Masahiro Yamadad3ae6782014-07-30 14:08:14 +0900176source "board/qemu-mips/Kconfig"
Wills Wang833a1a82016-03-16 16:59:52 +0800177source "arch/mips/mach-ath79/Kconfig"
Gregory CLEMENTaf05ee52018-12-14 16:16:47 +0100178source "arch/mips/mach-mscc/Kconfig"
Álvaro Fernández Rojas98a97a82017-04-25 00:39:20 +0200179source "arch/mips/mach-bmips/Kconfig"
Paul Burton96c68472018-12-16 19:25:22 -0300180source "arch/mips/mach-jz47xx/Kconfig"
Purna Chandra Mandal825b3212016-01-28 15:30:10 +0530181source "arch/mips/mach-pic32/Kconfig"
developer89f051b2019-04-30 11:13:58 +0800182source "arch/mips/mach-mtmips/Kconfig"
Aaron Williamsb2ea8182020-06-30 12:08:56 +0200183source "arch/mips/mach-octeon/Kconfig"
Masahiro Yamadad3ae6782014-07-30 14:08:14 +0900184
Daniel Schwierzecka4c242b2014-10-26 14:14:07 +0100185if MIPS
186
187choice
188 prompt "Endianness selection"
189 help
190 Some MIPS boards can be configured for either little or big endian
191 byte order. These modes require different U-Boot images. In general there
192 is one preferred byteorder for a particular system but some systems are
193 just as commonly used in the one or the other endianness.
194
195config SYS_BIG_ENDIAN
196 bool "Big endian"
197 depends on SUPPORTS_BIG_ENDIAN
198
199config SYS_LITTLE_ENDIAN
200 bool "Little endian"
201 depends on SUPPORTS_LITTLE_ENDIAN
202
203endchoice
204
Daniel Schwierzeck256034d2014-10-26 14:14:07 +0100205choice
206 prompt "CPU selection"
207 default CPU_MIPS32_R2
208
209config CPU_MIPS32_R1
210 bool "MIPS32 Release 1"
211 depends on SUPPORTS_CPU_MIPS32_R1
212 select 32BIT
213 help
Paul Burton55e29dd2016-05-16 10:52:12 +0100214 Choose this option to build an U-Boot for release 1 through 5 of the
Daniel Schwierzeck256034d2014-10-26 14:14:07 +0100215 MIPS32 architecture.
216
217config CPU_MIPS32_R2
218 bool "MIPS32 Release 2"
219 depends on SUPPORTS_CPU_MIPS32_R2
220 select 32BIT
221 help
Paul Burton55e29dd2016-05-16 10:52:12 +0100222 Choose this option to build an U-Boot for release 2 through 5 of the
Daniel Schwierzeck256034d2014-10-26 14:14:07 +0100223 MIPS32 architecture.
224
Paul Burton55e29dd2016-05-16 10:52:12 +0100225config CPU_MIPS32_R6
226 bool "MIPS32 Release 6"
227 depends on SUPPORTS_CPU_MIPS32_R6
228 select 32BIT
229 help
230 Choose this option to build an U-Boot for release 6 or later of the
231 MIPS32 architecture.
232
Daniel Schwierzeck256034d2014-10-26 14:14:07 +0100233config CPU_MIPS64_R1
234 bool "MIPS64 Release 1"
235 depends on SUPPORTS_CPU_MIPS64_R1
236 select 64BIT
237 help
Paul Burton55e29dd2016-05-16 10:52:12 +0100238 Choose this option to build a kernel for release 1 through 5 of the
Daniel Schwierzeck256034d2014-10-26 14:14:07 +0100239 MIPS64 architecture.
240
241config CPU_MIPS64_R2
242 bool "MIPS64 Release 2"
243 depends on SUPPORTS_CPU_MIPS64_R2
244 select 64BIT
245 help
Paul Burton55e29dd2016-05-16 10:52:12 +0100246 Choose this option to build a kernel for release 2 through 5 of the
247 MIPS64 architecture.
248
249config CPU_MIPS64_R6
250 bool "MIPS64 Release 6"
251 depends on SUPPORTS_CPU_MIPS64_R6
252 select 64BIT
253 help
254 Choose this option to build a kernel for release 6 or later of the
Daniel Schwierzeck256034d2014-10-26 14:14:07 +0100255 MIPS64 architecture.
256
Aaron Williamsb2ea8182020-06-30 12:08:56 +0200257config CPU_MIPS64_OCTEON
258 bool "Marvell Octeon series of CPUs"
259 depends on SUPPORTS_CPU_MIPS64_OCTEON
260 select 64BIT
261 help
262 Choose this option for Marvell Octeon CPUs. These CPUs are between
263 MIPS64 R5 and R6 with other extensions.
264
Daniel Schwierzeck256034d2014-10-26 14:14:07 +0100265endchoice
266
Daniel Schwierzeck754cd052016-02-14 18:52:57 +0100267menu "General setup"
268
269config ROM_EXCEPTION_VECTORS
270 bool "Build U-Boot image with exception vectors"
271 help
272 Enable this to include exception vectors in the U-Boot image. This is
273 required if the U-Boot entry point is equal to the address of the
274 CPU reset exception vector (e.g. U-Boot as ROM loader in Qemu,
275 U-Boot booted from parallel NOR flash).
276 Disable this, if the U-Boot image is booted from DRAM (e.g. by SPL).
277 In that case the image size will be reduced by 0x500 bytes.
278
Paul Burton3d6864a2017-05-12 13:26:11 +0200279config MIPS_CM_BASE
280 hex "MIPS CM GCR Base Address"
281 depends on MIPS_CM
Paul Burtona6ac9652017-04-30 21:22:41 +0200282 default 0x16100000 if TARGET_BOSTON
Paul Burton3d6864a2017-05-12 13:26:11 +0200283 default 0x1fbf8000
284 help
285 The physical base address at which to map the MIPS Coherence Manager
286 Global Configuration Registers (GCRs). This should be set such that
287 the GCRs occupy a region of the physical address space which is
288 otherwise unused, or at minimum that software doesn't need to access.
289
Daniel Schwierzecke3b432d2018-09-07 19:02:05 +0200290config MIPS_CACHE_INDEX_BASE
291 hex "Index base address for cache initialisation"
292 default 0x80000000 if CPU_MIPS32
293 default 0xffffffff80000000 if CPU_MIPS64
294 help
295 This is the base address for a memory block, which is used for
296 initialising the cache lines. This is also the base address of a memory
297 block which is used for loading and filling cache lines when
298 SYS_MIPS_CACHE_INIT_RAM_LOAD is selected.
299 Normally this is CKSEG0. If the MIPS system needs to move this block
300 to some SRAM or ScratchPad RAM, adapt this option accordingly.
301
Stefan Roesec6f54b42020-06-30 12:33:16 +0200302config MIPS_MACH_EARLY_INIT
303 bool "Enable mach specific very early init code"
304 help
305 Use this to enable the call to mips_mach_early_init() very early
306 from start.S. This function can be used e.g. to do some very early
307 CPU / SoC intitialization or image copying. Its called very early
308 and at this stage the PC might not match the linking address
309 (CONFIG_TEXT_BASE) - no absolute jump done until this call.
310
Daniel Schwierzeckc95e7f12020-07-12 00:45:57 +0200311config MIPS_CACHE_SETUP
312 bool "Allow generic start code to initialize and setup caches"
313 default n if SKIP_LOWLEVEL_INIT
314 default y
315 help
316 This allows the generic start code to invoke the generic initialization
317 of the CPU caches. Disabling this can be useful for RAM boot scenarios
318 (EJTAG, SPL payload) or for machines which don't need cache initialization
319 or which want to provide their own cache implementation.
320
321 If unsure, say yes.
322
323config MIPS_CACHE_DISABLE
324 bool "Allow generic start code to initially disable caches"
325 default n if SKIP_LOWLEVEL_INIT
326 default y
327 help
328 This allows the generic start code to initially disable the CPU caches
329 and run uncached until the caches are initialized and enabled. Disabling
330 this can be useful on machines which don't need cache initialization or
331 which want to provide their own cache implementation.
332
333 If unsure, say yes.
334
Daniel Schwierzeck80132862018-11-01 02:02:21 +0100335config MIPS_RELOCATION_TABLE_SIZE
336 hex "Relocation table size"
337 range 0x100 0x10000
338 default "0x8000"
339 ---help---
340 A table of relocation data will be appended to the U-Boot binary
341 and parsed in relocate_code() to fix up all offsets in the relocated
342 U-Boot.
343
344 This option allows the amount of space reserved for the table to be
345 adjusted in a range from 256 up to 64k. The default is 32k and should
346 be ok in most cases. Reduce this value to shrink the size of U-Boot
347 binary.
348
349 The build will fail and a valid size suggested if this is too small.
350
351 If unsure, leave at the default value.
352
developer5cbbd712020-04-21 09:28:25 +0200353config RESTORE_EXCEPTION_VECTOR_BASE
354 bool "Restore exception vector base before booting linux kernel"
355 default n
356 help
357 In U-Boot the exception vector base will be moved to top of memory,
358 to be used to display register dump when exception occurs.
359 But some old linux kernel does not honor the base set in CP0_EBASE.
360 A modified exception vector base will cause kernel crash.
361
362 This option will restore the exception vector base to its previous
363 value.
364
365 If unsure, say N.
366
367config OVERRIDE_EXCEPTION_VECTOR_BASE
368 bool "Override the exception vector base to be restored"
369 depends on RESTORE_EXCEPTION_VECTOR_BASE
370 default n
371 help
372 Enable this option if you want to use a different exception vector
373 base rather than the previously saved one.
374
375config NEW_EXCEPTION_VECTOR_BASE
376 hex "New exception vector base"
377 depends on OVERRIDE_EXCEPTION_VECTOR_BASE
378 range 0x80000000 0xbffff000
379 default 0x80000000
380 help
381 The exception vector base to be restored before booting linux kernel
382
developer01a28282020-04-21 09:28:33 +0200383config INIT_STACK_WITHOUT_MALLOC_F
384 bool "Do not reserve malloc space on initial stack"
385 default n
386 help
387 Enable this option if you don't want to reserve malloc space on
388 initial stack. This is useful if the initial stack can't hold large
389 malloc space. Platform should set the malloc_base later when DRAM is
390 ready to use.
391
392config SPL_INIT_STACK_WITHOUT_MALLOC_F
393 bool "Do not reserve malloc space on initial stack in SPL"
394 default n
395 help
396 Enable this option if you don't want to reserve malloc space on
397 initial stack. This is useful if the initial stack can't hold large
398 malloc space. Platform should set the malloc_base later when DRAM is
399 ready to use.
400
developer25678a02020-04-21 09:28:37 +0200401config SPL_LOADER_SUPPORT
402 bool
403 default n
404 help
405 Enable this option if you want to use SPL loaders without DM enabled.
406
Daniel Schwierzeck754cd052016-02-14 18:52:57 +0100407endmenu
408
Daniel Schwierzeckf9749fa2015-01-14 21:44:13 +0100409menu "OS boot interface"
410
411config MIPS_BOOT_CMDLINE_LEGACY
412 bool "Hand over legacy command line to Linux kernel"
413 default y
414 help
415 Enable this option if you want U-Boot to hand over the Yamon-style
416 command line to the kernel. All bootargs will be prepared as argc/argv
417 compatible list. The argument count (argc) is stored in register $a0.
418 The address of the argument list (argv) is stored in register $a1.
419
Daniel Schwierzeckc07dc602015-01-14 21:44:13 +0100420config MIPS_BOOT_ENV_LEGACY
421 bool "Hand over legacy environment to Linux kernel"
422 default y
423 help
424 Enable this option if you want U-Boot to hand over the Yamon-style
425 environment to the kernel. Information like memory size, initrd
426 address and size will be prepared as zero-terminated key/value list.
Robert P. J. Day8c60f922016-05-04 04:47:31 -0400427 The address of the environment is stored in register $a2.
Daniel Schwierzeckc07dc602015-01-14 21:44:13 +0100428
Daniel Schwierzeck8d7ff4d2015-01-14 21:44:13 +0100429config MIPS_BOOT_FDT
Daniel Schwierzeckd1b29d22015-02-22 16:58:30 +0100430 bool "Hand over a flattened device tree to Linux kernel"
Daniel Schwierzeck8d7ff4d2015-01-14 21:44:13 +0100431 default n
432 help
433 Enable this option if you want U-Boot to hand over a flattened
Daniel Schwierzeckd1b29d22015-02-22 16:58:30 +0100434 device tree to the kernel. According to UHI register $a0 will be set
435 to -2 and the FDT address is stored in $a1.
Daniel Schwierzeck8d7ff4d2015-01-14 21:44:13 +0100436
Daniel Schwierzeckf9749fa2015-01-14 21:44:13 +0100437endmenu
438
Daniel Schwierzecka4c242b2014-10-26 14:14:07 +0100439config SUPPORTS_BIG_ENDIAN
440 bool
441
442config SUPPORTS_LITTLE_ENDIAN
443 bool
444
Daniel Schwierzeck256034d2014-10-26 14:14:07 +0100445config SUPPORTS_CPU_MIPS32_R1
446 bool
447
448config SUPPORTS_CPU_MIPS32_R2
449 bool
450
Paul Burton55e29dd2016-05-16 10:52:12 +0100451config SUPPORTS_CPU_MIPS32_R6
452 bool
453
Daniel Schwierzeck256034d2014-10-26 14:14:07 +0100454config SUPPORTS_CPU_MIPS64_R1
455 bool
456
457config SUPPORTS_CPU_MIPS64_R2
458 bool
459
Paul Burton55e29dd2016-05-16 10:52:12 +0100460config SUPPORTS_CPU_MIPS64_R6
461 bool
462
Aaron Williamsb2ea8182020-06-30 12:08:56 +0200463config SUPPORTS_CPU_MIPS64_OCTEON
464 bool
465
466config CPU_CAVIUM_OCTEON
467 bool
468
Daniel Schwierzeckdfbad0f2015-01-18 21:59:35 +0100469config CPU_MIPS32
470 bool
Paul Burton55e29dd2016-05-16 10:52:12 +0100471 default y if CPU_MIPS32_R1 || CPU_MIPS32_R2 || CPU_MIPS32_R6
Daniel Schwierzeckdfbad0f2015-01-18 21:59:35 +0100472
473config CPU_MIPS64
474 bool
Paul Burton55e29dd2016-05-16 10:52:12 +0100475 default y if CPU_MIPS64_R1 || CPU_MIPS64_R2 || CPU_MIPS64_R6
Aaron Williamsb2ea8182020-06-30 12:08:56 +0200476 default y if CPU_MIPS64_OCTEON
Daniel Schwierzeckdfbad0f2015-01-18 21:59:35 +0100477
Daniel Schwierzeckaadd3322015-12-26 19:55:37 +0100478config MIPS_TUNE_4KC
479 bool
480
481config MIPS_TUNE_14KC
482 bool
483
484config MIPS_TUNE_24KC
485 bool
486
Daniel Schwierzeckc7661d52016-05-27 15:39:39 +0200487config MIPS_TUNE_34KC
488 bool
489
Marek Vasuta9c6e8b2016-05-06 20:10:33 +0200490config MIPS_TUNE_74KC
491 bool
492
Aaron Williamsb2ea8182020-06-30 12:08:56 +0200493config MIPS_TUNE_OCTEON3
494 bool
495
Daniel Schwierzeck256034d2014-10-26 14:14:07 +0100496config 32BIT
497 bool
498
499config 64BIT
500 bool
501
Daniel Schwierzeck7dca6862015-01-18 22:00:18 +0100502config SWAP_IO_SPACE
503 bool
504
Paul Burton6832bdc2015-01-29 01:28:02 +0000505config SYS_MIPS_CACHE_INIT_RAM_LOAD
506 bool
507
Daniel Schwierzeck41dc35e2016-06-04 16:13:21 +0200508config MIPS_INIT_STACK_IN_SRAM
509 bool
510 default n
511 help
512 Select this if the initial stack frame could be setup in SRAM.
513 Normally the initial stack frame is set up in DRAM which is often
514 only available after lowlevel_init. With this option the initial
515 stack frame and the early C environment is set up before
516 lowlevel_init. Thus lowlevel_init does not need to be implemented
517 in assembler.
518
developereb7d3a22020-04-21 09:28:27 +0200519config MIPS_SRAM_INIT
520 bool
521 default n
522 depends on MIPS_INIT_STACK_IN_SRAM
523 help
524 Select this if the SRAM for initial stack needs to be initialized
525 before it can be used. If enabled, a function mips_sram_init() will
526 be called just before setup_stack_gd.
527
Aaron Williamsb2ea8182020-06-30 12:08:56 +0200528config DMA_ADDR_T_64BIT
529 bool
530 help
531 Select this to enable 64-bit DMA addressing
532
Paul Burton5e511422016-05-27 14:28:04 +0100533config SYS_DCACHE_SIZE
534 int
535 default 0
536 help
537 The total size of the L1 Dcache, if known at compile time.
538
Paul Burton62f13522016-05-27 14:28:05 +0100539config SYS_DCACHE_LINE_SIZE
Paul Burton79e49fd2016-06-09 13:09:52 +0100540 int
Paul Burton62f13522016-05-27 14:28:05 +0100541 default 0
542 help
543 The size of L1 Dcache lines, if known at compile time.
544
Paul Burton5e511422016-05-27 14:28:04 +0100545config SYS_ICACHE_SIZE
546 int
547 default 0
548 help
549 The total size of the L1 ICache, if known at compile time.
550
Paul Burton62f13522016-05-27 14:28:05 +0100551config SYS_ICACHE_LINE_SIZE
Paul Burton5e511422016-05-27 14:28:04 +0100552 int
553 default 0
554 help
Paul Burton62f13522016-05-27 14:28:05 +0100555 The size of L1 Icache lines, if known at compile time.
Paul Burton5e511422016-05-27 14:28:04 +0100556
Ramon Fried7e07e492019-06-10 21:05:26 +0300557config SYS_SCACHE_LINE_SIZE
558 int
559 default 0
560 help
561 The size of L2 cache lines, if known at compile time.
562
563
Paul Burton5e511422016-05-27 14:28:04 +0100564config SYS_CACHE_SIZE_AUTO
565 def_bool y if SYS_DCACHE_SIZE = 0 && SYS_ICACHE_SIZE = 0 && \
Ramon Fried7e07e492019-06-10 21:05:26 +0300566 SYS_DCACHE_LINE_SIZE = 0 && SYS_ICACHE_LINE_SIZE = 0 && \
567 SYS_SCACHE_LINE_SIZE = 0
Paul Burton5e511422016-05-27 14:28:04 +0100568 help
569 Select this (or let it be auto-selected by not defining any cache
570 sizes) in order to allow U-Boot to automatically detect the sizes
571 of caches at runtime. This has a small cost in code size & runtime
572 so if you know the cache configuration for your system at compile
573 time it would be beneficial to configure it.
574
Daniel Schwierzeck02ca55e2016-01-09 17:32:50 +0100575config MIPS_L1_CACHE_SHIFT_4
576 bool
577
578config MIPS_L1_CACHE_SHIFT_5
579 bool
580
581config MIPS_L1_CACHE_SHIFT_6
582 bool
583
584config MIPS_L1_CACHE_SHIFT_7
585 bool
586
587config MIPS_L1_CACHE_SHIFT
588 int
589 default "7" if MIPS_L1_CACHE_SHIFT_7
590 default "6" if MIPS_L1_CACHE_SHIFT_6
591 default "5" if MIPS_L1_CACHE_SHIFT_5
592 default "4" if MIPS_L1_CACHE_SHIFT_4
593 default "5"
594
Paul Burton81560782016-09-21 11:18:54 +0100595config MIPS_L2_CACHE
596 bool
597 help
598 Select this if your system includes an L2 cache and you want U-Boot
599 to initialise & maintain it.
600
Paul Burton8d6600b2016-01-29 13:54:52 +0000601config DYNAMIC_IO_PORT_BASE
602 bool
603
Paul Burton79ac1742016-09-21 11:18:53 +0100604config MIPS_CM
605 bool
606 help
607 Select this if your system contains a MIPS Coherence Manager and you
608 wish U-Boot to configure it or make use of it to retrieve system
609 information such as cache configuration.
610
Daniel Schwierzeck2cc9a772018-09-07 19:18:44 +0200611config MIPS_INSERT_BOOT_CONFIG
612 bool
613 default n
614 help
615 Enable this to insert some board-specific boot configuration in
616 the U-Boot binary at offset 0x10.
617
618config MIPS_BOOT_CONFIG_WORD0
619 hex
620 depends on MIPS_INSERT_BOOT_CONFIG
621 default 0x420 if TARGET_MALTA
622 default 0x0
623 help
624 Value which is inserted as boot config word 0.
625
626config MIPS_BOOT_CONFIG_WORD1
627 hex
628 depends on MIPS_INSERT_BOOT_CONFIG
629 default 0x0
630 help
631 Value which is inserted as boot config word 1.
632
Daniel Schwierzecka4c242b2014-10-26 14:14:07 +0100633endif
634
Masahiro Yamadad3ae6782014-07-30 14:08:14 +0900635endmenu