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