summaryrefslogtreecommitdiff
path: root/src/soc/intel/common
diff options
context:
space:
mode:
authorSubrata Banik <subrata.banik@intel.com>2017-08-29 19:04:11 +0530
committerSubrata Banik <subrata.banik@intel.com>2017-08-30 15:46:33 +0000
commit4f62d165dfb1824c40e7501b27c0f7dccb8323a6 (patch)
treef6d847cbd74d52e03f0dde5540a0f15e60c4d45e /src/soc/intel/common
parent73f448f04d75eeb5869fc686de33528288285a31 (diff)
soc/intel/common: Add functions into common SMM library
This patch to add helper function to get SMM region start and size based on systemagent common library. BRANCH=none BUG=b:63974384 TEST=Build and boot eve successfully. Change-Id: If10af4a3f6a5bd22db5a03bcd3033a01b1cce0b4 Signed-off-by: Subrata Banik <subrata.banik@intel.com> Reviewed-on: https://review.coreboot.org/21268 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Diffstat (limited to 'src/soc/intel/common')
-rw-r--r--src/soc/intel/common/block/include/intelblocks/smm.h2
-rw-r--r--src/soc/intel/common/block/smm/Makefile.inc3
-rw-r--r--src/soc/intel/common/block/smm/smm.c7
3 files changed, 12 insertions, 0 deletions
diff --git a/src/soc/intel/common/block/include/intelblocks/smm.h b/src/soc/intel/common/block/include/intelblocks/smm.h
index 09378b9463..01d820b4b2 100644
--- a/src/soc/intel/common/block/include/intelblocks/smm.h
+++ b/src/soc/intel/common/block/include/intelblocks/smm.h
@@ -30,5 +30,7 @@
*/
void smm_southbridge_clear_state(void);
void smm_southbridge_enable(void);
+/* API to get SMM region start and size based on Host Bridge register */
+void smm_region_info(void **start, size_t *size);
#endif
diff --git a/src/soc/intel/common/block/smm/Makefile.inc b/src/soc/intel/common/block/smm/Makefile.inc
index e50562513e..82a3191e25 100644
--- a/src/soc/intel/common/block/smm/Makefile.inc
+++ b/src/soc/intel/common/block/smm/Makefile.inc
@@ -1,3 +1,6 @@
+bootblock-$(CONFIG_SOC_INTEL_COMMON_BLOCK_SMM) += smm.c
+romstage-$(CONFIG_SOC_INTEL_COMMON_BLOCK_SMM) += smm.c
+postcar-$(CONFIG_SOC_INTEL_COMMON_BLOCK_SMM) += smm.c
ramstage-$(CONFIG_SOC_INTEL_COMMON_BLOCK_SMM) += smm.c
smm-$(CONFIG_SOC_INTEL_COMMON_BLOCK_SMM) += smihandler.c
smm-$(CONFIG_SOC_INTEL_COMMON_BLOCK_SMM_IO_TRAP) += smitraphandler.c
diff --git a/src/soc/intel/common/block/smm/smm.c b/src/soc/intel/common/block/smm/smm.c
index 41f3426c11..8428fca2c7 100644
--- a/src/soc/intel/common/block/smm/smm.c
+++ b/src/soc/intel/common/block/smm/smm.c
@@ -19,6 +19,7 @@
#include <cpu/x86/smm.h>
#include <intelblocks/pmclib.h>
#include <intelblocks/smm.h>
+#include <intelblocks/systemagent.h>
#include <soc/pm.h>
void smm_southbridge_clear_state(void)
@@ -77,3 +78,9 @@ void smm_setup_structures(void *gnvs, void *tcg, void *smi1)
"d" (APM_CNT)
);
}
+
+void smm_region_info(void **start, size_t *size)
+{
+ *start = (void *)sa_get_tseg_base();
+ *size = sa_get_tseg_size();
+}