summaryrefslogtreecommitdiff
path: root/src/include/spd_cache.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/include/spd_cache.h')
-rw-r--r--src/include/spd_cache.h23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/include/spd_cache.h b/src/include/spd_cache.h
new file mode 100644
index 0000000000..3270defba8
--- /dev/null
+++ b/src/include/spd_cache.h
@@ -0,0 +1,23 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/* This file is part of the coreboot project. */
+
+#ifndef __SPD_CACHE_H
+#define __SPD_CACHE_H
+
+#include <spd_bin.h>
+
+#define SPD_CACHE_FMAP_NAME "RW_SPD_CACHE"
+#define SC_SPD_NUMS (CONFIG_DIMM_MAX)
+#define SC_SPD_OFFSET(n) (CONFIG_DIMM_SPD_SIZE * n)
+#define SC_CRC_OFFSET (CONFIG_DIMM_MAX * CONFIG_DIMM_SPD_SIZE)
+#define SC_SPD_TOTAL_LEN (CONFIG_DIMM_MAX * CONFIG_DIMM_SPD_SIZE)
+#define SC_SPD_LEN (CONFIG_DIMM_SPD_SIZE)
+#define SC_CRC_LEN (sizeof(uint16_t))
+
+enum cb_err update_spd_cache(struct spd_block *blk);
+enum cb_err load_spd_cache(uint8_t **spd_cache, size_t *spd_cache_sz);
+bool spd_cache_is_valid(uint8_t *spd_cache, size_t spd_cache_sz);
+bool check_if_dimm_changed(u8 *spd_cache, struct spd_block *blk);
+enum cb_err spd_fill_from_cache(uint8_t *spd_cache, struct spd_block *blk);
+
+#endif