board: rockchip: Add rk3568 evb support
[platform/kernel/u-boot.git] / arch / arm / mach-rockchip / Kconfig
index 3f28782..35bdef2 100644 (file)
@@ -1,5 +1,27 @@
 if ARCH_ROCKCHIP
 
+config ROCKCHIP_PX30
+       bool "Support Rockchip PX30"
+       select ARM64
+       select SUPPORT_SPL
+       select SUPPORT_TPL
+       select SPL
+       select TPL
+       select TPL_TINY_FRAMEWORK if TPL
+       select TPL_NEEDS_SEPARATE_TEXT_BASE if SPL
+       select TPL_NEEDS_SEPARATE_STACK if TPL
+       imply SPL_SEPARATE_BSS
+       select SPL_SERIAL_SUPPORT
+       select TPL_SERIAL_SUPPORT
+       select DEBUG_UART_BOARD_INIT
+       imply ROCKCHIP_COMMON_BOARD
+       imply SPL_ROCKCHIP_COMMON_BOARD
+       help
+         The Rockchip PX30 is a ARM-based SoC with a quad-core Cortex-A35
+         including NEON and GPU, Mali-400 graphics, several DDR3 options
+         and video codec support. Peripherals include Gigabit Ethernet,
+         USB2 host and OTG, SDIO, I2S, UART, SPI, I2C and PWMs.
+
 config ROCKCHIP_RK3036
        bool "Support Rockchip RK3036"
        select CPU_V7A
@@ -7,6 +29,7 @@ config ROCKCHIP_RK3036
        select SPL
        imply USB_FUNCTION_ROCKUSB
        imply CMD_ROCKUSB
+       imply ROCKCHIP_COMMON_BOARD
        help
          The Rockchip RK3036 is a ARM-based SoC with a dual-core Cortex-A7
          including NEON and GPU, Mali-400 graphics, several DDR3 options
@@ -16,6 +39,7 @@ config ROCKCHIP_RK3036
 config ROCKCHIP_RK3128
        bool "Support Rockchip RK3128"
        select CPU_V7A
+       imply ROCKCHIP_COMMON_BOARD
        help
          The Rockchip RK3128 is a ARM-based SoC with a quad-core Cortex-A7
          including NEON and GPU, Mali-400 graphics, several DDR3 options
@@ -34,8 +58,10 @@ config ROCKCHIP_RK3188
        select SPL_RAM
        select SPL_DRIVERS_MISC_SUPPORT
        select SPL_ROCKCHIP_EARLYRETURN_TO_BROM
+       select SPL_ROCKCHIP_BACK_TO_BROM
        select BOARD_LATE_INIT
-       select ROCKCHIP_BROM_HELPER
+       imply ROCKCHIP_COMMON_BOARD
+       imply SPL_ROCKCHIP_COMMON_BOARD
        help
          The Rockchip RK3188 is a ARM-based SoC with a quad-core Cortex-A9
          including NEON and GPU, 512KB L2 cache, Mali-400 graphics, two
@@ -57,9 +83,11 @@ config ROCKCHIP_RK322X
        select TPL_NEEDS_SEPARATE_TEXT_BASE if SPL
        select TPL_NEEDS_SEPARATE_STACK if TPL
        select SPL_DRIVERS_MISC_SUPPORT
+       imply ROCKCHIP_COMMON_BOARD
        imply SPL_SERIAL_SUPPORT
+       imply SPL_ROCKCHIP_COMMON_BOARD
        imply TPL_SERIAL_SUPPORT
-       select ROCKCHIP_BROM_HELPER
+       imply TPL_ROCKCHIP_COMMON_BOARD
        select TPL_LIBCOMMON_SUPPORT
        select TPL_LIBGENERIC_SUPPORT
        help
@@ -71,11 +99,13 @@ config ROCKCHIP_RK322X
 config ROCKCHIP_RK3288
        bool "Support Rockchip RK3288"
        select CPU_V7A
