aboutsummaryrefslogtreecommitdiff
path: root/src/soc/intel/common/mrc_cache.h
diff options
context:
space:
mode:
authorAndrey Petrov <andrey.petrov@intel.com>2016-11-08 08:30:06 -0800
committerAaron Durbin <adurbin@chromium.org>2016-11-30 16:46:16 +0100
commitef9a9ea3b7585354d447ab0b3145e1b357226647 (patch)
treef669c9bf0b145e1212ac40cb33404c2f24de7bb5 /src/soc/intel/common/mrc_cache.h
parent4ed99ad067a7bd9f5ef6004c7b0e5f9f7edbe0d5 (diff)
soc/intel/common: Add save/restore for variable MRC data
Piggy-back on existing MRC cache infrastructure to store variable MRC data. Only one set of data can be valid at given point of time. Currently this magically happens because region alignment is forced to 0x1000 and region itself is of the same size. This needs to be somehow programmatically enforced. Change-Id: I8a660d356ca760b8ff9907396fb9b34cb16cf1db Signed-off-by: Andrey Petrov <andrey.petrov@intel.com> Reviewed-on: https://review.coreboot.org/17320 Tested-by: build bot (Jenkins) Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Diffstat (limited to 'src/soc/intel/common/mrc_cache.h')
-rw-r--r--src/soc/intel/common/mrc_cache.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/soc/intel/common/mrc_cache.h b/src/soc/intel/common/mrc_cache.h
index 850acd6c0a..6414accfcf 100644
--- a/src/soc/intel/common/mrc_cache.h
+++ b/src/soc/intel/common/mrc_cache.h
@@ -20,6 +20,7 @@
#include <stdint.h>
#define DEFAULT_MRC_CACHE "RW_MRC_CACHE"
+#define VARIABLE_MRC_CACHE "RW_VAR_MRC_CACHE"
#define RECOVERY_MRC_CACHE "RECOVERY_MRC_CACHE"
#define UNIFIED_MRC_CACHE "UNIFIED_MRC_CACHE"
@@ -36,6 +37,8 @@ struct mrc_saved_data {
int mrc_cache_get_current(const struct mrc_saved_data **cache);
int mrc_cache_get_current_with_version(const struct mrc_saved_data **cache,
uint32_t version);
+int mrc_cache_get_vardata(const struct mrc_saved_data **cache,
+ uint32_t version);
int mrc_cache_get_current_from_region(const struct mrc_saved_data **cache,
uint32_t version,
const char *region_name);
@@ -44,5 +47,6 @@ int mrc_cache_get_current_from_region(const struct mrc_saved_data **cache,
int mrc_cache_stash_data(const void *data, size_t size);
int mrc_cache_stash_data_with_version(const void *data, size_t size,
uint32_t version);
+int mrc_cache_stash_vardata(const void *data, size_t size, uint32_t version);
#endif /* _COMMON_MRC_CACHE_H_ */