soc/amd/glinda/Kconfig: Add Faegan SoC as Glinda variant

Glinda and Faegan are closely related and there's only very minimal
difference from the coreboot viewpoint, so Feagan is added as Glianda
variant and not as a new SoC folder. Faegan has a different CPUID, so
it's added to the CPU table, and some GPIO muxes have a few more valid
settings to route the MDIO pins related to the 2 XGBE controllers to
GPIO pins.

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: I57699089a4a3ac7ddb037f254d42cb043b816c55
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90417
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
Patrick Rudolph 2025-07-24 11:22:24 +02:00 committed by Felix Held
commit 244e8edf18
5 changed files with 70 additions and 7 deletions

View file

@ -3,7 +3,7 @@
# TODO: Evaluate what can be moved to a common directory
# TODO: Update for Glinda
config SOC_AMD_GLINDA
config SOC_AMD_GLINDA_BASE
bool
select ACPI_SOC_NVS
select ARCH_X86
@ -96,7 +96,19 @@ config SOC_AMD_GLINDA
help
AMD Glinda support
if SOC_AMD_GLINDA
config SOC_AMD_GLINDA
bool
select SOC_AMD_GLINDA_BASE
help
AMD Glinda support
config SOC_AMD_FAEGAN
bool
select SOC_AMD_GLINDA_BASE
help
AMD Faegan support
if SOC_AMD_GLINDA_BASE
config CHIPSET_DEVICETREE
string
@ -451,4 +463,4 @@ config RWB_REGION_ONLY
endif # VBOOT_SLOTS_RW_AB && VBOOT_STARTS_BEFORE_BOOTBLOCK
endif # SOC_AMD_GLINDA
endif # SOC_AMD_GLINDA_BASE

View file

@ -3,7 +3,7 @@
# TODO: Move as much as possible to common
# TODO: Update for Glinda
ifeq ($(CONFIG_SOC_AMD_GLINDA),y)
ifeq ($(CONFIG_SOC_AMD_GLINDA_BASE),y)
subdirs-$(CONFIG_VBOOT_STARTS_BEFORE_BOOTBLOCK) += psp_verstage
@ -315,4 +315,4 @@ build_complete:: $(obj)/amdfw_a.rom $(obj)/amdfw_b.rom
endif # CONFIG_SEPARATE_SIGNED_PSPFW
endif
endif # ($(CONFIG_SOC_AMD_GLINDA),y)
endif # ($(CONFIG_SOC_AMD_GLINDA_BASE),y)

View file

