diff mbox series

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

Message ID 20220304163018.3167841-3-andre.przywara@arm.com
State Awaiting Upstream
Delegated to: Tom Rini
Headers show
Series vexpress64: OF_CONTROL and ARMv8-R64 support | expand

Commit Message

Andre Przywara March 4, 2022, 4:30 p.m. UTC
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@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(-)

Comments

Tom Rini April 3, 2022, 12:13 a.m. UTC | #1
On Fri, Mar 04, 2022 at 04:30:09PM +0000, Andre Przywara wrote:

> 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@arm.com>

Applied to u-boot/next, thanks!
diff mbox series

Patch

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