aboutsummaryrefslogtreecommitdiff
path: root/src/mainboard/google/peppy
diff options
context:
space:
mode:
Diffstat (limited to 'src/mainboard/google/peppy')
-rw-r--r--src/mainboard/google/peppy/romstage.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/mainboard/google/peppy/romstage.c b/src/mainboard/google/peppy/romstage.c
index c6696c09f6..4e723269ff 100644
--- a/src/mainboard/google/peppy/romstage.c
+++ b/src/mainboard/google/peppy/romstage.c
@@ -78,10 +78,12 @@ static void copy_spd(struct pei_data *peid)
{
const int gpio_vector[] = {13, 9, 47, -1};
int spd_index = get_gpios(gpio_vector);
- struct cbfs_file *spd_file;
+ char *spd_file;
+ size_t spd_file_len;
printk(BIOS_DEBUG, "SPD index %d\n", spd_index);
- spd_file = cbfs_get_file(CBFS_DEFAULT_MEDIA, "spd.bin");
+ spd_file = cbfs_get_file_content(CBFS_DEFAULT_MEDIA, "spd.bin", 0xab,
+ &spd_file_len);
if (!spd_file)
die("SPD data not found.");
@@ -101,17 +103,17 @@ static void copy_spd(struct pei_data *peid)
break;
}
- if (ntohl(spd_file->len) <
+ if (spd_file_len <
((spd_index + 1) * sizeof(peid->spd_data[0]))) {
printk(BIOS_ERR, "SPD index override to 0 - old hardware?\n");
spd_index = 0;
}
- if (spd_file->len < sizeof(peid->spd_data[0]))
+ if (spd_file_len < sizeof(peid->spd_data[0]))
die("Missing SPD data.");
memcpy(peid->spd_data[0],
- ((char*)CBFS_SUBHEADER(spd_file)) +
+ spd_file +
spd_index * sizeof(peid->spd_data[0]),
sizeof(peid->spd_data[0]));
}