@ -17,6 +17,7 @@ static struct device_operations cpu_dev_ops = {
static struct cpu_device_id cpu_table[] = {
{ X86_VENDOR_AMD, GLINDA_A0_CPUID, CPUID_ALL_STEPPINGS_MASK },
{ X86_VENDOR_AMD, GLINDA_B0_CPUID, CPUID_ALL_STEPPINGS_MASK },
{ X86_VENDOR_AMD, FAEGAN_A0_CPUID, CPUID_ALL_STEPPINGS_MASK },
CPU_TABLE_END
};

View file

@ -3,6 +3,8 @@
#ifndef AMD_GLINDA_CPU_H
#define AMD_GLINDA_CPU_H
#define GLINDA_A0_CPUID CPUID_FROM_FMS(0x1a, 0x20, 0)
#define GLINDA_B0_CPUID CPUID_FROM_FMS(0x1a, 0x24, 0)
#define GLINDA_A0_CPUID CPUID_FROM_FMS(0x1a, 0x20, 0x0)
#define GLINDA_B0_CPUID CPUID_FROM_FMS(0x1a, 0x24, 0x0)
#define FAEGAN_A0_CPUID CPUID_FROM_FMS(0x1a, 0x68, 0x0)
#endif /* AMD_GLINDA_CPU_H */

View file

@ -115,18 +115,27 @@
#define GPIO_4_IOMUX_GPIOxx 0
#define GPIO_5_IOMUX_GPIOxx 0
#define GPIO_6_IOMUX_GPIOxx 0
#if CONFIG(SOC_AMD_FAEGAN)
#define GPIO_6_IOMUX_MDIO0_SCL 2
#endif
#define GPIO_7_IOMUX_GPIOxx 0
#define GPIO_7_IOMUX_ZST_STUTTER_RAIL 1
#define GPIO_8_IOMUX_GPIOxx 0
#define GPIO_8_IOMUX_TMU_CLK_OUT0 1
#define GPIO_8_IOMUX_TMU_CLK_OUT1 2
#define GPIO_9_IOMUX_GPIOxx 0
#if CONFIG(SOC_AMD_FAEGAN)
#define GPIO_9_IOMUX_MDIO2_SCL 2
#endif
#define GPIO_10_IOMUX_GPIOxx 0
#define GPIO_10_IOMUX_S0A3_GPIO 1
/* GPIO 10 IOMUX == 2 is also GPIOxx */
#define GPIO_10_IOMUX_DF_VRCONTEXT_0 3
#define GPIO_11_IOMUX_GPIOxx 0
#define GPIO_11_IOMUX_BLINK 1
#if CONFIG(SOC_AMD_FAEGAN)
#define GPIO_11_IOMUX_MDIO3_SDA 2
#endif
#define GPIO_12_IOMUX_LLB_L 0
#define GPIO_12_IOMUX_GPIOxx 1
#define GPIO_16_IOMUX_USB_OC0_L 0
@ -152,6 +161,9 @@
#define GPIO_22_IOMUX_SD0_CMD 3
#define GPIO_23_IOMUX_AC_PRES 0
#define GPIO_23_IOMUX_GPIOxx 1
#if CONFIG(SOC_AMD_FAEGAN)
#define GPIO_23_IOMUX_MDIO2_SDA 2
#endif
#define GPIO_24_IOMUX_USB_OC3_L 0
#define GPIO_24_IOMUX_GPIOxx 1
#define GPIO_26_IOMUX_PCIE_RST0_L 0
@ -169,11 +181,23 @@
#define GPIO_31_IOMUX_SPI2_CS3_L 3
#define GPIO_32_IOMUX_GPIOxx 0
#define GPIO_32_IOMUX_LPC_RST_L 1
#if CONFIG(SOC_AMD_FAEGAN)
#define GPIO_32_IOMUX_MDIO3_SCL 2
#endif
#define GPIO_38_IOMUX_CLK_REQ5_L 0
#define GPIO_38_IOMUX_GPIOxx 1
#if CONFIG(SOC_AMD_FAEGAN)
#define GPIO_38_IOMUX_MDIO1_SDA 2
#endif
#define GPIO_39_IOMUX_CLK_REQ6_L 0
#define GPIO_39_IOMUX_GPIOxx 1
#if CONFIG(SOC_AMD_FAEGAN)
#define GPIO_39_IOMUX_MDIO1_SCL 2
#endif
#define GPIO_40_IOMUX_GPIOxx 0
#if CONFIG(SOC_AMD_FAEGAN)
#define GPIO_40_IOMUX_MDIO0_SDA 2
#endif
#define GPIO_42_IOMUX_GPIOxx 0
#define GPIO_42_IOMUX_DF_VRCONTEXT_1 1
#define GPIO_67_IOMUX_SPI_ROM_REQ 0
@ -257,13 +281,22 @@
#define GPIO_135_IOMUX_UART3_TXD 2
#define GPIO_136_IOMUX_GPIOxx 0
#define GPIO_136_IOMUX_UART2_RXD 1
#if CONFIG(SOC_AMD_FAEGAN)
#define GPIO_136_IOMUX_XGBE_LED0 2
#endif
#define GPIO_137_IOMUX_GPIOxx 0
#define GPIO_137_IOMUX_UART2_RTS_L 1
#define GPIO_137_IOMUX_UART3_RXD 2
#define GPIO_138_IOMUX_GPIOxx 0
#define GPIO_138_IOMUX_UART2_TXD 1
#if CONFIG(SOC_AMD_FAEGAN)
#define GPIO_138_IOMUX_XGBE_LED1 2
#endif
#define GPIO_139_IOMUX_GPIOxx 0
#define GPIO_139_IOMUX_UART2_INTR 1
#if CONFIG(SOC_AMD_FAEGAN)
#define GPIO_139_IOMUX_XGBE_LED2 2
#endif
#define GPIO_140_IOMUX_GPIOxx 0
#define GPIO_140_IOMUX_UART0_CTS_L 1
#define GPIO_140_IOMUX_UART1_TXD 2
@ -291,13 +324,28 @@
#define GPIO_148_IOMUX_GPIOxx 2
#define GPIO_153_IOMUX_GPIOxx 0
#define GPIO_153_IOMUX_UART4_CTS_L 1
#if CONFIG(SOC_AMD_FAEGAN)
#define GPIO_153_IOMUX_XGBE_LED3 2
#endif
#define GPIO_154_IOMUX_GPIOxx 0
#define GPIO_154_IOMUX_UART4_RTS_L 1
#if CONFIG(SOC_AMD_FAEGAN)
#define GPIO_154_IOMUX_XGBE_LED4 2
#endif
#define GPIO_155_IOMUX_GPIOxx 0
#define GPIO_155_IOMUX_UART4_RXD 1
#if CONFIG(SOC_AMD_FAEGAN)
#define GPIO_155_IOMUX_XGBE_LED5 2
#endif
#define GPIO_156_IOMUX_GPIOxx 0
#define GPIO_156_IOMUX_UART4_TXD 1
#if CONFIG(SOC_AMD_FAEGAN)
#define GPIO_156_IOMUX_XGBE_LED6 2
#endif
#define GPIO_157_IOMUX_GPIOxx 0
#define GPIO_157_IOMUX_UART4_INTR 1
#if CONFIG(SOC_AMD_FAEGAN)
#define GPIO_157_IOMUX_XGBE_LED7 2
#endif
#endif /* AMD_GLINDA_GPIO_H */