summaryrefslogtreecommitdiff
path: root/src/soc
diff options
context:
space:
mode:
Diffstat (limited to 'src/soc')
-rw-r--r--src/soc/intel/common/block/systemagent/Kconfig12
-rw-r--r--src/soc/intel/common/block/systemagent/systemagent.c5
-rw-r--r--src/soc/intel/common/block/systemagent/systemagent_def.h2
3 files changed, 19 insertions, 0 deletions
diff --git a/src/soc/intel/common/block/systemagent/Kconfig b/src/soc/intel/common/block/systemagent/Kconfig
index 7bb55fe248..42d579afbe 100644
--- a/src/soc/intel/common/block/systemagent/Kconfig
+++ b/src/soc/intel/common/block/systemagent/Kconfig
@@ -43,4 +43,16 @@ config HAVE_PAM0_REGISTER
help
Specify if the SOC has a PAM0 register
+config HAVE_CAPID_A_REGISTER
+ bool
+ default y
+ help
+ Specify if the SOC has the CAPID0_A register that holds DRAM infomations.
+
+config HAVE_BDSM_BGSM_REGISTER
+ bool
+ default y
+ help
+ Specify if the SOC has BDSM and BGSM registres.
+
endif
diff --git a/src/soc/intel/common/block/systemagent/systemagent.c b/src/soc/intel/common/block/systemagent/systemagent.c
index 5d9ac15fbc..bca442bcc3 100644
--- a/src/soc/intel/common/block/systemagent/systemagent.c
+++ b/src/soc/intel/common/block/systemagent/systemagent.c
@@ -78,6 +78,9 @@ static void sa_soc_systemagent_init(struct device *dev)
if (m == NULL)
return;
+ if (!CONFIG(HAVE_CAPID_A_REGISTER))
+ return;
+
const uint32_t capid0_a = pci_read_config32(dev, CAPID0_A);
m->ecc_type = sa_get_ecc_type(capid0_a);
@@ -126,7 +129,9 @@ void sa_add_fixed_mmio_resources(struct device *dev, int *resource_cnt,
static const struct sa_mem_map_descriptor sa_memory_map[MAX_MAP_ENTRIES] = {
{ TOUUD, true, "TOUUD" },
{ TOLUD, false, "TOLUD" },
+#if CONFIG(HAVE_BDSM_BGSM_REGISTER)
{ BGSM, false, "BGSM" },
+#endif
{ TSEG, false, "TSEG" },
};
diff --git a/src/soc/intel/common/block/systemagent/systemagent_def.h b/src/soc/intel/common/block/systemagent/systemagent_def.h
index 58d11133cd..e0f956b938 100644
--- a/src/soc/intel/common/block/systemagent/systemagent_def.h
+++ b/src/soc/intel/common/block/systemagent/systemagent_def.h
@@ -58,7 +58,9 @@
enum {
SA_TOUUD_REG,
SA_TOLUD_REG,
+#if CONFIG(HAVE_BDSM_BGSM_REGISTER)
SA_BGSM_REG,
+#endif
SA_TSEG_REG,
/* Must be last. */
MAX_MAP_ENTRIES