ARM: hpe: gxp: add core support

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.

Signed-off-by: Nick Hawkins <nick.hawkins@hpe.com>
This commit is contained in:
Nick Hawkins 2022-06-08 16:21:34 -05:00 committed by Tom Rini
parent c4645fc87e
commit 4276c9b2aa
6 changed files with 45 additions and 0 deletions

View File

@ -2095,6 +2095,12 @@ config TARGET_XENGUEST_ARM64
select SSCANF
imply OF_HAS_PRIOR_STAGE
config ARCH_GXP
bool "Support HPE GXP SoCs"
select DM
select OF_CONTROL
imply CMD_DM
endchoice
config SUPPORT_PASSING_ATAGS
@ -2205,6 +2211,8 @@ source "arch/arm/mach-davinci/Kconfig"
source "arch/arm/mach-exynos/Kconfig"
source "arch/arm/mach-hpe/gxp/Kconfig"
source "arch/arm/mach-highbank/Kconfig"
source "arch/arm/mach-integrator/Kconfig"

View File

@ -63,6 +63,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_HIGHBANK) += highbank
machine-$(CONFIG_ARCH_IPQ40XX) += ipq40xx
machine-$(CONFIG_ARCH_K3) += k3

View File

@ -0,0 +1 @@
obj-$(CONFIG_SOC_GXP) += gxp/

View File

@ -0,0 +1,9 @@
if ARCH_GXP
config SOC_GXP
bool
select CPU_V7A
source "board/hpe/gxp/Kconfig"
endif

View File

@ -0,0 +1 @@
obj-y += reset.o

View File

@ -0,0 +1,25 @@
// SPDX-License-Identifier: GPL-2.0+
/*
* GXP driver
*
* (C) Copyright 2022 Hewlett Packard Enterprise Development LP.
* Author: Nick Hawkins <nick.hawkins@hpe.com>
* Author: Jean-Marie Verdun <verdun@hpe.com>
*/
#include <asm/io.h>
#define GXP_CCR 0xc0000000
/* empty to satisfy current lowlevel_init, can be removed any time */
void lowlevel_init(void)
{
}
void reset_cpu(ulong ignored)
{
writel(1, GXP_CCR);
while (1)
; /* loop forever till reset */
}