summaryrefslogtreecommitdiff
path: root/src/mainboard/purism
diff options
context:
space:
mode:
authorAngel Pons <th3fanbus@gmail.com>2021-06-23 16:14:56 +0200
committerAngel Pons <th3fanbus@gmail.com>2022-08-14 10:53:47 +0000
commit4a8cb30222a34de760d38c7d13d54e24221d9fec (patch)
tree66036e3c07862166c9ae78acac453e4242c07d11 /src/mainboard/purism
parentae626d30355b4744762d2c434e159ba9c3998783 (diff)
soc/intel/broadwell: Consolidate SPD handling
Mainboards do not need to know about `pei_data` to tell northbridge code where to find the SPD data. As done on Haswell, add the `mb_get_spd_map` function and the `struct spd_info` type to retrieve SPD information from mainboard code without having to use `pei_data` in said mainboard code. Unlike Haswell MRC, Broadwell MRC uses all positions of the `spd_data` array, not just the first. The placeholder SPD address for memory-down seems to be different as well. Adapt the existing code to handle these variations. Once complete, the abstraction layer for both MRC binaries will have the same API. Change-Id: I92a05003a319c354675368cae8e34980bd2f9e10 Signed-off-by: Angel Pons <th3fanbus@gmail.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/55811 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Diffstat (limited to 'src/mainboard/purism')
-rw-r--r--src/mainboard/purism/librem_bdw/variants/librem13v1/pei_data.c5
-rw-r--r--src/mainboard/purism/librem_bdw/variants/librem15v2/pei_data.c7
2 files changed, 5 insertions, 7 deletions
diff --git a/src/mainboard/purism/librem_bdw/variants/librem13v1/pei_data.c b/src/mainboard/purism/librem_bdw/variants/librem13v1/pei_data.c
index 04fb9ea9e1..022e424357 100644
--- a/src/mainboard/purism/librem_bdw/variants/librem13v1/pei_data.c
+++ b/src/mainboard/purism/librem_bdw/variants/librem13v1/pei_data.c
@@ -3,10 +3,9 @@
#include <soc/pei_data.h>
#include <soc/pei_wrapper.h>
-void mainboard_fill_spd_data(struct pei_data *pei_data)
+void mb_get_spd_map(struct spd_info *spdi)
{
- /* One DIMM slot */
- pei_data->spd_addresses[0] = 0xa0;
+ spdi->addresses[0] = 0x50;
}
void mainboard_fill_pei_data(struct pei_data *pei_data)
diff --git a/src/mainboard/purism/librem_bdw/variants/librem15v2/pei_data.c b/src/mainboard/purism/librem_bdw/variants/librem15v2/pei_data.c
index 209cf30248..7eea654358 100644
--- a/src/mainboard/purism/librem_bdw/variants/librem15v2/pei_data.c
+++ b/src/mainboard/purism/librem_bdw/variants/librem15v2/pei_data.c
@@ -3,11 +3,10 @@
#include <soc/pei_data.h>
#include <soc/pei_wrapper.h>
-void mainboard_fill_spd_data(struct pei_data *pei_data)
+void mb_get_spd_map(struct spd_info *spdi)
{
- /* One DIMM slot */
- pei_data->spd_addresses[0] = 0xa0;
- pei_data->spd_addresses[2] = 0xa4;
+ spdi->addresses[0] = 0x50;
+ spdi->addresses[2] = 0x52;
}
void mainboard_fill_pei_data(struct pei_data *pei_data)