blob: f113b91de70857163bba8f5e8887f523162c28f7 [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"
Daniel Schwierzecka4c242b2014-10-26 14:14:07 +010017 select SUPPORTS_BIG_ENDIAN
18 select SUPPORTS_LITTLE_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
Masahiro Yamadad3ae6782014-07-30 14:08:14 +090023
24config TARGET_MALTA
25 bool "Support malta"
Paul Burtona31a3df2016-05-17 07:43:28 +010026 select DM
27 select DM_SERIAL
Paul Burton8d6600b2016-01-29 13:54:52 +000028 select DYNAMIC_IO_PORT_BASE
Paul Burton59a4c8b2016-09-21 11:18:56 +010029 select MIPS_CM
30 select MIPS_L2_CACHE
Paul Burtona31a3df2016-05-17 07:43:28 +010031 select OF_CONTROL
32 select OF_ISA_BUS
Daniel Schwierzecka4c242b2014-10-26 14:14:07 +010033 select SUPPORTS_BIG_ENDIAN
34 select SUPPORTS_LITTLE_ENDIAN
Daniel Schwierzeck256034d2014-10-26 14:14:07 +010035 select SUPPORTS_CPU_MIPS32_R1
36 select SUPPORTS_CPU_MIPS32_R2
Paul Burton1c10e0d2016-05-16 10:52:14 +010037 select SUPPORTS_CPU_MIPS32_R6
Paul Burton825cfbd2016-05-26 14:49:36 +010038 select SUPPORTS_CPU_MIPS64_R1
39 select SUPPORTS_CPU_MIPS64_R2
40 select SUPPORTS_CPU_MIPS64_R6
Daniel Schwierzeck7dca6862015-01-18 22:00:18 +010041 select SWAP_IO_SPACE
Daniel Schwierzeck02ca55e2016-01-09 17:32:50 +010042 select MIPS_L1_CACHE_SHIFT_6
Masahiro Yamadad3ae6782014-07-30 14:08:14 +090043
44config TARGET_VCT
45 bool "Support vct"
Daniel Schwierzecka4c242b2014-10-26 14:14:07 +010046 select SUPPORTS_BIG_ENDIAN
Daniel Schwierzeck256034d2014-10-26 14:14:07 +010047 select SUPPORTS_CPU_MIPS32_R1
48 select SUPPORTS_CPU_MIPS32_R2
Paul Burton6832bdc2015-01-29 01:28:02 +000049 select SYS_MIPS_CACHE_INIT_RAM_LOAD
Masahiro Yamadad3ae6782014-07-30 14:08:14 +090050
51config TARGET_DBAU1X00
52 bool "Support dbau1x00"
Daniel Schwierzecka4c242b2014-10-26 14:14:07 +010053 select SUPPORTS_BIG_ENDIAN
54 select SUPPORTS_LITTLE_ENDIAN
Daniel Schwierzeck256034d2014-10-26 14:14:07 +010055 select SUPPORTS_CPU_MIPS32_R1
56 select SUPPORTS_CPU_MIPS32_R2
Paul Burton6832bdc2015-01-29 01:28:02 +000057 select SYS_MIPS_CACHE_INIT_RAM_LOAD
Daniel Schwierzeckaadd3322015-12-26 19:55:37 +010058 select MIPS_TUNE_4KC
Masahiro Yamadad3ae6782014-07-30 14:08:14 +090059
60config TARGET_PB1X00
61 bool "Support pb1x00"
Daniel Schwierzecka4c242b2014-10-26 14:14:07 +010062 select SUPPORTS_LITTLE_ENDIAN
Daniel Schwierzeck256034d2014-10-26 14:14:07 +010063 select SUPPORTS_CPU_MIPS32_R1
64 select SUPPORTS_CPU_MIPS32_R2
Paul Burton6832bdc2015-01-29 01:28:02 +000065 select SYS_MIPS_CACHE_INIT_RAM_LOAD
Daniel Schwierzeckaadd3322015-12-26 19:55:37 +010066 select MIPS_TUNE_4KC
Masahiro Yamadad3ae6782014-07-30 14:08:14 +090067
Wills Wang833a1a82016-03-16 16:59:52 +080068config ARCH_ATH79
69 bool "Support QCA/Atheros ath79"
70 select OF_CONTROL
71 select DM
72
Purna Chandra Mandal825b3212016-01-28 15:30:10 +053073config MACH_PIC32
74 bool "Support Microchip PIC32"
75 select OF_CONTROL
76 select DM
77
Zubair Lutfullah Kakakhel1d153b32016-07-29 15:11:20 +010078config TARGET_XILFPGA
79 bool "Support Imagination Xilfpga"
80 select OF_CONTROL
81 select DM
82 select DM_SERIAL
83 select DM_GPIO
84 select DM_ETH
85 select SUPPORTS_LITTLE_ENDIAN
86 select SUPPORTS_CPU_MIPS32_R1
87 select SUPPORTS_CPU_MIPS32_R2
88 select MIPS_L1_CACHE_SHIFT_4
89 help
90 This supports IMGTEC MIPSfpga platform
91
Masahiro Yamadad3ae6782014-07-30 14:08:14 +090092endchoice
93
94source "board/dbau1x00/Kconfig"
95source "board/imgtec/malta/Kconfig"
Zubair Lutfullah Kakakhel1d153b32016-07-29 15:11:20 +010096source "board/imgtec/xilfpga/Kconfig"
Masahiro Yamadad3ae6782014-07-30 14:08:14 +090097source "board/micronas/vct/Kconfig"
98source "board/pb1x00/Kconfig"
99source "board/qemu-mips/Kconfig"
Wills Wang833a1a82016-03-16 16:59:52 +0800100source "arch/mips/mach-ath79/Kconfig"
Purna Chandra Mandal825b3212016-01-28 15:30:10 +0530101source "arch/mips/mach-pic32/Kconfig"
Masahiro Yamadad3ae6782014-07-30 14:08:14 +0900102
Daniel Schwierzecka4c242b2014-10-26 14:14:07 +0100103if MIPS
104
105choice
106 prompt "Endianness selection"
107 help
108 Some MIPS boards can be configured for either little or big endian
109 byte order. These modes require different U-Boot images. In general there
110 is one preferred byteorder for a particular system but some systems are
111 just as commonly used in the one or the other endianness.
112
113config SYS_BIG_ENDIAN
114 bool "Big endian"
115 depends on SUPPORTS_BIG_ENDIAN
116
117config SYS_LITTLE_ENDIAN
118 bool "Little endian"
119 depends on SUPPORTS_LITTLE_ENDIAN
120
121endchoice
122
Daniel Schwierzeck256034d2014-10-26 14:14:07 +0100123choice
124 prompt "CPU selection"
125 default CPU_MIPS32_R2
126
127config CPU_MIPS32_R1
128 bool "MIPS32 Release 1"
129 depends on SUPPORTS_CPU_MIPS32_R1
130 select 32BIT
131 help
Paul Burton55e29dd2016-05-16 10:52:12 +0100132 Choose this option to build an U-Boot for release 1 through 5 of the
Daniel Schwierzeck256034d2014-10-26 14:14:07 +0100133 MIPS32 architecture.
134
135config CPU_MIPS32_R2
136 bool "MIPS32 Release 2"
137 depends on SUPPORTS_CPU_MIPS32_R2
138 select 32BIT
139 help
Paul Burton55e29dd2016-05-16 10:52:12 +0100140 Choose this option to build an U-Boot for release 2 through 5 of the
Daniel Schwierzeck256034d2014-10-26 14:14:07 +0100141 MIPS32 architecture.
142
Paul Burton55e29dd2016-05-16 10:52:12 +0100143config CPU_MIPS32_R6
144 bool "MIPS32 Release 6"
145 depends on SUPPORTS_CPU_MIPS32_R6
146 select 32BIT
147 help
148 Choose this option to build an U-Boot for release 6 or later of the
149 MIPS32 architecture.
150
Daniel Schwierzeck256034d2014-10-26 14:14:07 +0100151config CPU_MIPS64_R1
152 bool "MIPS64 Release 1"
153 depends on SUPPORTS_CPU_MIPS64_R1
154 select 64BIT
155 help
Paul Burton55e29dd2016-05-16 10:52:12 +0100156 Choose this option to build a kernel for release 1 through 5 of the
Daniel Schwierzeck256034d2014-10-26 14:14:07 +0100157 MIPS64 architecture.
158
159config CPU_MIPS64_R2
160 bool "MIPS64 Release 2"
161 depends on SUPPORTS_CPU_MIPS64_R2
162 select 64BIT
163 help
Paul Burton55e29dd2016-05-16 10:52:12 +0100164 Choose this option to build a kernel for release 2 through 5 of the
165 MIPS64 architecture.
166
167config CPU_MIPS64_R6
168 bool "MIPS64 Release 6"
169 depends on SUPPORTS_CPU_MIPS64_R6
170 select 64BIT
171 help
172 Choose this option to build a kernel for release 6 or later of the
Daniel Schwierzeck256034d2014-10-26 14:14:07 +0100173 MIPS64 architecture.
174
175endchoice
176
Daniel Schwierzeckf9749fa2015-01-14 21:44:13 +0100177menu "OS boot interface"
178
179config MIPS_BOOT_CMDLINE_LEGACY
180 bool "Hand over legacy command line to Linux kernel"
181 default y
182 help
183 Enable this option if you want U-Boot to hand over the Yamon-style
184 command line to the kernel. All bootargs will be prepared as argc/argv
185 compatible list. The argument count (argc) is stored in register $a0.
186 The address of the argument list (argv) is stored in register $a1.
187
Daniel Schwierzeckc07dc602015-01-14 21:44:13 +0100188config MIPS_BOOT_ENV_LEGACY
189 bool "Hand over legacy environment to Linux kernel"
190 default y
191 help
192 Enable this option if you want U-Boot to hand over the Yamon-style
193 environment to the kernel. Information like memory size, initrd
194 address and size will be prepared as zero-terminated key/value list.
Robert P. J. Day8c60f922016-05-04 04:47:31 -0400195 The address of the environment is stored in register $a2.
Daniel Schwierzeckc07dc602015-01-14 21:44:13 +0100196
Daniel Schwierzeck8d7ff4d2015-01-14 21:44:13 +0100197config MIPS_BOOT_FDT
Daniel Schwierzeckd1b29d22015-02-22 16:58:30 +0100198 bool "Hand over a flattened device tree to Linux kernel"
Daniel Schwierzeck8d7ff4d2015-01-14 21:44:13 +0100199 default n
200 help
201 Enable this option if you want U-Boot to hand over a flattened
Daniel Schwierzeckd1b29d22015-02-22 16:58:30 +0100202 device tree to the kernel. According to UHI register $a0 will be set
203 to -2 and the FDT address is stored in $a1.
Daniel Schwierzeck8d7ff4d2015-01-14 21:44:13 +0100204
Daniel Schwierzeckf9749fa2015-01-14 21:44:13 +0100205endmenu
206
Daniel Schwierzecka4c242b2014-10-26 14:14:07 +0100207config SUPPORTS_BIG_ENDIAN
208 bool
209
210config SUPPORTS_LITTLE_ENDIAN
211 bool
212
Daniel Schwierzeck256034d2014-10-26 14:14:07 +0100213config SUPPORTS_CPU_MIPS32_R1
214 bool
215
216config SUPPORTS_CPU_MIPS32_R2
217 bool
218
Paul Burton55e29dd2016-05-16 10:52:12 +0100219config SUPPORTS_CPU_MIPS32_R6
220 bool
221
Daniel Schwierzeck256034d2014-10-26 14:14:07 +0100222config SUPPORTS_CPU_MIPS64_R1
223 bool
224
225config SUPPORTS_CPU_MIPS64_R2
226 bool
227
Paul Burton55e29dd2016-05-16 10:52:12 +0100228config SUPPORTS_CPU_MIPS64_R6
229 bool
230
Daniel Schwierzeckdfbad0f2015-01-18 21:59:35 +0100231config CPU_MIPS32
232 bool
Paul Burton55e29dd2016-05-16 10:52:12 +0100233 default y if CPU_MIPS32_R1 || CPU_MIPS32_R2 || CPU_MIPS32_R6
Daniel Schwierzeckdfbad0f2015-01-18 21:59:35 +0100234
235config CPU_MIPS64
236 bool
Paul Burton55e29dd2016-05-16 10:52:12 +0100237 default y if CPU_MIPS64_R1 || CPU_MIPS64_R2 || CPU_MIPS64_R6
Daniel Schwierzeckdfbad0f2015-01-18 21:59:35 +0100238
Daniel Schwierzeckaadd3322015-12-26 19:55:37 +0100239config MIPS_TUNE_4KC
240 bool
241
242config MIPS_TUNE_14KC
243 bool
244
245config MIPS_TUNE_24KC
246 bool
247
Daniel Schwierzeckc7661d52016-05-27 15:39:39 +0200248config MIPS_TUNE_34KC
249 bool
250
Marek Vasuta9c6e8b2016-05-06 20:10:33 +0200251config MIPS_TUNE_74KC
252 bool
253
Daniel Schwierzeck256034d2014-10-26 14:14:07 +0100254config 32BIT
255 bool
256
257config 64BIT
258 bool
259
Daniel Schwierzeck7dca6862015-01-18 22:00:18 +0100260config SWAP_IO_SPACE
261 bool
262
Paul Burton6832bdc2015-01-29 01:28:02 +0000263config SYS_MIPS_CACHE_INIT_RAM_LOAD
264 bool
265
Paul Burton5e511422016-05-27 14:28:04 +0100266config SYS_DCACHE_SIZE
267 int
268 default 0
269 help
270 The total size of the L1 Dcache, if known at compile time.
271
Paul Burton62f13522016-05-27 14:28:05 +0100272config SYS_DCACHE_LINE_SIZE
Paul Burton79e49fd2016-06-09 13:09:52 +0100273 int
Paul Burton62f13522016-05-27 14:28:05 +0100274 default 0
275 help
276 The size of L1 Dcache lines, if known at compile time.
277
Paul Burton5e511422016-05-27 14:28:04 +0100278config SYS_ICACHE_SIZE
279 int
280 default 0
281 help
282 The total size of the L1 ICache, if known at compile time.
283
Paul Burton62f13522016-05-27 14:28:05 +0100284config SYS_ICACHE_LINE_SIZE
Paul Burton5e511422016-05-27 14:28:04 +0100285 int
286 default 0
287 help
Paul Burton62f13522016-05-27 14:28:05 +0100288 The size of L1 Icache lines, if known at compile time.
Paul Burton5e511422016-05-27 14:28:04 +0100289
290config SYS_CACHE_SIZE_AUTO
291 def_bool y if SYS_DCACHE_SIZE = 0 && SYS_ICACHE_SIZE = 0 && \
Paul Burton62f13522016-05-27 14:28:05 +0100292 SYS_DCACHE_LINE_SIZE = 0 && SYS_ICACHE_LINE_SIZE = 0
Paul Burton5e511422016-05-27 14:28:04 +0100293 help
294 Select this (or let it be auto-selected by not defining any cache
295 sizes) in order to allow U-Boot to automatically detect the sizes
296 of caches at runtime. This has a small cost in code size & runtime
297 so if you know the cache configuration for your system at compile
298 time it would be beneficial to configure it.
299
Daniel Schwierzeck02ca55e2016-01-09 17:32:50 +0100300config MIPS_L1_CACHE_SHIFT_4
301 bool
302
303config MIPS_L1_CACHE_SHIFT_5
304 bool
305
306config MIPS_L1_CACHE_SHIFT_6
307 bool
308
309config MIPS_L1_CACHE_SHIFT_7
310 bool
311
312config MIPS_L1_CACHE_SHIFT
313 int
314 default "7" if MIPS_L1_CACHE_SHIFT_7
315 default "6" if MIPS_L1_CACHE_SHIFT_6
316 default "5" if MIPS_L1_CACHE_SHIFT_5
317 default "4" if MIPS_L1_CACHE_SHIFT_4
318 default "5"
319
Paul Burton81560782016-09-21 11:18:54 +0100320config MIPS_L2_CACHE
321 bool
322 help
323 Select this if your system includes an L2 cache and you want U-Boot
324 to initialise & maintain it.
325
Paul Burton8d6600b2016-01-29 13:54:52 +0000326config DYNAMIC_IO_PORT_BASE
327 bool
328
Paul Burton79ac1742016-09-21 11:18:53 +0100329config MIPS_CM
330 bool
331 help
332 Select this if your system contains a MIPS Coherence Manager and you
333 wish U-Boot to configure it or make use of it to retrieve system
334 information such as cache configuration.
335
336config MIPS_CM_BASE
337 hex
338 default 0x1fbf8000
339 help
340 The physical base address at which to map the MIPS Coherence Manager
341 Global Configuration Registers (GCRs). This should be set such that
342 the GCRs occupy a region of the physical address space which is
343 otherwise unused, or at minimum that software doesn't need to access.
344
Daniel Schwierzecka4c242b2014-10-26 14:14:07 +0100345endif
346
Masahiro Yamadad3ae6782014-07-30 14:08:14 +0900347endmenu