Merge tag 'dm-pull-29jul19' of https://gitlab.denx.de/u-boot/custodians/u-boot-dm
[oweals/u-boot.git] / arch / arm / mach-rockchip / Kconfig
index 52b83fc61146e20b0fa8d7510fc4b008af5b0b75..e337d06b9997c7f71e69a1cb16af365def073859 100644 (file)
@@ -7,6 +7,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 +17,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 +36,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 +61,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 +77,11 @@ config ROCKCHIP_RK322X
 config ROCKCHIP_RK3288
        bool "Support Rockchip RK3288"
        select CPU_V7A
-       select SPL_BOARD_INIT if SPL
        select SUPPORT_SPL
        select SPL
        select SUPPORT_TPL
-       imply TPL_BOOTROM_SUPPORT
+       imply ROCKCHIP_COMMON_BOARD
+       imply SPL_ROCKCHIP_COMMON_BOARD
        imply TPL_CLK
        imply TPL_DM
        imply TPL_DRIVERS_MISC_SUPPORT
@@ -87,6 +93,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
@@ -103,6 +110,8 @@ config ROCKCHIP_RK3328
        select ARM64
        select SUPPORT_SPL
        select SPL
+       imply ROCKCHIP_COMMON_BOARD
+       imply SPL_ROCKCHIP_COMMON_BOARD
        imply SPL_SERIAL_SUPPORT
        imply SPL_SEPARATE_BSS
        select ENABLE_ARM_SOC_BOOT0_HOOK
@@ -122,9 +131,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
@@ -165,13 +177,12 @@ config ROCKCHIP_RK3399
        select DM_PMIC
        select DM_REGULATOR_FIXED
        select BOARD_LATE_INIT
-       select ROCKCHIP_BROM_HELPER
+       imply ROCKCHIP_COMMON_BOARD
+       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
@@ -180,6 +191,7 @@ config ROCKCHIP_RK3399
        imply TPL_RAM
        imply TPL_CLK
        imply TPL_TINY_MEMSET
+       imply TPL_ROCKCHIP_COMMON_BOARD
        help
          The Rockchip RK3399 is a ARM-based SoC with a dual-core Cortex-A72
          and quad-core Cortex-A53.
@@ -191,6 +203,7 @@ config ROCKCHIP_RK3399
 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.
@@ -207,6 +220,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,
@@ -217,22 +231,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 ""
+       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-pase 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.