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