blob: 6e5e0ffe658594343fb31bf7cec5fb9ed9f3e6bb [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
Michal Simek5ed063d2018-07-23 15:55:13 +020031 select MIPS_L1_CACHE_SHIFT_6
Paul Burton566ce04d2016-09-21 11:18:56 +010032 select MIPS_L2_CACHE
Paul Burton6242aa12016-05-17 07:43:28 +010033 select OF_CONTROL
34 select OF_ISA_BUS
Michal Simek5ed063d2018-07-23 15:55:13 +020035 select ROM_EXCEPTION_VECTORS
Daniel Schwierzeck0e1dc342014-10-26 14:14:07 +010036 select SUPPORTS_BIG_ENDIAN
Daniel Schwierzeck02611cb2014-10-26 14:14:07 +010037 select SUPPORTS_CPU_MIPS32_R1
38 select SUPPORTS_CPU_MIPS32_R2
Paul Burton40ba13c2016-05-16 10:52:14 +010039 select SUPPORTS_CPU_MIPS32_R6
Paul Burton0f832b92016-05-26 14:49:36 +010040 select SUPPORTS_CPU_MIPS64_R1
41 select SUPPORTS_CPU_MIPS64_R2
42 select SUPPORTS_CPU_MIPS64_R6
Michal Simek5ed063d2018-07-23 15:55:13 +020043 select SUPPORTS_LITTLE_ENDIAN
Daniel Schwierzeck9d638ee2015-01-18 22:00:18 +010044 select SWAP_IO_SPACE
Michal Simek08a00cb2018-07-23 15:55:14 +020045 imply CMD_DM
Masahiro Yamadadd840582014-07-30 14:08:14 +090046
47config TARGET_VCT
48 bool "Support vct"
Michal Simek5ed063d2018-07-23 15:55:13 +020049 select ROM_EXCEPTION_VECTORS
Daniel Schwierzeck0e1dc342014-10-26 14:14:07 +010050 select SUPPORTS_BIG_ENDIAN
Daniel Schwierzeck02611cb2014-10-26 14:14:07 +010051 select SUPPORTS_CPU_MIPS32_R1
52 select SUPPORTS_CPU_MIPS32_R2
Paul Burtondd7c7202015-01-29 01:28:02 +000053 select SYS_MIPS_CACHE_INIT_RAM_LOAD
Masahiro Yamadadd840582014-07-30 14:08:14 +090054
Wills Wang1d3d0f12016-03-16 16:59:52 +080055config ARCH_ATH79
56 bool "Support QCA/Atheros ath79"
Wills Wang1d3d0f12016-03-16 16:59:52 +080057 select DM
Michal Simek5ed063d2018-07-23 15:55:13 +020058 select OF_CONTROL
Michal Simek08a00cb2018-07-23 15:55:14 +020059 imply CMD_DM
Wills Wang1d3d0f12016-03-16 16:59:52 +080060
Álvaro Fernández Rojasee422142017-04-25 00:39:20 +020061config ARCH_BMIPS
62 bool "Support BMIPS SoCs"
Álvaro Fernández Rojasee422142017-04-25 00:39:20 +020063 select CLK
64 select CPU
Michal Simek5ed063d2018-07-23 15:55:13 +020065 select DM
66 select OF_CONTROL
Álvaro Fernández Rojasee422142017-04-25 00:39:20 +020067 select RAM
68 select SYSRESET
Michal Simek08a00cb2018-07-23 15:55:14 +020069 imply CMD_DM
Álvaro Fernández Rojasee422142017-04-25 00:39:20 +020070
Purna Chandra Mandal32c1a6e2016-01-28 15:30:10 +053071config MACH_PIC32
72 bool "Support Microchip PIC32"
Purna Chandra Mandal32c1a6e2016-01-28 15:30:10 +053073 select DM
Michal Simek5ed063d2018-07-23 15:55:13 +020074 select OF_CONTROL
Michal Simek08a00cb2018-07-23 15:55:14 +020075 imply CMD_DM
Purna Chandra Mandal32c1a6e2016-01-28 15:30:10 +053076
Paul Burtonad8783c2016-09-08 07:47:39 +010077config TARGET_BOSTON
78 bool "Support Boston"
79 select DM
80 select DM_SERIAL
Paul Burtonad8783c2016-09-08 07:47:39 +010081 select MIPS_CM
82 select MIPS_L1_CACHE_SHIFT_6
83 select MIPS_L2_CACHE
Paul Burtond2b12a52017-04-30 21:22:42 +020084 select OF_BOARD_SETUP
Michal Simek5ed063d2018-07-23 15:55:13 +020085 select OF_CONTROL
86 select ROM_EXCEPTION_VECTORS
Paul Burtonad8783c2016-09-08 07:47:39 +010087 select SUPPORTS_BIG_ENDIAN
Paul Burtonad8783c2016-09-08 07:47:39 +010088 select SUPPORTS_CPU_MIPS32_R1
89 select SUPPORTS_CPU_MIPS32_R2
90 select SUPPORTS_CPU_MIPS32_R6
91 select SUPPORTS_CPU_MIPS64_R1
92 select SUPPORTS_CPU_MIPS64_R2
93 select SUPPORTS_CPU_MIPS64_R6
Michal Simek5ed063d2018-07-23 15:55:13 +020094 select SUPPORTS_LITTLE_ENDIAN
Michal Simek08a00cb2018-07-23 15:55:14 +020095 imply CMD_DM
Paul Burtonad8783c2016-09-08 07:47:39 +010096
Zubair Lutfullah Kakakhelebf2b9e2016-07-29 15:11:20 +010097config TARGET_XILFPGA
98 bool "Support Imagination Xilfpga"
Zubair Lutfullah Kakakhelebf2b9e2016-07-29 15:11:20 +010099 select DM
Zubair Lutfullah Kakakhelebf2b9e2016-07-29 15:11:20 +0100100 select DM_ETH
Michal Simek5ed063d2018-07-23 15:55:13 +0200101 select DM_GPIO
102 select DM_SERIAL
103 select MIPS_L1_CACHE_SHIFT_4
104 select OF_CONTROL
105 select ROM_EXCEPTION_VECTORS
Zubair Lutfullah Kakakhelebf2b9e2016-07-29 15:11:20 +0100106 select SUPPORTS_CPU_MIPS32_R1
107 select SUPPORTS_CPU_MIPS32_R2
Michal Simek5ed063d2018-07-23 15:55:13 +0200108 select SUPPORTS_LITTLE_ENDIAN
Michal Simek08a00cb2018-07-23 15:55:14 +0200109 imply CMD_DM
Zubair Lutfullah Kakakhelebf2b9e2016-07-29 15:11:20 +0100110 help
111 This supports IMGTEC MIPSfpga platform
112
Masahiro Yamadadd840582014-07-30 14:08:14 +0900113endchoice
114
Paul Burtonad8783c2016-09-08 07:47:39 +0100115source "board/imgtec/boston/Kconfig"
Masahiro Yamadadd840582014-07-30 14:08:14 +0900116source "board/imgtec/malta/Kconfig"
Zubair Lutfullah Kakakhelebf2b9e2016-07-29 15:11:20 +0100117source "board/imgtec/xilfpga/Kconfig"
Masahiro Yamadadd840582014-07-30 14:08:14 +0900118source "board/micronas/vct/Kconfig"
Masahiro Yamadadd840582014-07-30 14:08:14 +0900119source "board/qemu-mips/Kconfig"
Wills Wang1d3d0f12016-03-16 16:59:52 +0800120source "arch/mips/mach-ath79/Kconfig"
Álvaro Fernández Rojasee422142017-04-25 00:39:20 +0200121source "arch/mips/mach-bmips/Kconfig"
Purna Chandra Mandal32c1a6e2016-01-28 15:30:10 +0530122source "arch/mips/mach-pic32/Kconfig"
Masahiro Yamadadd840582014-07-30 14:08:14 +0900123
Daniel Schwierzeck0e1dc342014-10-26 14:14:07 +0100124if MIPS
125
126choice
127 prompt "Endianness selection"
128 help
129 Some MIPS boards can be configured for either little or big endian
130 byte order. These modes require different U-Boot images. In general there
131 is one preferred byteorder for a particular system but some systems are
132 just as commonly used in the one or the other endianness.
133
134config SYS_BIG_ENDIAN
135 bool "Big endian"
136 depends on SUPPORTS_BIG_ENDIAN
137
138config SYS_LITTLE_ENDIAN
139 bool "Little endian"
140 depends on SUPPORTS_LITTLE_ENDIAN
141
142endchoice
143
Daniel Schwierzeck02611cb2014-10-26 14:14:07 +0100144choice
145 prompt "CPU selection"
146 default CPU_MIPS32_R2
147
148config CPU_MIPS32_R1
149 bool "MIPS32 Release 1"
150 depends on SUPPORTS_CPU_MIPS32_R1
151 select 32BIT
152 help
Paul Burtonc52ebea2016-05-16 10:52:12 +0100153 Choose this option to build an U-Boot for release 1 through 5 of the
Daniel Schwierzeck02611cb2014-10-26 14:14:07 +0100154 MIPS32 architecture.
155
156config CPU_MIPS32_R2
157 bool "MIPS32 Release 2"
158 depends on SUPPORTS_CPU_MIPS32_R2
159 select 32BIT
160 help
Paul Burtonc52ebea2016-05-16 10:52:12 +0100161 Choose this option to build an U-Boot for release 2 through 5 of the
162 MIPS32 architecture.
163
164config CPU_MIPS32_R6
165 bool "MIPS32 Release 6"
166 depends on SUPPORTS_CPU_MIPS32_R6
167 select 32BIT
168 help
169 Choose this option to build an U-Boot for release 6 or later of the
Daniel Schwierzeck02611cb2014-10-26 14:14:07 +0100170 MIPS32 architecture.
171
172config CPU_MIPS64_R1
173 bool "MIPS64 Release 1"
174 depends on SUPPORTS_CPU_MIPS64_R1
175 select 64BIT
176 help
Paul Burtonc52ebea2016-05-16 10:52:12 +0100177 Choose this option to build a kernel for release 1 through 5 of the
Daniel Schwierzeck02611cb2014-10-26 14:14:07 +0100178 MIPS64 architecture.
179
180config CPU_MIPS64_R2
181 bool "MIPS64 Release 2"
182 depends on SUPPORTS_CPU_MIPS64_R2
183 select 64BIT
184 help
Paul Burtonc52ebea2016-05-16 10:52:12 +0100185 Choose this option to build a kernel for release 2 through 5 of the
186 MIPS64 architecture.
187
188config CPU_MIPS64_R6
189 bool "MIPS64 Release 6"
190 depends on SUPPORTS_CPU_MIPS64_R6
191 select 64BIT
192 help
193 Choose this option to build a kernel for release 6 or later of the
Daniel Schwierzeck02611cb2014-10-26 14:14:07 +0100194 MIPS64 architecture.
195
196endchoice
197
Daniel Schwierzeckaf3971f2016-02-14 18:52:57 +0100198menu "General setup"
199
200config ROM_EXCEPTION_VECTORS
201 bool "Build U-Boot image with exception vectors"
202 help
203 Enable this to include exception vectors in the U-Boot image. This is
204 required if the U-Boot entry point is equal to the address of the
205 CPU reset exception vector (e.g. U-Boot as ROM loader in Qemu,
206 U-Boot booted from parallel NOR flash).
207 Disable this, if the U-Boot image is booted from DRAM (e.g. by SPL).
208 In that case the image size will be reduced by 0x500 bytes.
209
Paul Burton939a2552017-05-12 13:26:11 +0200210config MIPS_CM_BASE
211 hex "MIPS CM GCR Base Address"
212 depends on MIPS_CM
Paul Burtoned048e72017-04-30 21:22:41 +0200213 default 0x16100000 if TARGET_BOSTON
Paul Burton939a2552017-05-12 13:26:11 +0200214 default 0x1fbf8000
215 help
216 The physical base address at which to map the MIPS Coherence Manager
217 Global Configuration Registers (GCRs). This should be set such that
218 the GCRs occupy a region of the physical address space which is
219 otherwise unused, or at minimum that software doesn't need to access.
220
Daniel Schwierzeckaf3971f2016-02-14 18:52:57 +0100221endmenu
222
Daniel Schwierzeck25fc6642015-01-14 21:44:13 +0100223menu "OS boot interface"
224
225config MIPS_BOOT_CMDLINE_LEGACY
226 bool "Hand over legacy command line to Linux kernel"
227 default y
228 help
229 Enable this option if you want U-Boot to hand over the Yamon-style
230 command line to the kernel. All bootargs will be prepared as argc/argv
231 compatible list. The argument count (argc) is stored in register $a0.
232 The address of the argument list (argv) is stored in register $a1.
233
Daniel Schwierzeckca65e582015-01-14 21:44:13 +0100234config MIPS_BOOT_ENV_LEGACY
235 bool "Hand over legacy environment to Linux kernel"
236 default y
237 help
238 Enable this option if you want U-Boot to hand over the Yamon-style
239 environment to the kernel. Information like memory size, initrd
240 address and size will be prepared as zero-terminated key/value list.
Robert P. J. Day1cc0a9f2016-05-04 04:47:31 -0400241 The address of the environment is stored in register $a2.
Daniel Schwierzeckca65e582015-01-14 21:44:13 +0100242
Daniel Schwierzeck5002d8c2015-01-14 21:44:13 +0100243config MIPS_BOOT_FDT
Daniel Schwierzeck90b1c9f2015-02-22 16:58:30 +0100244 bool "Hand over a flattened device tree to Linux kernel"
Daniel Schwierzeck5002d8c2015-01-14 21:44:13 +0100245 default n
246 help
247 Enable this option if you want U-Boot to hand over a flattened
Daniel Schwierzeck90b1c9f2015-02-22 16:58:30 +0100248 device tree to the kernel. According to UHI register $a0 will be set
249 to -2 and the FDT address is stored in $a1.
Daniel Schwierzeck5002d8c2015-01-14 21:44:13 +0100250
Daniel Schwierzeck25fc6642015-01-14 21:44:13 +0100251endmenu
252
Daniel Schwierzeck0e1dc342014-10-26 14:14:07 +0100253config SUPPORTS_BIG_ENDIAN
254 bool
255
256config SUPPORTS_LITTLE_ENDIAN
257 bool
258
Daniel Schwierzeck02611cb2014-10-26 14:14:07 +0100259config SUPPORTS_CPU_MIPS32_R1
260 bool
261
262config SUPPORTS_CPU_MIPS32_R2
263 bool
264
Paul Burtonc52ebea2016-05-16 10:52:12 +0100265config SUPPORTS_CPU_MIPS32_R6
266 bool
267
Daniel Schwierzeck02611cb2014-10-26 14:14:07 +0100268config SUPPORTS_CPU_MIPS64_R1
269 bool
270
271config SUPPORTS_CPU_MIPS64_R2
272 bool
273
Paul Burtonc52ebea2016-05-16 10:52:12 +0100274config SUPPORTS_CPU_MIPS64_R6
275 bool
276
Daniel Schwierzeckc57dafb2015-01-18 21:59:35 +0100277config CPU_MIPS32
278 bool
Paul Burtonc52ebea2016-05-16 10:52:12 +0100279 default y if CPU_MIPS32_R1 || CPU_MIPS32_R2 || CPU_MIPS32_R6
Daniel Schwierzeckc57dafb2015-01-18 21:59:35 +0100280
281config CPU_MIPS64
282 bool
Paul Burtonc52ebea2016-05-16 10:52:12 +0100283 default y if CPU_MIPS64_R1 || CPU_MIPS64_R2 || CPU_MIPS64_R6
Daniel Schwierzeckc57dafb2015-01-18 21:59:35 +0100284
Daniel Schwierzeck0315a282015-12-26 19:55:37 +0100285config MIPS_TUNE_4KC
286 bool
287
288config MIPS_TUNE_14KC
289 bool
290
291config MIPS_TUNE_24KC
292 bool
293
Daniel Schwierzeck5f9cc362016-05-27 15:39:39 +0200294config MIPS_TUNE_34KC
295 bool
296
Marek Vasut0a0a9582016-05-06 20:10:33 +0200297config MIPS_TUNE_74KC
298 bool
299
Daniel Schwierzeck02611cb2014-10-26 14:14:07 +0100300config 32BIT
301 bool
302
303config 64BIT
304 bool
305
Daniel Schwierzeck9d638ee2015-01-18 22:00:18 +0100306config SWAP_IO_SPACE
307 bool
308
Paul Burtondd7c7202015-01-29 01:28:02 +0000309config SYS_MIPS_CACHE_INIT_RAM_LOAD
310 bool
311
Daniel Schwierzeck924ad862016-06-04 16:13:21 +0200312config MIPS_INIT_STACK_IN_SRAM
313 bool
314 default n
315 help
316 Select this if the initial stack frame could be setup in SRAM.
317 Normally the initial stack frame is set up in DRAM which is often
318 only available after lowlevel_init. With this option the initial
319 stack frame and the early C environment is set up before
320 lowlevel_init. Thus lowlevel_init does not need to be implemented
321 in assembler.
322
Paul Burtonace3be42016-05-27 14:28:04 +0100323config SYS_DCACHE_SIZE
324 int
325 default 0
326 help
327 The total size of the L1 Dcache, if known at compile time.
328
Paul Burton37228622016-05-27 14:28:05 +0100329config SYS_DCACHE_LINE_SIZE
Paul Burton4b7b0a02016-06-09 13:09:52 +0100330 int
Paul Burton37228622016-05-27 14:28:05 +0100331 default 0
332 help
333 The size of L1 Dcache lines, if known at compile time.
334
Paul Burtonace3be42016-05-27 14:28:04 +0100335config SYS_ICACHE_SIZE
336 int
337 default 0
338 help
339 The total size of the L1 ICache, if known at compile time.
340
Paul Burton37228622016-05-27 14:28:05 +0100341config SYS_ICACHE_LINE_SIZE
Paul Burtonace3be42016-05-27 14:28:04 +0100342 int
343 default 0
344 help
Paul Burton37228622016-05-27 14:28:05 +0100345 The size of L1 Icache lines, if known at compile time.
Paul Burtonace3be42016-05-27 14:28:04 +0100346
347config SYS_CACHE_SIZE_AUTO
348 def_bool y if SYS_DCACHE_SIZE = 0 && SYS_ICACHE_SIZE = 0 && \
Paul Burton37228622016-05-27 14:28:05 +0100349 SYS_DCACHE_LINE_SIZE = 0 && SYS_ICACHE_LINE_SIZE = 0
Paul Burtonace3be42016-05-27 14:28:04 +0100350 help
351 Select this (or let it be auto-selected by not defining any cache
352 sizes) in order to allow U-Boot to automatically detect the sizes
353 of caches at runtime. This has a small cost in code size & runtime
354 so if you know the cache configuration for your system at compile
355 time it would be beneficial to configure it.
356
Daniel Schwierzeckf53830e2016-01-09 17:32:50 +0100357config MIPS_L1_CACHE_SHIFT_4
358 bool
359
360config MIPS_L1_CACHE_SHIFT_5
361 bool
362
363config MIPS_L1_CACHE_SHIFT_6
364 bool
365
366config MIPS_L1_CACHE_SHIFT_7
367 bool
368
369config MIPS_L1_CACHE_SHIFT
370 int
371 default "7" if MIPS_L1_CACHE_SHIFT_7
372 default "6" if MIPS_L1_CACHE_SHIFT_6
373 default "5" if MIPS_L1_CACHE_SHIFT_5
374 default "4" if MIPS_L1_CACHE_SHIFT_4
375 default "5"
376
Paul Burton4baa0ab2016-09-21 11:18:54 +0100377config MIPS_L2_CACHE
378 bool
379 help
380 Select this if your system includes an L2 cache and you want U-Boot
381 to initialise & maintain it.
382
Paul Burton05e34252016-01-29 13:54:52 +0000383config DYNAMIC_IO_PORT_BASE
384 bool
385
Paul Burtonb2b135d2016-09-21 11:18:53 +0100386config MIPS_CM
387 bool
388 help
389 Select this if your system contains a MIPS Coherence Manager and you
390 wish U-Boot to configure it or make use of it to retrieve system
391 information such as cache configuration.
392
Daniel Schwierzeck0e1dc342014-10-26 14:14:07 +0100393endif
394
Masahiro Yamadadd840582014-07-30 14:08:14 +0900395endmenu