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