xref: /rk3399_rockchip-uboot/arch/arm/mach-rockchip/Kconfig (revision e091b6c996a68a6a0faa2bd3ffdd90b3ba5f44ce)
1if ARCH_ROCKCHIP
2
3config ROCKCHIP_PX30
4	bool "Support Rockchip PX30"
5	select ARM64 if !ARM64_BOOT_AARCH32
6	select GICV2
7	select ARM_SMCCC
8	select SUPPORT_SPL
9	select SUPPORT_TPL
10	select SPL if !ARM64_BOOT_AARCH32
11	select TPL if !ARM64_BOOT_AARCH32
12	select TPL_TINY_FRAMEWORK if TPL
13
14	imply SPL_SEPARATE_BSS
15	imply SPL_SERIAL_SUPPORT
16	imply TPL_SERIAL_SUPPORT
17	help
18	  The Rockchip PX30 is a ARM-based SoC with a quad-core Cortex-A35
19	  including NEON and GPU, Mali-400 graphics, several DDR3 options
20	  and video codec support. Peripherals include Gigabit Ethernet,
21	  USB2 host and OTG, SDIO, I2S, UART, SPI, I2C and PWMs.
22
23if ROCKCHIP_PX30
24
25config TPL_LDSCRIPT
26	default "arch/arm/mach-rockchip/u-boot-tpl-v8.lds"
27
28config TPL_TEXT_BASE
29	default 0xff0e1000
30
31config TPL_MAX_SIZE
32	default 10240
33
34config ROCKCHIP_RK3326
35	bool "Support Rockchip RK3326 "
36	help
37	  RK3326 can use most code from PX30, but at some situations we have
38	  to distinguish between RK3326 and PX30, so this macro gives help.
39	  It is usually selected in rk3326 board defconfig.
40endif
41
42config ROCKCHIP_RK3036
43	bool "Support Rockchip RK3036"
44	select CPU_V7
45	select SUPPORT_SPL
46	select SUPPORT_TPL
47	select SPL
48	select TPL
49	select BOARD_LATE_INIT
50	select ROCKCHIP_BROM_HELPER
51	select TPL_NEEDS_SEPARATE_TEXT_BASE if TPL
52	select TPL_NEEDS_SEPARATE_STACK if TPL
53	select ARM_SMCCC
54	help
55	  The Rockchip RK3036 is a ARM-based SoC with a dual-core Cortex-A7
56	  including NEON and GPU, Mali-400 graphics, several DDR3 options
57	  and video codec support. Peripherals include Gigabit Ethernet,
58	  USB2 host and OTG, SDIO, I2S, UART, SPI, I2C and PWMs.
59
60config ROCKCHIP_RK3128
61	bool "Support Rockchip RK3128"
62	select CPU_V7
63	select GICV2
64	select ARM_SMCCC
65	help
66	  The Rockchip RK3128 is a ARM-based SoC with a quad-core Cortex-A7
67	  including NEON and GPU, Mali-400 graphics, several DDR3 options
68	  and video codec support. Peripherals include Gigabit Ethernet,
69	  USB2 host and OTG, SDIO, I2S, UART, SPI, I2C and PWMs.
70
71if ROCKCHIP_RK3128
72
73config ROCKCHIP_RK3126
74	bool "Support Rockchip RK3126 "
75	help
76	  RK3126 can use most code from RK3128, but at some situations we have
77	  to distinguish between RK3126 and RK3128, so this macro gives help.
78	  It is usually selected in rk3126 board defconfig.
79
80config ROCKCHIP_PX3SE
81	bool "Support Rockchip PX3SE"
82	help
83	  PX3SE is a variant of RK3128, it shares codes with RK3128, but we still
84	  need this macro to distinguish PX3SE and RK3128.
85endif
86
87config ROCKCHIP_RK3066
88	bool "Support Rockchip RK3066"
89	select CPU_V7
90	select SUPPORT_SPL
91	select SUPPORT_TPL
92	select SPL
93	select TPL
94	select BOARD_LATE_INIT
95	select ROCKCHIP_BROM_HELPER
96	select SPL_ROCKCHIP_EARLYRETURN_TO_BROM
97	help
98	  The Rockchip RK3066 is a ARM-based SoC with a dual-core Cortex-A9
99	  including NEON and GPU, Mali-400 graphics, several DDR3 options
100	  and video codec support. Peripherals include ethernet, USB2 host
101	  and OTG, SDIO, I2S, UART, SPI, I2C and PWMs.
102
103config ROCKCHIP_RK3188
104	bool "Support Rockchip RK3188"
105	select CPU_V7
106	select SPL_BOARD_INIT if SPL
107	select SUPPORT_SPL
108	select SPL
109	select SPL_CLK
110	select SPL_REGMAP
111	select SPL_SYSCON
112	select SPL_RAM
113	select SPL_DRIVERS_MISC_SUPPORT
114	select SPL_ROCKCHIP_EARLYRETURN_TO_BROM
115	select BOARD_LATE_INIT
116	select ROCKCHIP_BROM_HELPER
117	help
118	  The Rockchip RK3188 is a ARM-based SoC with a quad-core Cortex-A9
119	  including NEON and GPU, 512KB L2 cache, Mali-400 graphics, two
120	  video interfaces, several memory options and video codec support.
121	  Peripherals include Fast Ethernet, USB2 host and OTG, SDIO, I2S,
122	  UART, SPI, I2C and PWMs.
123
124config ROCKCHIP_RK322X
125	bool "Support Rockchip RK3228/RK3229"
126	select CPU_V7
127	select SUPPORT_SPL
128	select SUPPORT_TPL
129	select SPL
130	select TPL
131	select TPL_NEEDS_SEPARATE_TEXT_BASE if SPL
132	select TPL_NEEDS_SEPARATE_STACK if TPL
133	select SPL_DRIVERS_MISC_SUPPORT
134	imply SPL_SERIAL_SUPPORT
135	imply TPL_SERIAL_SUPPORT
136	select ROCKCHIP_BROM_HELPER
137	select TPL_LIBCOMMON_SUPPORT
138	select TPL_LIBGENERIC_SUPPORT
139	select GICV2
140	select ARM_SMCCC
141	help
142	  The Rockchip RK3229 is a ARM-based SoC with a dual-core Cortex-A7
143	  including NEON and GPU, Mali-400 graphics, several DDR3 options
144	  and video codec support. Peripherals include Gigabit Ethernet,
145	  USB2 host and OTG, SDIO, I2S, UART, SPI, I2C and PWMs.
146
147if ROCKCHIP_RK322X
148
149config ROCKCHIP_RK3128X
150	bool "Support Rockchip RK3128X "
151	help
152	  RK3128X can use most code from RK322X, but at some situations we have
153	  to distinguish between RK3128X and RK322X, so this macro gives help.
154	  It is usually selected in RK3128X board defconfig.
155endif
156
157config ROCKCHIP_RK3288
158	bool "Support Rockchip RK3288"
159	select CPU_V7
160	select SPL_BOARD_INIT if SPL
161	select SUPPORT_SPL
162	select SUPPORT_TPL
163	select SPL
164	select TPL
165	select TPL_NEEDS_SEPARATE_TEXT_BASE if TPL
166	select TPL_NEEDS_SEPARATE_STACK if TPL
167	imply TPL_SERIAL_SUPPORT
168	select GICV2
169	select ARM_SMCCC
170	select SPL_OPTEE
171	select FIT
172	select SPL_LOAD_FIT
173	select TPL_LIBCOMMON_SUPPORT
174	select TPL_LIBGENERIC_SUPPORT
175	select TPL_SYS_MALLOC_SIMPLE
176	select TPL_BOOTROM_SUPPORT
177	select TPL_DRIVERS_MISC_SUPPORT
178	select TPL_OF_CONTROL
179	select TPL_DM
180	select TPL_REGMAP
181	select TPL_SYSCON
182	select TPL_RAM
183	select TPL_CLK
184	select TPL_TINY_MEMSET
185	help
186	  The Rockchip RK3288 is a ARM-based SoC with a quad-core Cortex-A17
187	  including NEON and GPU, 1MB L2 cache, Mali-T7 graphics, two
188	  video interfaces supporting HDMI and eDP, several DDR3 options
189	  and video codec support. Peripherals include Gigabit Ethernet,
190	  USB2 host and OTG, SDIO, I2S, UARTs, SPI, I2C and PWMs.
191
192if ROCKCHIP_RK3288
193config SPL_FIT_GENERATOR
194	default "arch/arm/mach-rockchip/make_fit_optee.sh"
195
196config TPL_LDSCRIPT
197	default "arch/arm/mach-rockchip/u-boot-tpl.lds"
198
199config TPL_TEXT_BASE
200	default 0xff704000
201
202config TPL_MAX_SIZE
203	default 32768
204
205config TPL_STACK
206	default 0xff718000
207
208endif
209
210config ROCKCHIP_RK3308
211	bool "Support Rockchip RK3308"
212	select ARM64 if !ARM64_BOOT_AARCH32
213	select ARM_SMCCC
214	select GICV2
215	select SUPPORT_SPL if !ARM64_BOOT_AARCH32
216	select SUPPORT_TPL if !ARM64_BOOT_AARCH32
217	select SPL if !ARM64_BOOT_AARCH32
218	select TPL if !ARM64_BOOT_AARCH32
219	imply SPL_CLK
220	imply SPL_REGMAP
221	imply SPL_SYSCON
222	imply SPL_RAM
223	imply SPL_SERIAL_SUPPORT
224	imply TPL_SERIAL_SUPPORT
225	imply SPL_SEPARATE_BSS
226	help
227	  The Rockchip RK3308 is a ARM-based Soc which embeded with quad
228	  Cortex-A35 and highly integrated audio interfaces.
229
230if ROCKCHIP_RK3308
231
232config TPL_LDSCRIPT
233	default "arch/arm/mach-rockchip/u-boot-tpl-v8.lds"
234
235config TPL_TEXT_BASE
236	default 0xfff81000
237
238config TPL_MAX_SIZE
239	default 10240
240
241config TPL_STACK
242	default 0xfff84000
243
244endif
245
246config ROCKCHIP_RK3328
247	bool "Support Rockchip RK3328"
248	select ARM64
249	select GICV2
250	select SUPPORT_SPL
251	select SUPPORT_TPL
252	select SPL
253	select TPL
254	select TPL_NEEDS_SEPARATE_TEXT_BASE if TPL
255	select TPL_NEEDS_SEPARATE_STACK if TPL
256	imply SPL_SERIAL_SUPPORT
257	imply TPL_SERIAL_SUPPORT
258	imply SPL_SEPARATE_BSS
259	select ARM_SMCCC
260	help
261	  The Rockchip RK3328 is a ARM-based SoC with a quad-core Cortex-A53.
262	  including NEON and GPU, 1MB L2 cache, Mali-T7 graphics, two
263	  video interfaces supporting HDMI and eDP, several DDR3 options
264	  and video codec support. Peripherals include Gigabit Ethernet,
265	  USB2 host and OTG, SDIO, I2S, UARTs, SPI, I2C and PWMs.
266
267if ROCKCHIP_RK3328
268
269config TPL_LDSCRIPT
270	default "arch/arm/mach-rockchip/u-boot-tpl-v8.lds"
271
272config TPL_TEXT_BASE
273        default 0xff091000
274
275config TPL_MAX_SIZE
276        default 28672
277
278config TPL_STACK
279        default 0xff098000
280
281endif
282
283config ROCKCHIP_RK3368
284	bool "Support Rockchip RK3368"
285	select ARM64
286	select SUPPORT_SPL
287	select SUPPORT_TPL
288	select TPL_NEEDS_SEPARATE_TEXT_BASE if SPL
289	select TPL_NEEDS_SEPARATE_STACK if TPL
290	imply SPL_SEPARATE_BSS
291	imply SPL_SERIAL_SUPPORT
292	imply TPL_SERIAL_SUPPORT
293	select GICV2
294	select ARM_SMCCC
295	help
296	  The Rockchip RK3368 is a ARM-based SoC with a octa-core (organised
297	  into a big and little cluster with 4 cores each) Cortex-A53 including
298	  AdvSIMD, 512KB L2 cache (for the big cluster) and 256 KB L2 cache
299	  (for the little cluster), PowerVR G6110 based graphics, one video
300	  output processor supporting LVDS/HDMI/eDP, several DDR3 options and
301	  video codec support.
302
303	  On-chip peripherals include Gigabit Ethernet, USB2 host and OTG, SDIO,
304	  I2S, UARTs, SPI, I2C and PWMs.
305
306if ROCKCHIP_RK3368
307
308config ROCKCHIP_PX5
309	bool "Support Rockchip PX5"
310	help
311	  PX5 is a variant of RK3368, it shares codes with RK3368, but we still
312	  need this macro to distinguish PX5 and RK3368.
313
314config TPL_LDSCRIPT
315	default "arch/arm/mach-rockchip/rk3368/u-boot-tpl.lds"
316
317config TPL_TEXT_BASE
318        default 0xff8c1000
319
320config TPL_MAX_SIZE
321        default 28672
322
323config TPL_STACK
324        default 0xff8cffff
325
326endif
327
328config ROCKCHIP_RK3399
329	bool "Support Rockchip RK3399"
330	select ARM64
331	select SUPPORT_SPL
332	select SUPPORT_TPL
333	select SPL
334	select TPL
335	select TPL_NEEDS_SEPARATE_TEXT_BASE if TPL
336	select TPL_NEEDS_SEPARATE_STACK if TPL
337	imply TPL_SERIAL_SUPPORT
338	select SPL_SEPARATE_BSS
339	select SPL_SERIAL_SUPPORT
340	select SPL_DRIVERS_MISC_SUPPORT
341	select GICV3
342	select BOARD_LATE_INIT
343	select ROCKCHIP_BROM_HELPER
344	select ARM_SMCCC
345	select TPL_LIBCOMMON_SUPPORT
346	select TPL_LIBGENERIC_SUPPORT
347	select TPL_SYS_MALLOC_SIMPLE
348	select TPL_BOOTROM_SUPPORT
349	select TPL_DRIVERS_MISC_SUPPORT
350	select TPL_OF_CONTROL
351	select TPL_DM
352	select TPL_REGMAP
353	select TPL_SYSCON
354	select TPL_RAM
355	select TPL_CLK
356	select TPL_TINY_MEMSET
357	help
358	  The Rockchip RK3399 is a ARM-based SoC with a dual-core Cortex-A72
359	  and quad-core Cortex-A53.
360	  including NEON and GPU, 1MB L2 cache, Mali-T7 graphics, two
361	  video interfaces supporting HDMI and eDP, several DDR3 options
362	  and video codec support. Peripherals include Gigabit Ethernet,
363	  USB2 host and OTG, SDIO, I2S, UARTs, SPI, I2C and PWMs.
364
365if ROCKCHIP_RK3399
366
367config ROCKCHIP_RK3399PRO
368	bool "Support Rockchip RK3399Pro"
369
370config TPL_LDSCRIPT
371	default "arch/arm/mach-rockchip/u-boot-tpl-v8.lds"
372
373config TPL_TEXT_BASE
374        default 0xff8c2000
375
376config TPL_MAX_SIZE
377        default 188416
378
379config TPL_STACK
380        default 0xff8effff
381
382endif
383
384config ROCKCHIP_RK3568
385	bool "Support Rockchip RK3568"
386	select ARM64 if !ARM64_BOOT_AARCH32
387	select ARM_SMCCC
388	select GICV3 if !ARM64_BOOT_AARCH32 && !SUPPORT_USBPLUG
389	select SUPPORT_TPL if !ARM64_BOOT_AARCH32
390	select SUPPORT_SPL if !ARM64_BOOT_AARCH32
391	select TPL_TINY_FRAMEWORK if TPL
392	select DEBUG_UART_BOARD_INIT
393	imply TPL if !ARM64_BOOT_AARCH32
394	imply SPL if !ARM64_BOOT_AARCH32
395	imply TPL_SERIAL_SUPPORT
396	help
397	  The Rockchip RK3568 is a ARM-based SoC with a quad-core Cortex-A55.
398
399if ROCKCHIP_RK3568
400
401config TPL_LDSCRIPT
402	default "arch/arm/mach-rockchip/u-boot-tpl-v8.lds"
403
404config TPL_TEXT_BASE
405	default 0xfdcc1000
406
407config TPL_MAX_SIZE
408	default 61440
409
410endif
411
412config ROCKCHIP_RK1808
413	bool "Support Rockchip RK1808"
414	select ARM64
415	select ARM_SMCCC
416	select GICV3 if !COPROCESSOR_RK1808
417	select SUPPORT_SPL if !COPROCESSOR_RK1808
418	select SUPPORT_TPL if !COPROCESSOR_RK1808
419	help
420	  The Rockchip RK1808 is a ARM-based Soc which embedded with dual
421	  Cortex-A35.
422
423if ROCKCHIP_RK1808
424
425config ROCKCHIP_RK1806
426	bool "Support Rockchip RK1806"
427	help
428	  The Rockchip RK1806 is a ARM-based Soc which embedded with dual
429	  Cortex-A35.
430
431config COPROCESSOR_RK1808
432	bool "RK1808 coprocessor"
433	help
434	  This indicates the RK1808 is working as a coprocessor for another
435	  more powerful SoC.
436
437endif
438
439config ROCKCHIP_RV1108
440	bool "Support Rockchip RV1108"
441	select CPU_V7
442	select SUPPORT_SPL
443	select SUPPORT_TPL
444	select SPL
445	select TPL
446	select BOARD_LATE_INIT
447	help
448	  The Rockchip RV1108 is a ARM-based SoC with a single-core Cortex-A7
449	  and a DSP.
450
451if ROCKCHIP_RV1108
452
453config TPL_LDSCRIPT
454        default "arch/arm/mach-rockchip/u-boot-tpl.lds"
455
456config TPL_TEXT_BASE
457        default 0x10080800
458
459config TPL_MAX_SIZE
460        default 6144
461
462config TPL_STACK
463        default 0x10082000
464
465endif
466
467config ROCKCHIP_RV1126
468	bool "Support Rockchip RV1126"
469	select CPU_V7
470	select SUPPORT_TPL
471	select SUPPORT_SPL
472	select TPL_TINY_FRAMEWORK if TPL
473	select DEBUG_UART_BOARD_INIT
474	imply TPL
475	imply SPL
476	imply GICV2
477	imply ARM_SMCCC
478	imply BOARD_LATE_INIT
479	imply ROCKCHIP_GPIO_V2
480	imply TPL_SERIAL_SUPPORT
481	help
482	  The Rockchip RV1126 is a ARM-based SoC with a quad-core Cortex-A7
483	  and a risc-v core.
484
485if ROCKCHIP_RV1126
486
487config TPL_LDSCRIPT
488	default "arch/arm/mach-rockchip/u-boot-tpl.lds"
489
490config TPL_TEXT_BASE
491	default 0xff701000
492
493config TPL_MAX_SIZE
494	default 32768
495endif
496
497config SPL_ROCKCHIP_BACK_TO_BROM
498	bool "SPL returns to bootrom"
499	default y if ROCKCHIP_RK3036
500	select ROCKCHIP_BROM_HELPER
501	depends on SPL
502	help
503	  Rockchip SoCs have ability to load SPL & U-Boot binary. If enabled,
504          SPL will return to the boot rom, which will then load the U-Boot
505          binary to keep going on.
506
507config TPL_ROCKCHIP_BACK_TO_BROM
508	bool "TPL returns to bootrom"
509	default y
510	select ROCKCHIP_BROM_HELPER
511	depends on TPL
512	help
513	  Rockchip SoCs have ability to load SPL & U-Boot binary. If enabled,
514          SPL will return to the boot rom, which will then load the U-Boot
515          binary to keep going on.
516
517config ARM64_BOOT_AARCH32
518	bool "Support Boot an ARM64 on AArch32 execution state"
519	select CPU_V7
520	default n
521	help
522	  If you want to boot an ARM64 processor on 32-bit mode, say y here.
523
524config ROCKCHIP_BOOT_MODE_REG
525	hex "Rockchip boot mode flag register address"
526	default 0xff010200 if ROCKCHIP_PX30
527	default 0x200081c8 if ROCKCHIP_RK3036
528	default 0x100a0038 if ROCKCHIP_RK3128
529	default 0x20004040 if ROCKCHIP_RK3188
530	default 0x110005c8 if ROCKCHIP_RK322X
531	default 0xff730094 if ROCKCHIP_RK3288
532	default 0xff000500 if ROCKCHIP_RK3308
533	default 0xff1005c8 if ROCKCHIP_RK3328
534	default 0xff738200 if ROCKCHIP_RK3368
535	default 0xff320300 if ROCKCHIP_RK3399
536	default 0xfdc20200 if ROCKCHIP_RK3568
537	default 0xfe020200 if ROCKCHIP_RK1808
538	default 0x10300580 if ROCKCHIP_RV1108
539	default 0xfe020200 if ROCKCHIP_RV1126
540	default 0
541	help
542	  The Soc will enter to different boot mode(defined in asm/arch/boot_mode.h)
543	  according to the value from this register.
544
545config ROCKCHIP_STIMER_BASE
546	hex "Rockchip Secure timer base address"
547	default 0xff220020 if ROCKCHIP_PX30
548	default 0x200440a0 if ROCKCHIP_RK3036
549	default 0x2000e000 if ROCKCHIP_RK3066
550	default 0x20018020 if ROCKCHIP_RK3126
551	default 0x200440a0 if ROCKCHIP_RK3128
552	default 0x2000e000 if ROCKCHIP_RK3188
553	default 0x110d0020 if ROCKCHIP_RK322X
554	default 0xff810020 if ROCKCHIP_RK3288
555	default 0xff1b00a0 if ROCKCHIP_RK3308
556	default 0xff1d0020 if ROCKCHIP_RK3328
557	default 0xff830020 if ROCKCHIP_RK3368
558	default 0xff8680a0 if ROCKCHIP_RK3399
559	default 0xfdd1c020 if ROCKCHIP_RK3568
560	default 0x10350020 if ROCKCHIP_RV1108
561	default 0xff670020 if ROCKCHIP_RV1126
562	default 0
563	help
564	  The secure timer inited in SPL/TPL in secure word, ARM generic timer
565	  works after this timer work.
566
567config ROCKCHIP_IRAM_START_ADDR
568	hex "Rockchip Secure timer base address"
569	default 0xff0e0000 if ROCKCHIP_PX30
570	default 0x10080000 if ROCKCHIP_RK3036
571	default 0x10080000 if ROCKCHIP_RK3128
572	default 0x10080000 if ROCKCHIP_RK3188
573	default 0x10080000 if ROCKCHIP_RK322X
574	default 0xff700000 if ROCKCHIP_RK3288
575	default 0xfff80000 if ROCKCHIP_RK3308
576	default 0xff091000 if ROCKCHIP_RK3328
577	default 0xff8c0000 if ROCKCHIP_RK3368
578	default 0xff8c0000 if ROCKCHIP_RK3399
579	default 0xfdcc0000 if ROCKCHIP_RK3568
580	default 0x10080000 if ROCKCHIP_RV1108
581	default 0xff700000 if ROCKCHIP_RV1126
582	default 0
583	help
584	  The IRAM start addr is to locate variant of the boot device from
585	  bootrom.
586
587config ROCKCHIP_SPL_RESERVE_IRAM
588	hex "Size of IRAM reserved in SPL"
589	default 0
590	help
591	  SPL may need reserve memory for firmware loaded by SPL, whose load
592	  address is in IRAM and may overlay with SPL text area if not
593	  reserved.
594
595config ROCKCHIP_BROM_HELPER
596	bool
597
598config SPL_ROCKCHIP_EARLYRETURN_TO_BROM
599        bool "SPL requires early-return (for RK3188-style BROM) to BROM"
600	depends on SPL && ENABLE_ARM_SOC_BOOT0_HOOK
601	help
602	  Some Rockchip BROM variants (e.g. on the RK3188) load the
603	  first stage in segments and enter multiple times. E.g. on
604	  the RK3188, the first 1KB of the first stage are loaded
605	  first and entered; after returning to the BROM, the
606	  remainder of the first stage is loaded, but the BROM
607	  re-enters at the same address/to the same code as previously.
608
609	  This enables support code in the BOOT0 hook for the SPL stage
610	  to allow multiple entries.
611
612config TPL_ROCKCHIP_EARLYRETURN_TO_BROM
613        bool "TPL requires early-return (for RK3188-style BROM) to BROM"
614	depends on TPL && ENABLE_ARM_SOC_BOOT0_HOOK
615	help
616	  Some Rockchip BROM variants (e.g. on the RK3188) load the
617	  first stage in segments and enter multiple times. E.g. on
618	  the RK3188, the first 1KB of the first stage are loaded
619	  first and entered; after returning to the BROM, the
620	  remainder of the first stage is loaded, but the BROM
621	  re-enters at the same address/to the same code as previously.
622
623	  This enables support code in the BOOT0 hook for the TPL stage
624	  to allow multiple entries.
625
626config SPL_MMC_SUPPORT
627	default y if !SPL_ROCKCHIP_BACK_TO_BROM
628
629config RKIMG_BOOTLOADER
630	bool "Support for Rockchip platform features"
631	default y
632	help
633	  Actually this is a compatible configure for code compilation.
634
635config RKIMG_ANDROID_BOOTMODE_LEGACY
636	bool "Support set androidboot.mode with legacy rule"
637	depends on RKIMG_BOOTLOADER
638	default n
639	help
640	  Rockchip set "androidboot.mode=" as "charger" or boot media for android,
641	  which is a rockchip private solution(SDK < 8.1) and deprecated.
642
643config ROCKCHIP_RESOURCE_IMAGE
644	bool "Enable support for rockchip resource image"
645	depends on RKIMG_BOOTLOADER
646	default y
647	help
648	  This enables support to get dtb or logo files from
649	  rockchip resource image format partition.
650
651config ROCKCHIP_DTB_VERIFY
652	bool "Enable hash verify for DTB in the resource file"
653	depends on ROCKCHIP_RESOURCE_IMAGE
654	select SHA1 if !DM_CRYPTO
655	select SHA256 if !DM_CRYPTO
656	default y
657	help
658	  This enables the hash verify for DTB in the resource file, it means we
659	  always read DTB from second position even the DTB position is present.
660
661config ROCKCHIP_USB_BOOT
662	bool "Enable support for rockchip U-disk boot"
663	depends on USB
664	default n
665	help
666	  This enables support for rockchip U-disk boot.
667
668config ROCKCHIP_FIT_IMAGE
669	bool "Enable support for FIT image"
670	depends on FIT && USING_KERNEL_DTB
671	select CMD_BOOT_FIT
672	default n
673	help
674	  This enables loading dtb from fit image.
675
676config ROCKCHIP_UIMAGE
677	bool "Enable support for legacy uImage"
678	depends on !FIT_SIGNATURE && USING_KERNEL_DTB
679	select CMD_BOOT_UIMAGE
680	default n
681	help
682	  This enables loading dtb from uImage image.
683
684config ROCKCHIP_EARLY_DISTRO_DTB
685	bool "Enable support for distro dtb early"
686	depends on DISTRO_DEFAULTS && USING_KERNEL_DTB && CMD_FS_GENERIC
687	default n
688	help
689	  This enables loading dtb from distro bootable partition when there
690	  is no valid dtb in android boot.img and rockchip resource.img.
691
692if ROCKCHIP_EARLY_DISTRO_DTB
693
694config ROCKCHIP_EARLY_DISTRO_DTB_PATH
695	string "/rk-kernel.dtb"
696	help
697	  "DTB file path in the bootable partition image"
698endif
699
700config ROCKCHIP_HWID_DTB
701	bool "Enable support for selecting DTB by hardware id"
702	depends on ROCKCHIP_RESOURCE_IMAGE
703	default n
704	help
705	  This enables select the expected DTB from sets by hardware id,
706	  i.e. GPIO or ADC value.
707
708config ROCKCHIP_VENDOR_PARTITION
709	bool "Rockchip vendor storage partition support"
710	depends on RKIMG_BOOTLOADER
711	help
712	  This enable support to read/write vendor configuration data from/to
713	  this partition.
714
715config USING_KERNEL_DTB
716	bool "Using dtb from Kernel/resource for U-Boot"
717	depends on RKIMG_BOOTLOADER && OF_LIVE
718	default y
719	help
720	  This enable support to read dtb from resource and use it for U-Boot,
721	  the uart and emmc will still using U-Boot dtb, but other devices like
722	  regulator/pmic, display, usb will use dts node from kernel.
723
724config EMBED_KERNEL_DTB_PATH
725	string "Embeded kernel dtb file path"
726	depends on USING_KERNEL_DTB
727	default "dts/kern.dtb"
728	help
729	  This file will auto be appended to the u-boot.bin.
730
731config EMBED_KERNEL_DTB_ALWAYS
732	bool "Always using embed kernel dtb"
733	depends on USING_KERNEL_DTB
734	default n
735	help
736	  Allow fallback to always use a prepared kernel dtb even USING_KERNEL_DTB
737	  is set. This makes U-Boot stage more stable but not flexible any more to
738	  compatible different boards.
739
740config ROCKCHIP_CRC
741	bool "Rockchip CRC verify images"
742	help
743	  This enable support Rockchip CRC verify images. It takes a lot of time,
744	  so it is better only used for debug.
745
746config ROCKCHIP_SMCCC
747	bool "Rockchip SMCCC"
748	default y if ARM_SMCCC
749	help
750	  This enable support for Rockchip SMC calls
751
752config ROCKCHIP_DEBUGGER
753	bool "Rockchip debugger"
754	depends on IRQ
755	help
756	  This enable support for Rockchip debugger. Now we install a timer interrupt
757	  and dump pt_regs when the timeout event trigger. This helps us to know cpu
758	  state when system hang.
759
760config ROCKCHIP_CRASH_DUMP
761	bool "Rockchip crash dump registers"
762	help
763	  This enable dump registers when system crash, the registers you would like
764	  to dump can be added in show_regs().
765
766config ROCKCHIP_PRELOADER_ATAGS
767	bool "Rockchip pre-loader atags"
768	default y if ARCH_ROCKCHIP
769	help
770	  This enable support Rockchip atags among pre-loaders, i.e. ddr, miniloader, ATF,
771	  tos, U-Boot, etc. It delivers boot and configure information, shared with pre-loaders
772	  and finally ends with U-Boot.
773
774config ROCKCHIP_PRELOADER_SERIAL
775	bool "Rockchip pre-loader serial"
776	default y if ROCKCHIP_PRELOADER_ATAGS
777	help
778	  This enable U-Boot using pre-loader atags serial configure to initialize console.
779	  It denpends on serial aliases to find pre-loader serial number.
780
781config ROCKCHIP_FIT_IMAGE_PACK
782	bool "Rockchip fit image pack of U-Boot and TEE"
783	depends on ROCKCHIP_FIT_IMAGE
784	default n
785	help
786	  This enable fit image pack of U-Boot and TEE, it's used for make.sh script.
787
788config ROCKCHIP_UART_MUX_SEL_M
789	int "UART mux select"
790	default 0
791	depends on TPL
792	help
793	  This select uart multiplexer for debug uart iomux in board_debug_uart_init.
794
795config ROCKCHIP_REBOOT_TEST
796	bool "Rockchip reboot stress test before kernel"
797	default n
798	help
799	  It's a reboot stress test before kernel stages.
800
801config BASE_DEFCONFIG
802	string "Base defconfig of config fragment"
803	default ""
804	help
805	  Indicate the base defconfig of config fragment.
806
807config LOADER_INI
808	string "Name of Loader ini file in rkbin repository"
809	default ""
810	help
811	  The ini file is used to pack loader image.
812
813config TRUST_INI
814	string "Name of Trust ini file in rkbin repository"
815	default ""
816	help
817	  The ini file is used to pack trust image.
818
819config GICV2
820	bool "ARM GICv2"
821
822config GICV3
823	bool "ARM GICv3"
824
825config ROCKCHIP_EMMC_IOMUX
826	bool "ROCKCHIP EMMC IOMUX"
827	default n
828	help
829	  This enable U-Boot to config EMMC iomux.
830
831config ROCKCHIP_NAND_IOMUX
832	bool "ROCKCHIP NAND IOMUX"
833	default n
834	help
835	  This enable U-Boot to config NAND iomux.
836
837config ROCKCHIP_SFC_IOMUX
838	bool "ROCKCHIP SFC IOMUX"
839	default n
840	help
841	  This enable U-Boot to config SFC iomux.
842
843source "arch/arm/mach-rockchip/px30/Kconfig"
844source "arch/arm/mach-rockchip/rk3036/Kconfig"
845source "arch/arm/mach-rockchip/rk3066/Kconfig"
846source "arch/arm/mach-rockchip/rk3128/Kconfig"
847source "arch/arm/mach-rockchip/rk3188/Kconfig"
848source "arch/arm/mach-rockchip/rk322x/Kconfig"
849source "arch/arm/mach-rockchip/rk3288/Kconfig"
850source "arch/arm/mach-rockchip/rk3308/Kconfig"
851source "arch/arm/mach-rockchip/rk3328/Kconfig"
852source "arch/arm/mach-rockchip/rk3368/Kconfig"
853source "arch/arm/mach-rockchip/rk3399/Kconfig"
854source "arch/arm/mach-rockchip/rk3568/Kconfig"
855source "arch/arm/mach-rockchip/rk1808/Kconfig"
856source "arch/arm/mach-rockchip/rv1108/Kconfig"
857source "arch/arm/mach-rockchip/rv1126/Kconfig"
858
859endif
860