blob: 8bef63cbb7415ed5cc879ab1b43e18ee1cf4693e [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
Masahiro Yamadad3ae6782014-07-30 14:08:14 +090015config TARGET_MALTA
16 bool "Support malta"
Daniel Schwierzeck45f78be2021-07-15 20:54:01 +020017 select BOARD_EARLY_INIT_R
Paul Burtona31a3df2016-05-17 07:43:28 +010018 select DM
19 select DM_SERIAL
Simon Glass3933d292021-08-01 18:54:44 -060020 select PCI
Daniel Schwierzeck45f78be2021-07-15 20:54:01 +020021 select DM_ETH
Paul Burton8d6600b2016-01-29 13:54:52 +000022 select DYNAMIC_IO_PORT_BASE
Paul Burton59a4c8b2016-09-21 11:18:56 +010023 select MIPS_CM
Daniel Schwierzeck2cc9a772018-09-07 19:18:44 +020024 select MIPS_INSERT_BOOT_CONFIG
Tom Rini3ef67ae2021-08-26 11:47:59 -040025 select SYS_CACHE_SHIFT_6
Paul Burton59a4c8b2016-09-21 11:18:56 +010026 select MIPS_L2_CACHE
Paul Burtona31a3df2016-05-17 07:43:28 +010027 select OF_CONTROL
28 select OF_ISA_BUS
Daniel Schwierzeck45f78be2021-07-15 20:54:01 +020029 select PCI_MAP_SYSTEM_MEMORY
Michal Simek84f3dec2018-07-23 15:55:13 +020030 select ROM_EXCEPTION_VECTORS
Daniel Schwierzecka4c242b2014-10-26 14:14:07 +010031 select SUPPORTS_BIG_ENDIAN
Daniel Schwierzeck256034d2014-10-26 14:14:07 +010032 select SUPPORTS_CPU_MIPS32_R1
33 select SUPPORTS_CPU_MIPS32_R2
Paul Burton1c10e0d2016-05-16 10:52:14 +010034 select SUPPORTS_CPU_MIPS32_R6
Paul Burton825cfbd2016-05-26 14:49:36 +010035 select SUPPORTS_CPU_MIPS64_R1
36 select SUPPORTS_CPU_MIPS64_R2
37 select SUPPORTS_CPU_MIPS64_R6
Michal Simek84f3dec2018-07-23 15:55:13 +020038 select SUPPORTS_LITTLE_ENDIAN
Daniel Schwierzeck7dca6862015-01-18 22:00:18 +010039 select SWAP_IO_SPACE
Michal Simek2e7c8192018-07-23 15:55:14 +020040 imply CMD_DM
Masahiro Yamadad3ae6782014-07-30 14:08:14 +090041
Wills Wang833a1a82016-03-16 16:59:52 +080042config ARCH_ATH79
43 bool "Support QCA/Atheros ath79"
Wills Wang833a1a82016-03-16 16:59:52 +080044 select DM
Michal Simek84f3dec2018-07-23 15:55:13 +020045 select OF_CONTROL
Michal Simek2e7c8192018-07-23 15:55:14 +020046 imply CMD_DM
Wills Wang833a1a82016-03-16 16:59:52 +080047
Gregory CLEMENTaf05ee52018-12-14 16:16:47 +010048config ARCH_MSCC
49 bool "Support MSCC VCore-III"
50 select OF_CONTROL
51 select DM
52
Álvaro Fernández Rojas98a97a82017-04-25 00:39:20 +020053config ARCH_BMIPS
54 bool "Support BMIPS SoCs"
Álvaro Fernández Rojas98a97a82017-04-25 00:39:20 +020055 select CLK
56 select CPU
Michal Simek84f3dec2018-07-23 15:55:13 +020057 select DM
58 select OF_CONTROL
Álvaro Fernández Rojas98a97a82017-04-25 00:39:20 +020059 select RAM
60 select SYSRESET
Michal Simek2e7c8192018-07-23 15:55:14 +020061 imply CMD_DM
Álvaro Fernández Rojas98a97a82017-04-25 00:39:20 +020062
developer89f051b2019-04-30 11:13:58 +080063config ARCH_MTMIPS
64 bool "Support MediaTek MIPS platforms"
developer591826e2019-09-25 17:45:43 +080065 select CLK
Stefan Roese65da15e2018-09-05 15:12:35 +020066 imply CMD_DM
67 select DISPLAY_CPUINFO
68 select DM
Stefan Roese8bbb6bf2018-10-09 08:59:09 +020069 imply DM_ETH
70 imply DM_GPIO
developer591826e2019-09-25 17:45:43 +080071 select DM_RESET
Stefan Roese65da15e2018-09-05 15:12:35 +020072 select DM_SERIAL
developer591826e2019-09-25 17:45:43 +080073 select PINCTRL
74 select PINMUX
75 select PINCONF
76 select RESET_MTMIPS
Stefan Roese65da15e2018-09-05 15:12:35 +020077 imply DM_SPI
78 imply DM_SPI_FLASH
Stefan Roese17679e42019-05-28 08:11:37 +020079 select LAST_STAGE_INIT
Stefan Roese65da15e2018-09-05 15:12:35 +020080 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
developer19d572e2020-04-21 09:28:47 +020086 select SUPPORT_SPL
Stefan Roese65da15e2018-09-05 15:12:35 +020087
Paul Burton96c68472018-12-16 19:25:22 -030088config ARCH_JZ47XX
89 bool "Support Ingenic JZ47xx"
90 select SUPPORT_SPL
91 select OF_CONTROL
92 select DM
93
Aaron Williamsb2ea8182020-06-30 12:08:56 +020094config ARCH_OCTEON
95 bool "Support Marvell Octeon CN7xxx platforms"
Stefan Roese59735ef2022-04-07 09:11:46 +020096 select ARCH_EARLY_INIT_R
Aaron Williamsb2ea8182020-06-30 12:08:56 +020097 select CPU_CAVIUM_OCTEON
98 select DISPLAY_CPUINFO
99 select DMA_ADDR_T_64BIT
100 select DM
Aaron Williamsb2ea8182020-06-30 12:08:56 +0200101 select DM_ETH
Stefan Roese67b9edb2020-07-30 13:56:21 +0200102 select DM_GPIO
103 select DM_I2C
104 select DM_SERIAL
105 select DM_SPI
Aaron Williamsb2ea8182020-06-30 12:08:56 +0200106 select MIPS_L2_CACHE
Stefan Roese15ba8022020-06-30 12:33:17 +0200107 select MIPS_MACH_EARLY_INIT
Aaron Williamsb2ea8182020-06-30 12:08:56 +0200108 select MIPS_TUNE_OCTEON3
109 select ROM_EXCEPTION_VECTORS
110 select SUPPORTS_BIG_ENDIAN
111 select SUPPORTS_CPU_MIPS64_OCTEON
112 select PHYS_64BIT
113 select OF_CONTROL
114 select OF_LIVE
115 imply CMD_DM
116
Purna Chandra Mandal825b3212016-01-28 15:30:10 +0530117config MACH_PIC32
118 bool "Support Microchip PIC32"
Purna Chandra Mandal825b3212016-01-28 15:30:10 +0530119 select DM
Michal Simek84f3dec2018-07-23 15:55:13 +0200120 select OF_CONTROL
Michal Simek2e7c8192018-07-23 15:55:14 +0200121 imply CMD_DM
Purna Chandra Mandal825b3212016-01-28 15:30:10 +0530122
Paul Burtonf5de32a2016-09-08 07:47:39 +0100123config TARGET_BOSTON
124 bool "Support Boston"
125 select DM
Simon Glassfc557362022-03-04 08:43:05 -0700126 imply DM_EVENT
Paul Burtonf5de32a2016-09-08 07:47:39 +0100127 select DM_SERIAL
Paul Burtonf5de32a2016-09-08 07:47:39 +0100128 select MIPS_CM
Tom Rini3ef67ae2021-08-26 11:47:59 -0400129 select SYS_CACHE_SHIFT_6
Paul Burtonf5de32a2016-09-08 07:47:39 +0100130 select MIPS_L2_CACHE
Paul Burtona315bcd2017-04-30 21:22:42 +0200131 select OF_BOARD_SETUP
Michal Simek84f3dec2018-07-23 15:55:13 +0200132 select OF_CONTROL
133 select ROM_EXCEPTION_VECTORS
Paul Burtonf5de32a2016-09-08 07:47:39 +0100134 select SUPPORTS_BIG_ENDIAN
Paul Burtonf5de32a2016-09-08 07:47:39 +0100135 select SUPPORTS_CPU_MIPS32_R1
136 select SUPPORTS_CPU_MIPS32_R2
137 select SUPPORTS_CPU_MIPS32_R6
138 select SUPPORTS_CPU_MIPS64_R1
139 select SUPPORTS_CPU_MIPS64_R2
140 select SUPPORTS_CPU_MIPS64_R6
Michal Simek84f3dec2018-07-23 15:55:13 +0200141 select SUPPORTS_LITTLE_ENDIAN
Michal Simek2e7c8192018-07-23 15:55:14 +0200142 imply CMD_DM
Paul Burtonf5de32a2016-09-08 07:47:39 +0100143
Zubair Lutfullah Kakakhel1d153b32016-07-29 15:11:20 +0100144config TARGET_XILFPGA
145 bool "Support Imagination Xilfpga"
Zubair Lutfullah Kakakhel1d153b32016-07-29 15:11:20 +0100146 select DM
Zubair Lutfullah Kakakhel1d153b32016-07-29 15:11:20 +0100147 select DM_ETH
Michal Simek84f3dec2018-07-23 15:55:13 +0200148 select DM_GPIO
149 select DM_SERIAL
Tom Rini3ef67ae2021-08-26 11:47:59 -0400150 select SYS_CACHE_SHIFT_4
Michal Simek84f3dec2018-07-23 15:55:13 +0200151 select OF_CONTROL
Daniel Schwierzeck754cd052016-02-14 18:52:57 +0100152 select ROM_EXCEPTION_VECTORS
Michal Simek84f3dec2018-07-23 15:55:13 +0200153 select SUPPORTS_CPU_MIPS32_R1
154 select SUPPORTS_CPU_MIPS32_R2
155 select SUPPORTS_LITTLE_ENDIAN
Michal Simek2e7c8192018-07-23 15:55:14 +0200156 imply CMD_DM
Zubair Lutfullah Kakakhel1d153b32016-07-29 15:11:20 +0100157 help
158 This supports IMGTEC MIPSfpga platform
159
Masahiro Yamadad3ae6782014-07-30 14:08:14 +0900160endchoice
161
Paul Burtonf5de32a2016-09-08 07:47:39 +0100162source "board/imgtec/boston/Kconfig"
Masahiro Yamadad3ae6782014-07-30 14:08:14 +0900163source "board/imgtec/malta/Kconfig"
Zubair Lutfullah Kakakhel1d153b32016-07-29 15:11:20 +0100164source "board/imgtec/xilfpga/Kconfig"
Wills Wang833a1a82016-03-16 16:59:52 +0800165source "arch/mips/mach-ath79/Kconfig"
Gregory CLEMENTaf05ee52018-12-14 16:16:47 +0100166source "arch/mips/mach-mscc/Kconfig"
Álvaro Fernández Rojas98a97a82017-04-25 00:39:20 +0200167source "arch/mips/mach-bmips/Kconfig"
Paul Burton96c68472018-12-16 19:25:22 -0300168source "arch/mips/mach-jz47xx/Kconfig"
Purna Chandra Mandal825b3212016-01-28 15:30:10 +0530169source "arch/mips/mach-pic32/Kconfig"
developer89f051b2019-04-30 11:13:58 +0800170source "arch/mips/mach-mtmips/Kconfig"
Aaron Williamsb2ea8182020-06-30 12:08:56 +0200171source "arch/mips/mach-octeon/Kconfig"
Masahiro Yamadad3ae6782014-07-30 14:08:14 +0900172
Daniel Schwierzecka4c242b2014-10-26 14:14:07 +0100173if MIPS
174
175choice
Daniel Schwierzeck256034d2014-10-26 14:14:07 +0100176 prompt "CPU selection"
177 default CPU_MIPS32_R2
178
179config CPU_MIPS32_R1
180 bool "MIPS32 Release 1"
181 depends on SUPPORTS_CPU_MIPS32_R1
182 select 32BIT
183 help
Paul Burton55e29dd2016-05-16 10:52:12 +0100184 Choose this option to build an U-Boot for release 1 through 5 of the
Daniel Schwierzeck256034d2014-10-26 14:14:07 +0100185 MIPS32 architecture.
186
187config CPU_MIPS32_R2
188 bool "MIPS32 Release 2"
189 depends on SUPPORTS_CPU_MIPS32_R2
190 select 32BIT
191 help
Paul Burton55e29dd2016-05-16 10:52:12 +0100192 Choose this option to build an U-Boot for release 2 through 5 of the
Daniel Schwierzeck256034d2014-10-26 14:14:07 +0100193 MIPS32 architecture.
194
Paul Burton55e29dd2016-05-16 10:52:12 +0100195config CPU_MIPS32_R6
196 bool "MIPS32 Release 6"
197 depends on SUPPORTS_CPU_MIPS32_R6
198 select 32BIT
199 help
200 Choose this option to build an U-Boot for release 6 or later of the
201 MIPS32 architecture.
202
Daniel Schwierzeck256034d2014-10-26 14:14:07 +0100203config CPU_MIPS64_R1
204 bool "MIPS64 Release 1"
205 depends on SUPPORTS_CPU_MIPS64_R1
206 select 64BIT
207 help
Paul Burton55e29dd2016-05-16 10:52:12 +0100208 Choose this option to build a kernel for release 1 through 5 of the
Daniel Schwierzeck256034d2014-10-26 14:14:07 +0100209 MIPS64 architecture.
210
211config CPU_MIPS64_R2
212 bool "MIPS64 Release 2"
213 depends on SUPPORTS_CPU_MIPS64_R2
214 select 64BIT
215 help
Paul Burton55e29dd2016-05-16 10:52:12 +0100216 Choose this option to build a kernel for release 2 through 5 of the
217 MIPS64 architecture.
218
219config CPU_MIPS64_R6
220 bool "MIPS64 Release 6"
221 depends on SUPPORTS_CPU_MIPS64_R6
222 select 64BIT
223 help
224 Choose this option to build a kernel for release 6 or later of the
Daniel Schwierzeck256034d2014-10-26 14:14:07 +0100225 MIPS64 architecture.
226
Aaron Williamsb2ea8182020-06-30 12:08:56 +0200227config CPU_MIPS64_OCTEON
228 bool "Marvell Octeon series of CPUs"
229 depends on SUPPORTS_CPU_MIPS64_OCTEON
230 select 64BIT
231 help
232 Choose this option for Marvell Octeon CPUs. These CPUs are between
233 MIPS64 R5 and R6 with other extensions.
234
Daniel Schwierzeck256034d2014-10-26 14:14:07 +0100235endchoice
236
Daniel Schwierzeck754cd052016-02-14 18:52:57 +0100237menu "General setup"
238
239config ROM_EXCEPTION_VECTORS
240 bool "Build U-Boot image with exception vectors"
241 help
242 Enable this to include exception vectors in the U-Boot image. This is
243 required if the U-Boot entry point is equal to the address of the
244 CPU reset exception vector (e.g. U-Boot as ROM loader in Qemu,
245 U-Boot booted from parallel NOR flash).
246 Disable this, if the U-Boot image is booted from DRAM (e.g. by SPL).
247 In that case the image size will be reduced by 0x500 bytes.
248
Paul Burton3d6864a2017-05-12 13:26:11 +0200249config MIPS_CM_BASE
250 hex "MIPS CM GCR Base Address"
251 depends on MIPS_CM
Paul Burtona6ac9652017-04-30 21:22:41 +0200252 default 0x16100000 if TARGET_BOSTON
Paul Burton3d6864a2017-05-12 13:26:11 +0200253 default 0x1fbf8000
254 help
255 The physical base address at which to map the MIPS Coherence Manager
256 Global Configuration Registers (GCRs). This should be set such that
257 the GCRs occupy a region of the physical address space which is
258 otherwise unused, or at minimum that software doesn't need to access.
259
Daniel Schwierzecke3b432d2018-09-07 19:02:05 +0200260config MIPS_CACHE_INDEX_BASE
261 hex "Index base address for cache initialisation"
262 default 0x80000000 if CPU_MIPS32
263 default 0xffffffff80000000 if CPU_MIPS64
264 help
265 This is the base address for a memory block, which is used for
266 initialising the cache lines. This is also the base address of a memory
267 block which is used for loading and filling cache lines when
268 SYS_MIPS_CACHE_INIT_RAM_LOAD is selected.
269 Normally this is CKSEG0. If the MIPS system needs to move this block
270 to some SRAM or ScratchPad RAM, adapt this option accordingly.
271
Stefan Roesec6f54b42020-06-30 12:33:16 +0200272config MIPS_MACH_EARLY_INIT
273 bool "Enable mach specific very early init code"
274 help
275 Use this to enable the call to mips_mach_early_init() very early
276 from start.S. This function can be used e.g. to do some very early
277 CPU / SoC intitialization or image copying. Its called very early
278 and at this stage the PC might not match the linking address
279 (CONFIG_TEXT_BASE) - no absolute jump done until this call.
280
Daniel Schwierzeckc95e7f12020-07-12 00:45:57 +0200281config MIPS_CACHE_SETUP
282 bool "Allow generic start code to initialize and setup caches"
283 default n if SKIP_LOWLEVEL_INIT
284 default y
285 help
286 This allows the generic start code to invoke the generic initialization
287 of the CPU caches. Disabling this can be useful for RAM boot scenarios
288 (EJTAG, SPL payload) or for machines which don't need cache initialization
289 or which want to provide their own cache implementation.
290
291 If unsure, say yes.
292
293config MIPS_CACHE_DISABLE
294 bool "Allow generic start code to initially disable caches"
295 default n if SKIP_LOWLEVEL_INIT
296 default y
297 help
298 This allows the generic start code to initially disable the CPU caches
299 and run uncached until the caches are initialized and enabled. Disabling
300 this can be useful on machines which don't need cache initialization or
301 which want to provide their own cache implementation.
302
303 If unsure, say yes.
304
Daniel Schwierzeck80132862018-11-01 02:02:21 +0100305config MIPS_RELOCATION_TABLE_SIZE
306 hex "Relocation table size"
307 range 0x100 0x10000
308 default "0x8000"
309 ---help---
310 A table of relocation data will be appended to the U-Boot binary
311 and parsed in relocate_code() to fix up all offsets in the relocated
312 U-Boot.
313
314 This option allows the amount of space reserved for the table to be
315 adjusted in a range from 256 up to 64k. The default is 32k and should
316 be ok in most cases. Reduce this value to shrink the size of U-Boot
317 binary.
318
319 The build will fail and a valid size suggested if this is too small.
320
321 If unsure, leave at the default value.
322
developer5cbbd712020-04-21 09:28:25 +0200323config RESTORE_EXCEPTION_VECTOR_BASE
324 bool "Restore exception vector base before booting linux kernel"
developer5cbbd712020-04-21 09:28:25 +0200325 help
326 In U-Boot the exception vector base will be moved to top of memory,
327 to be used to display register dump when exception occurs.
328 But some old linux kernel does not honor the base set in CP0_EBASE.
329 A modified exception vector base will cause kernel crash.
330
331 This option will restore the exception vector base to its previous
332 value.
333
334 If unsure, say N.
335
336config OVERRIDE_EXCEPTION_VECTOR_BASE
337 bool "Override the exception vector base to be restored"
338 depends on RESTORE_EXCEPTION_VECTOR_BASE
developer5cbbd712020-04-21 09:28:25 +0200339 help
340 Enable this option if you want to use a different exception vector
341 base rather than the previously saved one.
342
343config NEW_EXCEPTION_VECTOR_BASE
344 hex "New exception vector base"
345 depends on OVERRIDE_EXCEPTION_VECTOR_BASE
346 range 0x80000000 0xbffff000
347 default 0x80000000
348 help
349 The exception vector base to be restored before booting linux kernel
350
developer01a28282020-04-21 09:28:33 +0200351config INIT_STACK_WITHOUT_MALLOC_F
352 bool "Do not reserve malloc space on initial stack"
developer01a28282020-04-21 09:28:33 +0200353 help
354 Enable this option if you don't want to reserve malloc space on
355 initial stack. This is useful if the initial stack can't hold large
356 malloc space. Platform should set the malloc_base later when DRAM is
357 ready to use.
358
359config SPL_INIT_STACK_WITHOUT_MALLOC_F
360 bool "Do not reserve malloc space on initial stack in SPL"
developer01a28282020-04-21 09:28:33 +0200361 help
362 Enable this option if you don't want to reserve malloc space on
363 initial stack. This is useful if the initial stack can't hold large
364 malloc space. Platform should set the malloc_base later when DRAM is
365 ready to use.
366
developer25678a02020-04-21 09:28:37 +0200367config SPL_LOADER_SUPPORT
368 bool
developer25678a02020-04-21 09:28:37 +0200369 help
370 Enable this option if you want to use SPL loaders without DM enabled.
371
Daniel Schwierzeck754cd052016-02-14 18:52:57 +0100372endmenu
373
Daniel Schwierzeckf9749fa2015-01-14 21:44:13 +0100374menu "OS boot interface"
375
376config MIPS_BOOT_CMDLINE_LEGACY
377 bool "Hand over legacy command line to Linux kernel"
378 default y
379 help
380 Enable this option if you want U-Boot to hand over the Yamon-style
381 command line to the kernel. All bootargs will be prepared as argc/argv
382 compatible list. The argument count (argc) is stored in register $a0.
383 The address of the argument list (argv) is stored in register $a1.
384
Daniel Schwierzeckc07dc602015-01-14 21:44:13 +0100385config MIPS_BOOT_ENV_LEGACY
386 bool "Hand over legacy environment to Linux kernel"
387 default y
388 help
389 Enable this option if you want U-Boot to hand over the Yamon-style
390 environment to the kernel. Information like memory size, initrd
391 address and size will be prepared as zero-terminated key/value list.
Robert P. J. Day8c60f922016-05-04 04:47:31 -0400392 The address of the environment is stored in register $a2.
Daniel Schwierzeckc07dc602015-01-14 21:44:13 +0100393
Daniel Schwierzeck8d7ff4d2015-01-14 21:44:13 +0100394config MIPS_BOOT_FDT
Daniel Schwierzeckd1b29d22015-02-22 16:58:30 +0100395 bool "Hand over a flattened device tree to Linux kernel"
Daniel Schwierzeck8d7ff4d2015-01-14 21:44:13 +0100396 help
397 Enable this option if you want U-Boot to hand over a flattened
Daniel Schwierzeckd1b29d22015-02-22 16:58:30 +0100398 device tree to the kernel. According to UHI register $a0 will be set
399 to -2 and the FDT address is stored in $a1.
Daniel Schwierzeck8d7ff4d2015-01-14 21:44:13 +0100400
Daniel Schwierzeckf9749fa2015-01-14 21:44:13 +0100401endmenu
402
Daniel Schwierzecka4c242b2014-10-26 14:14:07 +0100403config SUPPORTS_BIG_ENDIAN
404 bool
405
406config SUPPORTS_LITTLE_ENDIAN
407 bool
408
Daniel Schwierzeck256034d2014-10-26 14:14:07 +0100409config SUPPORTS_CPU_MIPS32_R1
410 bool
411
412config SUPPORTS_CPU_MIPS32_R2
413 bool
414
Paul Burton55e29dd2016-05-16 10:52:12 +0100415config SUPPORTS_CPU_MIPS32_R6
416 bool
417
Daniel Schwierzeck256034d2014-10-26 14:14:07 +0100418config SUPPORTS_CPU_MIPS64_R1
419 bool
420
421config SUPPORTS_CPU_MIPS64_R2
422 bool
423
Paul Burton55e29dd2016-05-16 10:52:12 +0100424config SUPPORTS_CPU_MIPS64_R6
425 bool
426
Aaron Williamsb2ea8182020-06-30 12:08:56 +0200427config SUPPORTS_CPU_MIPS64_OCTEON
428 bool
429
430config CPU_CAVIUM_OCTEON
431 bool
432
Daniel Schwierzeckdfbad0f2015-01-18 21:59:35 +0100433config CPU_MIPS32
434 bool
Paul Burton55e29dd2016-05-16 10:52:12 +0100435 default y if CPU_MIPS32_R1 || CPU_MIPS32_R2 || CPU_MIPS32_R6
Daniel Schwierzeckdfbad0f2015-01-18 21:59:35 +0100436
437config CPU_MIPS64
438 bool
Paul Burton55e29dd2016-05-16 10:52:12 +0100439 default y if CPU_MIPS64_R1 || CPU_MIPS64_R2 || CPU_MIPS64_R6
Aaron Williamsb2ea8182020-06-30 12:08:56 +0200440 default y if CPU_MIPS64_OCTEON
Daniel Schwierzeckdfbad0f2015-01-18 21:59:35 +0100441
Daniel Schwierzeckaadd3322015-12-26 19:55:37 +0100442config MIPS_TUNE_4KC
443 bool
444
445config MIPS_TUNE_14KC
446 bool
447
448config MIPS_TUNE_24KC
449 bool
450
Daniel Schwierzeckc7661d52016-05-27 15:39:39 +0200451config MIPS_TUNE_34KC
452 bool
453
Marek Vasuta9c6e8b2016-05-06 20:10:33 +0200454config MIPS_TUNE_74KC
455 bool
456
Aaron Williamsb2ea8182020-06-30 12:08:56 +0200457config MIPS_TUNE_OCTEON3
458 bool
459
Daniel Schwierzeck256034d2014-10-26 14:14:07 +0100460config 32BIT
461 bool
462
463config 64BIT
464 bool
465
Daniel Schwierzeck7dca6862015-01-18 22:00:18 +0100466config SWAP_IO_SPACE
467 bool
468
Paul Burton6832bdc2015-01-29 01:28:02 +0000469config SYS_MIPS_CACHE_INIT_RAM_LOAD
470 bool
471
Daniel Schwierzeck41dc35e2016-06-04 16:13:21 +0200472config MIPS_INIT_STACK_IN_SRAM
473 bool
Daniel Schwierzeck41dc35e2016-06-04 16:13:21 +0200474 help
475 Select this if the initial stack frame could be setup in SRAM.
476 Normally the initial stack frame is set up in DRAM which is often
477 only available after lowlevel_init. With this option the initial
478 stack frame and the early C environment is set up before
479 lowlevel_init. Thus lowlevel_init does not need to be implemented
480 in assembler.
481
developereb7d3a22020-04-21 09:28:27 +0200482config MIPS_SRAM_INIT
483 bool
developereb7d3a22020-04-21 09:28:27 +0200484 depends on MIPS_INIT_STACK_IN_SRAM
485 help
486 Select this if the SRAM for initial stack needs to be initialized
487 before it can be used. If enabled, a function mips_sram_init() will
488 be called just before setup_stack_gd.
489
Aaron Williamsb2ea8182020-06-30 12:08:56 +0200490config DMA_ADDR_T_64BIT
491 bool
492 help
493 Select this to enable 64-bit DMA addressing
494
Paul Burton5e511422016-05-27 14:28:04 +0100495config SYS_DCACHE_SIZE
496 int
497 default 0
498 help
499 The total size of the L1 Dcache, if known at compile time.
500
Paul Burton62f13522016-05-27 14:28:05 +0100501config SYS_DCACHE_LINE_SIZE
Paul Burton79e49fd2016-06-09 13:09:52 +0100502 int
Paul Burton62f13522016-05-27 14:28:05 +0100503 default 0
504 help
505 The size of L1 Dcache lines, if known at compile time.
506
Paul Burton5e511422016-05-27 14:28:04 +0100507config SYS_ICACHE_SIZE
508 int
509 default 0
510 help
511 The total size of the L1 ICache, if known at compile time.
512
Paul Burton62f13522016-05-27 14:28:05 +0100513config SYS_ICACHE_LINE_SIZE
Paul Burton5e511422016-05-27 14:28:04 +0100514 int
515 default 0
516 help
Paul Burton62f13522016-05-27 14:28:05 +0100517 The size of L1 Icache lines, if known at compile time.
Paul Burton5e511422016-05-27 14:28:04 +0100518
Ramon Fried7e07e492019-06-10 21:05:26 +0300519config SYS_SCACHE_LINE_SIZE
520 int
521 default 0
522 help
523 The size of L2 cache lines, if known at compile time.
524
525
Paul Burton5e511422016-05-27 14:28:04 +0100526config SYS_CACHE_SIZE_AUTO
527 def_bool y if SYS_DCACHE_SIZE = 0 && SYS_ICACHE_SIZE = 0 && \
Ramon Fried7e07e492019-06-10 21:05:26 +0300528 SYS_DCACHE_LINE_SIZE = 0 && SYS_ICACHE_LINE_SIZE = 0 && \
529 SYS_SCACHE_LINE_SIZE = 0
Paul Burton5e511422016-05-27 14:28:04 +0100530 help
531 Select this (or let it be auto-selected by not defining any cache
532 sizes) in order to allow U-Boot to automatically detect the sizes
533 of caches at runtime. This has a small cost in code size & runtime
534 so if you know the cache configuration for your system at compile
535 time it would be beneficial to configure it.
536
Paul Burton81560782016-09-21 11:18:54 +0100537config MIPS_L2_CACHE
538 bool
539 help
540 Select this if your system includes an L2 cache and you want U-Boot
541 to initialise & maintain it.
542
Paul Burton8d6600b2016-01-29 13:54:52 +0000543config DYNAMIC_IO_PORT_BASE
544 bool
545
Paul Burton79ac1742016-09-21 11:18:53 +0100546config MIPS_CM
547 bool
548 help
549 Select this if your system contains a MIPS Coherence Manager and you
550 wish U-Boot to configure it or make use of it to retrieve system
551 information such as cache configuration.
552
Daniel Schwierzeck2cc9a772018-09-07 19:18:44 +0200553config MIPS_INSERT_BOOT_CONFIG
554 bool
Daniel Schwierzeck2cc9a772018-09-07 19:18:44 +0200555 help
556 Enable this to insert some board-specific boot configuration in
557 the U-Boot binary at offset 0x10.
558
559config MIPS_BOOT_CONFIG_WORD0
560 hex
561 depends on MIPS_INSERT_BOOT_CONFIG
562 default 0x420 if TARGET_MALTA
563 default 0x0
564 help
565 Value which is inserted as boot config word 0.
566
567config MIPS_BOOT_CONFIG_WORD1
568 hex
569 depends on MIPS_INSERT_BOOT_CONFIG
570 default 0x0
571 help
572 Value which is inserted as boot config word 1.
573
Daniel Schwierzecka4c242b2014-10-26 14:14:07 +0100574endif
575
Masahiro Yamadad3ae6782014-07-30 14:08:14 +0900576endmenu