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
110 imply TPL_ROCKCHIP_COMMON_BOARD
111 select TPL_LIBCOMMON_SUPPORT
112 select TPL_LIBGENERIC_SUPPORT
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.
119 config ROCKCHIP_RK3288
120 bool "Support Rockchip RK3288"
122 select OF_BOARD_SETUP
123 select SKIP_LOWLEVEL_INIT_ONLY
127 imply PRE_CONSOLE_BUFFER
128 imply ROCKCHIP_COMMON_BOARD
129 imply SPL_ROCKCHIP_COMMON_BOARD
132 imply TPL_DRIVERS_MISC
133 imply TPL_LIBCOMMON_SUPPORT
134 imply TPL_LIBGENERIC_SUPPORT
135 imply TPL_NEEDS_SEPARATE_STACK
137 imply TPL_OF_PLATDATA
140 imply TPL_ROCKCHIP_COMMON_BOARD
143 imply USB_FUNCTION_ROCKUSB
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.
152 config ROCKCHIP_RK3308
153 bool "Support Rockchip RK3308"
155 select DEBUG_UART_BOARD_INIT
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_ATF_NO_PLATFORM_PARAM if SPL_ATF
254 imply SPL_ROCKCHIP_COMMON_BOARD
256 imply TPL_LIBCOMMON_SUPPORT
257 imply TPL_LIBGENERIC_SUPPORT
258 imply TPL_SYS_MALLOC_SIMPLE
259 imply TPL_DRIVERS_MISC
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
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.
278 config ROCKCHIP_RK3568
279 bool "Support Rockchip RK3568"
288 select BOARD_LATE_INIT
289 select DM_REGULATOR_FIXED
291 imply ROCKCHIP_COMMON_BOARD
295 The Rockchip RK3568 is a ARM-based SoC with quad-core Cortex-A55,
296 including NEON and GPU, 512K L3 cache, Mali-G52 based graphics,
297 two video interfaces supporting HDMI and eDP, several DDR3 options
298 and video codec support. Peripherals include Gigabit Ethernet,
299 USB2 host and OTG, SDIO, I2S, UARTs, SPI, I2C and PWMs.
301 config ROCKCHIP_RK3588
302 bool "Support Rockchip RK3588"
311 select BOARD_LATE_INIT
312 imply ROCKCHIP_COMMON_BOARD
316 The Rockchip RK3588 is a ARM-based SoC with quad-core Cortex-A76 and
317 quad-core Cortex-A55 including NEON and GPU, 6TOPS NPU, Mali-G610 MP4,
318 HDMI Out, HDMI In, DP, eDP, MIPI DSI, MIPI CSI2, LPDDR4/4X/5, eMMC5.1,
319 SD3.0/MMC4.5, USB OTG 3.0, Type-C, USB 2.0, PCIe 3.0, SATA 3, Ethernet,
320 SDIO3.0 I2C, UART, SPI, GPIO and PWM.
322 config ROCKCHIP_RV1108
323 bool "Support Rockchip RV1108"
325 imply ROCKCHIP_COMMON_BOARD
327 The Rockchip RV1108 is a ARM-based SoC with a single-core Cortex-A7
330 config ROCKCHIP_RV1126
331 bool "Support Rockchip RV1126"
333 select SKIP_LOWLEVEL_INIT_ONLY
336 select TPL_NEEDS_SEPARATE_STACK
337 select TPL_ROCKCHIP_BACK_TO_BROM
345 select ROCKCHIP_SDRAM_COMMON
349 select DM_REGULATOR_FIXED
351 select REGULATOR_RK8XX
353 select BOARD_LATE_INIT
354 imply ROCKCHIP_COMMON_BOARD
356 imply TPL_LIBCOMMON_SUPPORT
357 imply TPL_LIBGENERIC_SUPPORT
359 imply TPL_OF_PLATDATA
361 imply TPL_ROCKCHIP_COMMON_BOARD
365 imply SPL_DRIVERS_MISC
366 imply SPL_LIBCOMMON_SUPPORT
367 imply SPL_LIBGENERIC_SUPPORT
371 imply SPL_ROCKCHIP_COMMON_BOARD
375 config ROCKCHIP_USB_UART
376 bool "Route uart output to usb pins"
378 Rockchip SoCs have the ability to route the signals of the debug
379 uart through the d+ and d- pins of a specific usb phy to enable
380 some form of closed-case debugging. With this option supported
381 SoCs will enable this routing as a debug measure.
383 config SPL_ROCKCHIP_BACK_TO_BROM
384 bool "SPL returns to bootrom"
385 default y if ROCKCHIP_RK3036
386 select ROCKCHIP_BROM_HELPER
387 select SPL_BOOTROM_SUPPORT
390 Rockchip SoCs have ability to load SPL & U-Boot binary. If enabled,
391 SPL will return to the boot rom, which will then load the U-Boot
392 binary to keep going on.
394 config TPL_ROCKCHIP_BACK_TO_BROM
395 bool "TPL returns to bootrom"
397 select ROCKCHIP_BROM_HELPER
398 select TPL_BOOTROM_SUPPORT
401 Rockchip SoCs have ability to load SPL & U-Boot binary. If enabled,
402 SPL will return to the boot rom, which will then load the U-Boot
403 binary to keep going on.
405 config ROCKCHIP_COMMON_BOARD
406 bool "Rockchip common board file"
408 Rockchip SoCs have similar boot process, Common board file is mainly
409 in charge of common process of board_init() and board_late_init() for
412 config SPL_ROCKCHIP_COMMON_BOARD
413 bool "Rockchip SPL common board file"
416 Rockchip SoCs have similar boot process, SPL is mainly in charge of
417 load and boot Trust ATF/U-Boot firmware, and DRAM init if there is
418 no TPL for the board.
420 config TPL_ROCKCHIP_COMMON_BOARD
421 bool "Rockchip TPL common board file"
424 Rockchip SoCs have similar boot process, prefer to use TPL for DRAM
425 init and back to bootrom, and SPL as Trust ATF/U-Boot loader. TPL
426 common board is a basic TPL board init which can be shared for most
427 of SoCs to avoid copy-paste for different SoCs.
429 config ROCKCHIP_EXTERNAL_TPL
430 bool "Use external TPL binary"
431 default y if ROCKCHIP_RK3568 || ROCKCHIP_RK3588
433 Some Rockchip SoCs require an external TPL to initialize DRAM.
434 Enable this option and build with ROCKCHIP_TPL=/path/to/ddr.bin to
435 include the external TPL in the image built by binman.
437 config ROCKCHIP_BOOT_MODE_REG
438 hex "Rockchip boot mode flag register address"
440 The Soc will enter to different boot mode(defined in asm/arch-rockchip/boot_mode.h)
441 according to the value from this register.
443 config ROCKCHIP_RK8XX_DISABLE_BOOT_ON_POWERON
444 bool "Disable device boot on power plug-in"
445 depends on PMIC_RK8XX
448 Say Y here to prevent the device from booting up because of a plug-in
449 event. When set, the device will boot briefly to determine why it was
450 powered on, and if it was determined because of a plug-in event
451 instead of a button press event it will shut back off.
453 config ROCKCHIP_STIMER
454 bool "Rockchip STIMER support"
457 Enable Rockchip STIMER support.
459 config ROCKCHIP_STIMER_BASE
461 depends on ROCKCHIP_STIMER
463 config ROCKCHIP_SPL_RESERVE_IRAM
464 hex "Size of IRAM reserved in SPL"
467 SPL may need reserve memory for firmware loaded by SPL, whose load
468 address is in IRAM and may overlay with SPL text area if not
471 config ROCKCHIP_BROM_HELPER
474 config SPL_ROCKCHIP_EARLYRETURN_TO_BROM
475 bool "SPL requires early-return (for RK3188-style BROM) to BROM"
476 depends on SPL && ENABLE_ARM_SOC_BOOT0_HOOK
478 Some Rockchip BROM variants (e.g. on the RK3188) load the
479 first stage in segments and enter multiple times. E.g. on
480 the RK3188, the first 1KB of the first stage are loaded
481 first and entered; after returning to the BROM, the
482 remainder of the first stage is loaded, but the BROM
483 re-enters at the same address/to the same code as previously.
485 This enables support code in the BOOT0 hook for the SPL stage
486 to allow multiple entries.
488 config TPL_ROCKCHIP_EARLYRETURN_TO_BROM
489 bool "TPL requires early-return (for RK3188-style BROM) to BROM"
490 depends on TPL && ENABLE_ARM_SOC_BOOT0_HOOK
492 Some Rockchip BROM variants (e.g. on the RK3188) load the
493 first stage in segments and enter multiple times. E.g. on
494 the RK3188, the first 1KB of the first stage are loaded
495 first and entered; after returning to the BROM, the
496 remainder of the first stage is loaded, but the BROM
497 re-enters at the same address/to the same code as previously.
499 This enables support code in the BOOT0 hook for the TPL stage
500 to allow multiple entries.
503 default y if !SPL_ROCKCHIP_BACK_TO_BROM
505 config ROCKCHIP_SPI_IMAGE
506 bool "Build a SPI image for rockchip"
508 Some Rockchip SoCs support booting from SPI flash. Enable this
509 option to produce a SPI-flash image containing U-Boot. The image
510 is built by binman. U-Boot sits near the start of the image.
512 config LNX_KRNL_IMG_TEXT_OFFSET_BASE
515 source "arch/arm/mach-rockchip/px30/Kconfig"
516 source "arch/arm/mach-rockchip/rk3036/Kconfig"
517 source "arch/arm/mach-rockchip/rk3066/Kconfig"
518 source "arch/arm/mach-rockchip/rk3128/Kconfig"
519 source "arch/arm/mach-rockchip/rk3188/Kconfig"
520 source "arch/arm/mach-rockchip/rk322x/Kconfig"
521 source "arch/arm/mach-rockchip/rk3288/Kconfig"
522 source "arch/arm/mach-rockchip/rk3308/Kconfig"
523 source "arch/arm/mach-rockchip/rk3328/Kconfig"
524 source "arch/arm/mach-rockchip/rk3368/Kconfig"
525 source "arch/arm/mach-rockchip/rk3399/Kconfig"
526 source "arch/arm/mach-rockchip/rk3568/Kconfig"
527 source "arch/arm/mach-rockchip/rk3588/Kconfig"
528 source "arch/arm/mach-rockchip/rv1108/Kconfig"
529 source "arch/arm/mach-rockchip/rv1126/Kconfig"