1if ARCH_ROCKCHIP 2 3config ROCKCHIP_PX30 4 bool "Support Rockchip PX30" 5 select ARM64 6 select GICV2 7 select ARM_SMCCC 8 help 9 The Rockchip PX30 is a ARM-based SoC with a quad-core Cortex-A35 10 including NEON and GPU, Mali-400 graphics, several DDR3 options 11 and video codec support. Peripherals include Gigabit Ethernet, 12 USB2 host and OTG, SDIO, I2S, UART, SPI, I2C and PWMs. 13 14if ROCKCHIP_PX30 15 16config ROCKCHIP_RK3326 17 bool "Support Rockchip RK3326 " 18 help 19 RK3326 can use most code from PX30, but at some situations we have 20 to distinguish between RK3326 and PX30, so this macro gives help. 21 It is usually selected in rk3326 board defconfig. 22endif 23 24config ROCKCHIP_RK3036 25 bool "Support Rockchip RK3036" 26 select CPU_V7 27 select SUPPORT_SPL 28 select SUPPORT_TPL 29 select SPL 30 select TPL 31 select BOARD_LATE_INIT 32 select ROCKCHIP_BROM_HELPER 33 select TPL_NEEDS_SEPARATE_TEXT_BASE if TPL 34 select TPL_NEEDS_SEPARATE_STACK if TPL 35 select DEBUG_UART_BOARD_INIT 36 select ARM_SMCCC 37 help 38 The Rockchip RK3036 is a ARM-based SoC with a dual-core Cortex-A7 39 including NEON and GPU, Mali-400 graphics, several DDR3 options 40 and video codec support. Peripherals include Gigabit Ethernet, 41 USB2 host and OTG, SDIO, I2S, UART, SPI, I2C and PWMs. 42 43config ROCKCHIP_RK3128 44 bool "Support Rockchip RK3128" 45 select CPU_V7 46 select GICV2 47 select ARM_SMCCC 48 help 49 The Rockchip RK3128 is a ARM-based SoC with a quad-core Cortex-A7 50 including NEON and GPU, Mali-400 graphics, several DDR3 options 51 and video codec support. Peripherals include Gigabit Ethernet, 52 USB2 host and OTG, SDIO, I2S, UART, SPI, I2C and PWMs. 53 54if ROCKCHIP_RK3128 55 56config ROCKCHIP_RK3126 57 bool "Support Rockchip RK3126 " 58 help 59 RK3126 can use most code from RK3128, but at some situations we have 60 to distinguish between RK3126 and RK3128, so this macro gives help. 61 It is usually selected in rk3126 board defconfig. 62endif 63 64config ROCKCHIP_RK3066 65 bool "Support Rockchip RK3066" 66 select CPU_V7 67 select SUPPORT_SPL 68 select SUPPORT_TPL 69 select SPL 70 select TPL 71 select BOARD_LATE_INIT 72 select ROCKCHIP_BROM_HELPER 73 select SPL_ROCKCHIP_EARLYRETURN_TO_BROM 74 help 75 The Rockchip RK3066 is a ARM-based SoC with a dual-core Cortex-A9 76 including NEON and GPU, Mali-400 graphics, several DDR3 options 77 and video codec support. Peripherals include ethernet, USB2 host 78 and OTG, SDIO, I2S, UART, SPI, I2C and PWMs. 79 80config ROCKCHIP_RK3188 81 bool "Support Rockchip RK3188" 82 select CPU_V7 83 select SPL_BOARD_INIT if SPL 84 select SUPPORT_SPL 85 select SPL 86 select SPL_CLK 87 select SPL_REGMAP 88 select SPL_SYSCON 89 select SPL_RAM 90 select SPL_DRIVERS_MISC_SUPPORT 91 select SPL_ROCKCHIP_EARLYRETURN_TO_BROM 92 select BOARD_LATE_INIT 93 select ROCKCHIP_BROM_HELPER 94 help 95 The Rockchip RK3188 is a ARM-based SoC with a quad-core Cortex-A9 96 including NEON and GPU, 512KB L2 cache, Mali-400 graphics, two 97 video interfaces, several memory options and video codec support. 98 Peripherals include Fast Ethernet, USB2 host and OTG, SDIO, I2S, 99 UART, SPI, I2C and PWMs. 100 101config ROCKCHIP_RK322X 102 bool "Support Rockchip RK3228/RK3229" 103 select CPU_V7 104 select SUPPORT_SPL 105 select SUPPORT_TPL 106 select SPL 107 select TPL 108 select TPL_NEEDS_SEPARATE_TEXT_BASE if SPL 109 select TPL_NEEDS_SEPARATE_STACK if TPL 110 select SPL_DRIVERS_MISC_SUPPORT 111 imply SPL_SERIAL_SUPPORT 112 imply TPL_SERIAL_SUPPORT 113 select ROCKCHIP_BROM_HELPER 114 select DEBUG_UART_BOARD_INIT 115 select TPL_LIBCOMMON_SUPPORT 116 select TPL_LIBGENERIC_SUPPORT 117 select GICV2 118 select ARM_SMCCC 119 help 120 The Rockchip RK3229 is a ARM-based SoC with a dual-core Cortex-A7 121 including NEON and GPU, Mali-400 graphics, several DDR3 options 122 and video codec support. Peripherals include Gigabit Ethernet, 123 USB2 host and OTG, SDIO, I2S, UART, SPI, I2C and PWMs. 124 125config ROCKCHIP_RK3288 126 bool "Support Rockchip RK3288" 127 select CPU_V7 128 select SPL_BOARD_INIT if SPL 129 select SUPPORT_SPL 130 select SPL 131 select GICV2 132 select ARM_SMCCC 133 help 134 The Rockchip RK3288 is a ARM-based SoC with a quad-core Cortex-A17 135 including NEON and GPU, 1MB L2 cache, Mali-T7 graphics, two 136 video interfaces supporting HDMI and eDP, several DDR3 options 137 and video codec support. Peripherals include Gigabit Ethernet, 138 USB2 host and OTG, SDIO, I2S, UARTs, SPI, I2C and PWMs. 139 140config ROCKCHIP_RK3308 141 bool "Support Rockchip RK3308" 142 select ARM64 if !ARM64_BOOT_AARCH32 143 select DEBUG_UART_BOARD_INIT 144 select ARM_SMCCC 145 help 146 The Rockchip RK3308 is a ARM-based Soc which embeded with quad 147 Cortex-A35 and highly integrated audio interfaces. 148 149config ROCKCHIP_RK3328 150 bool "Support Rockchip RK3328" 151 select ARM64 152 select GICV2 153 select SUPPORT_SPL 154 select SUPPORT_TPL 155 select SPL 156 select TPL 157 select TPL_NEEDS_SEPARATE_TEXT_BASE if TPL 158 select TPL_NEEDS_SEPARATE_STACK if TPL 159 imply SPL_SERIAL_SUPPORT 160 imply TPL_SERIAL_SUPPORT 161 imply SPL_SEPARATE_BSS 162 select DEBUG_UART_BOARD_INIT 163 select ARM_SMCCC 164 help 165 The Rockchip RK3328 is a ARM-based SoC with a quad-core Cortex-A53. 166 including NEON and GPU, 1MB L2 cache, Mali-T7 graphics, two 167 video interfaces supporting HDMI and eDP, several DDR3 options 168 and video codec support. Peripherals include Gigabit Ethernet, 169 USB2 host and OTG, SDIO, I2S, UARTs, SPI, I2C and PWMs. 170 171if ROCKCHIP_RK3328 172 173config TPL_LDSCRIPT 174 default "arch/arm/mach-rockchip/u-boot-tpl-v8.lds" 175 176config TPL_TEXT_BASE 177 default 0xff091000 178 179config TPL_MAX_SIZE 180 default 28672 181 182config TPL_STACK 183 default 0xff098000 184 185endif 186 187config ROCKCHIP_RK3368 188 bool "Support Rockchip RK3368" 189 select ARM64 190 select SUPPORT_SPL 191 select SUPPORT_TPL 192 select TPL_NEEDS_SEPARATE_TEXT_BASE if SPL 193 select TPL_NEEDS_SEPARATE_STACK if TPL 194 imply SPL_SEPARATE_BSS 195 imply SPL_SERIAL_SUPPORT 196 imply TPL_SERIAL_SUPPORT 197 select DEBUG_UART_BOARD_INIT 198 select GICV2 199 select ARM_SMCCC 200 help 201 The Rockchip RK3368 is a ARM-based SoC with a octa-core (organised 202 into a big and little cluster with 4 cores each) Cortex-A53 including 203 AdvSIMD, 512KB L2 cache (for the big cluster) and 256 KB L2 cache 204 (for the little cluster), PowerVR G6110 based graphics, one video 205 output processor supporting LVDS/HDMI/eDP, several DDR3 options and 206 video codec support. 207 208 On-chip peripherals include Gigabit Ethernet, USB2 host and OTG, SDIO, 209 I2S, UARTs, SPI, I2C and PWMs. 210 211if ROCKCHIP_RK3368 212 213config TPL_LDSCRIPT 214 default "arch/arm/mach-rockchip/rk3368/u-boot-tpl.lds" 215 216config TPL_TEXT_BASE 217 default 0xff8c1000 218 219config TPL_MAX_SIZE 220 default 28672 221 222config TPL_STACK 223 default 0xff8cffff 224 225endif 226 227config ROCKCHIP_RK3399 228 bool "Support Rockchip RK3399" 229 select ARM64 230 select SUPPORT_SPL 231 select SPL 232 select SPL_SEPARATE_BSS 233 select SPL_SERIAL_SUPPORT 234 select SPL_DRIVERS_MISC_SUPPORT 235 select DEBUG_UART_BOARD_INIT 236 select GICV3 237 select BOARD_LATE_INIT 238 select ROCKCHIP_BROM_HELPER 239 select ARM_SMCCC 240 help 241 The Rockchip RK3399 is a ARM-based SoC with a dual-core Cortex-A72 242 and quad-core Cortex-A53. 243 including NEON and GPU, 1MB L2 cache, Mali-T7 graphics, two 244 video interfaces supporting HDMI and eDP, several DDR3 options 245 and video codec support. Peripherals include Gigabit Ethernet, 246 USB2 host and OTG, SDIO, I2S, UARTs, SPI, I2C and PWMs. 247 248config ROCKCHIP_RV1108 249 bool "Support Rockchip RV1108" 250 select CPU_V7 251 select SUPPORT_SPL 252 select SPL 253 help 254 The Rockchip RV1108 is a ARM-based SoC with a single-core Cortex-A7 255 and a DSP. 256 257config SPL_ROCKCHIP_BACK_TO_BROM 258 bool "SPL returns to bootrom" 259 default y if ROCKCHIP_RK3036 260 select ROCKCHIP_BROM_HELPER 261 depends on SPL 262 help 263 Rockchip SoCs have ability to load SPL & U-Boot binary. If enabled, 264 SPL will return to the boot rom, which will then load the U-Boot 265 binary to keep going on. 266 267config TPL_ROCKCHIP_BACK_TO_BROM 268 bool "TPL returns to bootrom" 269 default y if ROCKCHIP_RK3368 || ROCKCHIP_RK3328 270 select ROCKCHIP_BROM_HELPER 271 depends on TPL 272 help 273 Rockchip SoCs have ability to load SPL & U-Boot binary. If enabled, 274 SPL will return to the boot rom, which will then load the U-Boot 275 binary to keep going on. 276 277config ARM64_BOOT_AARCH32 278 bool "Support Boot an ARM64 on AArch32 execution state" 279 select CPU_V7 280 default n 281 help 282 If you want to boot an ARM64 processor on 32-bit mode, say y here. 283 284config ROCKCHIP_BOOT_MODE_REG 285 hex "Rockchip boot mode flag register address" 286 default 0xff010200 if ROCKCHIP_PX30 287 default 0x200081c8 if ROCKCHIP_RK3036 288 default 0x100a0038 if ROCKCHIP_RK3128 289 default 0x20004040 if ROCKCHIP_RK3188 290 default 0x110005c8 if ROCKCHIP_RK322X 291 default 0xff730094 if ROCKCHIP_RK3288 292 default 0xff000500 if ROCKCHIP_RK3308 293 default 0xff1005c8 if ROCKCHIP_RK3328 294 default 0xff738200 if ROCKCHIP_RK3368 295 default 0xff320300 if ROCKCHIP_RK3399 296 default 0x10300580 if ROCKCHIP_RV1108 297 default 0 298 help 299 The Soc will enter to different boot mode(defined in asm/arch/boot_mode.h) 300 according to the value from this register. 301 302config ROCKCHIP_STIMER_BASE 303 hex "Rockchip Secure timer base address" 304 default 0xff220020 if ROCKCHIP_PX30 305 default 0x200440a0 if ROCKCHIP_RK3036 306 default 0x2000e000 if ROCKCHIP_RK3066 307 default 0x20018020 if ROCKCHIP_RK3126 308 default 0x200440a0 if ROCKCHIP_RK3128 309 default 0x2000e000 if ROCKCHIP_RK3188 310 default 0x110d0020 if ROCKCHIP_RK322X 311 default 0xff810020 if ROCKCHIP_RK3288 312 default 0xff1d0020 if ROCKCHIP_RK3328 313 default 0xff830020 if ROCKCHIP_RK3368 314 default 0xff8680a0 if ROCKCHIP_RK3399 315 default 0x10350020 if ROCKCHIP_RV1108 316 default 0 317 help 318 The secure timer inited in SPL/TPL in secure word, ARM generic timer 319 works after this timer work. 320 321config ROCKCHIP_IRAM_START_ADDR 322 hex "Rockchip Secure timer base address" 323 default 0xff0e0000 if ROCKCHIP_PX30 324 default 0x10080000 if ROCKCHIP_RK3036 325 default 0x10080000 if ROCKCHIP_RK3128 326 default 0x10080000 if ROCKCHIP_RK3188 327 default 0x10080000 if ROCKCHIP_RK322X 328 default 0xff700000 if ROCKCHIP_RK3288 329 default 0xff091000 if ROCKCHIP_RK3328 330 default 0xff8c0000 if ROCKCHIP_RK3368 331 default 0xff8c0000 if ROCKCHIP_RK3399 332 default 0x10080000 if ROCKCHIP_RV1108 333 default 0 334 help 335 The IRAM start addr is to locate variant of the boot device from 336 bootrom. 337 338config ROCKCHIP_SPL_RESERVE_IRAM 339 hex "Size of IRAM reserved in SPL" 340 default 0 341 help 342 SPL may need reserve memory for firmware loaded by SPL, whose load 343 address is in IRAM and may overlay with SPL text area if not 344 reserved. 345 346config ROCKCHIP_BROM_HELPER 347 bool 348 349config SPL_ROCKCHIP_EARLYRETURN_TO_BROM 350 bool "SPL requires early-return (for RK3188-style BROM) to BROM" 351 depends on SPL && ENABLE_ARM_SOC_BOOT0_HOOK 352 help 353 Some Rockchip BROM variants (e.g. on the RK3188) load the 354 first stage in segments and enter multiple times. E.g. on 355 the RK3188, the first 1KB of the first stage are loaded 356 first and entered; after returning to the BROM, the 357 remainder of the first stage is loaded, but the BROM 358 re-enters at the same address/to the same code as previously. 359 360 This enables support code in the BOOT0 hook for the SPL stage 361 to allow multiple entries. 362 363config TPL_ROCKCHIP_EARLYRETURN_TO_BROM 364 bool "TPL requires early-return (for RK3188-style BROM) to BROM" 365 depends on TPL && ENABLE_ARM_SOC_BOOT0_HOOK 366 help 367 Some Rockchip BROM variants (e.g. on the RK3188) load the 368 first stage in segments and enter multiple times. E.g. on 369 the RK3188, the first 1KB of the first stage are loaded 370 first and entered; after returning to the BROM, the 371 remainder of the first stage is loaded, but the BROM 372 re-enters at the same address/to the same code as previously. 373 374 This enables support code in the BOOT0 hook for the TPL stage 375 to allow multiple entries. 376 377config SPL_MMC_SUPPORT 378 default y if !SPL_ROCKCHIP_BACK_TO_BROM 379 380config RKIMG_BOOTLOADER 381 bool "Support for Rockchip Image Bootloader boot flow" 382 default n 383 help 384 Rockchip use this to boot Android during development cycle and for 385 other OS, typical content kernel.img with zImage/Image, boot.img and 386 recovery.img with Ramdisk, packed with 'KNRL' header; and resource.img 387 with dtb and uboot/kernel logo bmp, vendor storage for custom info 388 like SN and MAC address. 389 390config ROCKCHIP_RESOURCE_IMAGE 391 bool "Enable support for rockchip resource image" 392 depends on RKIMG_BOOTLOADER 393 default y 394 help 395 This enables support to get dtb or logo files from 396 rockchip resource image format partition. 397 398config ROCKCHIP_VENDOR_PARTITION 399 bool "Rockchip vendor storage partition support" 400 depends on RKIMG_BOOTLOADER 401 help 402 This enable support to read/write vendor configuration data from/to 403 this partition. 404 405config USING_KERNEL_DTB 406 bool "Using dtb from Kernel/resource for U-Boot" 407 depends on RKIMG_BOOTLOADER && OF_LIVE 408 default y 409 help 410 This enable support to read dtb from resource and use it for U-Boot, 411 the uart and emmc will still using U-Boot dtb, but other devices like 412 regulator/pmic, display, usb will use dts node from kernel. 413 414config ROCKCHIP_CRC 415 bool "Rockchip CRC verify images" 416 help 417 This enable support Rockchip CRC verify images. It takes a lot of time, 418 so it is better only used for debug. 419 420config ROCKCHIP_SMCCC 421 bool "Rockchip SMCCC" 422 default y if ARM_SMCCC 423 help 424 This enable support for Rockchip SMC calls 425 426config GICV2 427 bool "ARM GICv2" 428 429config GICV3 430 bool "ARM GICv3" 431 432source "arch/arm/mach-rockchip/px30/Kconfig" 433source "arch/arm/mach-rockchip/rk3036/Kconfig" 434source "arch/arm/mach-rockchip/rk3066/Kconfig" 435source "arch/arm/mach-rockchip/rk3128/Kconfig" 436source "arch/arm/mach-rockchip/rk3188/Kconfig" 437source "arch/arm/mach-rockchip/rk322x/Kconfig" 438source "arch/arm/mach-rockchip/rk3288/Kconfig" 439source "arch/arm/mach-rockchip/rk3308/Kconfig" 440source "arch/arm/mach-rockchip/rk3328/Kconfig" 441source "arch/arm/mach-rockchip/rk3368/Kconfig" 442source "arch/arm/mach-rockchip/rk3399/Kconfig" 443source "arch/arm/mach-rockchip/rv1108/Kconfig" 444endif 445