Skip to content

Commit

Permalink
ARM: hpe: Introduce the HPE GXP architecture
Browse files Browse the repository at this point in the history
The GXP is the HPE BMC SoC that is used in the majority
of current generation HPE servers. Traditionally the asic will
last multiple generations of server before being replaced.

Info about SoC:

HPE GXP is the name of the HPE Soc. This SoC is used to implement many BMC
features at HPE. It supports ARMv7 architecture based on the Cortex A9
core. It is capable of using an AXI bus to whicha memory controller is
attached. It has multiple SPI interfaces to connect boot flash and BIOS
flash. It uses a 10/100/1000 MAC for network connectivity. It has multiple
i2c engines to drive connectivity with a host infrastructure. There
currently are no public specifications but this process is being worked.

Previously there was a requirement to reset the EHCI controller for the
asic to boot. This functionality has been moved to the u-boot
bootloader.

Signed-off-by: Nick Hawkins <nick.hawkins@hpe.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
  • Loading branch information
Nick Hawkins authored and Arnd Bergmann committed May 18, 2022
1 parent 3123109 commit 11d8944
Show file tree
Hide file tree
Showing 5 changed files with 43 additions and 0 deletions.
2 changes: 2 additions & 0 deletions arch/arm/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -620,6 +620,8 @@ source "arch/arm/mach-highbank/Kconfig"

source "arch/arm/mach-hisi/Kconfig"

source "arch/arm/mach-hpe/Kconfig"

source "arch/arm/mach-imx/Kconfig"

source "arch/arm/mach-integrator/Kconfig"
Expand Down
1 change: 1 addition & 0 deletions arch/arm/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -179,6 +179,7 @@ machine-$(CONFIG_ARCH_FOOTBRIDGE) += footbridge
machine-$(CONFIG_ARCH_GEMINI) += gemini
machine-$(CONFIG_ARCH_HIGHBANK) += highbank
machine-$(CONFIG_ARCH_HISI) += hisi
machine-$(CONFIG_ARCH_HPE) += hpe
machine-$(CONFIG_ARCH_INTEGRATOR) += integrator
machine-$(CONFIG_ARCH_IOP32X) += iop32x
machine-$(CONFIG_ARCH_IXP4XX) += ixp4xx
Expand Down
23 changes: 23 additions & 0 deletions arch/arm/mach-hpe/Kconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
menuconfig ARCH_HPE
bool "HPE SoC support"
depends on ARCH_MULTI_V7
help
This enables support for HPE ARM based BMC chips.
if ARCH_HPE

config ARCH_HPE_GXP
bool "HPE GXP SoC"
depends on ARCH_MULTI_V7
select ARM_VIC
select GENERIC_IRQ_CHIP
select CLKSRC_MMIO
help
HPE GXP is the name of the HPE Soc. This SoC is used to implement many
BMC features at HPE. It supports ARMv7 architecture based on the Cortex
A9 core. It is capable of using an AXI bus to which a memory controller
is attached. It has multiple SPI interfaces to connect boot flash and
BIOS flash. It uses a 10/100/1000 MAC for network connectivity. It
has multiple i2c engines to drive connectivity with a host
infrastructure.

endif
1 change: 1 addition & 0 deletions arch/arm/mach-hpe/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
obj-$(CONFIG_ARCH_HPE_GXP) += gxp.o
16 changes: 16 additions & 0 deletions arch/arm/mach-hpe/gxp.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
// SPDX-License-Identifier: GPL-2.0
/* Copyright (C) 2022 Hewlett-Packard Enterprise Development Company, L.P. */

#include <linux/of_platform.h>
#include <asm/mach/arch.h>

static const char * const gxp_board_dt_compat[] = {
"hpe,gxp",
NULL,
};

DT_MACHINE_START(GXP_DT, "HPE GXP")
.dt_compat = gxp_board_dt_compat,
.l2c_aux_val = 0,
.l2c_aux_mask = ~0,
MACHINE_END

0 comments on commit 11d8944

Please sign in to comment.