[PATCH 1/9] arm: hpe: Rename ARCH_GXP to ARCH_HPE and add GSC SoC choice

Jorge Cisneros jorge.cisneros at hpe.com
Wed Apr 8 21:24:13 CEST 2026


Rename ARCH_GXP to ARCH_HPE to serve as an umbrella config for all HPE
BMC SoCs. Add a choice menu under mach-hpe to select between:
- HPE_GXP: Gen11 (GXP) BMC SoC (ARMv7)
- HPE_GSC: Gen12 (GSC) BMC SoC (ARMv8)

Update arch/arm/Makefile to use the new CONFIG_ARCH_HPE symbol and
migrate the existing gxp_defconfig. Add stub Kconfig files for the GSC
SoC and board to maintain a valid Kconfig tree.

Signed-off-by: Jorge Cisneros <jorge.cisneros at hpe.com>
---
 arch/arm/Kconfig               |  9 ++++++---
 arch/arm/Makefile              |  2 +-
 arch/arm/mach-hpe/Kconfig      | 33 +++++++++++++++++++++++++++++++++
 arch/arm/mach-hpe/Makefile     |  1 +
 arch/arm/mach-hpe/gsc/Kconfig  | 27 +++++++++++++++++++++++++++
 arch/arm/mach-hpe/gsc/Makefile |  1 +
 arch/arm/mach-hpe/gxp/Kconfig  |  2 +-
 board/hpe/gsc/Kconfig          | 18 ++++++++++++++++++
 configs/gxp_defconfig          |  2 +-
 9 files changed, 89 insertions(+), 6 deletions(-)

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index cd6a454fd60..509a593eb77 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -2182,11 +2182,14 @@ config TARGET_XENGUEST_ARM64
 	select XEN_SERIAL
 	imply OF_HAS_PRIOR_STAGE
 
-config ARCH_GXP
-	bool "Support HPE GXP SoCs"
+config ARCH_HPE
+	bool "Support HPE SoCs"
 	select DM
 	select OF_CONTROL
 	imply CMD_DM
+	help
+	  Support for HPE BMC SoCs including the GXP (Gen11)
+	  and GSC (Gen12) server management controllers.
 
 endchoice
 
@@ -2290,7 +2293,7 @@ source "arch/arm/mach-davinci/Kconfig"
 
 source "arch/arm/mach-exynos/Kconfig"
 
-source "arch/arm/mach-hpe/gxp/Kconfig"
+source "arch/arm/mach-hpe/Kconfig"
 
 source "arch/arm/mach-highbank/Kconfig"
 
diff --git a/arch/arm/Makefile b/arch/arm/Makefile
index b36b0742580..4a60cd94a66 100644
--- a/arch/arm/Makefile
+++ b/arch/arm/Makefile
@@ -60,7 +60,7 @@ machine-$(CONFIG_ARCH_BCMBCA)		+= bcmbca
 machine-$(CONFIG_ARCH_BCMSTB)		+= bcmstb
 machine-$(CONFIG_ARCH_DAVINCI)		+= davinci
 machine-$(CONFIG_ARCH_EXYNOS)		+= exynos
-machine-$(CONFIG_ARCH_GXP)		+= hpe
+machine-$(CONFIG_ARCH_HPE)		+= hpe
 machine-$(CONFIG_ARCH_HIGHBANK)		+= highbank
 machine-$(CONFIG_ARCH_HISTB)		+= histb
 machine-$(CONFIG_ARCH_IPQ40XX)		+= ipq40xx
