4 bool "Support Rockchip PX30"
10 select TPL_TINY_FRAMEWORK if TPL
11 select TPL_NEEDS_SEPARATE_STACK if TPL
12 imply SPL_SEPARATE_BSS
15 select DEBUG_UART_BOARD_INIT
16 imply ROCKCHIP_COMMON_BOARD
17 imply SPL_ROCKCHIP_COMMON_BOARD
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.
24 config ROCKCHIP_RK3036
25 bool "Support Rockchip RK3036"
29 imply USB_FUNCTION_ROCKUSB
31 imply ROCKCHIP_COMMON_BOARD
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.
38 config ROCKCHIP_RK3066
39 bool "Support Rockchip RK3066"
41 select SPL_BOARD_INIT if SPL
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
51 imply TPL_ROCKCHIP_COMMON_BOARD
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.
60 config ROCKCHIP_RK3128
61 bool "Support Rockchip RK3128"
63 imply ROCKCHIP_COMMON_BOARD
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.
70 config ROCKCHIP_RK3188
71 bool "Support Rockchip RK3188"
73 select SPL_BOARD_INIT if SPL
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
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.
93 config ROCKCHIP_RK322X
94 bool "Support Rockchip RK3228/RK3229"
104 select TPL_NEEDS_SEPARATE_STACK if TPL
105 select SPL_DRIVERS_MISC
106 imply ROCKCHIP_COMMON_BOARD
108 imply SPL_ROCKCHIP_COMMON_BOARD
109 select SPL_OPTEE_IMAGE if SPL_FIT
111 imply TPL_ROCKCHIP_COMMON_BOARD
112 select TPL_LIBCOMMON_SUPPORT
113 select TPL_LIBGENERIC_SUPPORT
115 The Rockchip RK3229 is a ARM-based SoC with a dual-core Cortex-A7
116 including NEON and GPU, Mali-400 graphics, several DDR3 options
117 and video codec support. Peripherals include Gigabit Ethernet,
118 USB2 host and OTG, SDIO, I2S, UART, SPI, I2C and PWMs.
120 config ROCKCHIP_RK3288
121 bool "Support Rockchip RK3288"
123 select OF_SYSTEM_SETUP
124 select SKIP_LOWLEVEL_INIT_ONLY
128 imply PRE_CONSOLE_BUFFER
129 imply ROCKCHIP_COMMON_BOARD
130 imply SPL_ROCKCHIP_COMMON_BOARD
133 imply TPL_DRIVERS_MISC
134 imply TPL_LIBCOMMON_SUPPORT
135 imply TPL_LIBGENERIC_SUPPORT
136 imply TPL_NEEDS_SEPARATE_STACK
138 imply TPL_OF_PLATDATA
141 imply TPL_ROCKCHIP_COMMON_BOARD
144 imply USB_FUNCTION_ROCKUSB
147 The Rockchip RK3288 is a ARM-based SoC with a quad-core Cortex-A17
148 including NEON and GPU, 1MB L2 cache, Mali-T7 graphics, two
149 video interfaces supporting HDMI and eDP, several DDR3 options
150 and video codec support. Peripherals include Gigabit Ethernet,
151 USB2 host and OTG, SDIO, I2S, UARTs, SPI, I2C and PWMs.
153 config ROCKCHIP_RK3308
154 bool "Support Rockchip RK3308"
160 select SPL_ATF_NO_PLATFORM_PARAM
162 imply ROCKCHIP_COMMON_BOARD
163 imply SPL_ROCKCHIP_COMMON_BOARD
170 imply SPL_SEPARATE_BSS
172 The Rockchip RK3308 is a ARM-based Soc which embedded with quad
173 Cortex-A35 and highly integrated audio interfaces.
175 config ROCKCHIP_RK3328
176 bool "Support Rockchip RK3328"
182 select TPL_NEEDS_SEPARATE_STACK if TPL
183 imply ROCKCHIP_COMMON_BOARD
184 imply ROCKCHIP_SDRAM_COMMON
185 imply SPL_ROCKCHIP_COMMON_BOARD
188 imply SPL_SEPARATE_BSS
189 select ENABLE_ARM_SOC_BOOT0_HOOK
190 select DEBUG_UART_BOARD_INIT
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.
199 config ROCKCHIP_RK3368
200 bool "Support Rockchip RK3368"
204 select TPL_NEEDS_SEPARATE_STACK if TPL
205 imply ROCKCHIP_COMMON_BOARD
206 imply SPL_ROCKCHIP_COMMON_BOARD
207 imply SPL_SEPARATE_BSS
210 imply TPL_ROCKCHIP_COMMON_BOARD
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
219 On-chip peripherals include Gigabit Ethernet, USB2 host and OTG, SDIO,
220 I2S, UARTs, SPI, I2C and PWMs.
222 config ROCKCHIP_RK3399
223 bool "Support Rockchip RK3399"
229 select SPL_BOARD_INIT if SPL
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
239 select SPL_DRIVERS_MISC
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_ROCKCHIP_COMMON_BOARD
255 imply TPL_LIBCOMMON_SUPPORT
256 imply TPL_LIBGENERIC_SUPPORT
257 imply TPL_SYS_MALLOC_SIMPLE
258 imply TPL_DRIVERS_MISC
265 imply TPL_TINY_MEMSET
266 imply TPL_ROCKCHIP_COMMON_BOARD
267 imply SYS_BOOTCOUNT_SINGLEWORD if BOOTCOUNT_LIMIT
268 imply CMD_BOOTCOUNT if BOOTCOUNT_LIMIT
270 The Rockchip RK3399 is a ARM-based SoC with a dual-core Cortex-A72
271 and quad-core Cortex-A53.
272 including NEON and GPU, 1MB L2 cache, Mali-T7 graphics, two
273 video interfaces supporting HDMI and eDP, several DDR3 options
274 and video codec support. Peripherals include Gigabit Ethernet,
275 USB2 host and OTG, SDIO, I2S, UARTs, SPI, I2C and PWMs.
277 config ROCKCHIP_RK3568
278 bool "Support Rockchip RK3568"
287 select BOARD_LATE_INIT
288 select DM_REGULATOR_FIXED
290 imply SPL_ATF_NO_PLATFORM_PARAM if SPL_ATF
291 imply ROCKCHIP_COMMON_BOARD
292 imply OF_LIBFDT_OVERLAY
296 The Rockchip RK3568 is a ARM-based SoC with quad-core Cortex-A55,
297 including NEON and GPU, 512K L3 cache, Mali-G52 based graphics,
298 two video interfaces supporting HDMI and eDP, several DDR3 options
299 and video codec support. Peripherals include Gigabit Ethernet,
300 USB2 host and OTG, SDIO, I2S, UARTs, SPI, I2C and PWMs.
302 config ROCKCHIP_RK3588
303 bool "Support Rockchip RK3588"
312 select BOARD_LATE_INIT
313 select DM_REGULATOR_FIXED
315 imply SPL_ATF_NO_PLATFORM_PARAM if SPL_ATF
316 imply ROCKCHIP_COMMON_BOARD
317 imply OF_LIBFDT_OVERLAY
323 The Rockchip RK3588 is a ARM-based SoC with quad-core Cortex-A76 and
324 quad-core Cortex-A55 including NEON and GPU, 6TOPS NPU, Mali-G610 MP4,
325 HDMI Out, HDMI In, DP, eDP, MIPI DSI, MIPI CSI2, LPDDR4/4X/5, eMMC5.1,
326 SD3.0/MMC4.5, USB OTG 3.0, Type-C, USB 2.0, PCIe 3.0, SATA 3, Ethernet,
327 SDIO3.0 I2C, UART, SPI, GPIO and PWM.
329 config ROCKCHIP_RV1108
330 bool "Support Rockchip RV1108"
332 imply ROCKCHIP_COMMON_BOARD
334 The Rockchip RV1108 is a ARM-based SoC with a single-core Cortex-A7
337 config ROCKCHIP_RV1126
338 bool "Support Rockchip RV1126"
340 select SKIP_LOWLEVEL_INIT_ONLY
343 select TPL_NEEDS_SEPARATE_STACK
344 select TPL_ROCKCHIP_BACK_TO_BROM
352 select ROCKCHIP_SDRAM_COMMON
356 select DM_REGULATOR_FIXED
358 select REGULATOR_RK8XX
360 select BOARD_LATE_INIT
361 imply ROCKCHIP_COMMON_BOARD
362 imply OF_LIBFDT_OVERLAY
364 imply TPL_LIBCOMMON_SUPPORT
365 imply TPL_LIBGENERIC_SUPPORT
367 imply TPL_OF_PLATDATA
369 imply TPL_ROCKCHIP_COMMON_BOARD
373 imply SPL_DRIVERS_MISC
374 imply SPL_LIBCOMMON_SUPPORT
375 imply SPL_LIBGENERIC_SUPPORT
379 imply SPL_ROCKCHIP_COMMON_BOARD
383 config ROCKCHIP_USB_UART
384 bool "Route uart output to usb pins"
386 Rockchip SoCs have the ability to route the signals of the debug
387 uart through the d+ and d- pins of a specific usb phy to enable
388 some form of closed-case debugging. With this option supported
389 SoCs will enable this routing as a debug measure.
391 config SPL_ROCKCHIP_BACK_TO_BROM
392 bool "SPL returns to bootrom"
393 default y if ROCKCHIP_RK3036
394 select ROCKCHIP_BROM_HELPER
395 select SPL_BOOTROM_SUPPORT
398 Rockchip SoCs have ability to load SPL & U-Boot binary. If enabled,
399 SPL will return to the boot rom, which will then load the U-Boot
400 binary to keep going on.
402 config TPL_ROCKCHIP_BACK_TO_BROM
403 bool "TPL returns to bootrom"
405 select ROCKCHIP_BROM_HELPER
406 select TPL_BOOTROM_SUPPORT
409 Rockchip SoCs have ability to load SPL & U-Boot binary. If enabled,
410 SPL will return to the boot rom, which will then load the U-Boot
411 binary to keep going on.
413 config ROCKCHIP_COMMON_BOARD
414 bool "Rockchip common board file"
416 Rockchip SoCs have similar boot process, Common board file is mainly
417 in charge of common process of board_init() and board_late_init() for
420 config SPL_ROCKCHIP_COMMON_BOARD
421 bool "Rockchip SPL common board file"
424 Rockchip SoCs have similar boot process, SPL is mainly in charge of
425 load and boot Trust ATF/U-Boot firmware, and DRAM init if there is
426 no TPL for the board.
428 config TPL_ROCKCHIP_COMMON_BOARD
429 bool "Rockchip TPL common board file"
432 Rockchip SoCs have similar boot process, prefer to use TPL for DRAM
433 init and back to bootrom, and SPL as Trust ATF/U-Boot loader. TPL
434 common board is a basic TPL board init which can be shared for most
435 of SoCs to avoid copy-paste for different SoCs.
437 config ROCKCHIP_EXTERNAL_TPL
438 bool "Use external TPL binary"
439 default y if ROCKCHIP_RK3568 || ROCKCHIP_RK3588
441 Some Rockchip SoCs require an external TPL to initialize DRAM.
442 Enable this option and build with ROCKCHIP_TPL=/path/to/ddr.bin to
443 include the external TPL in the image built by binman.
445 config ROCKCHIP_BOOT_MODE_REG
446 hex "Rockchip boot mode flag register address"
448 The Soc will enter to different boot mode(defined in asm/arch-rockchip/boot_mode.h)
449 according to the value from this register.
451 config ROCKCHIP_RK8XX_DISABLE_BOOT_ON_POWERON
452 bool "Disable device boot on power plug-in"
453 depends on PMIC_RK8XX
456 Say Y here to prevent the device from booting up because of a plug-in
457 event. When set, the device will boot briefly to determine why it was
458 powered on, and if it was determined because of a plug-in event
459 instead of a button press event it will shut back off.
461 config ROCKCHIP_STIMER
462 bool "Rockchip STIMER support"
465 Enable Rockchip STIMER support.
467 config ROCKCHIP_STIMER_BASE
469 depends on ROCKCHIP_STIMER
471 config ROCKCHIP_SPL_RESERVE_IRAM
472 hex "Size of IRAM reserved in SPL"
475 SPL may need reserve memory for firmware loaded by SPL, whose load
476 address is in IRAM and may overlay with SPL text area if not
479 config ROCKCHIP_BROM_HELPER
482 config SPL_ROCKCHIP_EARLYRETURN_TO_BROM
483 bool "SPL requires early-return (for RK3188-style BROM) to BROM"
484 depends on SPL && ENABLE_ARM_SOC_BOOT0_HOOK
486 Some Rockchip BROM variants (e.g. on the RK3188) load the
487 first stage in segments and enter multiple times. E.g. on
488 the RK3188, the first 1KB of the first stage are loaded
489 first and entered; after returning to the BROM, the
490 remainder of the first stage is loaded, but the BROM
491 re-enters at the same address/to the same code as previously.
493 This enables support code in the BOOT0 hook for the SPL stage
494 to allow multiple entries.
496 config TPL_ROCKCHIP_EARLYRETURN_TO_BROM
497 bool "TPL requires early-return (for RK3188-style BROM) to BROM"
498 depends on TPL && ENABLE_ARM_SOC_BOOT0_HOOK
500 Some Rockchip BROM variants (e.g. on the RK3188) load the
501 first stage in segments and enter multiple times. E.g. on
502 the RK3188, the first 1KB of the first stage are loaded
503 first and entered; after returning to the BROM, the
504 remainder of the first stage is loaded, but the BROM
505 re-enters at the same address/to the same code as previously.
507 This enables support code in the BOOT0 hook for the TPL stage
508 to allow multiple entries.
511 default y if !SPL_ROCKCHIP_BACK_TO_BROM
513 config ROCKCHIP_SPI_IMAGE
514 bool "Build a SPI image for rockchip"
516 Some Rockchip SoCs support booting from SPI flash. Enable this
517 option to produce a SPI-flash image containing U-Boot. The image
518 is built by binman. U-Boot sits near the start of the image.
520 config LNX_KRNL_IMG_TEXT_OFFSET_BASE
523 source "arch/arm/mach-rockchip/px30/Kconfig"
524 source "arch/arm/mach-rockchip/rk3036/Kconfig"
525 source "arch/arm/mach-rockchip/rk3066/Kconfig"
526 source "arch/arm/mach-rockchip/rk3128/Kconfig"
527 source "arch/arm/mach-rockchip/rk3188/Kconfig"
528 source "arch/arm/mach-rockchip/rk322x/Kconfig"
529 source "arch/arm/mach-rockchip/rk3288/Kconfig"
530 source "arch/arm/mach-rockchip/rk3308/Kconfig"
531 source "arch/arm/mach-rockchip/rk3328/Kconfig"
532 source "arch/arm/mach-rockchip/rk3368/Kconfig"
533 source "arch/arm/mach-rockchip/rk3399/Kconfig"
534 source "arch/arm/mach-rockchip/rk3568/Kconfig"
535 source "arch/arm/mach-rockchip/rk3588/Kconfig"
536 source "arch/arm/mach-rockchip/rv1108/Kconfig"
537 source "arch/arm/mach-rockchip/rv1126/Kconfig"