xref: /openbmc/u-boot/arch/mips/Kconfig (revision fbe44dd1)
1menu "MIPS architecture"
2	depends on MIPS
3
4config SYS_ARCH
5	default "mips"
6
7config SYS_CPU
8	default "mips32" if CPU_MIPS32
9	default "mips64" if CPU_MIPS64
10
11choice
12	prompt "Target select"
13	optional
14
15config TARGET_QEMU_MIPS
16	bool "Support qemu-mips"
17	select SUPPORTS_BIG_ENDIAN
18	select SUPPORTS_LITTLE_ENDIAN
19	select SUPPORTS_CPU_MIPS32_R1
20	select SUPPORTS_CPU_MIPS32_R2
21	select SUPPORTS_CPU_MIPS64_R1
22	select SUPPORTS_CPU_MIPS64_R2
23	select ROM_EXCEPTION_VECTORS
24
25config TARGET_MALTA
26	bool "Support malta"
27	select DM
28	select DM_SERIAL
29	select DYNAMIC_IO_PORT_BASE
30	select MIPS_CM
31	select MIPS_L2_CACHE
32	select OF_CONTROL
33	select OF_ISA_BUS
34	select SUPPORTS_BIG_ENDIAN
35	select SUPPORTS_LITTLE_ENDIAN
36	select SUPPORTS_CPU_MIPS32_R1
37	select SUPPORTS_CPU_MIPS32_R2
38	select SUPPORTS_CPU_MIPS32_R6
39	select SUPPORTS_CPU_MIPS64_R1
40	select SUPPORTS_CPU_MIPS64_R2
41	select SUPPORTS_CPU_MIPS64_R6
42	select SWAP_IO_SPACE
43	select MIPS_L1_CACHE_SHIFT_6
44	select ROM_EXCEPTION_VECTORS
45
46config TARGET_VCT
47	bool "Support vct"
48	select SUPPORTS_BIG_ENDIAN
49	select SUPPORTS_CPU_MIPS32_R1
50	select SUPPORTS_CPU_MIPS32_R2
51	select SYS_MIPS_CACHE_INIT_RAM_LOAD
52	select ROM_EXCEPTION_VECTORS
53
54config TARGET_DBAU1X00
55	bool "Support dbau1x00"
56	select SUPPORTS_BIG_ENDIAN
57	select SUPPORTS_LITTLE_ENDIAN
58	select SUPPORTS_CPU_MIPS32_R1
59	select SUPPORTS_CPU_MIPS32_R2
60	select SYS_MIPS_CACHE_INIT_RAM_LOAD
61	select ROM_EXCEPTION_VECTORS
62	select MIPS_TUNE_4KC
63
64config TARGET_PB1X00
65	bool "Support pb1x00"
66	select SUPPORTS_LITTLE_ENDIAN
67	select SUPPORTS_CPU_MIPS32_R1
68	select SUPPORTS_CPU_MIPS32_R2
69	select SYS_MIPS_CACHE_INIT_RAM_LOAD
70	select ROM_EXCEPTION_VECTORS
71	select MIPS_TUNE_4KC
72
73config ARCH_ATH79
74	bool "Support QCA/Atheros ath79"
75	select OF_CONTROL
76	select DM
77
78config ARCH_BMIPS
79	bool "Support BMIPS SoCs"
80	select OF_CONTROL
81	select DM
82	select CLK
83	select CPU
84	select RAM
85	select SYSRESET
86
87config MACH_PIC32
88	bool "Support Microchip PIC32"
89	select OF_CONTROL
90	select DM
91
92config TARGET_BOSTON
93	bool "Support Boston"
94	select DM
95	select DM_SERIAL
96	select OF_CONTROL
97	select MIPS_CM
98	select MIPS_L1_CACHE_SHIFT_6
99	select MIPS_L2_CACHE
100	select OF_BOARD_SETUP
101	select SUPPORTS_BIG_ENDIAN
102	select SUPPORTS_LITTLE_ENDIAN
103	select SUPPORTS_CPU_MIPS32_R1
104	select SUPPORTS_CPU_MIPS32_R2
105	select SUPPORTS_CPU_MIPS32_R6
106	select SUPPORTS_CPU_MIPS64_R1
107	select SUPPORTS_CPU_MIPS64_R2
108	select SUPPORTS_CPU_MIPS64_R6
109	select ROM_EXCEPTION_VECTORS
110
111config TARGET_XILFPGA
112	bool "Support Imagination Xilfpga"
113	select OF_CONTROL
114	select DM
115	select DM_SERIAL
116	select DM_GPIO
117	select DM_ETH
118	select SUPPORTS_LITTLE_ENDIAN
119	select SUPPORTS_CPU_MIPS32_R1
120	select SUPPORTS_CPU_MIPS32_R2
121	select MIPS_L1_CACHE_SHIFT_4
122	select ROM_EXCEPTION_VECTORS
123	help
124	  This supports IMGTEC MIPSfpga platform
125
126endchoice
127
128source "board/dbau1x00/Kconfig"
129source "board/imgtec/boston/Kconfig"
130source "board/imgtec/malta/Kconfig"
131source "board/imgtec/xilfpga/Kconfig"
132source "board/micronas/vct/Kconfig"
133source "board/pb1x00/Kconfig"
134source "board/qemu-mips/Kconfig"
135source "arch/mips/mach-ath79/Kconfig"
136source "arch/mips/mach-bmips/Kconfig"
137source "arch/mips/mach-pic32/Kconfig"
138
139if MIPS
140
141choice
142	prompt "Endianness selection"
143	help
144	  Some MIPS boards can be configured for either little or big endian
145	  byte order. These modes require different U-Boot images. In general there
146	  is one preferred byteorder for a particular system but some systems are
147	  just as commonly used in the one or the other endianness.
148
149config SYS_BIG_ENDIAN
150	bool "Big endian"
151	depends on SUPPORTS_BIG_ENDIAN
152
153config SYS_LITTLE_ENDIAN
154	bool "Little endian"
155	depends on SUPPORTS_LITTLE_ENDIAN
156
157endchoice
158
159choice
160	prompt "CPU selection"
161	default CPU_MIPS32_R2
162
163config CPU_MIPS32_R1
164	bool "MIPS32 Release 1"
165	depends on SUPPORTS_CPU_MIPS32_R1
166	select 32BIT
167	help
168	  Choose this option to build an U-Boot for release 1 through 5 of the
169	  MIPS32 architecture.
170
171config CPU_MIPS32_R2
172	bool "MIPS32 Release 2"
173	depends on SUPPORTS_CPU_MIPS32_R2
174	select 32BIT
175	help
176	  Choose this option to build an U-Boot for release 2 through 5 of the
177	  MIPS32 architecture.
178
179config CPU_MIPS32_R6
180	bool "MIPS32 Release 6"
181	depends on SUPPORTS_CPU_MIPS32_R6
182	select 32BIT
183	help
184	  Choose this option to build an U-Boot for release 6 or later of the
185	  MIPS32 architecture.
186
187config CPU_MIPS64_R1
188	bool "MIPS64 Release 1"
189	depends on SUPPORTS_CPU_MIPS64_R1
190	select 64BIT
191	help
192	  Choose this option to build a kernel for release 1 through 5 of the
193	  MIPS64 architecture.
194
195config CPU_MIPS64_R2
196	bool "MIPS64 Release 2"
197	depends on SUPPORTS_CPU_MIPS64_R2
198	select 64BIT
199	help
200	  Choose this option to build a kernel for release 2 through 5 of the
201	  MIPS64 architecture.
202
203config CPU_MIPS64_R6
204	bool "MIPS64 Release 6"
205	depends on SUPPORTS_CPU_MIPS64_R6
206	select 64BIT
207	help
208	  Choose this option to build a kernel for release 6 or later of the
209	  MIPS64 architecture.
210
211endchoice
212
213menu "General setup"
214
215config ROM_EXCEPTION_VECTORS
216	bool "Build U-Boot image with exception vectors"
217	help
218	  Enable this to include exception vectors in the U-Boot image. This is
219	  required if the U-Boot entry point is equal to the address of the
220	  CPU reset exception vector (e.g. U-Boot as ROM loader in Qemu,
221	  U-Boot booted from parallel NOR flash).
222	  Disable this, if the U-Boot image is booted from DRAM (e.g. by SPL).
223	  In that case the image size will be reduced by 0x500 bytes.
224
225config MIPS_CM_BASE
226	hex "MIPS CM GCR Base Address"
227	depends on MIPS_CM
228	default 0x16100000 if TARGET_BOSTON
229	default 0x1fbf8000
230	help
231	  The physical base address at which to map the MIPS Coherence Manager
232	  Global Configuration Registers (GCRs). This should be set such that
233	  the GCRs occupy a region of the physical address space which is
234	  otherwise unused, or at minimum that software doesn't need to access.
235
236endmenu
237
238menu "OS boot interface"
239
240config MIPS_BOOT_CMDLINE_LEGACY
241	bool "Hand over legacy command line to Linux kernel"
242	default y
243	help
244	  Enable this option if you want U-Boot to hand over the Yamon-style
245	  command line to the kernel. All bootargs will be prepared as argc/argv
246	  compatible list. The argument count (argc) is stored in register $a0.
247	  The address of the argument list (argv) is stored in register $a1.
248
249config MIPS_BOOT_ENV_LEGACY
250	bool "Hand over legacy environment to Linux kernel"
251	default y
252	help
253	  Enable this option if you want U-Boot to hand over the Yamon-style
254	  environment to the kernel. Information like memory size, initrd
255	  address and size will be prepared as zero-terminated key/value list.
256	  The address of the environment is stored in register $a2.
257
258config MIPS_BOOT_FDT
259	bool "Hand over a flattened device tree to Linux kernel"
260	default n
261	help
262	  Enable this option if you want U-Boot to hand over a flattened
263	  device tree to the kernel. According to UHI register $a0 will be set
264	  to -2 and the FDT address is stored in $a1.
265
266endmenu
267
268config SUPPORTS_BIG_ENDIAN
269	bool
270
271config SUPPORTS_LITTLE_ENDIAN
272	bool
273
274config SUPPORTS_CPU_MIPS32_R1
275	bool
276
277config SUPPORTS_CPU_MIPS32_R2
278	bool
279
280config SUPPORTS_CPU_MIPS32_R6
281	bool
282
283config SUPPORTS_CPU_MIPS64_R1
284	bool
285
286config SUPPORTS_CPU_MIPS64_R2
287	bool
288
289config SUPPORTS_CPU_MIPS64_R6
290	bool
291
292config CPU_MIPS32
293	bool
294	default y if CPU_MIPS32_R1 || CPU_MIPS32_R2 || CPU_MIPS32_R6
295
296config CPU_MIPS64
297	bool
298	default y if CPU_MIPS64_R1 || CPU_MIPS64_R2 || CPU_MIPS64_R6
299
300config MIPS_TUNE_4KC
301	bool
302
303config MIPS_TUNE_14KC
304	bool
305
306config MIPS_TUNE_24KC
307	bool
308
309config MIPS_TUNE_34KC
310	bool
311
312config MIPS_TUNE_74KC
313	bool
314
315config 32BIT
316	bool
317
318config 64BIT
319	bool
320
321config SWAP_IO_SPACE
322	bool
323
324config SYS_MIPS_CACHE_INIT_RAM_LOAD
325	bool
326
327config MIPS_INIT_STACK_IN_SRAM
328	bool
329	default n
330	help
331	  Select this if the initial stack frame could be setup in SRAM.
332	  Normally the initial stack frame is set up in DRAM which is often
333	  only available after lowlevel_init. With this option the initial
334	  stack frame and the early C environment is set up before
335	  lowlevel_init. Thus lowlevel_init does not need to be implemented
336	  in assembler.
337
338config SYS_DCACHE_SIZE
339	int
340	default 0
341	help
342	  The total size of the L1 Dcache, if known at compile time.
343
344config SYS_DCACHE_LINE_SIZE
345	int
346	default 0
347	help
348	  The size of L1 Dcache lines, if known at compile time.
349
350config SYS_ICACHE_SIZE
351	int
352	default 0
353	help
354	  The total size of the L1 ICache, if known at compile time.
355
356config SYS_ICACHE_LINE_SIZE
357	int
358	default 0
359	help
360	  The size of L1 Icache lines, if known at compile time.
361
362config SYS_CACHE_SIZE_AUTO
363	def_bool y if SYS_DCACHE_SIZE = 0 && SYS_ICACHE_SIZE = 0 && \
364		SYS_DCACHE_LINE_SIZE = 0 && SYS_ICACHE_LINE_SIZE = 0
365	help
366	  Select this (or let it be auto-selected by not defining any cache
367	  sizes) in order to allow U-Boot to automatically detect the sizes
368	  of caches at runtime. This has a small cost in code size & runtime
369	  so if you know the cache configuration for your system at compile
370	  time it would be beneficial to configure it.
371
372config MIPS_L1_CACHE_SHIFT_4
373	bool
374
375config MIPS_L1_CACHE_SHIFT_5
376	bool
377
378config MIPS_L1_CACHE_SHIFT_6
379	bool
380
381config MIPS_L1_CACHE_SHIFT_7
382	bool
383
384config MIPS_L1_CACHE_SHIFT
385	int
386	default "7" if MIPS_L1_CACHE_SHIFT_7
387	default "6" if MIPS_L1_CACHE_SHIFT_6
388	default "5" if MIPS_L1_CACHE_SHIFT_5
389	default "4" if MIPS_L1_CACHE_SHIFT_4
390	default "5"
391
392config MIPS_L2_CACHE
393	bool
394	help
395	  Select this if your system includes an L2 cache and you want U-Boot
396	  to initialise & maintain it.
397
398config DYNAMIC_IO_PORT_BASE
399	bool
400
401config MIPS_CM
402	bool
403	help
404	  Select this if your system contains a MIPS Coherence Manager and you
405	  wish U-Boot to configure it or make use of it to retrieve system
406	  information such as cache configuration.
407
408endif
409
410endmenu
411