diff options
Diffstat (limited to 'src/drivers')
-rw-r--r-- | src/drivers/ocp/vpd/Makefile.mk | 11 | ||||
-rw-r--r-- | src/drivers/ocp/vpd/xeonsp_cxl.c | 17 |
2 files changed, 26 insertions, 2 deletions
diff --git a/src/drivers/ocp/vpd/Makefile.mk b/src/drivers/ocp/vpd/Makefile.mk index 1cdc63b524..29aad05374 100644 --- a/src/drivers/ocp/vpd/Makefile.mk +++ b/src/drivers/ocp/vpd/Makefile.mk @@ -1,7 +1,14 @@ ## SPDX-License-Identifier: GPL-2.0-only -romstage-$(CONFIG_OCP_VPD) += vpd_util.c -ramstage-$(CONFIG_OCP_VPD) += vpd_util.c +ifeq ($(CONFIG_OCP_VPD),y) +romstage-y += vpd_util.c +ramstage-y += vpd_util.c +ifeq ($(CONFIG_XEON_SP_COMMON_BASE),y) +romstage-$(CONFIG_SOC_INTEL_HAS_CXL) += xeonsp_cxl.c +ramstage-$(CONFIG_SOC_INTEL_HAS_CXL) += xeonsp_cxl.c +endif +endif + ramstage-$(CONFIG_LINUXPAYLOAD_CMDLINE_VPD_OVERWRITE) += vpd_cmdline.c ifeq ($(CONFIG_VPD),y) all-$(CONFIG_CONSOLE_OVERRIDE_LOGLEVEL) += loglevel_vpd.c diff --git a/src/drivers/ocp/vpd/xeonsp_cxl.c b/src/drivers/ocp/vpd/xeonsp_cxl.c new file mode 100644 index 0000000000..92a8eba0f8 --- /dev/null +++ b/src/drivers/ocp/vpd/xeonsp_cxl.c @@ -0,0 +1,17 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#include <drivers/ocp/include/vpd.h> +#include <soc/config.h> + +enum xeonsp_cxl_mode get_cxl_mode(void) +{ + int ocp_cxl_mode = get_cxl_mode_from_vpd(); + switch (ocp_cxl_mode) { + case CXL_SYSTEM_MEMORY: + return XEONSP_CXL_SYS_MEM; + case CXL_SPM: + return XEONSP_CXL_SP_MEM; + default: + return XEONSP_CXL_DISABLED; + } +} |