[PATCH 02/11] vexpress64: Kconfig: move board definitions out of arch/arm

Andre Przywara andre.przywara at arm.com
Fri Mar 4 17:30:09 CET 2022


At the moment we define three "VExpress64" boards in arch/arm/Kconfig,
plus have a second Kconfig file in board/armltd/Kconfig.
One of those three boards is actually bogus (TARGET_VEXPRESS64_AEMV8A),
that stanza looks like being forgotten in a previous cleanup.

To remove the clutter from the generic Kconfig file, just define some
ARCH_VEXPRESS64 symbol there, enable some common options, and do the
board/model specific configuration in the board/armltd Kconfig file.

That allows to streamline and fine tune the configuration later, and
to also pull a lot of "non user choices" out of the defconfigs.

Signed-off-by: Andre Przywara <andre.przywara at arm.com>
---
 arch/arm/Kconfig                       | 28 +++-----------------------
 board/armltd/vexpress64/Kconfig        | 20 +++++++++++++++++-
 configs/vexpress_aemv8a_juno_defconfig |  3 ++-
 configs/vexpress_aemv8a_semi_defconfig |  4 +---
 4 files changed, 25 insertions(+), 30 deletions(-)

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 391a77c2b4..34dbd73cce 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -1235,34 +1235,12 @@ config ARCH_TEGRA
 	imply DISTRO_DEFAULTS
 	imply FAT_WRITE
 
-config TARGET_VEXPRESS64_AEMV8A
-	bool "Support vexpress_aemv8a"
+config ARCH_VEXPRESS64
+	bool "Support ARMv8 Arm Ltd. VExpress based boards and models"
 	select ARM64
-	select GPIO_EXTRA_HEADER
-	select PL01X_SERIAL
-
-config TARGET_VEXPRESS64_BASE_FVP
-	bool "Support Versatile Express ARMv8a FVP BASE model"
-	select ARM64
-	select GPIO_EXTRA_HEADER
-	select PL01X_SERIAL
-	select SEMIHOSTING
-
-config TARGET_VEXPRESS64_JUNO
-	bool "Support Versatile Express Juno Development Platform"
-	select ARM64
-	select GPIO_EXTRA_HEADER
-	select PL01X_SERIAL
 	select DM
-	select OF_CONTROL
-	select CLK
 	select DM_SERIAL
-	select ARM_PSCI_FW
-	select PSCI_RESET
-	select DM_ETH
-	select BLK
-	select USB
-	imply OF_HAS_PRIOR_STAGE
+	select PL01X_SERIAL
 
 config TARGET_TOTAL_COMPUTE
 	bool "Support Total Compute Platform"
diff --git a/board/armltd/vexpress64/Kconfig b/board/armltd/vexpress64/Kconfig
index 4aab3f092e..55fe0118e1 100644
--- a/board/armltd/vexpress64/Kconfig
+++ b/board/armltd/vexpress64/Kconfig
@@ -1,4 +1,4 @@
-if TARGET_VEXPRESS64_BASE_FVP || TARGET_VEXPRESS64_JUNO
+if ARCH_VEXPRESS64
 
 config SYS_BOARD
 	default "vexpress64"
@@ -9,6 +9,24 @@ config SYS_VENDOR
 config SYS_CONFIG_NAME
 	default "vexpress_aemv8"
 
+choice
+	prompt "VExpress64 board variant"
+
+config TARGET_VEXPRESS64_BASE_FVP
+	bool "Support Versatile Express ARMv8a FVP BASE model"
+	select SEMIHOSTING
+
+config TARGET_VEXPRESS64_JUNO
+	bool "Support Versatile Express Juno Development Platform"
+	select DM_ETH
+	select USB
+	select OF_CONTROL
+	select CLK
+	select BLK
+	imply OF_HAS_PRIOR_STAGE
+
+endchoice
+
 config JUNO_DTB_PART
 	string "NOR flash partition holding DTB"
 	default "board.dtb"
diff --git a/configs/vexpress_aemv8a_juno_defconfig b/configs/vexpress_aemv8a_juno_defconfig
index e02124cc7f..2fcbcce308 100644
--- a/configs/vexpress_aemv8a_juno_defconfig
+++ b/configs/vexpress_aemv8a_juno_defconfig
@@ -1,5 +1,5 @@
 CONFIG_ARM=y
-CONFIG_TARGET_VEXPRESS64_JUNO=y
+CONFIG_ARCH_VEXPRESS64=y
 CONFIG_SYS_TEXT_BASE=0xe0000000
 CONFIG_SYS_MALLOC_LEN=0x810000
 CONFIG_SYS_MALLOC_F_LEN=0x2000
@@ -10,6 +10,7 @@ CONFIG_ENV_SIZE=0x10000
 CONFIG_ENV_SECT_SIZE=0x10000
 CONFIG_DEFAULT_DEVICE_TREE="juno-r2"
 CONFIG_IDENT_STRING=" vexpress_aemv8a"
+CONFIG_TARGET_VEXPRESS64_JUNO=y
 CONFIG_DISTRO_DEFAULTS=y
 CONFIG_REMAKE_ELF=y
 CONFIG_SYS_LOAD_ADDR=0x90000000
diff --git a/configs/vexpress_aemv8a_semi_defconfig b/configs/vexpress_aemv8a_semi_defconfig
index 448d012e1c..24af87904f 100644
--- a/configs/vexpress_aemv8a_semi_defconfig
+++ b/configs/vexpress_aemv8a_semi_defconfig
@@ -1,6 +1,6 @@
 CONFIG_ARM=y
 # CONFIG_ARM64_CRC32 is not set
-CONFIG_TARGET_VEXPRESS64_BASE_FVP=y
+CONFIG_ARCH_VEXPRESS64=y
 CONFIG_SYS_TEXT_BASE=0x88000000
 CONFIG_SYS_MALLOC_LEN=0x840000
 CONFIG_SYS_MALLOC_F_LEN=0x2000
@@ -38,7 +38,6 @@ CONFIG_CMD_UBI=y
 # CONFIG_EFI_PARTITION is not set
 CONFIG_ENV_IS_IN_FLASH=y
 CONFIG_ENV_ADDR=0xFFC0000
-CONFIG_DM=y
 # CONFIG_MMC is not set
 CONFIG_MTD=y
 CONFIG_MTD_NOR_FLASH=y
@@ -46,5 +45,4 @@ CONFIG_FLASH_CFI_DRIVER=y
 CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
 CONFIG_SYS_FLASH_PROTECTION=y
 CONFIG_SYS_FLASH_CFI=y
-CONFIG_DM_SERIAL=y
 CONFIG_OF_LIBFDT=y
-- 
2.25.1



More information about the U-Boot mailing list