blob: 01c4e1628d5883a5627805acfea7f4865ef5ac94 [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
Michal Simek84f3dec2018-07-23 15:55:13 +020031 select MIPS_L1_CACHE_SHIFT_6
Paul Burton59a4c8b2016-09-21 11:18:56 +010032 select MIPS_L2_CACHE
Paul Burtona31a3df2016-05-17 07:43:28 +010033 select OF_CONTROL
34 select OF_ISA_BUS
Michal Simek84f3dec2018-07-23 15:55:13 +020035 select ROM_EXCEPTION_VECTORS
Daniel Schwierzecka4c242b2014-10-26 14:14:07 +010036 select SUPPORTS_BIG_ENDIAN
Daniel Schwierzeck256034d2014-10-26 14:14:07 +010037 select SUPPORTS_CPU_MIPS32_R1
38 select SUPPORTS_CPU_MIPS32_R2
Paul Burton1c10e0d2016-05-16 10:52:14 +010039 select SUPPORTS_CPU_MIPS32_R6
Paul Burton825cfbd2016-05-26 14:49:36 +010040 select SUPPORTS_CPU_MIPS64_R1
41 select SUPPORTS_CPU_MIPS64_R2
42 select SUPPORTS_CPU_MIPS64_R6
Michal Simek84f3dec2018-07-23 15:55:13 +020043 select SUPPORTS_LITTLE_ENDIAN
Daniel Schwierzeck7dca6862015-01-18 22:00:18 +010044 select SWAP_IO_SPACE
Michal Simek2e7c8192018-07-23 15:55:14 +020045 imply CMD_DM
Masahiro Yamadad3ae6782014-07-30 14:08:14 +090046
47config TARGET_VCT
48 bool "Support vct"
Michal Simek84f3dec2018-07-23 15:55:13 +020049 select ROM_EXCEPTION_VECTORS
Daniel Schwierzecka4c242b2014-10-26 14:14:07 +010050 select SUPPORTS_BIG_ENDIAN
Daniel Schwierzeck256034d2014-10-26 14:14:07 +010051 select SUPPORTS_CPU_MIPS32_R1
52 select SUPPORTS_CPU_MIPS32_R2
Paul Burton6832bdc2015-01-29 01:28:02 +000053 select SYS_MIPS_CACHE_INIT_RAM_LOAD
Masahiro Yamadad3ae6782014-07-30 14:08:14 +090054
Masahiro Yamadad3ae6782014-07-30 14:08:14 +090055config TARGET_PB1X00
56 bool "Support pb1x00"
Michal Simek84f3dec2018-07-23 15:55:13 +020057 select MIPS_TUNE_4KC
58 select ROM_EXCEPTION_VECTORS
Daniel Schwierzeck256034d2014-10-26 14:14:07 +010059 select SUPPORTS_CPU_MIPS32_R1
60 select SUPPORTS_CPU_MIPS32_R2
Michal Simek84f3dec2018-07-23 15:55:13 +020061 select SUPPORTS_LITTLE_ENDIAN
Paul Burton6832bdc2015-01-29 01:28:02 +000062 select SYS_MIPS_CACHE_INIT_RAM_LOAD
Masahiro Yamadad3ae6782014-07-30 14:08:14 +090063
Wills Wang833a1a82016-03-16 16:59:52 +080064config ARCH_ATH79
65 bool "Support QCA/Atheros ath79"
Wills Wang833a1a82016-03-16 16:59:52 +080066 select DM
Michal Simek84f3dec2018-07-23 15:55:13 +020067 select OF_CONTROL
Michal Simek2e7c8192018-07-23 15:55:14 +020068 imply CMD_DM
Wills Wang833a1a82016-03-16 16:59:52 +080069
Álvaro Fernández Rojas98a97a82017-04-25 00:39:20 +020070config ARCH_BMIPS
71 bool "Support BMIPS SoCs"
Álvaro Fernández Rojas98a97a82017-04-25 00:39:20 +020072 select CLK
73 select CPU
Michal Simek84f3dec2018-07-23 15:55:13 +020074 select DM
75 select OF_CONTROL
Álvaro Fernández Rojas98a97a82017-04-25 00:39:20 +020076 select RAM
77 select SYSRESET
Michal Simek2e7c8192018-07-23 15:55:14 +020078 imply CMD_DM
Álvaro Fernández Rojas98a97a82017-04-25 00:39:20 +020079
Purna Chandra Mandal825b3212016-01-28 15:30:10 +053080config MACH_PIC32
81 bool "Support Microchip PIC32"
Purna Chandra Mandal825b3212016-01-28 15:30:10 +053082 select DM
Michal Simek84f3dec2018-07-23 15:55:13 +020083 select OF_CONTROL
Michal Simek2e7c8192018-07-23 15:55:14 +020084 imply CMD_DM
Purna Chandra Mandal825b3212016-01-28 15:30:10 +053085
Paul Burtonf5de32a2016-09-08 07:47:39 +010086config TARGET_BOSTON
87 bool "Support Boston"
88 select DM
89 select DM_SERIAL
Paul Burtonf5de32a2016-09-08 07:47:39 +010090 select MIPS_CM
91 select MIPS_L1_CACHE_SHIFT_6
92 select MIPS_L2_CACHE
Paul Burtona315bcd2017-04-30 21:22:42 +020093 select OF_BOARD_SETUP
Michal Simek84f3dec2018-07-23 15:55:13 +020094 select OF_CONTROL
95 select ROM_EXCEPTION_VECTORS
Paul Burtonf5de32a2016-09-08 07:47:39 +010096 select SUPPORTS_BIG_ENDIAN
Paul Burtonf5de32a2016-09-08 07:47:39 +010097 select SUPPORTS_CPU_MIPS32_R1
98 select SUPPORTS_CPU_MIPS32_R2
99 select SUPPORTS_CPU_MIPS32_R6
100 select SUPPORTS_CPU_MIPS64_R1
101 select SUPPORTS_CPU_MIPS64_R2
102 select SUPPORTS_CPU_MIPS64_R6
Michal Simek84f3dec2018-07-23 15:55:13 +0200103 select SUPPORTS_LITTLE_ENDIAN
Michal Simek2e7c8192018-07-23 15:55:14 +0200104 imply CMD_DM
Paul Burtonf5de32a2016-09-08 07:47:39 +0100105
Zubair Lutfullah Kakakhel1d153b32016-07-29 15:11:20 +0100106config TARGET_XILFPGA
107 bool "Support Imagination Xilfpga"
Zubair Lutfullah Kakakhel1d153b32016-07-29 15:11:20 +0100108 select DM
Zubair Lutfullah Kakakhel1d153b32016-07-29 15:11:20 +0100109 select DM_ETH
Michal Simek84f3dec2018-07-23 15:55:13 +0200110 select DM_GPIO
111 select DM_SERIAL
Zubair Lutfullah Kakakhel1d153b32016-07-29 15:11:20 +0100112 select MIPS_L1_CACHE_SHIFT_4
Michal Simek84f3dec2018-07-23 15:55:13 +0200113 select OF_CONTROL
Daniel Schwierzeck754cd052016-02-14 18:52:57 +0100114 select ROM_EXCEPTION_VECTORS
Michal Simek84f3dec2018-07-23 15:55:13 +0200115 select SUPPORTS_CPU_MIPS32_R1
116 select SUPPORTS_CPU_MIPS32_R2
117 select SUPPORTS_LITTLE_ENDIAN
Michal Simek2e7c8192018-07-23 15:55:14 +0200118 imply CMD_DM
Zubair Lutfullah Kakakhel1d153b32016-07-29 15:11:20 +0100119 help
120 This supports IMGTEC MIPSfpga platform
121
Masahiro Yamadad3ae6782014-07-30 14:08:14 +0900122endchoice
123
Paul Burtonf5de32a2016-09-08 07:47:39 +0100124source "board/imgtec/boston/Kconfig"
Masahiro Yamadad3ae6782014-07-30 14:08:14 +0900125source "board/imgtec/malta/Kconfig"
Zubair Lutfullah Kakakhel1d153b32016-07-29 15:11:20 +0100126source "board/imgtec/xilfpga/Kconfig"
Masahiro Yamadad3ae6782014-07-30 14:08:14 +0900127source "board/micronas/vct/Kconfig"
128source "board/pb1x00/Kconfig"
129source "board/qemu-mips/Kconfig"
Wills Wang833a1a82016-03-16 16:59:52 +0800130source "arch/mips/mach-ath79/Kconfig"
Álvaro Fernández Rojas98a97a82017-04-25 00:39:20 +0200131source "arch/mips/mach-bmips/Kconfig"
Purna Chandra Mandal825b3212016-01-28 15:30:10 +0530132source "arch/mips/mach-pic32/Kconfig"
Masahiro Yamadad3ae6782014-07-30 14:08:14 +0900133
Daniel Schwierzecka4c242b2014-10-26 14:14:07 +0100134if MIPS
135
136choice
137 prompt "Endianness selection"
138 help
139 Some MIPS boards can be configured for either little or big endian
140 byte order. These modes require different U-Boot images. In general there
141 is one preferred byteorder for a particular system but some systems are
142 just as commonly used in the one or the other endianness.
143
144config SYS_BIG_ENDIAN
145 bool "Big endian"
146 depends on SUPPORTS_BIG_ENDIAN
147
148config SYS_LITTLE_ENDIAN
149 bool "Little endian"
150 depends on SUPPORTS_LITTLE_ENDIAN
151
152endchoice
153
Daniel Schwierzeck256034d2014-10-26 14:14:07 +0100154choice
155 prompt "CPU selection"
156 default CPU_MIPS32_R2
157
158config CPU_MIPS32_R1
159 bool "MIPS32 Release 1"
160 depends on SUPPORTS_CPU_MIPS32_R1
161 select 32BIT
162 help
Paul Burton55e29dd2016-05-16 10:52:12 +0100163 Choose this option to build an U-Boot for release 1 through 5 of the
Daniel Schwierzeck256034d2014-10-26 14:14:07 +0100164 MIPS32 architecture.
165
166config CPU_MIPS32_R2
167 bool "MIPS32 Release 2"
168 depends on SUPPORTS_CPU_MIPS32_R2
169 select 32BIT
170 help
Paul Burton55e29dd2016-05-16 10:52:12 +0100171 Choose this option to build an U-Boot for release 2 through 5 of the
Daniel Schwierzeck256034d2014-10-26 14:14:07 +0100172 MIPS32 architecture.
173
Paul Burton55e29dd2016-05-16 10:52:12 +0100174config CPU_MIPS32_R6
175 bool "MIPS32 Release 6"
176 depends on SUPPORTS_CPU_MIPS32_R6
177 select 32BIT
178 help
179 Choose this option to build an U-Boot for release 6 or later of the
180 MIPS32 architecture.
181
Daniel Schwierzeck256034d2014-10-26 14:14:07 +0100182config CPU_MIPS64_R1
183 bool "MIPS64 Release 1"
184 depends on SUPPORTS_CPU_MIPS64_R1
185 select 64BIT
186 help
Paul Burton55e29dd2016-05-16 10:52:12 +0100187 Choose this option to build a kernel for release 1 through 5 of the
Daniel Schwierzeck256034d2014-10-26 14:14:07 +0100188 MIPS64 architecture.
189
190config CPU_MIPS64_R2
191 bool "MIPS64 Release 2"
192 depends on SUPPORTS_CPU_MIPS64_R2
193 select 64BIT
194 help
Paul Burton55e29dd2016-05-16 10:52:12 +0100195 Choose this option to build a kernel for release 2 through 5 of the
196 MIPS64 architecture.
197
198config CPU_MIPS64_R6
199 bool "MIPS64 Release 6"
200 depends on SUPPORTS_CPU_MIPS64_R6
201 select 64BIT
202 help
203 Choose this option to build a kernel for release 6 or later of the
Daniel Schwierzeck256034d2014-10-26 14:14:07 +0100204 MIPS64 architecture.
205
206endchoice
207
Daniel Schwierzeck754cd052016-02-14 18:52:57 +0100208menu "General setup"
209
210config ROM_EXCEPTION_VECTORS
211 bool "Build U-Boot image with exception vectors"
212 help
213 Enable this to include exception vectors in the U-Boot image. This is
214 required if the U-Boot entry point is equal to the address of the
215 CPU reset exception vector (e.g. U-Boot as ROM loader in Qemu,
216 U-Boot booted from parallel NOR flash).
217 Disable this, if the U-Boot image is booted from DRAM (e.g. by SPL).
218 In that case the image size will be reduced by 0x500 bytes.
219
Paul Burton3d6864a2017-05-12 13:26:11 +0200220config MIPS_CM_BASE
221 hex "MIPS CM GCR Base Address"
222 depends on MIPS_CM
Paul Burtona6ac9652017-04-30 21:22:41 +0200223 default 0x16100000 if TARGET_BOSTON
Paul Burton3d6864a2017-05-12 13:26:11 +0200224 default 0x1fbf8000
225 help
226 The physical base address at which to map the MIPS Coherence Manager
227 Global Configuration Registers (GCRs). This should be set such that
228 the GCRs occupy a region of the physical address space which is
229 otherwise unused, or at minimum that software doesn't need to access.
230
Daniel Schwierzeck754cd052016-02-14 18:52:57 +0100231endmenu
232
Daniel Schwierzeckf9749fa2015-01-14 21:44:13 +0100233menu "OS boot interface"
234
235config MIPS_BOOT_CMDLINE_LEGACY
236 bool "Hand over legacy command line to Linux kernel"
237 default y
238 help
239 Enable this option if you want U-Boot to hand over the Yamon-style
240 command line to the kernel. All bootargs will be prepared as argc/argv
241 compatible list. The argument count (argc) is stored in register $a0.
242 The address of the argument list (argv) is stored in register $a1.
243
Daniel Schwierzeckc07dc602015-01-14 21:44:13 +0100244config MIPS_BOOT_ENV_LEGACY
245 bool "Hand over legacy environment to Linux kernel"
246 default y
247 help
248 Enable this option if you want U-Boot to hand over the Yamon-style
249 environment to the kernel. Information like memory size, initrd
250 address and size will be prepared as zero-terminated key/value list.
Robert P. J. Day8c60f922016-05-04 04:47:31 -0400251 The address of the environment is stored in register $a2.
Daniel Schwierzeckc07dc602015-01-14 21:44:13 +0100252
Daniel Schwierzeck8d7ff4d2015-01-14 21:44:13 +0100253config MIPS_BOOT_FDT
Daniel Schwierzeckd1b29d22015-02-22 16:58:30 +0100254 bool "Hand over a flattened device tree to Linux kernel"
Daniel Schwierzeck8d7ff4d2015-01-14 21:44:13 +0100255 default n
256 help
257 Enable this option if you want U-Boot to hand over a flattened
Daniel Schwierzeckd1b29d22015-02-22 16:58:30 +0100258 device tree to the kernel. According to UHI register $a0 will be set
259 to -2 and the FDT address is stored in $a1.
Daniel Schwierzeck8d7ff4d2015-01-14 21:44:13 +0100260
Daniel Schwierzeckf9749fa2015-01-14 21:44:13 +0100261endmenu
262
Daniel Schwierzecka4c242b2014-10-26 14:14:07 +0100263config SUPPORTS_BIG_ENDIAN
264 bool
265
266config SUPPORTS_LITTLE_ENDIAN
267 bool
268
Daniel Schwierzeck256034d2014-10-26 14:14:07 +0100269config SUPPORTS_CPU_MIPS32_R1
270 bool
271
272config SUPPORTS_CPU_MIPS32_R2
273 bool
274
Paul Burton55e29dd2016-05-16 10:52:12 +0100275config SUPPORTS_CPU_MIPS32_R6
276 bool
277
Daniel Schwierzeck256034d2014-10-26 14:14:07 +0100278config SUPPORTS_CPU_MIPS64_R1
279 bool
280
281config SUPPORTS_CPU_MIPS64_R2
282 bool
283
Paul Burton55e29dd2016-05-16 10:52:12 +0100284config SUPPORTS_CPU_MIPS64_R6
285 bool
286
Daniel Schwierzeckdfbad0f2015-01-18 21:59:35 +0100287config CPU_MIPS32
288 bool
Paul Burton55e29dd2016-05-16 10:52:12 +0100289 default y if CPU_MIPS32_R1 || CPU_MIPS32_R2 || CPU_MIPS32_R6
Daniel Schwierzeckdfbad0f2015-01-18 21:59:35 +0100290
291config CPU_MIPS64
292 bool
Paul Burton55e29dd2016-05-16 10:52:12 +0100293 default y if CPU_MIPS64_R1 || CPU_MIPS64_R2 || CPU_MIPS64_R6
Daniel Schwierzeckdfbad0f2015-01-18 21:59:35 +0100294
Daniel Schwierzeckaadd3322015-12-26 19:55:37 +0100295config MIPS_TUNE_4KC
296 bool
297
298config MIPS_TUNE_14KC
299 bool
300
301config MIPS_TUNE_24KC
302 bool
303
Daniel Schwierzeckc7661d52016-05-27 15:39:39 +0200304config MIPS_TUNE_34KC
305 bool
306
Marek Vasuta9c6e8b2016-05-06 20:10:33 +0200307config MIPS_TUNE_74KC
308 bool
309
Daniel Schwierzeck256034d2014-10-26 14:14:07 +0100310config 32BIT
311 bool
312
313config 64BIT
314 bool
315
Daniel Schwierzeck7dca6862015-01-18 22:00:18 +0100316config SWAP_IO_SPACE
317 bool
318
Paul Burton6832bdc2015-01-29 01:28:02 +0000319config SYS_MIPS_CACHE_INIT_RAM_LOAD
320 bool
321
Daniel Schwierzeck41dc35e2016-06-04 16:13:21 +0200322config MIPS_INIT_STACK_IN_SRAM
323 bool
324 default n
325 help
326 Select this if the initial stack frame could be setup in SRAM.
327 Normally the initial stack frame is set up in DRAM which is often
328 only available after lowlevel_init. With this option the initial
329 stack frame and the early C environment is set up before
330 lowlevel_init. Thus lowlevel_init does not need to be implemented
331 in assembler.
332
Paul Burton5e511422016-05-27 14:28:04 +0100333config SYS_DCACHE_SIZE
334 int
335 default 0
336 help
337 The total size of the L1 Dcache, if known at compile time.
338
Paul Burton62f13522016-05-27 14:28:05 +0100339config SYS_DCACHE_LINE_SIZE
Paul Burton79e49fd2016-06-09 13:09:52 +0100340 int
Paul Burton62f13522016-05-27 14:28:05 +0100341 default 0
342 help
343 The size of L1 Dcache lines, if known at compile time.
344
Paul Burton5e511422016-05-27 14:28:04 +0100345config SYS_ICACHE_SIZE
346 int
347 default 0
348 help
349 The total size of the L1 ICache, if known at compile time.
350
Paul Burton62f13522016-05-27 14:28:05 +0100351config SYS_ICACHE_LINE_SIZE
Paul Burton5e511422016-05-27 14:28:04 +0100352 int
353 default 0
354 help
Paul Burton62f13522016-05-27 14:28:05 +0100355 The size of L1 Icache lines, if known at compile time.
Paul Burton5e511422016-05-27 14:28:04 +0100356
357config SYS_CACHE_SIZE_AUTO
358 def_bool y if SYS_DCACHE_SIZE = 0 && SYS_ICACHE_SIZE = 0 && \
Paul Burton62f13522016-05-27 14:28:05 +0100359 SYS_DCACHE_LINE_SIZE = 0 && SYS_ICACHE_LINE_SIZE = 0
Paul Burton5e511422016-05-27 14:28:04 +0100360 help
361 Select this (or let it be auto-selected by not defining any cache
362 sizes) in order to allow U-Boot to automatically detect the sizes
363 of caches at runtime. This has a small cost in code size & runtime
364 so if you know the cache configuration for your system at compile
365 time it would be beneficial to configure it.
366
Daniel Schwierzeck02ca55e2016-01-09 17:32:50 +0100367config MIPS_L1_CACHE_SHIFT_4
368 bool
369
370config MIPS_L1_CACHE_SHIFT_5
371 bool
372
373config MIPS_L1_CACHE_SHIFT_6
374 bool
375
376config MIPS_L1_CACHE_SHIFT_7
377 bool
378
379config MIPS_L1_CACHE_SHIFT
380 int
381 default "7" if MIPS_L1_CACHE_SHIFT_7
382 default "6" if MIPS_L1_CACHE_SHIFT_6
383 default "5" if MIPS_L1_CACHE_SHIFT_5
384 default "4" if MIPS_L1_CACHE_SHIFT_4
385 default "5"
386
Paul Burton81560782016-09-21 11:18:54 +0100387config MIPS_L2_CACHE
388 bool
389 help
390 Select this if your system includes an L2 cache and you want U-Boot
391 to initialise & maintain it.
392
Paul Burton8d6600b2016-01-29 13:54:52 +0000393config DYNAMIC_IO_PORT_BASE
394 bool
395
Paul Burton79ac1742016-09-21 11:18:53 +0100396config MIPS_CM
397 bool
398 help
399 Select this if your system contains a MIPS Coherence Manager and you
400 wish U-Boot to configure it or make use of it to retrieve system
401 information such as cache configuration.
402
Daniel Schwierzecka4c242b2014-10-26 14:14:07 +0100403endif
404
Masahiro Yamadad3ae6782014-07-30 14:08:14 +0900405endmenu