diff --git a/arch/arm/mach-hpe/Kconfig b/arch/arm/mach-hpe/Kconfig
new file mode 100644
index 00000000000..23840721435
--- /dev/null
+++ b/arch/arm/mach-hpe/Kconfig
@@ -0,0 +1,33 @@
+if ARCH_HPE
+
+choice
+	prompt "HPE SoC select"
+	depends on ARCH_HPE
+	default HPE_GXP
+	help
+	  Select the HPE SoC variant. GXP is used in Gen11
+	  servers and GSC is used in Gen12 servers.
+
+config HPE_GXP
+	bool "Support HPE GXP SoC"
+	help
+	  Support for the HPE GXP SoC, an ARM-based BMC
+	  used in HPE ProLiant Gen11 servers.
+
+config HPE_GSC
+	bool "Support HPE GSC SoC"
+	select DM
+	select SOC_GSC
+	select OF_CONTROL
+	select ARCH_EARLY_INIT_R
+	imply CMD_DM
+	help
+	  Support for the HPE GSC SoC, an ARM64-based BMC
+	  used in HPE ProLiant Gen12 servers.
+
+endchoice
+
+source "arch/arm/mach-hpe/gxp/Kconfig"
+source "arch/arm/mach-hpe/gsc/Kconfig"
+
+endif
diff --git a/arch/arm/mach-hpe/Makefile b/arch/arm/mach-hpe/Makefile
index afe5f7a29ee..ff566a3a047 100644
--- a/arch/arm/mach-hpe/Makefile
+++ b/arch/arm/mach-hpe/Makefile
@@ -1 +1,2 @@
 obj-$(CONFIG_SOC_GXP) += gxp/
+obj-$(CONFIG_SOC_GSC) += gsc/
diff --git a/arch/arm/mach-hpe/gsc/Kconfig b/arch/arm/mach-hpe/gsc/Kconfig
new file mode 100644
index 00000000000..9821bf6149f
--- /dev/null
+++ b/arch/arm/mach-hpe/gsc/Kconfig
@@ -0,0 +1,27 @@
+if HPE_GSC
+
+config SOC_GSC
+	bool
+	select ARM64
+
+config SYS_SOC
+	default "gsc"
+
+config GSC_I3C_HUB_DT
+	bool "Fix up the I3C Hub Node in Kernel DTS"
+	default n
+	help
+	  Enable this if I3C Hub is supported otherwise noise will show
+	  up on I3C Bus for unused populated ports.
+
+config GSC_PATCH_KERNEL_DTS_VPD
+	bool "Patch kernel DTS to add system VPD from virtual EEPROM"
+	default n
+	help
+	  Enable to patch kernel DTS to add system VPD from virtual
+	  EEPROM. This will add Vital Product Data such as serial
+	  number and model name to the kernel DTS at /.
+
+source "board/hpe/gsc/Kconfig"
+
+endif
diff --git a/arch/arm/mach-hpe/gsc/Makefile b/arch/arm/mach-hpe/gsc/Makefile
new file mode 100644
index 00000000000..f3cc6684b89
--- /dev/null
+++ b/arch/arm/mach-hpe/gsc/Makefile
@@ -0,0 +1 @@
+obj-y += reset.o
diff --git a/arch/arm/mach-hpe/gxp/Kconfig b/arch/arm/mach-hpe/gxp/Kconfig
index 2d43133ab06..42e65714ef6 100644
--- a/arch/arm/mach-hpe/gxp/Kconfig
+++ b/arch/arm/mach-hpe/gxp/Kconfig
@@ -1,4 +1,4 @@
-if ARCH_GXP
+if HPE_GXP
 
 config SOC_GXP
 	bool
diff --git a/board/hpe/gsc/Kconfig b/board/hpe/gsc/Kconfig
new file mode 100644
index 00000000000..66346e2df27
--- /dev/null
+++ b/board/hpe/gsc/Kconfig
@@ -0,0 +1,18 @@
+if SOC_GSC
+
+config SYS_BOARD
+default "gsc"
+
+config SYS_VENDOR
+default "hpe"
+
+config SYS_CONFIG_NAME
+default "gsc"
+
+config GICV3
+def_bool y
+
+config TEXT_BASE
+default 0x10000000
+
+endif
diff --git a/configs/gxp_defconfig b/configs/gxp_defconfig
index 7821759f83d..31e4d9b8ac8 100644
--- a/configs/gxp_defconfig
+++ b/configs/gxp_defconfig
@@ -1,7 +1,7 @@
 CONFIG_ARM=y
 CONFIG_SKIP_LOWLEVEL_INIT=y
 CONFIG_SYS_THUMB_BUILD=y
-CONFIG_ARCH_GXP=y
+CONFIG_ARCH_HPE=y
 CONFIG_SYS_MALLOC_LEN=0x4000000
 CONFIG_GXP_VROM_64MB=y
 CONFIG_NR_DRAM_BANKS=1

-- 
2.43.0



More information about the U-Boot mailing list