diff options
author | Subrata Banik <subrata.banik@intel.com> | 2017-08-29 19:04:11 +0530 |
---|---|---|
committer | Subrata Banik <subrata.banik@intel.com> | 2017-08-30 15:46:33 +0000 |
commit | 4f62d165dfb1824c40e7501b27c0f7dccb8323a6 (patch) | |
tree | f6d847cbd74d52e03f0dde5540a0f15e60c4d45e | |
parent | 73f448f04d75eeb5869fc686de33528288285a31 (diff) | |
download | coreboot-4f62d165dfb1824c40e7501b27c0f7dccb8323a6.tar.xz |
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>
-rw-r--r-- | src/soc/intel/common/block/include/intelblocks/smm.h | 2 | ||||
-rw-r--r-- | src/soc/intel/common/block/smm/Makefile.inc | 3 | ||||
-rw-r--r-- | src/soc/intel/common/block/smm/smm.c | 7 |
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(); +} |