-       select SPL_BOARD_INIT if SPL
+       select OF_BOARD_SETUP
        select SUPPORT_SPL
        select SPL
        select SUPPORT_TPL
-       imply TPL_BOOTROM_SUPPORT
+       imply PRE_CONSOLE_BUFFER
+       imply ROCKCHIP_COMMON_BOARD
+       imply SPL_ROCKCHIP_COMMON_BOARD
        imply TPL_CLK
        imply TPL_DM
        imply TPL_DRIVERS_MISC_SUPPORT
@@ -87,6 +117,7 @@ config ROCKCHIP_RK3288
        imply TPL_OF_PLATDATA
        imply TPL_RAM
        imply TPL_REGMAP
+       imply TPL_ROCKCHIP_COMMON_BOARD
        imply TPL_SERIAL_SUPPORT
        imply TPL_SYSCON
        imply USB_FUNCTION_ROCKUSB
@@ -98,25 +129,43 @@ config ROCKCHIP_RK3288
          and video codec support. Peripherals include Gigabit Ethernet,
          USB2 host and OTG, SDIO, I2S, UARTs, SPI, I2C and PWMs.
 
-if ROCKCHIP_RK3288
-
-config TPL_TEXT_BASE
-       default 0xff704000
-
-config TPL_MAX_SIZE
-       default 32768
-
-config TPL_STACK
-        default 0xff718000
-
-endif
+config ROCKCHIP_RK3308
+       bool "Support Rockchip RK3308"
+       select ARM64
+       select DEBUG_UART_BOARD_INIT
+       select SUPPORT_SPL
+       select SUPPORT_TPL
+       select SPL
+       select SPL_ATF
+       select SPL_ATF_NO_PLATFORM_PARAM
+       select SPL_LOAD_FIT
+       imply ROCKCHIP_COMMON_BOARD
+       imply SPL_ROCKCHIP_COMMON_BOARD
+       imply SPL_CLK
+       imply SPL_REGMAP
+       imply SPL_SYSCON
+       imply SPL_RAM
+       imply SPL_SERIAL_SUPPORT
+       imply TPL_SERIAL_SUPPORT
+       imply SPL_SEPARATE_BSS
+       help
+         The Rockchip RK3308 is a ARM-based Soc which embedded with quad
+         Cortex-A35 and highly integrated audio interfaces.
 
 config ROCKCHIP_RK3328
        bool "Support Rockchip RK3328"
        select ARM64
        select SUPPORT_SPL
        select SPL
+       select SUPPORT_TPL
+       select TPL
+       select TPL_NEEDS_SEPARATE_TEXT_BASE if TPL
+       select TPL_NEEDS_SEPARATE_STACK if TPL
+       imply ROCKCHIP_COMMON_BOARD
+       imply ROCKCHIP_SDRAM_COMMON
+       imply SPL_ROCKCHIP_COMMON_BOARD
        imply SPL_SERIAL_SUPPORT
+       imply TPL_SERIAL_SUPPORT
        imply SPL_SEPARATE_BSS
        select ENABLE_ARM_SOC_BOOT0_HOOK
        select DEBUG_UART_BOARD_INIT
@@ -135,9 +184,12 @@ config ROCKCHIP_RK3368
        select SUPPORT_TPL
        select TPL_NEEDS_SEPARATE_TEXT_BASE if SPL
        select TPL_NEEDS_SEPARATE_STACK if TPL
+       imply ROCKCHIP_COMMON_BOARD
+       imply SPL_ROCKCHIP_COMMON_BOARD
        imply SPL_SEPARATE_BSS
        imply SPL_SERIAL_SUPPORT
        imply TPL_SERIAL_SUPPORT
+       imply TPL_ROCKCHIP_COMMON_BOARD
        help
          The Rockchip RK3368 is a ARM-based SoC with a octa-core (organised
          into a big and little cluster with 4 cores each) Cortex-A53 including
@@ -149,19 +201,6 @@ config ROCKCHIP_RK3368
          On-chip peripherals include Gigabit Ethernet, USB2 host and OTG, SDIO,
          I2S, UARTs, SPI, I2C and PWMs.
 
