summaryrefslogtreecommitdiff
path: root/src/mainboard/intel/archercity_crb/include
diff options
context:
space:
mode:
authorJonathan Zhang <jonzhang@meta.com>2023-01-04 14:27:41 -0800
committerLean Sheng Tan <sheng.tan@9elements.com>2023-04-12 11:43:02 +0000
commitaaab6566c0a831245a1f4d90efb55fa55ab3a319 (patch)
tree6611edf21e61771d3422fc9d19378db1d52fe4be /src/mainboard/intel/archercity_crb/include
parent134566395fd816673dde860d8e41c147c46bfb23 (diff)
mb/intel: Add 2 SPR sockets CRB Archer City
Intel Archer City CRB is a dual socket CRB with Intel Sapphire Rapids Scalable Processor chipset. The chipset also includes Emmitsburg PCH. It was tested with LinuxBoot payload on both dual and single socket configurations. The multisocket support depends on Change-Id: I4a593252bb7f68494f4ccce215ac9cf1eb19b190 Change-Id: Ic02634cd615e2245e394f10aad24b0430cf5cd17 Signed-off-by: Jonathan Zhang <jonzhang@meta.com> Signed-off-by: Johnny Lin <johnny_lin@wiwynn.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/71968 Reviewed-by: Johnny Lin <Johnny_Lin@wiwynn.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Lean Sheng Tan <sheng.tan@9elements.com>
Diffstat (limited to 'src/mainboard/intel/archercity_crb/include')
-rw-r--r--src/mainboard/intel/archercity_crb/include/mainboard_ras.h12
-rw-r--r--src/mainboard/intel/archercity_crb/include/sprsp_ac_iio.h142
2 files changed, 154 insertions, 0 deletions
diff --git a/src/mainboard/intel/archercity_crb/include/mainboard_ras.h b/src/mainboard/intel/archercity_crb/include/mainboard_ras.h
new file mode 100644
index 0000000000..76f38726e0
--- /dev/null
+++ b/src/mainboard/intel/archercity_crb/include/mainboard_ras.h
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#ifndef MAINBOARD_RAS_H
+#define MAINBOARD_RAS_H
+
+struct fru {
+ const char *str;
+};
+
+struct fru *mainboard_ras_get_ch_map(void);
+
+#endif
diff --git a/src/mainboard/intel/archercity_crb/include/sprsp_ac_iio.h b/src/mainboard/intel/archercity_crb/include/sprsp_ac_iio.h
new file mode 100644
index 0000000000..2dcf6c9a1c
--- /dev/null
+++ b/src/mainboard/intel/archercity_crb/include/sprsp_ac_iio.h
@@ -0,0 +1,142 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+
+#ifndef _SPRSP_AC_IIO_H_
+#define _SPRSP_AC_IIO_H_
+
+#include <defs_iio.h>
+
+/* For now only set 3 fields and hard-coded others, should be extended in the future */
+#define CFG_UPD_PCIE_PORT(pexphide, slotimp, slotpsp) \
+ { \
+ .SLOTEIP = 0, \
+ .SLOTHPCAP = 0, \
+ .SLOTHPSUP = 0, \
+ .SLOTPIP = 0, \
+ .SLOTAIP = 0, \
+ .SLOTMRLSP = 0, \
+ .SLOTPCP = 0, \
+ .SLOTABP = 0, \
+ .SLOTIMP = slotimp, \
+ .SLOTSPLS = 0, \
+ .SLOTSPLV = 0, \
+ .SLOTPSP = slotpsp, \
+ .VppEnabled = 0, \
+ .VppPort = 0, \
+ .VppAddress = 0, \
+ .MuxAddress = 0, \
+ .ChannelID = 0, \
+ .PciePortEnable = 1, \
+ .PEXPHIDE = pexphide, \
+ .HidePEXPMenu = 0, \
+ .PciePortOwnership = 0, \
+ .RetimerConnectCount = 0, \
+ .PcieMaxPayload = 0x7, \
+ .PciePortLinkSpeed = 0, \
+ .DfxDnTxPresetGen3 = 0xFF \
+ }
+
+/*
+ * Standard ArcherCity IIO PCIe Port Table
+ */
+static const UPD_IIO_PCIE_PORT_CONFIG_ENTRY ac_iio_pci_port_skt0[] = {
+ /* DMI port: array index 0 */
+ CFG_UPD_PCIE_PORT(0, 0, 0),
+ /* IOU0 (PE0): array index 1 ~ 8 */
+ CFG_UPD_PCIE_PORT(0, 1, 1), /* 15:01.0 */
+ CFG_UPD_PCIE_PORT(1, 0, 0),
+ CFG_UPD_PCIE_PORT(1, 0, 0),
+ CFG_UPD_PCIE_PORT(1, 0, 0),
+ CFG_UPD_PCIE_PORT(1, 0, 0),
+ CFG_UPD_PCIE_PORT(1, 0, 0),
+ CFG_UPD_PCIE_PORT(1, 0, 0),
+ CFG_UPD_PCIE_PORT(1, 0, 0),
+ /* IOU1 (PE1): array index 9 ~ 16 */
+ CFG_UPD_PCIE_PORT(0, 1, 9), /* 26:01.0 */
+ CFG_UPD_PCIE_PORT(1, 0, 0),
+ CFG_UPD_PCIE_PORT(1, 0, 0),
+ CFG_UPD_PCIE_PORT(1, 0, 0),
+ CFG_UPD_PCIE_PORT(1, 0, 0),
+ CFG_UPD_PCIE_PORT(1, 0, 0),
+ CFG_UPD_PCIE_PORT(1, 0, 0),
+ CFG_UPD_PCIE_PORT(1, 0, 0),
+ /* IOU2 (PE2): array index 17 ~ 24 */
+ CFG_UPD_PCIE_PORT(0, 1, 17), /* 37:01.0 */
+ CFG_UPD_PCIE_PORT(1, 0, 0),
+ CFG_UPD_PCIE_PORT(1, 0, 0),
+ CFG_UPD_PCIE_PORT(1, 0, 0),
+ CFG_UPD_PCIE_PORT(1, 0, 0),
+ CFG_UPD_PCIE_PORT(1, 0, 0),
+ CFG_UPD_PCIE_PORT(1, 0, 0),
+ CFG_UPD_PCIE_PORT(1, 0, 0),
+ /* IOU3 (PE3): array index 25 ~ 32 */
+ CFG_UPD_PCIE_PORT(0, 1, 25), /* 48:01.0 */
+ CFG_UPD_PCIE_PORT(1, 0, 0),
+ CFG_UPD_PCIE_PORT(0, 1, 27), /* 48:03.0 */
+ CFG_UPD_PCIE_PORT(1, 0, 0),
+ CFG_UPD_PCIE_PORT(0, 1, 29), /* 48:05.0 */
+ CFG_UPD_PCIE_PORT(1, 0, 0),
+ CFG_UPD_PCIE_PORT(0, 1, 31), /* 48:07.0 */
+ CFG_UPD_PCIE_PORT(1, 0, 0),
+ /* IOU4 (PE4): array index 33 ~ 40 */
+ CFG_UPD_PCIE_PORT(0, 1, 33), /* 59:01.0 */
+ CFG_UPD_PCIE_PORT(1, 0, 0),
+ CFG_UPD_PCIE_PORT(0, 1, 35), /* 59:03.0 */
+ CFG_UPD_PCIE_PORT(1, 0, 0),
+ CFG_UPD_PCIE_PORT(0, 1, 37), /* 59:05.0 */
+ CFG_UPD_PCIE_PORT(1, 0, 0),
+ CFG_UPD_PCIE_PORT(0, 1, 39), /* 59:07.0 */
+ CFG_UPD_PCIE_PORT(1, 0, 0),
+ /* ArcherCity doesn't use IOU5 ~ IOU6. */
+};
+
+static const UPD_IIO_PCIE_PORT_CONFIG_ENTRY ac_iio_pci_port_skt1[] = {
+ /* DMI port: array index 0 */
+ CFG_UPD_PCIE_PORT(1, 0, 0),
+ /* IOU0 (PE0): array index 1 ~ 8 */
+ CFG_UPD_PCIE_PORT(0, 1, 1), /* 97:01.0 */
+ CFG_UPD_PCIE_PORT(1, 0, 0),
+ CFG_UPD_PCIE_PORT(1, 0, 0),
+ CFG_UPD_PCIE_PORT(1, 0, 0),
+ CFG_UPD_PCIE_PORT(1, 0, 0),
+ CFG_UPD_PCIE_PORT(1, 0, 0),
+ CFG_UPD_PCIE_PORT(1, 0, 0),
+ CFG_UPD_PCIE_PORT(1, 0, 0),
+ /* IOU1 (PE1): array index 9 ~ 16 */
+ CFG_UPD_PCIE_PORT(0, 1, 9), /* a7:01.0 */
+ CFG_UPD_PCIE_PORT(1, 0, 0),
+ CFG_UPD_PCIE_PORT(1, 0, 0),
+ CFG_UPD_PCIE_PORT(1, 0, 0),
+ CFG_UPD_PCIE_PORT(1, 0, 0),
+ CFG_UPD_PCIE_PORT(1, 0, 0),
+ CFG_UPD_PCIE_PORT(1, 0, 0),
+ CFG_UPD_PCIE_PORT(1, 0, 0),
+ /* IOU2 (PE2): array index 17 ~ 24 */
+ CFG_UPD_PCIE_PORT(0, 1, 17), /* b7:01.0 */
+ CFG_UPD_PCIE_PORT(1, 0, 0),
+ CFG_UPD_PCIE_PORT(1, 0, 0),
+ CFG_UPD_PCIE_PORT(1, 0, 0),
+ CFG_UPD_PCIE_PORT(1, 0, 0),
+ CFG_UPD_PCIE_PORT(1, 0, 0),
+ CFG_UPD_PCIE_PORT(1, 0, 0),
+ CFG_UPD_PCIE_PORT(1, 0, 0),
+ /* IOU3 (PE3): array index 25 ~ 32 */
+ CFG_UPD_PCIE_PORT(0, 1, 25), /* c7:01.0 */
+ CFG_UPD_PCIE_PORT(1, 0, 0),
+ CFG_UPD_PCIE_PORT(0, 1, 27), /* c7:03.0 */
+ CFG_UPD_PCIE_PORT(1, 0, 0),
+ CFG_UPD_PCIE_PORT(0, 1, 29), /* c7:05.0 */
+ CFG_UPD_PCIE_PORT(1, 0, 0),
+ CFG_UPD_PCIE_PORT(0, 1, 31), /* c7:07.0 */
+ CFG_UPD_PCIE_PORT(1, 0, 0),
+ /* IOU4 (PE4): array index 33 ~ 40 */
+ CFG_UPD_PCIE_PORT(0, 1, 33), /* d7:01.0 */
+ CFG_UPD_PCIE_PORT(1, 0, 0),
+ CFG_UPD_PCIE_PORT(0, 1, 35), /* d7:03.0 */
+ CFG_UPD_PCIE_PORT(1, 0, 0),
+ CFG_UPD_PCIE_PORT(0, 1, 37), /* d7:05.0 */
+ CFG_UPD_PCIE_PORT(1, 0, 0),
+ CFG_UPD_PCIE_PORT(0, 1, 39), /* d7:07.0 */
+ CFG_UPD_PCIE_PORT(1, 0, 0),
+ /* ArcherCity doesn't use IOU5 ~ IOU6. */
+};
+#endif /* _SPRSP_CL_IIO_H_ */