xref: /aosp_15_r20/external/coreboot/src/include/spd_cache.h (revision b9411a12aaaa7e1e6a6fb7c5e057f44ee179a49c)
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 
3 #ifndef __SPD_CACHE_H
4 #define __SPD_CACHE_H
5 
6 #include <spd_bin.h>
7 #include <stddef.h>
8 #include <stdint.h>
9 
10 #define SPD_CACHE_FMAP_NAME	(CONFIG_SPD_CACHE_FMAP_NAME)
11 #define SC_SPD_NUMS		(CONFIG_DIMM_MAX)
12 #define SC_SPD_OFFSET(n)	(CONFIG_DIMM_SPD_SIZE * n)
13 #define SC_CRC_OFFSET		(CONFIG_DIMM_MAX * CONFIG_DIMM_SPD_SIZE)
14 #define SC_SPD_TOTAL_LEN	(CONFIG_DIMM_MAX * CONFIG_DIMM_SPD_SIZE)
15 #define SC_SPD_LEN		(CONFIG_DIMM_SPD_SIZE)
16 #define SC_CRC_LEN		(sizeof(uint16_t))
17 
18 enum cb_err update_spd_cache(struct spd_block *blk);
19 enum cb_err load_spd_cache(uint8_t **spd_cache, size_t *spd_cache_sz);
20 bool spd_cache_is_valid(uint8_t *spd_cache, size_t spd_cache_sz);
21 bool check_if_dimm_changed(u8 *spd_cache, struct spd_block *blk);
22 enum cb_err spd_fill_from_cache(uint8_t *spd_cache, struct spd_block *blk);
23 
24 #endif
25