-if ROCKCHIP_RK3368
-
-config TPL_TEXT_BASE
-        default 0xff8c1000
-
-config TPL_MAX_SIZE
-        default 28672
-
-config TPL_STACK
-        default 0xff8cffff
-
-endif
-
 config ROCKCHIP_RK3399
        bool "Support Rockchip RK3399"
        select ARM64
@@ -169,7 +208,6 @@ config ROCKCHIP_RK3399
        select SUPPORT_TPL
        select SPL
        select SPL_ATF
-       select SPL_ATF_NO_PLATFORM_PARAM if SPL_ATF
        select SPL_BOARD_INIT if SPL
        select SPL_LOAD_FIT
        select SPL_CLK if SPL
@@ -191,13 +229,15 @@ config ROCKCHIP_RK3399
        select DM_PMIC
        select DM_REGULATOR_FIXED
        select BOARD_LATE_INIT
-       select ROCKCHIP_BROM_HELPER
+       imply PRE_CONSOLE_BUFFER
+       imply ROCKCHIP_COMMON_BOARD
+       imply ROCKCHIP_SDRAM_COMMON
+       imply SPL_ATF_NO_PLATFORM_PARAM if SPL_ATF
+       imply SPL_ROCKCHIP_COMMON_BOARD
        imply TPL_SERIAL_SUPPORT
        imply TPL_LIBCOMMON_SUPPORT
        imply TPL_LIBGENERIC_SUPPORT
        imply TPL_SYS_MALLOC_SIMPLE
-       imply TPL_BOARD_INIT
-       imply TPL_BOOTROM_SUPPORT
        imply TPL_DRIVERS_MISC_SUPPORT
        imply TPL_OF_CONTROL
        imply TPL_DM
@@ -206,6 +246,9 @@ config ROCKCHIP_RK3399
        imply TPL_RAM
        imply TPL_CLK
        imply TPL_TINY_MEMSET
+       imply TPL_ROCKCHIP_COMMON_BOARD
+       imply SYS_BOOTCOUNT_SINGLEWORD if BOOTCOUNT_LIMIT
+       imply CMD_BOOTCOUNT if BOOTCOUNT_LIMIT
        help
          The Rockchip RK3399 is a ARM-based SoC with a dual-core Cortex-A72
          and quad-core Cortex-A53.
@@ -214,25 +257,27 @@ config ROCKCHIP_RK3399
          and video codec support. Peripherals include Gigabit Ethernet,
          USB2 host and OTG, SDIO, I2S, UARTs, SPI, I2C and PWMs.
 
-if ROCKCHIP_RK3399
-
-config TPL_LDSCRIPT
-       default "arch/arm/mach-rockchip/u-boot-tpl-v8.lds"
-
-config TPL_TEXT_BASE
-        default 0xff8c2000
-
-config TPL_MAX_SIZE
-        default 188416
-
-config TPL_STACK
-        default 0xff8effff
-
-endif
+config ROCKCHIP_RK3568
+       bool "Support Rockchip RK3568"
+       select ARM64
+       select CLK
+       select PINCTRL
+       select RAM
+       select REGMAP
+       select SYSCON
+       select BOARD_LATE_INIT
+       imply ROCKCHIP_COMMON_BOARD
+       help
+         The Rockchip RK3568 is a ARM-based SoC with quad-core Cortex-A55,
+         including NEON and GPU, 512K L3 cache, Mali-G52 based graphics,
+         two video interfaces supporting HDMI and eDP, several DDR3 options
+         and video codec support. Peripherals include Gigabit Ethernet,
+         USB2 host and OTG, SDIO, I2S, UARTs, SPI, I2C and PWMs.
 
 config ROCKCHIP_RV1108
        bool "Support Rockchip RV1108"
        select CPU_V7A
+       imply ROCKCHIP_COMMON_BOARD
        help
          The Rockchip RV1108 is a ARM-based SoC with a single-core Cortex-A7
          and a DSP.
