summaryrefslogtreecommitdiff
path: root/src/include/spd_cache.h
blob: 3270defba85c1334b62f01591293eebe407e2aee (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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