blob: 77f563e98ed293f774b4008b13477747a2503e78 [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
Weijie Gao7a4b6962020-04-21 09:28:47 +0200100 select SUPPORT_SPL
Stefan Roese4c835a62018-09-05 15:12:35 +0200101
Paul Burtoncd71b1d2018-12-16 19:25:22 -0300102config ARCH_JZ47XX
103 bool "Support Ingenic JZ47xx"
104 select SUPPORT_SPL
105 select OF_CONTROL
106 select DM
107
Aaron Williams0dc4ab92020-06-30 12:08:56 +0200108config ARCH_OCTEON
109 bool "Support Marvell Octeon CN7xxx platforms"
110 select CPU_CAVIUM_OCTEON
111 select DISPLAY_CPUINFO
112 select DMA_ADDR_T_64BIT
113 select DM
Aaron Williams0dc4ab92020-06-30 12:08:56 +0200114 select DM_ETH
Stefan Roese10155402020-07-30 13:56:21 +0200115 select DM_GPIO
116 select DM_I2C
117 select DM_SERIAL
118 select DM_SPI
Aaron Williams0dc4ab92020-06-30 12:08:56 +0200119 select MIPS_L2_CACHE
Stefan Roesee9609dc2020-06-30 12:33:17 +0200120 select MIPS_MACH_EARLY_INIT
Aaron Williams0dc4ab92020-06-30 12:08:56 +0200121 select MIPS_TUNE_OCTEON3
122 select ROM_EXCEPTION_VECTORS
123 select SUPPORTS_BIG_ENDIAN
124 select SUPPORTS_CPU_MIPS64_OCTEON
125 select PHYS_64BIT
126 select OF_CONTROL
127 select OF_LIVE
128 imply CMD_DM
129
Purna Chandra Mandal32c1a6e2016-01-28 15:30:10 +0530130config MACH_PIC32
131 bool "Support Microchip PIC32"
Purna Chandra Mandal32c1a6e2016-01-28 15:30:10 +0530132 select DM
Michal Simek5ed063d2018-07-23 15:55:13 +0200133 select OF_CONTROL
Michal Simek08a00cb2018-07-23 15:55:14 +0200134 imply CMD_DM
Purna Chandra Mandal32c1a6e2016-01-28 15:30:10 +0530135
Paul Burtonad8783c2016-09-08 07:47:39 +0100136config TARGET_BOSTON
137 bool "Support Boston"
138 select DM
139 select DM_SERIAL
Paul Burtonad8783c2016-09-08 07:47:39 +0100140 select MIPS_CM
141 select MIPS_L1_CACHE_SHIFT_6
142 select MIPS_L2_CACHE
Paul Burtond2b12a52017-04-30 21:22:42 +0200143 select OF_BOARD_SETUP
Michal Simek5ed063d2018-07-23 15:55:13 +0200144 select OF_CONTROL
145 select ROM_EXCEPTION_VECTORS
Paul Burtonad8783c2016-09-08 07:47:39 +0100146 select SUPPORTS_BIG_ENDIAN
Paul Burtonad8783c2016-09-08 07:47:39 +0100147 select SUPPORTS_CPU_MIPS32_R1
148 select SUPPORTS_CPU_MIPS32_R2
149 select SUPPORTS_CPU_MIPS32_R6
150 select SUPPORTS_CPU_MIPS64_R1
151 select SUPPORTS_CPU_MIPS64_R2
152 select SUPPORTS_CPU_MIPS64_R6
Michal Simek5ed063d2018-07-23 15:55:13 +0200153 select SUPPORTS_LITTLE_ENDIAN
Michal Simek08a00cb2018-07-23 15:55:14 +0200154 imply CMD_DM
Paul Burtonad8783c2016-09-08 07:47:39 +0100155
Zubair Lutfullah Kakakhelebf2b9e2016-07-29 15:11:20 +0100156config TARGET_XILFPGA
157 bool "Support Imagination Xilfpga"
Zubair Lutfullah Kakakhelebf2b9e2016-07-29 15:11:20 +0100158 select DM
Zubair Lutfullah Kakakhelebf2b9e2016-07-29 15:11:20 +0100159 select DM_ETH
Michal Simek5ed063d2018-07-23 15:55:13 +0200160 select DM_GPIO
161 select DM_SERIAL
162 select MIPS_L1_CACHE_SHIFT_4
163 select OF_CONTROL
164 select ROM_EXCEPTION_VECTORS
Zubair Lutfullah Kakakhelebf2b9e2016-07-29 15:11:20 +0100165 select SUPPORTS_CPU_MIPS32_R1
166 select SUPPORTS_CPU_MIPS32_R2
Michal Simek5ed063d2018-07-23 15:55:13 +0200167 select SUPPORTS_LITTLE_ENDIAN
Michal Simek08a00cb2018-07-23 15:55:14 +0200168 imply CMD_DM
Zubair Lutfullah Kakakhelebf2b9e2016-07-29 15:11:20 +0100169 help
170 This supports IMGTEC MIPSfpga platform
171
Masahiro Yamadadd840582014-07-30 14:08:14 +0900172endchoice
173
Paul Burtonad8783c2016-09-08 07:47:39 +0100174source "board/imgtec/boston/Kconfig"
Masahiro Yamadadd840582014-07-30 14:08:14 +0900175source "board/imgtec/malta/Kconfig"
Zubair Lutfullah Kakakhelebf2b9e2016-07-29 15:11:20 +0100176source "board/imgtec/xilfpga/Kconfig"
Masahiro Yamadadd840582014-07-30 14:08:14 +0900177source "board/qemu-mips/Kconfig"
Wills Wang1d3d0f12016-03-16 16:59:52 +0800178source "arch/mips/mach-ath79/Kconfig"
Gregory CLEMENTdd1033e2018-12-14 16:16:47 +0100179source "arch/mips/mach-mscc/Kconfig"
Álvaro Fernández Rojasee422142017-04-25 00:39:20 +0200180source "arch/mips/mach-bmips/Kconfig"
Paul Burtoncd71b1d2018-12-16 19:25:22 -0300181source "arch/mips/mach-jz47xx/Kconfig"
Purna Chandra Mandal32c1a6e2016-01-28 15:30:10 +0530182source "arch/mips/mach-pic32/Kconfig"
Weijie Gao16b94902019-04-30 11:13:58 +0800183source "arch/mips/mach-mtmips/Kconfig"
Aaron Williams0dc4ab92020-06-30 12:08:56 +0200184source "arch/mips/mach-octeon/Kconfig"
Masahiro Yamadadd840582014-07-30 14:08:14 +0900185
Daniel Schwierzeck0e1dc342014-10-26 14:14:07 +0100186if MIPS
187
188choice
189 prompt "Endianness selection"
190 help
191 Some MIPS boards can be configured for either little or big endian
192 byte order. These modes require different U-Boot images. In general there
193 is one preferred byteorder for a particular system but some systems are
194 just as commonly used in the one or the other endianness.
195
196config SYS_BIG_ENDIAN
197 bool "Big endian"
198 depends on SUPPORTS_BIG_ENDIAN
199
200config SYS_LITTLE_ENDIAN
201 bool "Little endian"
202 depends on SUPPORTS_LITTLE_ENDIAN
203
204endchoice
205
Daniel Schwierzeck02611cb2014-10-26 14:14:07 +0100206choice
207 prompt "CPU selection"
208 default CPU_MIPS32_R2
209
210config CPU_MIPS32_R1
211 bool "MIPS32 Release 1"
212 depends on SUPPORTS_CPU_MIPS32_R1
213 select 32BIT
214 help
Paul Burtonc52ebea2016-05-16 10:52:12 +0100215 Choose this option to build an U-Boot for release 1 through 5 of the
Daniel Schwierzeck02611cb2014-10-26 14:14:07 +0100216 MIPS32 architecture.
217
218config CPU_MIPS32_R2
219 bool "MIPS32 Release 2"
220 depends on SUPPORTS_CPU_MIPS32_R2
221 select 32BIT
222 help
Paul Burtonc52ebea2016-05-16 10:52:12 +0100223 Choose this option to build an U-Boot for release 2 through 5 of the
224 MIPS32 architecture.
225
226config CPU_MIPS32_R6
227 bool "MIPS32 Release 6"
228 depends on SUPPORTS_CPU_MIPS32_R6
229 select 32BIT
230 help
231 Choose this option to build an U-Boot for release 6 or later of the
Daniel Schwierzeck02611cb2014-10-26 14:14:07 +0100232 MIPS32 architecture.
233
234config CPU_MIPS64_R1
235 bool "MIPS64 Release 1"
236 depends on SUPPORTS_CPU_MIPS64_R1
237 select 64BIT
238 help
Paul Burtonc52ebea2016-05-16 10:52:12 +0100239 Choose this option to build a kernel for release 1 through 5 of the
Daniel Schwierzeck02611cb2014-10-26 14:14:07 +0100240 MIPS64 architecture.
241
242config CPU_MIPS64_R2
243 bool "MIPS64 Release 2"
244 depends on SUPPORTS_CPU_MIPS64_R2
245 select 64BIT
246 help
Paul Burtonc52ebea2016-05-16 10:52:12 +0100247 Choose this option to build a kernel for release 2 through 5 of the
248 MIPS64 architecture.
249
250config CPU_MIPS64_R6
251 bool "MIPS64 Release 6"
252 depends on SUPPORTS_CPU_MIPS64_R6
253 select 64BIT
254 help
255 Choose this option to build a kernel for release 6 or later of the
Daniel Schwierzeck02611cb2014-10-26 14:14:07 +0100256 MIPS64 architecture.
257
Aaron Williams0dc4ab92020-06-30 12:08:56 +0200258config CPU_MIPS64_OCTEON
259 bool "Marvell Octeon series of CPUs"
260 depends on SUPPORTS_CPU_MIPS64_OCTEON
261 select 64BIT
262 help
263 Choose this option for Marvell Octeon CPUs. These CPUs are between
264 MIPS64 R5 and R6 with other extensions.
265
Daniel Schwierzeck02611cb2014-10-26 14:14:07 +0100266endchoice
267
Daniel Schwierzeckaf3971f2016-02-14 18:52:57 +0100268menu "General setup"
269
270config ROM_EXCEPTION_VECTORS
271 bool "Build U-Boot image with exception vectors"
272 help
273 Enable this to include exception vectors in the U-Boot image. This is
274 required if the U-Boot entry point is equal to the address of the
275 CPU reset exception vector (e.g. U-Boot as ROM loader in Qemu,
276 U-Boot booted from parallel NOR flash).
277 Disable this, if the U-Boot image is booted from DRAM (e.g. by SPL).
278 In that case the image size will be reduced by 0x500 bytes.
279
Paul Burton939a2552017-05-12 13:26:11 +0200280config MIPS_CM_BASE
281 hex "MIPS CM GCR Base Address"
282 depends on MIPS_CM
Paul Burtoned048e72017-04-30 21:22:41 +0200283 default 0x16100000 if TARGET_BOSTON
Paul Burton939a2552017-05-12 13:26:11 +0200284 default 0x1fbf8000
285 help
286 The physical base address at which to map the MIPS Coherence Manager
287 Global Configuration Registers (GCRs). This should be set such that
288 the GCRs occupy a region of the physical address space which is
289 otherwise unused, or at minimum that software doesn't need to access.
290
Daniel Schwierzeck5ef337a2018-09-07 19:02:05 +0200291config MIPS_CACHE_INDEX_BASE
292 hex "Index base address for cache initialisation"
293 default 0x80000000 if CPU_MIPS32
294 default 0xffffffff80000000 if CPU_MIPS64
295 help
296 This is the base address for a memory block, which is used for
297 initialising the cache lines. This is also the base address of a memory
298 block which is used for loading and filling cache lines when
299 SYS_MIPS_CACHE_INIT_RAM_LOAD is selected.
300 Normally this is CKSEG0. If the MIPS system needs to move this block
301 to some SRAM or ScratchPad RAM, adapt this option accordingly.
302
Stefan Roesede34a612020-06-30 12:33:16 +0200303config MIPS_MACH_EARLY_INIT
304 bool "Enable mach specific very early init code"
305 help
306 Use this to enable the call to mips_mach_early_init() very early
307 from start.S. This function can be used e.g. to do some very early
308 CPU / SoC intitialization or image copying. Its called very early
309 and at this stage the PC might not match the linking address
310 (CONFIG_TEXT_BASE) - no absolute jump done until this call.
311
Daniel Schwierzeck57bfb1a2020-07-12 00:45:57 +0200312config MIPS_CACHE_SETUP
313 bool "Allow generic start code to initialize and setup caches"
314 default n if SKIP_LOWLEVEL_INIT
315 default y
316 help
317 This allows the generic start code to invoke the generic initialization
318 of the CPU caches. Disabling this can be useful for RAM boot scenarios
319 (EJTAG, SPL payload) or for machines which don't need cache initialization
320 or which want to provide their own cache implementation.
321
322 If unsure, say yes.
323
324config MIPS_CACHE_DISABLE
325 bool "Allow generic start code to initially disable caches"
326 default n if SKIP_LOWLEVEL_INIT
327 default y
328 help
329 This allows the generic start code to initially disable the CPU caches
330 and run uncached until the caches are initialized and enabled. Disabling
331 this can be useful on machines which don't need cache initialization or
332 which want to provide their own cache implementation.
333
334 If unsure, say yes.
335
Daniel Schwierzeck96301462018-11-01 02:02:21 +0100336config MIPS_RELOCATION_TABLE_SIZE
337 hex "Relocation table size"
338 range 0x100 0x10000
339 default "0x8000"
340 ---help---
341 A table of relocation data will be appended to the U-Boot binary
342 and parsed in relocate_code() to fix up all offsets in the relocated
343 U-Boot.
344
345 This option allows the amount of space reserved for the table to be
346 adjusted in a range from 256 up to 64k. The default is 32k and should
347 be ok in most cases. Reduce this value to shrink the size of U-Boot
348 binary.
349
350 The build will fail and a valid size suggested if this is too small.
351
352 If unsure, leave at the default value.
353
Weijie Gao71059732020-04-21 09:28:25 +0200354config RESTORE_EXCEPTION_VECTOR_BASE
355 bool "Restore exception vector base before booting linux kernel"
356 default n
357 help
358 In U-Boot the exception vector base will be moved to top of memory,
359 to be used to display register dump when exception occurs.
360 But some old linux kernel does not honor the base set in CP0_EBASE.
361 A modified exception vector base will cause kernel crash.
362
363 This option will restore the exception vector base to its previous
364 value.
365
366 If unsure, say N.
367
368config OVERRIDE_EXCEPTION_VECTOR_BASE
369 bool "Override the exception vector base to be restored"
370 depends on RESTORE_EXCEPTION_VECTOR_BASE
371 default n
372 help
373 Enable this option if you want to use a different exception vector
374 base rather than the previously saved one.
375
376config NEW_EXCEPTION_VECTOR_BASE
377 hex "New exception vector base"
378 depends on OVERRIDE_EXCEPTION_VECTOR_BASE
379 range 0x80000000 0xbffff000
380 default 0x80000000
381 help
382 The exception vector base to be restored before booting linux kernel
383
Weijie Gaoc95c3ec2020-04-21 09:28:33 +0200384config INIT_STACK_WITHOUT_MALLOC_F
385 bool "Do not reserve malloc space on initial stack"
386 default n
387 help
388 Enable this option if you don't want to reserve malloc space on
389 initial stack. This is useful if the initial stack can't hold large
390 malloc space. Platform should set the malloc_base later when DRAM is
391 ready to use.
392
393config SPL_INIT_STACK_WITHOUT_MALLOC_F
394 bool "Do not reserve malloc space on initial stack in SPL"
395 default n
396 help
397 Enable this option if you don't want to reserve malloc space on
398 initial stack. This is useful if the initial stack can't hold large
399 malloc space. Platform should set the malloc_base later when DRAM is
400 ready to use.
401
Weijie Gao814a8912020-04-21 09:28:37 +0200402config SPL_LOADER_SUPPORT
403 bool
404 default n
405 help
406 Enable this option if you want to use SPL loaders without DM enabled.
407
Daniel Schwierzeckaf3971f2016-02-14 18:52:57 +0100408endmenu
409
Daniel Schwierzeck25fc6642015-01-14 21:44:13 +0100410menu "OS boot interface"
411
412config MIPS_BOOT_CMDLINE_LEGACY
413 bool "Hand over legacy command line to Linux kernel"
414 default y
415 help
416 Enable this option if you want U-Boot to hand over the Yamon-style
417 command line to the kernel. All bootargs will be prepared as argc/argv
418 compatible list. The argument count (argc) is stored in register $a0.
419 The address of the argument list (argv) is stored in register $a1.
420
Daniel Schwierzeckca65e582015-01-14 21:44:13 +0100421config MIPS_BOOT_ENV_LEGACY
422 bool "Hand over legacy environment to Linux kernel"
423 default y
424 help
425 Enable this option if you want U-Boot to hand over the Yamon-style
426 environment to the kernel. Information like memory size, initrd
427 address and size will be prepared as zero-terminated key/value list.
Robert P. J. Day1cc0a9f2016-05-04 04:47:31 -0400428 The address of the environment is stored in register $a2.
Daniel Schwierzeckca65e582015-01-14 21:44:13 +0100429
Daniel Schwierzeck5002d8c2015-01-14 21:44:13 +0100430config MIPS_BOOT_FDT
Daniel Schwierzeck90b1c9f2015-02-22 16:58:30 +0100431 bool "Hand over a flattened device tree to Linux kernel"
Daniel Schwierzeck5002d8c2015-01-14 21:44:13 +0100432 default n
433 help
434 Enable this option if you want U-Boot to hand over a flattened
Daniel Schwierzeck90b1c9f2015-02-22 16:58:30 +0100435 device tree to the kernel. According to UHI register $a0 will be set
436 to -2 and the FDT address is stored in $a1.
Daniel Schwierzeck5002d8c2015-01-14 21:44:13 +0100437
Daniel Schwierzeck25fc6642015-01-14 21:44:13 +0100438endmenu
439
Daniel Schwierzeck0e1dc342014-10-26 14:14:07 +0100440config SUPPORTS_BIG_ENDIAN
441 bool
442
443config SUPPORTS_LITTLE_ENDIAN
444 bool
445
Daniel Schwierzeck02611cb2014-10-26 14:14:07 +0100446config SUPPORTS_CPU_MIPS32_R1
447 bool
448
449config SUPPORTS_CPU_MIPS32_R2
450 bool
451
Paul Burtonc52ebea2016-05-16 10:52:12 +0100452config SUPPORTS_CPU_MIPS32_R6
453 bool
454
Daniel Schwierzeck02611cb2014-10-26 14:14:07 +0100455config SUPPORTS_CPU_MIPS64_R1
456 bool
457
458config SUPPORTS_CPU_MIPS64_R2
459 bool
460
Paul Burtonc52ebea2016-05-16 10:52:12 +0100461config SUPPORTS_CPU_MIPS64_R6
462 bool
463
Aaron Williams0dc4ab92020-06-30 12:08:56 +0200464config SUPPORTS_CPU_MIPS64_OCTEON
465 bool
466
467config CPU_CAVIUM_OCTEON
468 bool
469
Daniel Schwierzeckc57dafb2015-01-18 21:59:35 +0100470config CPU_MIPS32
471 bool
Paul Burtonc52ebea2016-05-16 10:52:12 +0100472 default y if CPU_MIPS32_R1 || CPU_MIPS32_R2 || CPU_MIPS32_R6
Daniel Schwierzeckc57dafb2015-01-18 21:59:35 +0100473
474config CPU_MIPS64
475 bool
Paul Burtonc52ebea2016-05-16 10:52:12 +0100476 default y if CPU_MIPS64_R1 || CPU_MIPS64_R2 || CPU_MIPS64_R6
Aaron Williams0dc4ab92020-06-30 12:08:56 +0200477 default y if CPU_MIPS64_OCTEON
Daniel Schwierzeckc57dafb2015-01-18 21:59:35 +0100478
Daniel Schwierzeck0315a282015-12-26 19:55:37 +0100479config MIPS_TUNE_4KC
480 bool
481
482config MIPS_TUNE_14KC
483 bool
484
485config MIPS_TUNE_24KC
486 bool
487
Daniel Schwierzeck5f9cc362016-05-27 15:39:39 +0200488config MIPS_TUNE_34KC
489 bool
490
Marek Vasut0a0a9582016-05-06 20:10:33 +0200491config MIPS_TUNE_74KC
492 bool
493
Aaron Williams0dc4ab92020-06-30 12:08:56 +0200494config MIPS_TUNE_OCTEON3
495 bool
496
Daniel Schwierzeck02611cb2014-10-26 14:14:07 +0100497config 32BIT
498 bool
499
500config 64BIT
501 bool
502
Daniel Schwierzeck9d638ee2015-01-18 22:00:18 +0100503config SWAP_IO_SPACE
504 bool
505
Paul Burtondd7c7202015-01-29 01:28:02 +0000506config SYS_MIPS_CACHE_INIT_RAM_LOAD
507 bool
508
Daniel Schwierzeck924ad862016-06-04 16:13:21 +0200509config MIPS_INIT_STACK_IN_SRAM
510 bool
511 default n
512 help
513 Select this if the initial stack frame could be setup in SRAM.
514 Normally the initial stack frame is set up in DRAM which is often
515 only available after lowlevel_init. With this option the initial
516 stack frame and the early C environment is set up before
517 lowlevel_init. Thus lowlevel_init does not need to be implemented
518 in assembler.
519
Weijie Gao2434f582020-04-21 09:28:27 +0200520config MIPS_SRAM_INIT
521 bool
522 default n
523 depends on MIPS_INIT_STACK_IN_SRAM
524 help
525 Select this if the SRAM for initial stack needs to be initialized
526 before it can be used. If enabled, a function mips_sram_init() will
527 be called just before setup_stack_gd.
528
Aaron Williams0dc4ab92020-06-30 12:08:56 +0200529config DMA_ADDR_T_64BIT
530 bool
531 help
532 Select this to enable 64-bit DMA addressing
533
Paul Burtonace3be42016-05-27 14:28:04 +0100534config SYS_DCACHE_SIZE
535 int
536 default 0
537 help
538 The total size of the L1 Dcache, if known at compile time.
539
Paul Burton37228622016-05-27 14:28:05 +0100540config SYS_DCACHE_LINE_SIZE
Paul Burton4b7b0a02016-06-09 13:09:52 +0100541 int
Paul Burton37228622016-05-27 14:28:05 +0100542 default 0
543 help
544 The size of L1 Dcache lines, if known at compile time.
545
Paul Burtonace3be42016-05-27 14:28:04 +0100546config SYS_ICACHE_SIZE
547 int
548 default 0
549 help
550 The total size of the L1 ICache, if known at compile time.
551
Paul Burton37228622016-05-27 14:28:05 +0100552config SYS_ICACHE_LINE_SIZE
Paul Burtonace3be42016-05-27 14:28:04 +0100553 int
554 default 0
555 help
Paul Burton37228622016-05-27 14:28:05 +0100556 The size of L1 Icache lines, if known at compile time.
Paul Burtonace3be42016-05-27 14:28:04 +0100557
Ramon Fried22247c62019-06-10 21:05:26 +0300558config SYS_SCACHE_LINE_SIZE
559 int
560 default 0
561 help
562 The size of L2 cache lines, if known at compile time.
563
564
Paul Burtonace3be42016-05-27 14:28:04 +0100565config SYS_CACHE_SIZE_AUTO
566 def_bool y if SYS_DCACHE_SIZE = 0 && SYS_ICACHE_SIZE = 0 && \
Ramon Fried22247c62019-06-10 21:05:26 +0300567 SYS_DCACHE_LINE_SIZE = 0 && SYS_ICACHE_LINE_SIZE = 0 && \
568 SYS_SCACHE_LINE_SIZE = 0
Paul Burtonace3be42016-05-27 14:28:04 +0100569 help
570 Select this (or let it be auto-selected by not defining any cache
571 sizes) in order to allow U-Boot to automatically detect the sizes
572 of caches at runtime. This has a small cost in code size & runtime
573 so if you know the cache configuration for your system at compile
574 time it would be beneficial to configure it.
575
Daniel Schwierzeckf53830e2016-01-09 17:32:50 +0100576config MIPS_L1_CACHE_SHIFT_4
577 bool
578
579config MIPS_L1_CACHE_SHIFT_5
580 bool
581
582config MIPS_L1_CACHE_SHIFT_6
583 bool
584
585config MIPS_L1_CACHE_SHIFT_7
586 bool
587
588config MIPS_L1_CACHE_SHIFT
589 int
590 default "7" if MIPS_L1_CACHE_SHIFT_7
591 default "6" if MIPS_L1_CACHE_SHIFT_6
592 default "5" if MIPS_L1_CACHE_SHIFT_5
593 default "4" if MIPS_L1_CACHE_SHIFT_4
594 default "5"
595
Paul Burton4baa0ab2016-09-21 11:18:54 +0100596config MIPS_L2_CACHE
597 bool
598 help
599 Select this if your system includes an L2 cache and you want U-Boot
600 to initialise & maintain it.
601
Paul Burton05e34252016-01-29 13:54:52 +0000602config DYNAMIC_IO_PORT_BASE
603 bool
604
Paul Burtonb2b135d2016-09-21 11:18:53 +0100605config MIPS_CM
606 bool
607 help
608 Select this if your system contains a MIPS Coherence Manager and you
609 wish U-Boot to configure it or make use of it to retrieve system
610 information such as cache configuration.
611
Daniel Schwierzeckd1c3d8b2018-09-07 19:18:44 +0200612config MIPS_INSERT_BOOT_CONFIG
613 bool
614 default n
615 help
616 Enable this to insert some board-specific boot configuration in
617 the U-Boot binary at offset 0x10.
618
619config MIPS_BOOT_CONFIG_WORD0
620 hex
621 depends on MIPS_INSERT_BOOT_CONFIG
622 default 0x420 if TARGET_MALTA
623 default 0x0
624 help
625 Value which is inserted as boot config word 0.
626
627config MIPS_BOOT_CONFIG_WORD1
628 hex
629 depends on MIPS_INSERT_BOOT_CONFIG
630 default 0x0
631 help
632 Value which is inserted as boot config word 1.
633
Daniel Schwierzeck0e1dc342014-10-26 14:14:07 +0100634endif
635
Masahiro Yamadadd840582014-07-30 14:08:14 +0900636endmenu