@@ -249,6 +294,7 @@ config SPL_ROCKCHIP_BACK_TO_BROM
        bool "SPL returns to bootrom"
        default y if ROCKCHIP_RK3036
        select ROCKCHIP_BROM_HELPER
+       select SPL_BOOTROM_SUPPORT
        depends on SPL
        help
          Rockchip SoCs have ability to load SPL & U-Boot binary. If enabled,
@@ -259,22 +305,39 @@ config TPL_ROCKCHIP_BACK_TO_BROM
        bool "TPL returns to bootrom"
        default y
        select ROCKCHIP_BROM_HELPER
+       select TPL_BOOTROM_SUPPORT
        depends on TPL
        help
          Rockchip SoCs have ability to load SPL & U-Boot binary. If enabled,
           SPL will return to the boot rom, which will then load the U-Boot
           binary to keep going on.
 
+config ROCKCHIP_COMMON_BOARD
+       bool "Rockchip common board file"
+       help
+         Rockchip SoCs have similar boot process, Common board file is mainly
+         in charge of common process of board_init() and board_late_init() for
+         U-Boot proper.
+
+config SPL_ROCKCHIP_COMMON_BOARD
+       bool "Rockchip SPL common board file"
+       depends on SPL
+       help
+         Rockchip SoCs have similar boot process, SPL is mainly in charge of
+         load and boot Trust ATF/U-Boot firmware, and DRAM init if there is
+         no TPL for the board.
+
+config TPL_ROCKCHIP_COMMON_BOARD
+       bool "Rockchip TPL common board file"
+       depends on TPL
+       help
+         Rockchip SoCs have similar boot process, prefer to use TPL for DRAM
+         init and back to bootrom, and SPL as Trust ATF/U-Boot loader. TPL
+         common board is a basic TPL board init which can be shared for most
+         of SoCs to avoid copy-paste for different SoCs.
+
 config ROCKCHIP_BOOT_MODE_REG
        hex "Rockchip boot mode flag register address"
-       default 0x200081c8 if ROCKCHIP_RK3036
-       default 0x20004040 if ROCKCHIP_RK3188
-       default 0x110005c8 if ROCKCHIP_RK322X
-       default 0xff730094 if ROCKCHIP_RK3288
-       default 0xff738200 if ROCKCHIP_RK3368
-       default 0xff320300 if ROCKCHIP_RK3399
-       default 0x10300580 if ROCKCHIP_RV1108
-       default 0
        help
          The Soc will enter to different boot mode(defined in asm/arch-rockchip/boot_mode.h)
          according to the value from this register.
@@ -321,13 +384,25 @@ config TPL_ROCKCHIP_EARLYRETURN_TO_BROM
 config SPL_MMC_SUPPORT
        default y if !SPL_ROCKCHIP_BACK_TO_BROM
 
+config ROCKCHIP_SPI_IMAGE
+       bool "Build a SPI image for rockchip"
+       depends on HAS_ROM
+       help
+         Some Rockchip SoCs support booting from SPI flash. Enable this
+         option to produce a 4MB SPI-flash image (called u-boot.rom)
+         containing U-Boot. The image is built by binman. U-Boot sits near
+         the start of the image.
+
+source "arch/arm/mach-rockchip/px30/Kconfig"
 source "arch/arm/mach-rockchip/rk3036/Kconfig"
 source "arch/arm/mach-rockchip/rk3128/Kconfig"
 source "arch/arm/mach-rockchip/rk3188/Kconfig"
 source "arch/arm/mach-rockchip/rk322x/Kconfig"
 source "arch/arm/mach-rockchip/rk3288/Kconfig"
+source "arch/arm/mach-rockchip/rk3308/Kconfig"
 source "arch/arm/mach-rockchip/rk3328/Kconfig"
 source "arch/arm/mach-rockchip/rk3368/Kconfig"
 source "arch/arm/mach-rockchip/rk3399/Kconfig"
+source "arch/arm/mach-rockchip/rk3568/Kconfig"
 source "arch/arm/mach-rockchip/rv1108/Kconfig"
 endif