94665bf6ec23932255af89f87fa9e7564b4bd2b4
[platform/kernel/u-boot.git] / arch / arm / mach-rockchip / Kconfig
1 if ARCH_ROCKCHIP
2
3 config ROCKCHIP_PX30
4         bool "Support Rockchip PX30"
5         select ARM64
6         select SUPPORT_SPL
7         select SUPPORT_TPL
8         select SPL
9         select TPL
10         select TPL_TINY_FRAMEWORK if TPL
11         select TPL_NEEDS_SEPARATE_STACK if TPL
12         imply SPL_SEPARATE_BSS
13         select SPL_SERIAL
14         select TPL_SERIAL
15         select DEBUG_UART_BOARD_INIT
16         imply ROCKCHIP_COMMON_BOARD
17         imply SPL_ROCKCHIP_COMMON_BOARD
18         help
19           The Rockchip PX30 is a ARM-based SoC with a quad-core Cortex-A35
20           including NEON and GPU, Mali-400 graphics, several DDR3 options
21           and video codec support. Peripherals include Gigabit Ethernet,
22           USB2 host and OTG, SDIO, I2S, UART, SPI, I2C and PWMs.
23
24 config ROCKCHIP_RK3036
25         bool "Support Rockchip RK3036"
26         select CPU_V7A
27         select SUPPORT_SPL
28         select SPL
29         imply USB_FUNCTION_ROCKUSB
30         imply CMD_ROCKUSB
31         imply ROCKCHIP_COMMON_BOARD
32         help
33           The Rockchip RK3036 is a ARM-based SoC with a dual-core Cortex-A7
34           including NEON and GPU, Mali-400 graphics, several DDR3 options
35           and video codec support. Peripherals include Gigabit Ethernet,
36           USB2 host and OTG, SDIO, I2S, UART, SPI, I2C and PWMs.
37
38 config ROCKCHIP_RK3066
39         bool "Support Rockchip RK3066"
40         select CPU_V7A
41         select SPL_BOARD_INIT if SPL
42         select SUPPORT_SPL
43         select SUPPORT_TPL
44         select SPL
45         select TPL
46         select TPL_ROCKCHIP_BACK_TO_BROM
47         select TPL_ROCKCHIP_EARLYRETURN_TO_BROM
48         imply ROCKCHIP_COMMON_BOARD
49         imply SPL_ROCKCHIP_COMMON_BOARD
50         imply SPL_SERIAL
51         imply TPL_ROCKCHIP_COMMON_BOARD
52         imply TPL_SERIAL
53         help
54           The Rockchip RK3066 is a ARM-based SoC with a dual-core Cortex-A9
55           including NEON and GPU, 512KB L2 cache, Mali-400 graphics, two
56           video interfaces, several memory options and video codec support.
57           Peripherals include Fast Ethernet, USB2 host and OTG, SDIO, I2S,
58           UART, SPI, I2C and PWMs.
59
60 config ROCKCHIP_RK3128
61         bool "Support Rockchip RK3128"
62         select CPU_V7A
63         imply ROCKCHIP_COMMON_BOARD
64         help
65           The Rockchip RK3128 is a ARM-based SoC with a quad-core Cortex-A7
66           including NEON and GPU, Mali-400 graphics, several DDR3 options
67           and video codec support. Peripherals include Gigabit Ethernet,
68           USB2 host and OTG, SDIO, I2S, UART, SPI, I2C and PWMs.
69
70 config ROCKCHIP_RK3188
71         bool "Support Rockchip RK3188"
72         select CPU_V7A
73         select SPL_BOARD_INIT if SPL
74         select SUPPORT_SPL
75         select SPL
76         select SPL_CLK
77         select SPL_REGMAP
78         select SPL_SYSCON
79         select SPL_RAM
80         select SPL_DRIVERS_MISC
81         select SPL_ROCKCHIP_EARLYRETURN_TO_BROM
82         select SPL_ROCKCHIP_BACK_TO_BROM
83         select BOARD_LATE_INIT
84         imply ROCKCHIP_COMMON_BOARD
85         imply SPL_ROCKCHIP_COMMON_BOARD
86         help
87           The Rockchip RK3188 is a ARM-based SoC with a quad-core Cortex-A9
88           including NEON and GPU, 512KB L2 cache, Mali-400 graphics, two
89           video interfaces, several memory options and video codec support.
90           Peripherals include Fast Ethernet, USB2 host and OTG, SDIO, I2S,
91           UART, SPI, I2C and PWMs.
92
93 config ROCKCHIP_RK322X
94         bool "Support Rockchip RK3228/RK3229"
95         select CPU_V7A
96         select SUPPORT_SPL
97         select SUPPORT_TPL
98         select SPL
99         select SPL_DM
100         select SPL_OF_LIBFDT
101         select TPL
102         select TPL_DM
103         select TPL_OF_LIBFDT
104         select TPL_NEEDS_SEPARATE_STACK if TPL
105         select SPL_DRIVERS_MISC
106         imply ROCKCHIP_COMMON_BOARD
107         imply SPL_SERIAL
108         imply SPL_ROCKCHIP_COMMON_BOARD
109         imply TPL_SERIAL
110         imply TPL_ROCKCHIP_COMMON_BOARD
111         select TPL_LIBCOMMON_SUPPORT
112         select TPL_LIBGENERIC_SUPPORT
113         help
114           The Rockchip RK3229 is a ARM-based SoC with a dual-core Cortex-A7
115           including NEON and GPU, Mali-400 graphics, several DDR3 options
116           and video codec support. Peripherals include Gigabit Ethernet,
117           USB2 host and OTG, SDIO, I2S, UART, SPI, I2C and PWMs.
118
119 config ROCKCHIP_RK3288
120         bool "Support Rockchip RK3288"
121         select CPU_V7A
122         select OF_BOARD_SETUP
123         select SKIP_LOWLEVEL_INIT_ONLY
124         select SUPPORT_SPL
125         select SPL
126         select SUPPORT_TPL
127         imply PRE_CONSOLE_BUFFER
128         imply ROCKCHIP_COMMON_BOARD
129         imply SPL_ROCKCHIP_COMMON_BOARD
130         imply TPL_CLK
131         imply TPL_DM
132         imply TPL_DRIVERS_MISC
133         imply TPL_LIBCOMMON_SUPPORT
134         imply TPL_LIBGENERIC_SUPPORT
135         imply TPL_NEEDS_SEPARATE_STACK
136         imply TPL_OF_CONTROL
137         imply TPL_OF_PLATDATA
138         imply TPL_RAM
139         imply TPL_REGMAP
140         imply TPL_ROCKCHIP_COMMON_BOARD
141         imply TPL_SERIAL
142         imply TPL_SYSCON
143         imply USB_FUNCTION_ROCKUSB
144         imply CMD_ROCKUSB
145         help
146           The Rockchip RK3288 is a ARM-based SoC with a quad-core Cortex-A17
147           including NEON and GPU, 1MB L2 cache, Mali-T7 graphics, two
148           video interfaces supporting HDMI and eDP, several DDR3 options
149           and video codec support. Peripherals include Gigabit Ethernet,
150           USB2 host and OTG, SDIO, I2S, UARTs, SPI, I2C and PWMs.
151
152 config ROCKCHIP_RK3308
153         bool "Support Rockchip RK3308"
154         select ARM64
155         select DEBUG_UART_BOARD_INIT
156         select SUPPORT_SPL
157         select SUPPORT_TPL
158         select SPL
159         select SPL_ATF
160         select SPL_ATF_NO_PLATFORM_PARAM
161         select SPL_LOAD_FIT
162         imply ROCKCHIP_COMMON_BOARD
163         imply SPL_ROCKCHIP_COMMON_BOARD
164         imply SPL_CLK
165         imply SPL_REGMAP
166         imply SPL_SYSCON
167         imply SPL_RAM
168         imply SPL_SERIAL
169         imply TPL_SERIAL
170         imply SPL_SEPARATE_BSS
171         help
172           The Rockchip RK3308 is a ARM-based Soc which embedded with quad
173           Cortex-A35 and highly integrated audio interfaces.
174
175 config ROCKCHIP_RK3328
176         bool "Support Rockchip RK3328"
177         select ARM64
178         select SUPPORT_SPL
179         select SPL
180         select SUPPORT_TPL
181         select TPL
182         select TPL_NEEDS_SEPARATE_STACK if TPL
183         imply ROCKCHIP_COMMON_BOARD
184         imply ROCKCHIP_SDRAM_COMMON
185         imply SPL_ROCKCHIP_COMMON_BOARD
186         imply SPL_SERIAL
187         imply TPL_SERIAL
188         imply SPL_SEPARATE_BSS
189         select ENABLE_ARM_SOC_BOOT0_HOOK
190         select DEBUG_UART_BOARD_INIT
191         select SYS_NS16550
192         help
193           The Rockchip RK3328 is a ARM-based SoC with a quad-core Cortex-A53.
194           including NEON and GPU, 1MB L2 cache, Mali-T7 graphics, two
195           video interfaces supporting HDMI and eDP, several DDR3 options
196           and video codec support. Peripherals include Gigabit Ethernet,
197           USB2 host and OTG, SDIO, I2S, UARTs, SPI, I2C and PWMs.
198
199 config ROCKCHIP_RK3368
200         bool "Support Rockchip RK3368"
201         select ARM64
202         select SUPPORT_SPL
203         select SUPPORT_TPL
204         select TPL_NEEDS_SEPARATE_STACK if TPL
205         imply ROCKCHIP_COMMON_BOARD
206         imply SPL_ROCKCHIP_COMMON_BOARD
207         imply SPL_SEPARATE_BSS
208         imply SPL_SERIAL
209         imply TPL_SERIAL
210         imply TPL_ROCKCHIP_COMMON_BOARD
211         help
212           The Rockchip RK3368 is a ARM-based SoC with a octa-core (organised
213           into a big and little cluster with 4 cores each) Cortex-A53 including
214           AdvSIMD, 512KB L2 cache (for the big cluster) and 256 KB L2 cache
215           (for the little cluster), PowerVR G6110 based graphics, one video
216           output processor supporting LVDS/HDMI/eDP, several DDR3 options and
217           video codec support.
218
219           On-chip peripherals include Gigabit Ethernet, USB2 host and OTG, SDIO,
220           I2S, UARTs, SPI, I2C and PWMs.
221
222 config ROCKCHIP_RK3399
223         bool "Support Rockchip RK3399"
224         select ARM64
225         select SUPPORT_SPL
226         select SUPPORT_TPL
227         select SPL
228         select SPL_ATF
229         select SPL_BOARD_INIT if SPL
230         select SPL_LOAD_FIT
231         select SPL_CLK if SPL
232         select SPL_PINCTRL if SPL
233         select SPL_RAM if SPL
234         select SPL_REGMAP if SPL
235         select SPL_SYSCON if SPL
236         select TPL_NEEDS_SEPARATE_STACK if TPL
237         select SPL_SEPARATE_BSS
238         select SPL_SERIAL
239         select SPL_DRIVERS_MISC
240         select CLK
241         select FIT
242         select PINCTRL
243         select RAM
244         select REGMAP
245         select SYSCON
246         select DM_PMIC
247         select DM_REGULATOR_FIXED
248         select BOARD_LATE_INIT
249         imply PARTITION_TYPE_GUID
250         imply PRE_CONSOLE_BUFFER
251         imply ROCKCHIP_COMMON_BOARD
252         imply ROCKCHIP_SDRAM_COMMON
253         imply SPL_ATF_NO_PLATFORM_PARAM if SPL_ATF
254         imply SPL_ROCKCHIP_COMMON_BOARD
255         imply TPL_SERIAL
256         imply TPL_LIBCOMMON_SUPPORT
257         imply TPL_LIBGENERIC_SUPPORT
258         imply TPL_SYS_MALLOC_SIMPLE
259         imply TPL_DRIVERS_MISC
260         imply TPL_OF_CONTROL
261         imply TPL_DM
262         imply TPL_REGMAP
263         imply TPL_SYSCON
264         imply TPL_RAM
265         imply TPL_CLK
266         imply TPL_TINY_MEMSET
267         imply TPL_ROCKCHIP_COMMON_BOARD
268         imply SYS_BOOTCOUNT_SINGLEWORD if BOOTCOUNT_LIMIT
269         imply CMD_BOOTCOUNT if BOOTCOUNT_LIMIT
270         help
271           The Rockchip RK3399 is a ARM-based SoC with a dual-core Cortex-A72
272           and quad-core Cortex-A53.
273           including NEON and GPU, 1MB L2 cache, Mali-T7 graphics, two
274           video interfaces supporting HDMI and eDP, several DDR3 options
275           and video codec support. Peripherals include Gigabit Ethernet,
276           USB2 host and OTG, SDIO, I2S, UARTs, SPI, I2C and PWMs.
277
278 config ROCKCHIP_RK3568
279         bool "Support Rockchip RK3568"
280         select ARM64
281         select SUPPORT_SPL
282         select SPL
283         select CLK
284         select PINCTRL
285         select RAM
286         select REGMAP
287         select SYSCON
288         select BOARD_LATE_INIT
289         select DM_RESET
290         imply ROCKCHIP_COMMON_BOARD
291         help
292           The Rockchip RK3568 is a ARM-based SoC with quad-core Cortex-A55,
293           including NEON and GPU, 512K L3 cache, Mali-G52 based graphics,
294           two video interfaces supporting HDMI and eDP, several DDR3 options
295           and video codec support. Peripherals include Gigabit Ethernet,
296           USB2 host and OTG, SDIO, I2S, UARTs, SPI, I2C and PWMs.
297
298 config ROCKCHIP_RV1108
299         bool "Support Rockchip RV1108"
300         select CPU_V7A
301         imply ROCKCHIP_COMMON_BOARD
302         help
303           The Rockchip RV1108 is a ARM-based SoC with a single-core Cortex-A7
304           and a DSP.
305
306 config ROCKCHIP_RV1126
307         bool "Support Rockchip RV1126"
308         select CPU_V7A
309         select SKIP_LOWLEVEL_INIT_ONLY
310         select TPL
311         select SUPPORT_TPL
312         select TPL_NEEDS_SEPARATE_STACK
313         select TPL_ROCKCHIP_BACK_TO_BROM
314         select SPL
315         select SUPPORT_SPL
316         select SPL_STACK_R
317         select CLK
318         select FIT
319         select PINCTRL
320         select RAM
321         select ROCKCHIP_SDRAM_COMMON
322         select REGMAP
323         select SYSCON
324         select DM_PMIC
325         select DM_REGULATOR_FIXED
326         select DM_RESET
327         select REGULATOR_RK8XX
328         select PMIC_RK8XX
329         select BOARD_LATE_INIT
330         imply ROCKCHIP_COMMON_BOARD
331         imply TPL_DM
332         imply TPL_LIBCOMMON_SUPPORT
333         imply TPL_LIBGENERIC_SUPPORT
334         imply TPL_OF_CONTROL
335         imply TPL_OF_PLATDATA
336         imply TPL_RAM
337         imply TPL_ROCKCHIP_COMMON_BOARD
338         imply TPL_SERIAL
339         imply SPL_CLK
340         imply SPL_DM
341         imply SPL_DRIVERS_MISC
342         imply SPL_LIBCOMMON_SUPPORT
343         imply SPL_LIBGENERIC_SUPPORT
344         imply SPL_OF_CONTROL
345         imply SPL_RAM
346         imply SPL_REGMAP
347         imply SPL_ROCKCHIP_COMMON_BOARD
348         imply SPL_SERIAL
349         imply SPL_SYSCON
350
351 config ROCKCHIP_USB_UART
352         bool "Route uart output to usb pins"
353         help
354           Rockchip SoCs have the ability to route the signals of the debug
355           uart through the d+ and d- pins of a specific usb phy to enable
356           some form of closed-case debugging. With this option supported
357           SoCs will enable this routing as a debug measure.
358
359 config SPL_ROCKCHIP_BACK_TO_BROM
360         bool "SPL returns to bootrom"
361         default y if ROCKCHIP_RK3036
362         select ROCKCHIP_BROM_HELPER
363         select SPL_BOOTROM_SUPPORT
364         depends on SPL
365         help
366           Rockchip SoCs have ability to load SPL & U-Boot binary. If enabled,
367           SPL will return to the boot rom, which will then load the U-Boot
368           binary to keep going on.
369
370 config TPL_ROCKCHIP_BACK_TO_BROM
371         bool "TPL returns to bootrom"
372         default y
373         select ROCKCHIP_BROM_HELPER
374         select TPL_BOOTROM_SUPPORT
375         depends on TPL
376         help
377           Rockchip SoCs have ability to load SPL & U-Boot binary. If enabled,
378           SPL will return to the boot rom, which will then load the U-Boot
379           binary to keep going on.
380
381 config ROCKCHIP_COMMON_BOARD
382         bool "Rockchip common board file"
383         help
384           Rockchip SoCs have similar boot process, Common board file is mainly
385           in charge of common process of board_init() and board_late_init() for
386           U-Boot proper.
387
388 config SPL_ROCKCHIP_COMMON_BOARD
389         bool "Rockchip SPL common board file"
390         depends on SPL
391         help
392           Rockchip SoCs have similar boot process, SPL is mainly in charge of
393           load and boot Trust ATF/U-Boot firmware, and DRAM init if there is
394           no TPL for the board.
395
396 config TPL_ROCKCHIP_COMMON_BOARD
397         bool "Rockchip TPL common board file"
398         depends on TPL
399         help
400           Rockchip SoCs have similar boot process, prefer to use TPL for DRAM
401           init and back to bootrom, and SPL as Trust ATF/U-Boot loader. TPL
402           common board is a basic TPL board init which can be shared for most
403           of SoCs to avoid copy-paste for different SoCs.
404
405 config ROCKCHIP_EXTERNAL_TPL
406         bool "Use external TPL binary"
407         default y if ROCKCHIP_RK3568
408         help
409           Some Rockchip SoCs require an external TPL to initialize DRAM.
410           Enable this option and build with ROCKCHIP_TPL=/path/to/ddr.bin to
411           include the external TPL in the image built by binman.
412
413 config ROCKCHIP_BOOT_MODE_REG
414         hex "Rockchip boot mode flag register address"
415         help
416           The Soc will enter to different boot mode(defined in asm/arch-rockchip/boot_mode.h)
417           according to the value from this register.
418
419 config ROCKCHIP_RK8XX_DISABLE_BOOT_ON_POWERON
420         bool "Disable device boot on power plug-in"
421         depends on PMIC_RK8XX
422         default n
423         ---help---
424           Say Y here to prevent the device from booting up because of a plug-in
425           event. When set, the device will boot briefly to determine why it was
426           powered on, and if it was determined because of a plug-in event
427           instead of a button press event it will shut back off.
428
429 config ROCKCHIP_STIMER
430         bool "Rockchip STIMER support"
431         default y
432         help
433           Enable Rockchip STIMER support.
434
435 config ROCKCHIP_STIMER_BASE
436         hex
437         depends on ROCKCHIP_STIMER
438
439 config ROCKCHIP_SPL_RESERVE_IRAM
440         hex "Size of IRAM reserved in SPL"
441         default 0
442         help
443           SPL may need reserve memory for firmware loaded by SPL, whose load
444           address is in IRAM and may overlay with SPL text area if not
445           reserved.
446
447 config ROCKCHIP_BROM_HELPER
448         bool
449
450 config SPL_ROCKCHIP_EARLYRETURN_TO_BROM
451         bool "SPL requires early-return (for RK3188-style BROM) to BROM"
452         depends on SPL && ENABLE_ARM_SOC_BOOT0_HOOK
453         help
454           Some Rockchip BROM variants (e.g. on the RK3188) load the
455           first stage in segments and enter multiple times. E.g. on
456           the RK3188, the first 1KB of the first stage are loaded
457           first and entered; after returning to the BROM, the
458           remainder of the first stage is loaded, but the BROM
459           re-enters at the same address/to the same code as previously.
460
461           This enables support code in the BOOT0 hook for the SPL stage
462           to allow multiple entries.
463
464 config TPL_ROCKCHIP_EARLYRETURN_TO_BROM
465         bool "TPL requires early-return (for RK3188-style BROM) to BROM"
466         depends on TPL && ENABLE_ARM_SOC_BOOT0_HOOK
467         help
468           Some Rockchip BROM variants (e.g. on the RK3188) load the
469           first stage in segments and enter multiple times. E.g. on
470           the RK3188, the first 1KB of the first stage are loaded
471           first and entered; after returning to the BROM, the
472           remainder of the first stage is loaded, but the BROM
473           re-enters at the same address/to the same code as previously.
474
475           This enables support code in the BOOT0 hook for the TPL stage
476           to allow multiple entries.
477
478 config SPL_MMC
479         default y if !SPL_ROCKCHIP_BACK_TO_BROM
480
481 config ROCKCHIP_SPI_IMAGE
482         bool "Build a SPI image for rockchip"
483         help
484           Some Rockchip SoCs support booting from SPI flash. Enable this
485           option to produce a SPI-flash image containing U-Boot. The image
486           is built by binman. U-Boot sits near the start of the image.
487
488 config LNX_KRNL_IMG_TEXT_OFFSET_BASE
489         default TEXT_BASE
490
491 source "arch/arm/mach-rockchip/px30/Kconfig"
492 source "arch/arm/mach-rockchip/rk3036/Kconfig"
493 source "arch/arm/mach-rockchip/rk3066/Kconfig"
494 source "arch/arm/mach-rockchip/rk3128/Kconfig"
495 source "arch/arm/mach-rockchip/rk3188/Kconfig"
496 source "arch/arm/mach-rockchip/rk322x/Kconfig"
497 source "arch/arm/mach-rockchip/rk3288/Kconfig"
498 source "arch/arm/mach-rockchip/rk3308/Kconfig"
499 source "arch/arm/mach-rockchip/rk3328/Kconfig"
500 source "arch/arm/mach-rockchip/rk3368/Kconfig"
501 source "arch/arm/mach-rockchip/rk3399/Kconfig"
502 source "arch/arm/mach-rockchip/rk3568/Kconfig"
503 source "arch/arm/mach-rockchip/rv1108/Kconfig"
504 source "arch/arm/mach-rockchip/rv1126/Kconfig"
505 endif