1if ARCH_ROCKCHIP 2 3config 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_TEXT_BASE if SPL 12 select TPL_NEEDS_SEPARATE_STACK if TPL 13 imply SPL_SEPARATE_BSS 14 select SPL_SERIAL_SUPPORT 15 select TPL_SERIAL_SUPPORT 16 select DEBUG_UART_BOARD_INIT 17 imply ROCKCHIP_COMMON_BOARD 18 imply SPL_ROCKCHIP_COMMON_BOARD 19 help 20 The Rockchip PX30 is a ARM-based SoC with a quad-core Cortex-A35 21 including NEON and GPU, Mali-400 graphics, several DDR3 options 22 and video codec support. Peripherals include Gigabit Ethernet, 23 USB2 host and OTG, SDIO, I2S, UART, SPI, I2C and PWMs. 24 25config ROCKCHIP_RK3036 26 bool "Support Rockchip RK3036" 27 select CPU_V7A 28 select SUPPORT_SPL 29 select SPL 30 imply USB_FUNCTION_ROCKUSB 31 imply CMD_ROCKUSB 32 imply ROCKCHIP_COMMON_BOARD 33 help 34 The Rockchip RK3036 is a ARM-based SoC with a dual-core Cortex-A7 35 including NEON and GPU, Mali-400 graphics, several DDR3 options 36 and video codec support. Peripherals include Gigabit Ethernet, 37 USB2 host and OTG, SDIO, I2S, UART, SPI, I2C and PWMs. 38 39config ROCKCHIP_RK3128 40 bool "Support Rockchip RK3128" 41 select CPU_V7A 42 imply ROCKCHIP_COMMON_BOARD 43 help 44 The Rockchip RK3128 is a ARM-based SoC with a quad-core Cortex-A7 45 including NEON and GPU, Mali-400 graphics, several DDR3 options 46 and video codec support. Peripherals include Gigabit Ethernet, 47 USB2 host and OTG, SDIO, I2S, UART, SPI, I2C and PWMs. 48 49config ROCKCHIP_RK3188 50 bool "Support Rockchip RK3188" 51 select CPU_V7A 52 select SPL_BOARD_INIT if SPL 53 select SUPPORT_SPL 54 select SPL 55 select SPL_CLK 56 select SPL_REGMAP 57 select SPL_SYSCON 58 select SPL_RAM 59 select SPL_DRIVERS_MISC_SUPPORT 60 select SPL_ROCKCHIP_EARLYRETURN_TO_BROM 61 select SPL_ROCKCHIP_BACK_TO_BROM 62 select BOARD_LATE_INIT 63 imply ROCKCHIP_COMMON_BOARD 64 imply SPL_ROCKCHIP_COMMON_BOARD 65 help 66 The Rockchip RK3188 is a ARM-based SoC with a quad-core Cortex-A9 67 including NEON and GPU, 512KB L2 cache, Mali-400 graphics, two 68 video interfaces, several memory options and video codec support. 69 Peripherals include Fast Ethernet, USB2 host and OTG, SDIO, I2S, 70 UART, SPI, I2C and PWMs. 71 72config ROCKCHIP_RK322X 73 bool "Support Rockchip RK3228/RK3229" 74 select CPU_V7A 75 select SUPPORT_SPL 76 select SUPPORT_TPL 77 select SPL 78 select SPL_DM 79 select SPL_OF_LIBFDT 80 select TPL 81 select TPL_DM 82 select TPL_OF_LIBFDT 83 select TPL_NEEDS_SEPARATE_TEXT_BASE if SPL 84 select TPL_NEEDS_SEPARATE_STACK if TPL 85 select SPL_DRIVERS_MISC_SUPPORT 86 imply ROCKCHIP_COMMON_BOARD 87 imply SPL_SERIAL_SUPPORT 88 imply SPL_ROCKCHIP_COMMON_BOARD 89 imply TPL_SERIAL_SUPPORT 90 imply TPL_ROCKCHIP_COMMON_BOARD 91 select TPL_LIBCOMMON_SUPPORT 92 select TPL_LIBGENERIC_SUPPORT 93 help 94 The Rockchip RK3229 is a ARM-based SoC with a dual-core Cortex-A7 95 including NEON and GPU, Mali-400 graphics, several DDR3 options 96 and video codec support. Peripherals include Gigabit Ethernet, 97 USB2 host and OTG, SDIO, I2S, UART, SPI, I2C and PWMs. 98 99config ROCKCHIP_RK3288 100 bool "Support Rockchip RK3288" 101 select CPU_V7A 102 select SUPPORT_SPL 103 select SPL 104 select SUPPORT_TPL 105 imply ROCKCHIP_COMMON_BOARD 106 imply SPL_ROCKCHIP_COMMON_BOARD 107 imply TPL_CLK 108 imply TPL_DM 109 imply TPL_DRIVERS_MISC_SUPPORT 110 imply TPL_LIBCOMMON_SUPPORT 111 imply TPL_LIBGENERIC_SUPPORT 112 imply TPL_NEEDS_SEPARATE_TEXT_BASE 113 imply TPL_NEEDS_SEPARATE_STACK 114 imply TPL_OF_CONTROL 115 imply TPL_OF_PLATDATA 116 imply TPL_RAM 117 imply TPL_REGMAP 118 imply TPL_ROCKCHIP_COMMON_BOARD 119 imply TPL_SERIAL_SUPPORT 120 imply TPL_SYSCON 121 imply USB_FUNCTION_ROCKUSB 122 imply CMD_ROCKUSB 123 help 124 The Rockchip RK3288 is a ARM-based SoC with a quad-core Cortex-A17 125 including NEON and GPU, 1MB L2 cache, Mali-T7 graphics, two 126 video interfaces supporting HDMI and eDP, several DDR3 options 127 and video codec support. Peripherals include Gigabit Ethernet, 128 USB2 host and OTG, SDIO, I2S, UARTs, SPI, I2C and PWMs. 129 130config ROCKCHIP_RK3308 131 bool "Support Rockchip RK3308" 132 select ARM64 133 select DEBUG_UART_BOARD_INIT 134 select SUPPORT_SPL 135 select SUPPORT_TPL 136 select SPL 137 select SPL_ATF 138 select SPL_ATF_NO_PLATFORM_PARAM 139 select SPL_LOAD_FIT 140 imply ROCKCHIP_COMMON_BOARD 141 imply SPL_ROCKCHIP_COMMON_BOARD 142 imply SPL_CLK 143 imply SPL_REGMAP 144 imply SPL_SYSCON 145 imply SPL_RAM 146 imply SPL_SERIAL_SUPPORT 147 imply TPL_SERIAL_SUPPORT 148 imply SPL_SEPARATE_BSS 149 help 150 The Rockchip RK3308 is a ARM-based Soc which embedded with quad 151 Cortex-A35 and highly integrated audio interfaces. 152 153config ROCKCHIP_RK3328 154 bool "Support Rockchip RK3328" 155 select ARM64 156 select SUPPORT_SPL 157 select SPL 158 select SUPPORT_TPL 159 select TPL 160 select TPL_NEEDS_SEPARATE_TEXT_BASE if TPL 161 select TPL_NEEDS_SEPARATE_STACK if TPL 162 imply ROCKCHIP_COMMON_BOARD 163 imply ROCKCHIP_SDRAM_COMMON 164 imply SPL_ROCKCHIP_COMMON_BOARD 165 imply SPL_SERIAL_SUPPORT 166 imply TPL_SERIAL_SUPPORT 167 imply SPL_SEPARATE_BSS 168 select ENABLE_ARM_SOC_BOOT0_HOOK 169 select DEBUG_UART_BOARD_INIT 170 select SYS_NS16550 171 help 172 The Rockchip RK3328 is a ARM-based SoC with a quad-core Cortex-A53. 173 including NEON and GPU, 1MB L2 cache, Mali-T7 graphics, two 174 video interfaces supporting HDMI and eDP, several DDR3 options 175 and video codec support. Peripherals include Gigabit Ethernet, 176 USB2 host and OTG, SDIO, I2S, UARTs, SPI, I2C and PWMs. 177 178config ROCKCHIP_RK3368 179 bool "Support Rockchip RK3368" 180 select ARM64 181 select SUPPORT_SPL 182 select SUPPORT_TPL 183 select TPL_NEEDS_SEPARATE_TEXT_BASE if SPL 184 select TPL_NEEDS_SEPARATE_STACK if TPL 185 imply ROCKCHIP_COMMON_BOARD 186 imply SPL_ROCKCHIP_COMMON_BOARD 187 imply SPL_SEPARATE_BSS 188 imply SPL_SERIAL_SUPPORT 189 imply TPL_SERIAL_SUPPORT 190 imply TPL_ROCKCHIP_COMMON_BOARD 191 help 192 The Rockchip RK3368 is a ARM-based SoC with a octa-core (organised 193 into a big and little cluster with 4 cores each) Cortex-A53 including 194 AdvSIMD, 512KB L2 cache (for the big cluster) and 256 KB L2 cache 195 (for the little cluster), PowerVR G6110 based graphics, one video 196 output processor supporting LVDS/HDMI/eDP, several DDR3 options and 197 video codec support. 198 199 On-chip peripherals include Gigabit Ethernet, USB2 host and OTG, SDIO, 200 I2S, UARTs, SPI, I2C and PWMs. 201 202config ROCKCHIP_RK3399 203 bool "Support Rockchip RK3399" 204 select ARM64 205 select SUPPORT_SPL 206 select SUPPORT_TPL 207 select SPL 208 select SPL_ATF 209 select SPL_ATF_NO_PLATFORM_PARAM if SPL_ATF 210 select SPL_BOARD_INIT if SPL 211 select SPL_LOAD_FIT 212 select SPL_CLK if SPL 213 select SPL_PINCTRL if SPL 214 select SPL_RAM if SPL 215 select SPL_REGMAP if SPL 216 select SPL_SYSCON if SPL 217 select TPL_NEEDS_SEPARATE_TEXT_BASE if TPL 218 select TPL_NEEDS_SEPARATE_STACK if TPL 219 select SPL_SEPARATE_BSS 220 select SPL_SERIAL_SUPPORT 221 select SPL_DRIVERS_MISC_SUPPORT 222 select CLK 223 select FIT 224 select PINCTRL 225 select RAM 226 select REGMAP 227 select SYSCON 228 select DM_PMIC 229 select DM_REGULATOR_FIXED 230 select BOARD_LATE_INIT 231 imply ROCKCHIP_COMMON_BOARD 232 imply ROCKCHIP_SDRAM_COMMON 233 imply SPL_ROCKCHIP_COMMON_BOARD 234 imply TPL_SERIAL_SUPPORT 235 imply TPL_LIBCOMMON_SUPPORT 236 imply TPL_LIBGENERIC_SUPPORT 237 imply TPL_SYS_MALLOC_SIMPLE 238 imply TPL_DRIVERS_MISC_SUPPORT 239 imply TPL_OF_CONTROL 240 imply TPL_DM 241 imply TPL_REGMAP 242 imply TPL_SYSCON 243 imply TPL_RAM 244 imply TPL_CLK 245 imply TPL_TINY_MEMSET 246 imply TPL_ROCKCHIP_COMMON_BOARD 247 help 248 The Rockchip RK3399 is a ARM-based SoC with a dual-core Cortex-A72 249 and quad-core Cortex-A53. 250 including NEON and GPU, 1MB L2 cache, Mali-T7 graphics, two 251 video interfaces supporting HDMI and eDP, several DDR3 options 252 and video codec support. Peripherals include Gigabit Ethernet, 253 USB2 host and OTG, SDIO, I2S, UARTs, SPI, I2C and PWMs. 254 255config ROCKCHIP_RV1108 256 bool "Support Rockchip RV1108" 257 select CPU_V7A 258 imply ROCKCHIP_COMMON_BOARD 259 help 260 The Rockchip RV1108 is a ARM-based SoC with a single-core Cortex-A7 261 and a DSP. 262 263config ROCKCHIP_USB_UART 264 bool "Route uart output to usb pins" 265 help 266 Rockchip SoCs have the ability to route the signals of the debug 267 uart through the d+ and d- pins of a specific usb phy to enable 268 some form of closed-case debugging. With this option supported 269 SoCs will enable this routing as a debug measure. 270 271config SPL_ROCKCHIP_BACK_TO_BROM 272 bool "SPL returns to bootrom" 273 default y if ROCKCHIP_RK3036 274 select ROCKCHIP_BROM_HELPER 275 select SPL_BOOTROM_SUPPORT 276 depends on SPL 277 help 278 Rockchip SoCs have ability to load SPL & U-Boot binary. If enabled, 279 SPL will return to the boot rom, which will then load the U-Boot 280 binary to keep going on. 281 282config TPL_ROCKCHIP_BACK_TO_BROM 283 bool "TPL returns to bootrom" 284 default y 285 select ROCKCHIP_BROM_HELPER 286 select TPL_BOOTROM_SUPPORT 287 depends on TPL 288 help 289 Rockchip SoCs have ability to load SPL & U-Boot binary. If enabled, 290 SPL will return to the boot rom, which will then load the U-Boot 291 binary to keep going on. 292 293config ROCKCHIP_COMMON_BOARD 294 bool "Rockchip common board file" 295 help 296 Rockchip SoCs have similar boot process, Common board file is mainly 297 in charge of common process of board_init() and board_late_init() for 298 U-Boot proper. 299 300config SPL_ROCKCHIP_COMMON_BOARD 301 bool "Rockchip SPL common board file" 302 depends on SPL 303 help 304 Rockchip SoCs have similar boot process, SPL is mainly in charge of 305 load and boot Trust ATF/U-Boot firmware, and DRAM init if there is 306 no TPL for the board. 307 308config TPL_ROCKCHIP_COMMON_BOARD 309 bool "Rockchip TPL common board file" 310 depends on TPL 311 help 312 Rockchip SoCs have similar boot process, prefer to use TPL for DRAM 313 init and back to bootrom, and SPL as Trust ATF/U-Boot loader. TPL 314 common board is a basic TPL board init which can be shared for most 315 of SoCs to avoid copy-paste for different SoCs. 316 317config ROCKCHIP_BOOT_MODE_REG 318 hex "Rockchip boot mode flag register address" 319 help 320 The Soc will enter to different boot mode(defined in asm/arch-rockchip/boot_mode.h) 321 according to the value from this register. 322 323config ROCKCHIP_SPL_RESERVE_IRAM 324 hex "Size of IRAM reserved in SPL" 325 default 0 326 help 327 SPL may need reserve memory for firmware loaded by SPL, whose load 328 address is in IRAM and may overlay with SPL text area if not 329 reserved. 330 331config ROCKCHIP_BROM_HELPER 332 bool 333 334config SPL_ROCKCHIP_EARLYRETURN_TO_BROM 335 bool "SPL requires early-return (for RK3188-style BROM) to BROM" 336 depends on SPL && ENABLE_ARM_SOC_BOOT0_HOOK 337 help 338 Some Rockchip BROM variants (e.g. on the RK3188) load the 339 first stage in segments and enter multiple times. E.g. on 340 the RK3188, the first 1KB of the first stage are loaded 341 first and entered; after returning to the BROM, the 342 remainder of the first stage is loaded, but the BROM 343 re-enters at the same address/to the same code as previously. 344 345 This enables support code in the BOOT0 hook for the SPL stage 346 to allow multiple entries. 347 348config TPL_ROCKCHIP_EARLYRETURN_TO_BROM 349 bool "TPL requires early-return (for RK3188-style BROM) to BROM" 350 depends on TPL && ENABLE_ARM_SOC_BOOT0_HOOK 351 help 352 Some Rockchip BROM variants (e.g. on the RK3188) load the 353 first stage in segments and enter multiple times. E.g. on 354 the RK3188, the first 1KB of the first stage are loaded 355 first and entered; after returning to the BROM, the 356 remainder of the first stage is loaded, but the BROM 357 re-enters at the same address/to the same code as previously. 358 359 This enables support code in the BOOT0 hook for the TPL stage 360 to allow multiple entries. 361 362config SPL_MMC_SUPPORT 363 default y if !SPL_ROCKCHIP_BACK_TO_BROM 364 365source "arch/arm/mach-rockchip/px30/Kconfig" 366source "arch/arm/mach-rockchip/rk3036/Kconfig" 367source "arch/arm/mach-rockchip/rk3128/Kconfig" 368source "arch/arm/mach-rockchip/rk3188/Kconfig" 369source "arch/arm/mach-rockchip/rk322x/Kconfig" 370source "arch/arm/mach-rockchip/rk3288/Kconfig" 371source "arch/arm/mach-rockchip/rk3308/Kconfig" 372source "arch/arm/mach-rockchip/rk3328/Kconfig" 373source "arch/arm/mach-rockchip/rk3368/Kconfig" 374source "arch/arm/mach-rockchip/rk3399/Kconfig" 375source "arch/arm/mach-rockchip/rv1108/Kconfig" 376endif 377