diff options
author | Andrey Petrov <andrey.petrov@intel.com> | 2016-11-08 08:30:06 -0800 |
---|---|---|
committer | Aaron Durbin <adurbin@chromium.org> | 2016-11-30 16:46:16 +0100 |
commit | ef9a9ea3b7585354d447ab0b3145e1b357226647 (patch) | |
tree | f669c9bf0b145e1212ac40cb33404c2f24de7bb5 /src/soc/intel/common/mrc_cache.h | |
parent | 4ed99ad067a7bd9f5ef6004c7b0e5f9f7edbe0d5 (diff) | |
download | coreboot-ef9a9ea3b7585354d447ab0b3145e1b357226647.tar.xz |
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.h | 4 |
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_ */ |