summaryrefslogtreecommitdiff
path: root/arch/x86/lib
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2019-12-07 07:42:05 +0300
committerBin Meng <bmeng.cn@gmail.com>2019-12-15 06:44:13 +0300
commit37a508f8b7d580334b0a9b886539d7816944ece0 (patch)
treea926c5aec0fbb713b6d3bf55fb2ee10224352d00 /arch/x86/lib
parent506f22497743f943dd0e3f9247451e2c192a5760 (diff)
downloadu-boot-37a508f8b7d580334b0a9b886539d7816944ece0.tar.xz
x86: Add a new global_data member for the cache record
At present we reuse the mrc_output char * to also point to the cache record after it has been set up. This is confusing and doesn't save much data space. Add a new mrc_cache member instead. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Diffstat (limited to 'arch/x86/lib')
-rw-r--r--arch/x86/lib/mrccache.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/arch/x86/lib/mrccache.c b/arch/x86/lib/mrccache.c
index 7136166be6..6e561fe528 100644
--- a/arch/x86/lib/mrccache.c
+++ b/arch/x86/lib/mrccache.c
@@ -188,8 +188,7 @@ static void mrccache_setup(void *data)
cache->reserved = 0;
memcpy(cache->data, gd->arch.mrc_output, cache->data_size);
- /* gd->arch.mrc_output now points to the container */
- gd->arch.mrc_output = (char *)cache;
+ gd->arch.mrc_cache = cache;
}
int mrccache_reserve(void)
@@ -255,7 +254,7 @@ int mrccache_get_region(struct udevice **devp, struct mrc_region *entry)
int mrccache_save(void)
{
- struct mrc_data_container *data;
+ struct mrc_data_container *cache;
struct mrc_region entry;
struct udevice *sf;
int ret;
@@ -271,10 +270,10 @@ int mrccache_save(void)
ret = device_probe(sf);
if (ret)
goto err_entry;
- data = (struct mrc_data_container *)gd->arch.mrc_output;
- ret = mrccache_update(sf, &entry, data);
+ cache = gd->arch.mrc_cache;
+ ret = mrccache_update(sf, &entry, cache);
if (!ret) {
- debug("Saved MRC data with checksum %04x\n", data->checksum);
+ debug("Saved MRC data with checksum %04x\n", cache->checksum);
} else if (ret == -EEXIST) {
debug("MRC data is the same as last time, skipping save\n");
ret = 0;