blob: d2a0a35bb9dc3543300f8e053acf3e07cebd6b6a [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
Gregory CLEMENTdd1033e2018-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 Rojasee422142017-04-25 00:39:20 +020067config ARCH_BMIPS
68 bool "Support BMIPS SoCs"
Álvaro Fernández Rojasee422142017-04-25 00:39:20 +020069 select CLK
70 select CPU
Michal Simek5ed063d2018-07-23 15:55:13 +020071 select DM
72 select OF_CONTROL
Álvaro Fernández Rojasee422142017-04-25 00:39:20 +020073 select RAM
74 select SYSRESET
Michal Simek08a00cb2018-07-23 15:55:14 +020075 imply CMD_DM
Álvaro Fernández Rojasee422142017-04-25 00:39:20 +020076
Weijie Gao16b94902019-04-30 11:13:58 +080077config ARCH_MTMIPS
78 bool "Support MediaTek MIPS platforms"
Weijie Gao3f851c92019-09-25 17:45:43 +080079 select CLK
Stefan Roese4c835a62018-09-05 15:12:35 +020080 imply CMD_DM
81 select DISPLAY_CPUINFO
82 select DM
Stefan Roeseb4a6a1b2018-10-09 08:59:09 +020083 imply DM_ETH
84 imply DM_GPIO
Weijie Gao3f851c92019-09-25 17:45:43 +080085 select DM_RESET
Stefan Roese4c835a62018-09-05 15:12:35 +020086 select DM_SERIAL
Weijie Gao3f851c92019-09-25 17:45:43 +080087 select PINCTRL
88 select PINMUX
89 select PINCONF
90 select RESET_MTMIPS
Stefan Roese4c835a62018-09-05 15:12:35 +020091 imply DM_SPI
92 imply DM_SPI_FLASH
Stefan Roese9814fb22019-05-28 08:11:37 +020093 select LAST_STAGE_INIT
Stefan Roese4c835a62018-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 Roese41f6e6e2018-08-16 15:27:32 +0200100 select SYSRESET
Weijie Gao7a4b6962020-04-21 09:28:47 +0200101 select SUPPORT_SPL
Stefan Roese4c835a62018-09-05 15:12:35 +0200102
Paul Burtoncd71b1d2018-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 Williams0dc4ab92020-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
119 select MIPS_TUNE_OCTEON3
120 select ROM_EXCEPTION_VECTORS
121 select SUPPORTS_BIG_ENDIAN
122 select SUPPORTS_CPU_MIPS64_OCTEON
123 select PHYS_64BIT
124 select OF_CONTROL
125 select OF_LIVE
126 imply CMD_DM
127
Purna Chandra Mandal32c1a6e2016-01-28 15:30:10 +0530128config MACH_PIC32
129 bool "Support Microchip PIC32"
Purna Chandra Mandal32c1a6e2016-01-28 15:30:10 +0530130 select DM
Michal Simek5ed063d2018-07-23 15:55:13 +0200131 select OF_CONTROL
Michal Simek08a00cb2018-07-23 15:55:14 +0200132 imply CMD_DM
Purna Chandra Mandal32c1a6e2016-01-28 15:30:10 +0530133
Paul Burtonad8783c2016-09-08 07:47:39 +0100134config TARGET_BOSTON
135 bool "Support Boston"
136 select DM
137 select DM_SERIAL
Paul Burtonad8783c2016-09-08 07:47:39 +0100138 select MIPS_CM
139 select MIPS_L1_CACHE_SHIFT_6
140 select MIPS_L2_CACHE
Paul Burtond2b12a52017-04-30 21:22:42 +0200141 select OF_BOARD_SETUP
Michal Simek5ed063d2018-07-23 15:55:13 +0200142 select OF_CONTROL
143 select ROM_EXCEPTION_VECTORS
Paul Burtonad8783c2016-09-08 07:47:39 +0100144 select SUPPORTS_BIG_ENDIAN
Paul Burtonad8783c2016-09-08 07:47:39 +0100145 select SUPPORTS_CPU_MIPS32_R1
146 select SUPPORTS_CPU_MIPS32_R2
147 select SUPPORTS_CPU_MIPS32_R6
148 select SUPPORTS_CPU_MIPS64_R1
149 select SUPPORTS_CPU_MIPS64_R2
150 select SUPPORTS_CPU_MIPS64_R6
Michal Simek5ed063d2018-07-23 15:55:13 +0200151 select SUPPORTS_LITTLE_ENDIAN
Michal Simek08a00cb2018-07-23 15:55:14 +0200152 imply CMD_DM
Paul Burtonad8783c2016-09-08 07:47:39 +0100153
Zubair Lutfullah Kakakhelebf2b9e2016-07-29 15:11:20 +0100154config TARGET_XILFPGA
155 bool "Support Imagination Xilfpga"
Zubair Lutfullah Kakakhelebf2b9e2016-07-29 15:11:20 +0100156 select DM
Zubair Lutfullah Kakakhelebf2b9e2016-07-29 15:11:20 +0100157 select DM_ETH
Michal Simek5ed063d2018-07-23 15:55:13 +0200158 select DM_GPIO
159 select DM_SERIAL
160 select MIPS_L1_CACHE_SHIFT_4
161 select OF_CONTROL
162 select ROM_EXCEPTION_VECTORS
Zubair Lutfullah Kakakhelebf2b9e2016-07-29 15:11:20 +0100163 select SUPPORTS_CPU_MIPS32_R1
164 select SUPPORTS_CPU_MIPS32_R2
Michal Simek5ed063d2018-07-23 15:55:13 +0200165 select SUPPORTS_LITTLE_ENDIAN
Michal Simek08a00cb2018-07-23 15:55:14 +0200166 imply CMD_DM
Zubair Lutfullah Kakakhelebf2b9e2016-07-29 15:11:20 +0100167 help
168 This supports IMGTEC MIPSfpga platform
169
Masahiro Yamadadd840582014-07-30 14:08:14 +0900170endchoice
171
Paul Burtonad8783c2016-09-08 07:47:39 +0100172source "board/imgtec/boston/Kconfig"
Masahiro Yamadadd840582014-07-30 14:08:14 +0900173source "board/imgtec/malta/Kconfig"
Zubair Lutfullah Kakakhelebf2b9e2016-07-29 15:11:20 +0100174source "board/imgtec/xilfpga/Kconfig"
Masahiro Yamadadd840582014-07-30 14:08:14 +0900175source "board/qemu-mips/Kconfig"
Wills Wang1d3d0f12016-03-16 16:59:52 +0800176source "arch/mips/mach-ath79/Kconfig"
Gregory CLEMENTdd1033e2018-12-14 16:16:47 +0100177source "arch/mips/mach-mscc/Kconfig"
Álvaro Fernández Rojasee422142017-04-25 00:39:20 +0200178source "arch/mips/mach-bmips/Kconfig"
Paul Burtoncd71b1d2018-12-16 19:25:22 -0300179source "arch/mips/mach-jz47xx/Kconfig"
Purna Chandra Mandal32c1a6e2016-01-28 15:30:10 +0530180source "arch/mips/mach-pic32/Kconfig"
Weijie Gao16b94902019-04-30 11:13:58 +0800181source "arch/mips/mach-mtmips/Kconfig"
Aaron Williams0dc4ab92020-06-30 12:08:56 +0200182source "arch/mips/mach-octeon/Kconfig"
Masahiro Yamadadd840582014-07-30 14:08:14 +0900183
Daniel Schwierzeck0e1dc342014-10-26 14:14:07 +0100184if MIPS
185
186choice
187 prompt "Endianness selection"
188 help
189 Some MIPS boards can be configured for either little or big endian
190 byte order. These modes require different U-Boot images. In general there
191 is one preferred byteorder for a particular system but some systems are
192 just as commonly used in the one or the other endianness.
193
194config SYS_BIG_ENDIAN
195 bool "Big endian"
196 depends on SUPPORTS_BIG_ENDIAN
197
198config SYS_LITTLE_ENDIAN
199 bool "Little endian"
200 depends on SUPPORTS_LITTLE_ENDIAN
201
202endchoice
203
Daniel Schwierzeck02611cb2014-10-26 14:14:07 +0100204choice
205 prompt "CPU selection"
206 default CPU_MIPS32_R2
207
208config CPU_MIPS32_R1
209 bool "MIPS32 Release 1"
210 depends on SUPPORTS_CPU_MIPS32_R1
211 select 32BIT
212 help
Paul Burtonc52ebea2016-05-16 10:52:12 +0100213 Choose this option to build an U-Boot for release 1 through 5 of the
Daniel Schwierzeck02611cb2014-10-26 14:14:07 +0100214 MIPS32 architecture.
215
216config CPU_MIPS32_R2
217 bool "MIPS32 Release 2"
218 depends on SUPPORTS_CPU_MIPS32_R2
219 select 32BIT
220 help
Paul Burtonc52ebea2016-05-16 10:52:12 +0100221 Choose this option to build an U-Boot for release 2 through 5 of the
222 MIPS32 architecture.
223
224config CPU_MIPS32_R6
225 bool "MIPS32 Release 6"
226 depends on SUPPORTS_CPU_MIPS32_R6
227 select 32BIT
228 help
229 Choose this option to build an U-Boot for release 6 or later of the
Daniel Schwierzeck02611cb2014-10-26 14:14:07 +0100230 MIPS32 architecture.
231
232config CPU_MIPS64_R1
233 bool "MIPS64 Release 1"
234 depends on SUPPORTS_CPU_MIPS64_R1
235 select 64BIT
236 help
Paul Burtonc52ebea2016-05-16 10:52:12 +0100237 Choose this option to build a kernel for release 1 through 5 of the
Daniel Schwierzeck02611cb2014-10-26 14:14:07 +0100238 MIPS64 architecture.
239
240config CPU_MIPS64_R2
241 bool "MIPS64 Release 2"
242 depends on SUPPORTS_CPU_MIPS64_R2
243 select 64BIT
244 help
Paul Burtonc52ebea2016-05-16 10:52:12 +0100245 Choose this option to build a kernel for release 2 through 5 of the
246 MIPS64 architecture.
247
248config CPU_MIPS64_R6
249 bool "MIPS64 Release 6"
250 depends on SUPPORTS_CPU_MIPS64_R6
251 select 64BIT
252 help
253 Choose this option to build a kernel for release 6 or later of the
Daniel Schwierzeck02611cb2014-10-26 14:14:07 +0100254 MIPS64 architecture.
255
Aaron Williams0dc4ab92020-06-30 12:08:56 +0200256config CPU_MIPS64_OCTEON
257 bool "Marvell Octeon series of CPUs"
258 depends on SUPPORTS_CPU_MIPS64_OCTEON
259 select 64BIT
260 help
261 Choose this option for Marvell Octeon CPUs. These CPUs are between
262 MIPS64 R5 and R6 with other extensions.
263
Daniel Schwierzeck02611cb2014-10-26 14:14:07 +0100264endchoice
265
Daniel Schwierzeckaf3971f2016-02-14 18:52:57 +0100266menu "General setup"
267
268config ROM_EXCEPTION_VECTORS
269 bool "Build U-Boot image with exception vectors"
270 help
271 Enable this to include exception vectors in the U-Boot image. This is
272 required if the U-Boot entry point is equal to the address of the
273 CPU reset exception vector (e.g. U-Boot as ROM loader in Qemu,
274 U-Boot booted from parallel NOR flash).
275 Disable this, if the U-Boot image is booted from DRAM (e.g. by SPL).
276 In that case the image size will be reduced by 0x500 bytes.
277
Paul Burton939a2552017-05-12 13:26:11 +0200278config MIPS_CM_BASE
279 hex "MIPS CM GCR Base Address"
280 depends on MIPS_CM
Paul Burtoned048e72017-04-30 21:22:41 +0200281 default 0x16100000 if TARGET_BOSTON
Paul Burton939a2552017-05-12 13:26:11 +0200282 default 0x1fbf8000
283 help
284 The physical base address at which to map the MIPS Coherence Manager
285 Global Configuration Registers (GCRs). This should be set such that
286 the GCRs occupy a region of the physical address space which is
287 otherwise unused, or at minimum that software doesn't need to access.
288
Daniel Schwierzeck5ef337a2018-09-07 19:02:05 +0200289config MIPS_CACHE_INDEX_BASE
290 hex "Index base address for cache initialisation"
291 default 0x80000000 if CPU_MIPS32
292 default 0xffffffff80000000 if CPU_MIPS64
293 help
294 This is the base address for a memory block, which is used for
295 initialising the cache lines. This is also the base address of a memory
296 block which is used for loading and filling cache lines when
297 SYS_MIPS_CACHE_INIT_RAM_LOAD is selected.
298 Normally this is CKSEG0. If the MIPS system needs to move this block
299 to some SRAM or ScratchPad RAM, adapt this option accordingly.
300
Stefan Roesede34a612020-06-30 12:33:16 +0200301config MIPS_MACH_EARLY_INIT
302 bool "Enable mach specific very early init code"
303 help
304 Use this to enable the call to mips_mach_early_init() very early
305 from start.S. This function can be used e.g. to do some very early
306 CPU / SoC intitialization or image copying. Its called very early
307 and at this stage the PC might not match the linking address
308 (CONFIG_TEXT_BASE) - no absolute jump done until this call.
309
Daniel Schwierzeck57bfb1a2020-07-12 00:45:57 +0200310config MIPS_CACHE_SETUP
311 bool "Allow generic start code to initialize and setup caches"
312 default n if SKIP_LOWLEVEL_INIT
313 default y
314 help
315 This allows the generic start code to invoke the generic initialization
316 of the CPU caches. Disabling this can be useful for RAM boot scenarios
317 (EJTAG, SPL payload) or for machines which don't need cache initialization
318 or which want to provide their own cache implementation.
319
320 If unsure, say yes.
321
322config MIPS_CACHE_DISABLE
323 bool "Allow generic start code to initially disable caches"
324 default n if SKIP_LOWLEVEL_INIT
325 default y
326 help
327 This allows the generic start code to initially disable the CPU caches
328 and run uncached until the caches are initialized and enabled. Disabling
329 this can be useful on machines which don't need cache initialization or
330 which want to provide their own cache implementation.
331
332 If unsure, say yes.
333
Daniel Schwierzeck96301462018-11-01 02:02:21 +0100334config MIPS_RELOCATION_TABLE_SIZE
335 hex "Relocation table size"
336 range 0x100 0x10000
337 default "0x8000"
338 ---help---
339 A table of relocation data will be appended to the U-Boot binary
340 and parsed in relocate_code() to fix up all offsets in the relocated
341 U-Boot.
342
343 This option allows the amount of space reserved for the table to be
344 adjusted in a range from 256 up to 64k. The default is 32k and should
345 be ok in most cases. Reduce this value to shrink the size of U-Boot
346 binary.
347
348 The build will fail and a valid size suggested if this is too small.
349
350 If unsure, leave at the default value.
351
Weijie Gao71059732020-04-21 09:28:25 +0200352config RESTORE_EXCEPTION_VECTOR_BASE
353 bool "Restore exception vector base before booting linux kernel"
354 default n
355 help
356 In U-Boot the exception vector base will be moved to top of memory,
357 to be used to display register dump when exception occurs.
358 But some old linux kernel does not honor the base set in CP0_EBASE.
359 A modified exception vector base will cause kernel crash.
360
361 This option will restore the exception vector base to its previous
362 value.
363
364 If unsure, say N.
365
366config OVERRIDE_EXCEPTION_VECTOR_BASE
367 bool "Override the exception vector base to be restored"
368 depends on RESTORE_EXCEPTION_VECTOR_BASE
369 default n
370 help
371 Enable this option if you want to use a different exception vector
372 base rather than the previously saved one.
373
374config NEW_EXCEPTION_VECTOR_BASE
375 hex "New exception vector base"
376 depends on OVERRIDE_EXCEPTION_VECTOR_BASE
377 range 0x80000000 0xbffff000
378 default 0x80000000
379 help
380 The exception vector base to be restored before booting linux kernel
381
Weijie Gaoc95c3ec2020-04-21 09:28:33 +0200382config INIT_STACK_WITHOUT_MALLOC_F
383 bool "Do not reserve malloc space on initial stack"
384 default n
385 help
386 Enable this option if you don't want to reserve malloc space on
387 initial stack. This is useful if the initial stack can't hold large
388 malloc space. Platform should set the malloc_base later when DRAM is
389 ready to use.
390
391config SPL_INIT_STACK_WITHOUT_MALLOC_F
392 bool "Do not reserve malloc space on initial stack in SPL"
393 default n
394 help
395 Enable this option if you don't want to reserve malloc space on
396 initial stack. This is useful if the initial stack can't hold large
397 malloc space. Platform should set the malloc_base later when DRAM is
398 ready to use.
399
Weijie Gao814a8912020-04-21 09:28:37 +0200400config SPL_LOADER_SUPPORT
401 bool
402 default n
403 help
404 Enable this option if you want to use SPL loaders without DM enabled.
405
Daniel Schwierzeckaf3971f2016-02-14 18:52:57 +0100406endmenu
407
Daniel Schwierzeck25fc6642015-01-14 21:44:13 +0100408menu "OS boot interface"
409
410config MIPS_BOOT_CMDLINE_LEGACY
411 bool "Hand over legacy command line to Linux kernel"
412 default y
413 help
414 Enable this option if you want U-Boot to hand over the Yamon-style
415 command line to the kernel. All bootargs will be prepared as argc/argv
416 compatible list. The argument count (argc) is stored in register $a0.
417 The address of the argument list (argv) is stored in register $a1.
418
Daniel Schwierzeckca65e582015-01-14 21:44:13 +0100419config MIPS_BOOT_ENV_LEGACY
420 bool "Hand over legacy environment to Linux kernel"
421 default y
422 help
423 Enable this option if you want U-Boot to hand over the Yamon-style
424 environment to the kernel. Information like memory size, initrd
425 address and size will be prepared as zero-terminated key/value list.
Robert P. J. Day1cc0a9f2016-05-04 04:47:31 -0400426 The address of the environment is stored in register $a2.
Daniel Schwierzeckca65e582015-01-14 21:44:13 +0100427
Daniel Schwierzeck5002d8c2015-01-14 21:44:13 +0100428config MIPS_BOOT_FDT
Daniel Schwierzeck90b1c9f2015-02-22 16:58:30 +0100429 bool "Hand over a flattened device tree to Linux kernel"
Daniel Schwierzeck5002d8c2015-01-14 21:44:13 +0100430 default n
431 help
432 Enable this option if you want U-Boot to hand over a flattened
Daniel Schwierzeck90b1c9f2015-02-22 16:58:30 +0100433 device tree to the kernel. According to UHI register $a0 will be set
434 to -2 and the FDT address is stored in $a1.
Daniel Schwierzeck5002d8c2015-01-14 21:44:13 +0100435
Daniel Schwierzeck25fc6642015-01-14 21:44:13 +0100436endmenu
437
Daniel Schwierzeck0e1dc342014-10-26 14:14:07 +0100438config SUPPORTS_BIG_ENDIAN
439 bool
440
441config SUPPORTS_LITTLE_ENDIAN
442 bool
443
Daniel Schwierzeck02611cb2014-10-26 14:14:07 +0100444config SUPPORTS_CPU_MIPS32_R1
445 bool
446
447config SUPPORTS_CPU_MIPS32_R2
448 bool
449
Paul Burtonc52ebea2016-05-16 10:52:12 +0100450config SUPPORTS_CPU_MIPS32_R6
451 bool
452
Daniel Schwierzeck02611cb2014-10-26 14:14:07 +0100453config SUPPORTS_CPU_MIPS64_R1
454 bool
455
456config SUPPORTS_CPU_MIPS64_R2
457 bool
458
Paul Burtonc52ebea2016-05-16 10:52:12 +0100459config SUPPORTS_CPU_MIPS64_R6
460 bool
461
Aaron Williams0dc4ab92020-06-30 12:08:56 +0200462config SUPPORTS_CPU_MIPS64_OCTEON
463 bool
464
465config CPU_CAVIUM_OCTEON
466 bool
467
Daniel Schwierzeckc57dafb2015-01-18 21:59:35 +0100468config CPU_MIPS32
469 bool
Paul Burtonc52ebea2016-05-16 10:52:12 +0100470 default y if CPU_MIPS32_R1 || CPU_MIPS32_R2 || CPU_MIPS32_R6
Daniel Schwierzeckc57dafb2015-01-18 21:59:35 +0100471
472config CPU_MIPS64
473 bool
Paul Burtonc52ebea2016-05-16 10:52:12 +0100474 default y if CPU_MIPS64_R1 || CPU_MIPS64_R2 || CPU_MIPS64_R6
Aaron Williams0dc4ab92020-06-30 12:08:56 +0200475 default y if CPU_MIPS64_OCTEON
Daniel Schwierzeckc57dafb2015-01-18 21:59:35 +0100476
Daniel Schwierzeck0315a282015-12-26 19:55:37 +0100477config MIPS_TUNE_4KC
478 bool
479
480config MIPS_TUNE_14KC
481 bool
482
483config MIPS_TUNE_24KC
484 bool
485
Daniel Schwierzeck5f9cc362016-05-27 15:39:39 +0200486config MIPS_TUNE_34KC
487 bool
488
Marek Vasut0a0a9582016-05-06 20:10:33 +0200489config MIPS_TUNE_74KC
490 bool
491
Aaron Williams0dc4ab92020-06-30 12:08:56 +0200492config MIPS_TUNE_OCTEON3
493 bool
494
Daniel Schwierzeck02611cb2014-10-26 14:14:07 +0100495config 32BIT
496 bool
497
498config 64BIT
499 bool
500
Daniel Schwierzeck9d638ee2015-01-18 22:00:18 +0100501config SWAP_IO_SPACE
502 bool
503
Paul Burtondd7c7202015-01-29 01:28:02 +0000504config SYS_MIPS_CACHE_INIT_RAM_LOAD
505 bool
506
Daniel Schwierzeck924ad862016-06-04 16:13:21 +0200507config MIPS_INIT_STACK_IN_SRAM
508 bool
509 default n
510 help
511 Select this if the initial stack frame could be setup in SRAM.
512 Normally the initial stack frame is set up in DRAM which is often
513 only available after lowlevel_init. With this option the initial
514 stack frame and the early C environment is set up before
515 lowlevel_init. Thus lowlevel_init does not need to be implemented
516 in assembler.
517
Weijie Gao2434f582020-04-21 09:28:27 +0200518config MIPS_SRAM_INIT
519 bool
520 default n
521 depends on MIPS_INIT_STACK_IN_SRAM
522 help
523 Select this if the SRAM for initial stack needs to be initialized
524 before it can be used. If enabled, a function mips_sram_init() will
525 be called just before setup_stack_gd.
526
Aaron Williams0dc4ab92020-06-30 12:08:56 +0200527config DMA_ADDR_T_64BIT
528 bool
529 help
530 Select this to enable 64-bit DMA addressing
531
Paul Burtonace3be42016-05-27 14:28:04 +0100532config SYS_DCACHE_SIZE
533 int
534 default 0
535 help
536 The total size of the L1 Dcache, if known at compile time.
537
Paul Burton37228622016-05-27 14:28:05 +0100538config SYS_DCACHE_LINE_SIZE
Paul Burton4b7b0a02016-06-09 13:09:52 +0100539 int
Paul Burton37228622016-05-27 14:28:05 +0100540 default 0
541 help
542 The size of L1 Dcache lines, if known at compile time.
543
Paul Burtonace3be42016-05-27 14:28:04 +0100544config SYS_ICACHE_SIZE
545 int
546 default 0
547 help
548 The total size of the L1 ICache, if known at compile time.
549
Paul Burton37228622016-05-27 14:28:05 +0100550config SYS_ICACHE_LINE_SIZE
Paul Burtonace3be42016-05-27 14:28:04 +0100551 int
552 default 0
553 help
Paul Burton37228622016-05-27 14:28:05 +0100554 The size of L1 Icache lines, if known at compile time.
Paul Burtonace3be42016-05-27 14:28:04 +0100555
Ramon Fried22247c62019-06-10 21:05:26 +0300556config SYS_SCACHE_LINE_SIZE
557 int
558 default 0
559 help
560 The size of L2 cache lines, if known at compile time.
561
562
Paul Burtonace3be42016-05-27 14:28:04 +0100563config SYS_CACHE_SIZE_AUTO
564 def_bool y if SYS_DCACHE_SIZE = 0 && SYS_ICACHE_SIZE = 0 && \
Ramon Fried22247c62019-06-10 21:05:26 +0300565 SYS_DCACHE_LINE_SIZE = 0 && SYS_ICACHE_LINE_SIZE = 0 && \
566 SYS_SCACHE_LINE_SIZE = 0
Paul Burtonace3be42016-05-27 14:28:04 +0100567 help
568 Select this (or let it be auto-selected by not defining any cache
569 sizes) in order to allow U-Boot to automatically detect the sizes
570 of caches at runtime. This has a small cost in code size & runtime
571 so if you know the cache configuration for your system at compile
572 time it would be beneficial to configure it.
573
Daniel Schwierzeckf53830e2016-01-09 17:32:50 +0100574config MIPS_L1_CACHE_SHIFT_4
575 bool
576
577config MIPS_L1_CACHE_SHIFT_5
578 bool
579
580config MIPS_L1_CACHE_SHIFT_6
581 bool
582
583config MIPS_L1_CACHE_SHIFT_7
584 bool
585
586config MIPS_L1_CACHE_SHIFT
587 int
588 default "7" if MIPS_L1_CACHE_SHIFT_7
589 default "6" if MIPS_L1_CACHE_SHIFT_6
590 default "5" if MIPS_L1_CACHE_SHIFT_5
591 default "4" if MIPS_L1_CACHE_SHIFT_4
592 default "5"
593
Paul Burton4baa0ab2016-09-21 11:18:54 +0100594config MIPS_L2_CACHE
595 bool
596 help
597 Select this if your system includes an L2 cache and you want U-Boot
598 to initialise & maintain it.
599
Paul Burton05e34252016-01-29 13:54:52 +0000600config DYNAMIC_IO_PORT_BASE
601 bool
602
Paul Burtonb2b135d2016-09-21 11:18:53 +0100603config MIPS_CM
604 bool
605 help
606 Select this if your system contains a MIPS Coherence Manager and you
607 wish U-Boot to configure it or make use of it to retrieve system
608 information such as cache configuration.
609
Daniel Schwierzeckd1c3d8b2018-09-07 19:18:44 +0200610config MIPS_INSERT_BOOT_CONFIG
611 bool
612 default n
613 help
614 Enable this to insert some board-specific boot configuration in
615 the U-Boot binary at offset 0x10.
616
617config MIPS_BOOT_CONFIG_WORD0
618 hex
619 depends on MIPS_INSERT_BOOT_CONFIG
620 default 0x420 if TARGET_MALTA
621 default 0x0
622 help
623 Value which is inserted as boot config word 0.
624
625config MIPS_BOOT_CONFIG_WORD1
626 hex
627 depends on MIPS_INSERT_BOOT_CONFIG
628 default 0x0
629 help
630 Value which is inserted as boot config word 1.
631
Daniel Schwierzeck0e1dc342014-10-26 14:14:07 +0100632endif
633
Masahiro Yamadadd840582014-07-30 14:08:14 +0900634endmenu