xref: /rk3399_rockchip-uboot/arch/arm/mach-rockchip/Kconfig (revision edbf2db2657c2d32af85569cab702995505b2d66)
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	imply 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_RK3528
385	bool "Support Rockchip RK3528"
386	select ARM64 if !ARM64_BOOT_AARCH32
387	select GICV2 if !ARM64_BOOT_AARCH32
388	select SUPPORT_TPL if !ARM64_BOOT_AARCH32
389	select SUPPORT_SPL if !ARM64_BOOT_AARCH32
390	select TPL_TINY_FRAMEWORK if TPL
391	select DEBUG_UART_BOARD_INIT
392	imply TPL if !ARM64_BOOT_AARCH32
393	imply SPL if !ARM64_BOOT_AARCH32
394	imply TPL_SERIAL_SUPPORT
395	help
396	  The Rockchip RK3528 is a ARM-based SoC with a quad-core Cortex-A53.
397
398if ROCKCHIP_RK3528
399
400config TPL_LDSCRIPT
401	default "arch/arm/mach-rockchip/u-boot-tpl-v8.lds"
402
403config TPL_TEXT_BASE
404	default 0xfe481000
405
406config TPL_MAX_SIZE
407	default 61440
408
409endif
410
411config ROCKCHIP_RK3562
412	bool "Support Rockchip RK3562"
413	select GICV2
414	select ARM64
415	select ARM_SMCCC
416	select SUPPORT_TPL
417	select SUPPORT_SPL
418	select TPL_TINY_FRAMEWORK if TPL
419	select DEBUG_UART_BOARD_INIT
420	imply TPL
421	imply SPL
422	imply TPL_SERIAL_SUPPORT
423	help
424	  The Rockchip RK3562 is a ARM-based SoC with a quad-core Cortex-A53.
425
426if ROCKCHIP_RK3562
427
428config TPL_LDSCRIPT
429	default "arch/arm/mach-rockchip/u-boot-tpl-v8.lds"
430
431config TPL_TEXT_BASE
432	default 0xfe481000
433
434config TPL_MAX_SIZE
435	default 61440
436
437endif
438
439config ROCKCHIP_RK3568
440	bool "Support Rockchip RK3568"
441	select ARM64 if !ARM64_BOOT_AARCH32
442	select ARM_SMCCC
443	select GICV3 if !ARM64_BOOT_AARCH32 && !SUPPORT_USBPLUG
444	select SUPPORT_TPL if !ARM64_BOOT_AARCH32
445	select SUPPORT_SPL if !ARM64_BOOT_AARCH32
446	select TPL_TINY_FRAMEWORK if TPL
447	select DEBUG_UART_BOARD_INIT
448	imply TPL if !ARM64_BOOT_AARCH32
449	imply SPL if !ARM64_BOOT_AARCH32
450	imply TPL_SERIAL_SUPPORT
451	help
452	  The Rockchip RK3568 is a ARM-based SoC with a quad-core Cortex-A55.
453
454if ROCKCHIP_RK3568
455
456config TPL_LDSCRIPT
457	default "arch/arm/mach-rockchip/u-boot-tpl-v8.lds"
458
459config TPL_TEXT_BASE
460	default 0xfdcc1000
461
462config TPL_MAX_SIZE
463	default 61440
464
465endif
466
467config ROCKCHIP_RK3576
468	bool "Support Rockchip RK3576"
469	select ARM64
470	select GICV2
471	select ARM_SMCCC
472	select DEBUG_UART_BOARD_INIT
473	select ROCKCHIP_BROM_HELPER
474	select SUPPORT_SPL
475	select SUPPORT_TPL
476	select TPL_TINY_FRAMEWORK if TPL
477	imply TPL
478	imply SPL
479	imply TPL_SERIAL_SUPPORT
480
481	help
482	  The Rockchip RK3576 is a ARM-based SoC with a quad-core Cortex-A53
483	  and a quad-core Cortex-A72.
484
485if ROCKCHIP_RK3576
486
487config TPL_LDSCRIPT
488	default "arch/arm/mach-rockchip/u-boot-tpl-v8.lds"
489
490config TPL_TEXT_BASE
491	default 0x3ff81000
492
493config TPL_MAX_SIZE
494	default 61440
495
496endif
497
498config ROCKCHIP_RK3588
499	bool "Support Rockchip RK3588"
500	select ARM64 if !ARM64_BOOT_AARCH32
501	select ARM_SMCCC
502	select DEBUG_UART_BOARD_INIT
503	select GICV3 if !ARM64_BOOT_AARCH32 && !SUPPORT_USBPLUG
504	select ROCKCHIP_BROM_HELPER
505	select SUPPORT_SPL if !ARM64_BOOT_AARCH32
506	select SUPPORT_TPL if !ARM64_BOOT_AARCH32
507	select TPL_TINY_FRAMEWORK if TPL
508	imply TPL if !ARM64_BOOT_AARCH32
509	imply SPL if !ARM64_BOOT_AARCH32
510	imply TPL_SERIAL_SUPPORT
511	select DEBUG_UART_BOARD_INIT
512	help
513	  The Rockchip RK3588 is a ARM-based SoC with a quad-core Cortex-A55.
514
515if ROCKCHIP_RK3588
516
517config TPL_LDSCRIPT
518	default "arch/arm/mach-rockchip/u-boot-tpl-v8.lds"
519
520config TPL_TEXT_BASE
521	default 0xff001000
522
523config TPL_MAX_SIZE
524	default 61440
525endif
526
527config ROCKCHIP_RK1808
528	bool "Support Rockchip RK1808"
529	select ARM64
530	select ARM_SMCCC
531	select GICV3 if !COPROCESSOR_RK1808
532	select SUPPORT_SPL if !COPROCESSOR_RK1808
533	select SUPPORT_TPL if !COPROCESSOR_RK1808
534	help
535	  The Rockchip RK1808 is a ARM-based Soc which embedded with dual
536	  Cortex-A35.
537
538if ROCKCHIP_RK1808
539
540config ROCKCHIP_RK1806
541	bool "Support Rockchip RK1806"
542	help
543	  The Rockchip RK1806 is a ARM-based Soc which embedded with dual
544	  Cortex-A35.
545
546config COPROCESSOR_RK1808
547	bool "RK1808 coprocessor"
548	help
549	  This indicates the RK1808 is working as a coprocessor for another
550	  more powerful SoC.
551
552endif
553
554config ROCKCHIP_RV1103B
555	bool "Support Rockchip RV1103B"
556	select CPU_V7
557	select ARM_ZERO_CNTVOFF
558	select ROCKCHIP_BROM_HELPER
559	select DEBUG_UART_BOARD_INIT
560	imply SUPPORT_SPL
561	imply SUPPORT_TPL
562	imply SPL
563	imply TPL
564	imply TPL_SERIAL_SUPPORT
565	imply TPL_TINY_FRAMEWORK if TPL
566	imply BOARD_LATE_INIT
567	imply ROCKCHIP_GPIO_V2
568
569	help
570	  The Rockchip RV1103B is a ARM-based SoC with a Cortex-A7 and
571	  other modules.
572
573if ROCKCHIP_RV1103B
574
575config TPL_LDSCRIPT
576	default "arch/arm/mach-rockchip/u-boot-tpl.lds"
577
578config TPL_TEXT_BASE
579	default 0x210f7000
580
581config TPL_MAX_SIZE
582	default 32768
583endif
584
585config ROCKCHIP_RV1106
586	bool "Support Rockchip RV1106"
587	select CPU_V7
588	select DEBUG_UART_BOARD_INIT
589	imply SUPPORT_SPL
590	imply SUPPORT_TPL
591	imply SPL
592	imply TPL
593	imply TPL_SERIAL_SUPPORT
594	imply TPL_TINY_FRAMEWORK if TPL
595	imply BOARD_LATE_INIT
596	imply ROCKCHIP_GPIO_V2
597	help
598	  The Rockchip RV1106 is a ARM-based SoC with a Cortex-A7 and
599	  other modules.
600
601if ROCKCHIP_RV1106
602
603config TPL_LDSCRIPT
604	default "arch/arm/mach-rockchip/u-boot-tpl.lds"
605
606config TPL_TEXT_BASE
607	default 0xff701000
608
609config TPL_MAX_SIZE
610	default 32768
611endif
612
613config ROCKCHIP_RV1108
614	bool "Support Rockchip RV1108"
615	select CPU_V7
616	select SUPPORT_SPL
617	select SUPPORT_TPL
618	select SPL
619	select TPL
620	select BOARD_LATE_INIT
621	help
622	  The Rockchip RV1108 is a ARM-based SoC with a single-core Cortex-A7
623	  and a DSP.
624
625if ROCKCHIP_RV1108
626
627config TPL_LDSCRIPT
628        default "arch/arm/mach-rockchip/u-boot-tpl.lds"
629
630config TPL_TEXT_BASE
631        default 0x10080800
632
633config TPL_MAX_SIZE
634        default 6144
635
636config TPL_STACK
637        default 0x10082000
638
639endif
640
641config ROCKCHIP_RV1126
642	bool "Support Rockchip RV1126"
643	select CPU_V7
644	imply SUPPORT_TPL
645	imply SUPPORT_SPL
646	imply TPL_TINY_FRAMEWORK if TPL
647	select DEBUG_UART_BOARD_INIT
648	imply TPL
649	imply SPL
650	imply GICV2
651	imply ARM_SMCCC
652	imply BOARD_LATE_INIT
653	imply ROCKCHIP_GPIO_V2
654	imply TPL_SERIAL_SUPPORT
655	help
656	  The Rockchip RV1126 is a ARM-based SoC with a quad-core Cortex-A7
657	  and a risc-v core.
658
659if ROCKCHIP_RV1126
660
661config TPL_LDSCRIPT
662	default "arch/arm/mach-rockchip/u-boot-tpl.lds"
663
664config TPL_TEXT_BASE
665	default 0xff701000
666
667config TPL_MAX_SIZE
668	default 32768
669endif
670
671config SPL_ROCKCHIP_BACK_TO_BROM
672	bool "SPL returns to bootrom"
673	default y if ROCKCHIP_RK3036
674	select ROCKCHIP_BROM_HELPER
675	depends on SPL
676	help
677	  Rockchip SoCs have ability to load SPL & U-Boot binary. If enabled,
678          SPL will return to the boot rom, which will then load the U-Boot
679          binary to keep going on.
680
681config TPL_ROCKCHIP_BACK_TO_BROM
682	bool "TPL returns to bootrom"
683	default y
684	select ROCKCHIP_BROM_HELPER
685	depends on TPL
686	help
687	  Rockchip SoCs have ability to load SPL & U-Boot binary. If enabled,
688          SPL will return to the boot rom, which will then load the U-Boot
689          binary to keep going on.
690
691config ARM64_BOOT_AARCH32
692	bool "Support Boot an ARM64 on AArch32 execution state, ie. U-Boot is in AArch32"
693	select CPU_V7
694	default n
695	help
696	  If you want to boot an ARM64 processor on 32-bit mode, say y here.
697
698config ARM64_SWITCH_TO_AARCH32
699	bool "Support AArch64 U-Boot boot AArch32 kernel"
700	default n
701	help
702	  If you want AArch64 U-Boot to boot AArch32 kernel, say y here.
703	  This feature needs ATF to help switch the PE state.
704
705config ROCKCHIP_BOOT_MODE_REG
706	hex "Rockchip boot mode flag register address"
707	default 0xff010200 if ROCKCHIP_PX30
708	default 0x200081c8 if ROCKCHIP_RK3036
709	default 0x100a0038 if ROCKCHIP_RK3128
710	default 0x20004040 if ROCKCHIP_RK3188
711	default 0x110005c8 if ROCKCHIP_RK322X
712	default 0xff730094 if ROCKCHIP_RK3288
713	default 0xff000500 if ROCKCHIP_RK3308
714	default 0xff1005c8 if ROCKCHIP_RK3328
715	default 0xff738200 if ROCKCHIP_RK3368
716	default 0xff320300 if ROCKCHIP_RK3399
717	default 0xff370200 if ROCKCHIP_RK3528
718	default 0xff010220 if ROCKCHIP_RK3562
719	default 0xfdc20200 if ROCKCHIP_RK3568
720	default 0x26024040 if ROCKCHIP_RK3576
721	default 0xfd588080 if ROCKCHIP_RK3588
722	default 0xfe020200 if ROCKCHIP_RK1808
723	default 0x20160200 if ROCKCHIP_RV1103B
724	default 0xff020200 if ROCKCHIP_RV1106
725	default 0x10300580 if ROCKCHIP_RV1108
726	default 0xfe020200 if ROCKCHIP_RV1126
727	default 0
728	help
729	  The Soc will enter to different boot mode(defined in asm/arch/boot_mode.h)
730	  according to the value from this register.
731
732config ROCKCHIP_STIMER_BASE
733	hex "Rockchip Secure timer base address"
734	default 0xff220020 if ROCKCHIP_PX30
735	default 0x200440a0 if ROCKCHIP_RK3036
736	default 0x2000e000 if ROCKCHIP_RK3066
737	default 0x20018020 if ROCKCHIP_RK3126
738	default 0x200440a0 if ROCKCHIP_RK3128
739	default 0x2000e000 if ROCKCHIP_RK3188
740	default 0x110d0020 if ROCKCHIP_RK322X
741	default 0xff810020 if ROCKCHIP_RK3288
742	default 0xff1b00a0 if ROCKCHIP_RK3308
743	default 0xff1d0020 if ROCKCHIP_RK3328
744	default 0xff830020 if ROCKCHIP_RK3368
745	default 0xff8680a0 if ROCKCHIP_RK3399
746	default 0xff620000 if ROCKCHIP_RK3528
747	default 0xffa90020 if ROCKCHIP_RK3562
748	default 0xfdd1c020 if ROCKCHIP_RK3568
749	default 0x27400000 if ROCKCHIP_RK3576
750	default 0xfd8c8000 if ROCKCHIP_RK3588
751	default 0x20500000 if ROCKCHIP_RV1103B
752	default 0xff590020 if ROCKCHIP_RV1106
753	default 0x10350020 if ROCKCHIP_RV1108
754	default 0xff670020 if ROCKCHIP_RV1126
755	default 0
756	help
757	  The secure timer inited in SPL/TPL in secure word, ARM generic timer
758	  works after this timer work.
759
760config ROCKCHIP_IRAM_START_ADDR
761	hex "Rockchip Secure timer base address"
762	default 0xff0e0000 if ROCKCHIP_PX30
763	default 0x10080000 if ROCKCHIP_RK3036
764	default 0x10080000 if ROCKCHIP_RK3128
765	default 0x10080000 if ROCKCHIP_RK3188
766	default 0x10080000 if ROCKCHIP_RK322X
767	default 0xff700000 if ROCKCHIP_RK3288
768	default 0xfff80000 if ROCKCHIP_RK3308
769	default 0xff091000 if ROCKCHIP_RK3328
770	default 0xff8c0000 if ROCKCHIP_RK3368
771	default 0xff8c0000 if ROCKCHIP_RK3399
772	default 0xfe480000 if ROCKCHIP_RK3528
773	default 0xfe480000 if ROCKCHIP_RK3562
774	default 0xfdcc0000 if ROCKCHIP_RK3568
775	default 0x3ff80000 if ROCKCHIP_RK3576
776	default 0xff000000 if ROCKCHIP_RK3588
777	default 0x210f6000 if ROCKCHIP_RV1103B
778	default 0xff6c0000 if ROCKCHIP_RV1106
779	default 0x10080000 if ROCKCHIP_RV1108
780	default 0xff700000 if ROCKCHIP_RV1126
781	default 0
782	help
783	  The IRAM start addr is to locate variant of the boot device from
784	  bootrom.
785
786config ROCKCHIP_SPL_RESERVE_IRAM
787	hex "Size of IRAM reserved in SPL"
788	default 0
789	help
790	  SPL may need reserve memory for firmware loaded by SPL, whose load
791	  address is in IRAM and may overlay with SPL text area if not
792	  reserved.
793
794config ROCKCHIP_BROM_HELPER
795	bool
796
797config SPL_ROCKCHIP_EARLYRETURN_TO_BROM
798        bool "SPL requires early-return (for RK3188-style BROM) to BROM"
799	depends on SPL && ENABLE_ARM_SOC_BOOT0_HOOK
800	help
801	  Some Rockchip BROM variants (e.g. on the RK3188) load the
802	  first stage in segments and enter multiple times. E.g. on
803	  the RK3188, the first 1KB of the first stage are loaded
804	  first and entered; after returning to the BROM, the
805	  remainder of the first stage is loaded, but the BROM
806	  re-enters at the same address/to the same code as previously.
807
808	  This enables support code in the BOOT0 hook for the SPL stage
809	  to allow multiple entries.
810
811config TPL_ROCKCHIP_EARLYRETURN_TO_BROM
812        bool "TPL requires early-return (for RK3188-style BROM) to BROM"
813	depends on TPL && ENABLE_ARM_SOC_BOOT0_HOOK
814	help
815	  Some Rockchip BROM variants (e.g. on the RK3188) load the
816	  first stage in segments and enter multiple times. E.g. on
817	  the RK3188, the first 1KB of the first stage are loaded
818	  first and entered; after returning to the BROM, the
819	  remainder of the first stage is loaded, but the BROM
820	  re-enters at the same address/to the same code as previously.
821
822	  This enables support code in the BOOT0 hook for the TPL stage
823	  to allow multiple entries.
824
825config SPL_MMC_SUPPORT
826	default y if !SPL_ROCKCHIP_BACK_TO_BROM && MMC
827
828config RKIMG_BOOTLOADER
829	bool "Support for Rockchip platform features"
830	default y
831	help
832	  Actually this is a compatible configure for code compilation.
833
834config RKIMG_ANDROID_BOOTMODE_LEGACY
835	bool "Support set androidboot.mode with legacy rule"
836	depends on RKIMG_BOOTLOADER
837	default n
838	help
839	  Rockchip set "androidboot.mode=" as "charger" or boot media for android,
840	  which is a rockchip private solution(SDK < 8.1) and deprecated.
841
842config ROCKCHIP_BOOTDEV
843	string "Set the boot device for multiple storage board"
844	default ""
845	help
846	  On the multiple storage on board, set this to determine what we really
847	  want to be the boot device, which contains kernel, rootfs and etc.
848	  Fall through to get from preloader or scan list when it's NULL.
849
850config ROCKCHIP_RESOURCE_IMAGE
851	bool "Enable support for rockchip resource image"
852	depends on RKIMG_BOOTLOADER
853	default y
854	help
855	  This enables support to get dtb or logo files from
856	  rockchip resource image format partition.
857
858config ROCKCHIP_DTB_VERIFY
859	bool "Enable hash verify for DTB in the resource file"
860	depends on ROCKCHIP_RESOURCE_IMAGE
861	select SHA1 if !DM_CRYPTO
862	select SHA256 if !DM_CRYPTO
863	default y
864	help
865	  This enables the hash verify for DTB in the resource file, it means we
866	  always read DTB from second position even the DTB position is present.
867
868config ROCKCHIP_USB_BOOT
869	bool "Enable support for rockchip U-disk boot"
870	depends on USB
871	default n
872	help
873	  This enables support for rockchip U-disk boot.
874
875config ROCKCHIP_FIT_IMAGE
876	bool "Enable support for FIT image"
877	depends on FIT
878	select CMD_BOOT_FIT
879	default n
880	help
881	  This enables loading dtb from fit image.
882
883config ROCKCHIP_UIMAGE
884	bool "Enable support for legacy uImage"
885	depends on !FIT_SIGNATURE && USING_KERNEL_DTB
886	select CMD_BOOT_UIMAGE
887	default n
888	help
889	  This enables loading dtb from uImage image.
890
891config ROCKCHIP_EARLY_DISTRO_DTB
892	bool "Enable support for distro dtb early"
893	depends on DISTRO_DEFAULTS && USING_KERNEL_DTB && CMD_FS_GENERIC
894	default n
895	help
896	  This enables loading dtb from distro bootable partition when there
897	  is no valid dtb in android boot.img and rockchip resource.img.
898
899if ROCKCHIP_EARLY_DISTRO_DTB
900
901config ROCKCHIP_EARLY_DISTRO_DTB_PATH
902	string "/rk-kernel.dtb"
903	help
904	  "DTB file path in the bootable partition image"
905endif
906
907config ROCKCHIP_HWID_DTB
908	bool "Enable support for selecting DTB by hardware id"
909	depends on ROCKCHIP_RESOURCE_IMAGE
910	default n
911	help
912	  This enables select the expected DTB from sets by hardware id,
913	  i.e. GPIO or ADC value.
914
915config ROCKCHIP_VENDOR_PARTITION
916	bool "Rockchip vendor storage partition support"
917	depends on (RKIMG_BOOTLOADER || SUPPORT_USBPLUG)
918	help
919	  This enable support to read/write vendor configuration data from/to
920	  this partition.
921
922config USING_KERNEL_DTB
923	bool "Using dtb from Kernel/resource for U-Boot"
924	depends on RKIMG_BOOTLOADER && OF_LIVE
925	default y
926	help
927	  This enable support to read dtb from resource and use it for U-Boot,
928	  the uart and emmc will still using U-Boot dtb, but other devices like
929	  regulator/pmic, display, usb will use dts node from kernel.
930
931config USING_KERNEL_DTB_V2
932	bool "Version 2 of kernel dtb mechanism"
933	depends on USING_KERNEL_DTB
934	default n
935	help
936	  The V2 mechanism:
937	    - both of U-Boot and kernel's *ALL* devices are exist in dm tree.
938	    - put the necessary U-Boot devices in the head of device uclass list.
939	    - the both existence policy don't require phandle fixup any more.
940	    - it is for the next generation(rk3588 ...) or necessary platforms.
941	  The V1 mechanism(legacy):
942	    - U-Boot: only some necessary U-Boot devices(storage, crypto...) in dm tree.
943	    - kernel: all the devices(except the U-Boot only) in dm tree.
944
945config EMBED_KERNEL_DTB
946	bool "Enable embedded dtb support"
947	default n
948	help
949	  Enable embedded dtb support.
950
951config EMBED_KERNEL_DTB_PATH
952	string "Embedded kernel dtb file path"
953	depends on EMBED_KERNEL_DTB && USING_KERNEL_DTB
954	default "dts/kern.dtb"
955	help
956	  This file will auto be appended to the u-boot.bin.
957
958config EMBED_KERNEL_DTB_ALWAYS
959	bool "Always using embedded kernel dtb"
960	depends on EMBED_KERNEL_DTB && USING_KERNEL_DTB
961	default n
962	help
963	  Allow fallback to always use a prepared kernel dtb even USING_KERNEL_DTB
964	  is set. This makes U-Boot stage more stable but not flexible any more to
965	  compatible different boards.
966
967config ROCKCHIP_CRC
968	bool "Rockchip CRC verify images"
969	help
970	  This enable support Rockchip CRC verify images. It takes a lot of time,
971	  so it is better only used for debug.
972
973config ROCKCHIP_SMCCC
974	bool "Rockchip SMCCC"
975	default y if ARM_SMCCC
976	help
977	  This enable support for Rockchip SMC calls
978
979config ROCKCHIP_DEBUGGER
980	bool "Rockchip debugger"
981	depends on IRQ
982	help
983	  This enable support for Rockchip debugger. Now we install a timer interrupt
984	  and dump pt_regs when the timeout event trigger. This helps us to know cpu
985	  state when system hang.
986
987config ROCKCHIP_CRASH_DUMP
988	bool "Rockchip crash dump registers"
989	help
990	  This enable dump registers when system crash, the registers you would like
991	  to dump can be added in show_regs().
992
993config ROCKCHIP_PRELOADER_ATAGS
994	bool "Rockchip pre-loader atags"
995	default y if ARCH_ROCKCHIP
996	help
997	  This enable support Rockchip atags among pre-loaders, i.e. ddr, miniloader, ATF,
998	  tos, U-Boot, etc. It delivers boot and configure information, shared with pre-loaders
999	  and finally ends with U-Boot.
1000
1001config ROCKCHIP_META
1002	bool "Rockchip Meta"
1003	depends on SPL_KERNEL_BOOT && SPL_LIBDISK_SUPPORT
1004	help
1005	  This support to load Rockchip meta data which like isp parameter, peripheral
1006	  parameters, etc.
1007
1008config ROCKCHIP_PRELOADER_SERIAL
1009	bool "Rockchip pre-loader serial"
1010	default y if ROCKCHIP_PRELOADER_ATAGS
1011	help
1012	  This enable U-Boot using pre-loader atags serial configure to initialize console.
1013	  It denpends on serial aliases to find pre-loader serial number.
1014
1015config ROCKCHIP_IMAGE_TINY
1016	bool "Rockchip tiny Image generation"
1017	default n
1018	help
1019	  This enable tiny image generation
1020
1021config ROCKCHIP_FIT_IMAGE_PACK
1022	bool "Rockchip fit image pack of U-Boot and TEE"
1023	depends on ROCKCHIP_FIT_IMAGE
1024	default n
1025	help
1026	  This enable fit image pack of U-Boot and TEE, it's used for make.sh script.
1027
1028config ROCKCHIP_UART_MUX_SEL_M
1029	int "UART mux select"
1030	default 0
1031	depends on TPL
1032	help
1033	  This select uart multiplexer for debug uart iomux in board_debug_uart_init.
1034
1035config ROCKCHIP_REBOOT_TEST
1036	bool "Rockchip reboot stress test before kernel"
1037	default n
1038	help
1039	  It's a reboot stress test before kernel stages.
1040
1041config ROCKCHIP_NEW_IDB
1042	bool "Rockchip new IDB header"
1043	default n
1044	help
1045	  The new IDB header was introduced from RK356X.
1046
1047config ROCKCHIP_HOTKEY
1048	bool "Rockchip hotkey"
1049	default y
1050	help
1051	  Define a lot of hotkeys for debug.
1052
1053config ROCKCHIP_CMD
1054	string "Rockchip specific command"
1055	default ""
1056	help
1057	  It defines a command to be run when the key is pressed if assigned.
1058	  String format: "cmd key".
1059	  @cmd: any U-Boot cmd.
1060	  @key: any key map id, '-' standard for ignore.
1061	  e.g. "sd_update 115", 115 is KEY_VOLUMEUP.
1062
1063config GICV2
1064	bool "ARM GICv2"
1065
1066config GICV3
1067	bool "ARM GICv3"
1068
1069config ROCKCHIP_EMMC_IOMUX
1070	bool "ROCKCHIP EMMC IOMUX"
1071	default n
1072	help
1073	  This enable U-Boot to config EMMC iomux.
1074
1075config ROCKCHIP_NAND_IOMUX
1076	bool "ROCKCHIP NAND IOMUX"
1077	default n
1078	help
1079	  This enable U-Boot to config NAND iomux.
1080
1081config ROCKCHIP_SFC_IOMUX
1082	bool "ROCKCHIP SFC IOMUX"
1083	default n
1084	help
1085	  This enable U-Boot to config SFC iomux.
1086
1087config ROCKCHIP_SET_SN
1088	bool "Rockchip set serial number"
1089	default y
1090
1091config ROCKCHIP_SET_ETHADDR
1092	bool "Rockchip set eth address"
1093	default y
1094
1095config BASE_DEFCONFIG
1096	string "Base defconfig of config fragment"
1097	default ""
1098	help
1099	  Indicate the base defconfig of config fragment.
1100
1101config CHIP_NAME
1102	string "Chip label name"
1103	default ""
1104
1105config LOADER_INI
1106	string "Name of Loader ini file in rkbin repository"
1107	default ""
1108	help
1109	  The ini file is used to pack loader image.
1110
1111config TRUST_INI
1112	string "Name of Trust ini file in rkbin repository"
1113	default ""
1114	help
1115	  The ini file is used to pack trust image.
1116
1117if !ROCKCHIP_FIT_IMAGE_PACK
1118config UBOOT_SIZE_KB
1119	int "Per u-boot.bin Image size, unit: KB"
1120	default 1024
1121
1122config UBOOT_NUM
1123	int "Number of u-boot.bin image being packed into trust.img"
1124	default 4
1125
1126config TRUST_SIZE_KB
1127	int "Per trust Image size, unit: KB"
1128	default 2048
1129
1130config TRUST_NUM
1131	int "Number of trust image being packed into trust.img"
1132	default 2
1133
1134config TRUST_RSA_MODE
1135	int "RSA mode of trust.img on ARM64"
1136	default 2
1137	help
1138	  The RSA mode for tools to pack, the mode id can be:
1139	  0: none; 1: RSA-1024; 2: RSA-2048; 3: RSA-2048-pss.
1140
1141config TRUST_SHA_MODE
1142	int "SHA mode of trust.img on ARM64"
1143	default 3
1144	help
1145	  The SHA mode for tools to pack, the mode id can be:
1146	  0: none; 1: sha1; 2: sha256 RK big endian; 3: sha256 little endian.
1147endif
1148
1149config PSTORE
1150	bool "Print log to linux pstore buffer"
1151	default n
1152	help
1153	  This enable Print uboot log to linux pstore buffer which address
1154	  is default 0x110000 for most soc.
1155
1156config PERSISTENT_RAM_ADDR
1157	hex "Linux pstore buffer address"
1158	default 0x0
1159	depends on PSTORE
1160	help
1161	  This select linux pstore buffer address for U-Boot. When value is
1162	  0, U-Boot auto gets this address from preloader atags.
1163
1164config PERSISTENT_RAM_SIZE
1165	hex "Linux pstore buffer size"
1166	default 0x0
1167	depends on (PERSISTENT_RAM_ADDR != 0)
1168	help
1169	  This select linux pstore buffer size for U-Boot, the value must be
1170	  set if PERSISTENT_RAM_ADDR != 0.
1171
1172config ROCKCHIP_MINIDUMP
1173	bool "Minidump Save Linux Debug Data To Ram Elf"
1174	default n
1175	help
1176	  This enable saving linux debug data to a reserved memory as a elf file.
1177
1178config ROCKCHIP_MINIDUMP_SMEM_BASE
1179	hex "The base of share memory between Uboot and Linux"
1180	default 0x1f0000
1181	depends on ROCKCHIP_MINIDUMP
1182	help
1183	  This select the base address of share memory, which is behind PSTORE.
1184
1185config ROCKCHIP_MINIDUMP_MAX_ELF_SIZE
1186	hex "The max size of minidump elf"
1187	default 0x2000000
1188	depends on ROCKCHIP_MINIDUMP
1189	help
1190	  This is used to judge the elf program size and section size.
1191
1192config ROCKCHIP_MINIDUMP_MAX_ENTRIES
1193	hex "The max entries of minidump region"
1194	default 0x200
1195	depends on ROCKCHIP_MINIDUMP
1196	help
1197	  This sets the max entries of minidump region.
1198
1199config SANITY_CPU_SWAP
1200	bool "Sanity cpu swap"
1201	help
1202	  This enale checking current cpu mpidr and kernel
1203	  dts cpu0 mpidr.
1204
1205source "arch/arm/mach-rockchip/px30/Kconfig"
1206source "arch/arm/mach-rockchip/rk3036/Kconfig"
1207source "arch/arm/mach-rockchip/rk3066/Kconfig"
1208source "arch/arm/mach-rockchip/rk3128/Kconfig"
1209source "arch/arm/mach-rockchip/rk3188/Kconfig"
1210source "arch/arm/mach-rockchip/rk322x/Kconfig"
1211source "arch/arm/mach-rockchip/rk3288/Kconfig"
1212source "arch/arm/mach-rockchip/rk3308/Kconfig"
1213source "arch/arm/mach-rockchip/rk3328/Kconfig"
1214source "arch/arm/mach-rockchip/rk3368/Kconfig"
1215source "arch/arm/mach-rockchip/rk3399/Kconfig"
1216source "arch/arm/mach-rockchip/rk3528/Kconfig"
1217source "arch/arm/mach-rockchip/rk3562/Kconfig"
1218source "arch/arm/mach-rockchip/rk3568/Kconfig"
1219source "arch/arm/mach-rockchip/rk3576/Kconfig"
1220source "arch/arm/mach-rockchip/rk3588/Kconfig"
1221source "arch/arm/mach-rockchip/rk1808/Kconfig"
1222source "arch/arm/mach-rockchip/rv1103b/Kconfig"
1223source "arch/arm/mach-rockchip/rv1106/Kconfig"
1224source "arch/arm/mach-rockchip/rv1108/Kconfig"
1225source "arch/arm/mach-rockchip/rv1126/Kconfig"
1226
1227endif
1228