summaryrefslogtreecommitdiff
path: root/src/mainboard/samsung
diff options
context:
space:
mode:
authorPatrick Rudolph <siro@das-labor.org>2016-04-07 18:51:12 +0200
committerMartin Roth <martinroth@google.com>2016-04-10 18:12:09 +0200
commit25852099eeacc66fa4e012f128b75202517eaabe (patch)
treed56c72fd9e57242ff4cd5a7ba2efcb31c928e8bb /src/mainboard/samsung
parentba3a69f9c714afdeefb2f089a6f54d43be9b245d (diff)
downloadcoreboot-25852099eeacc66fa4e012f128b75202517eaabe.tar.xz
mb/samsung/lumpy/romstage: read SPD data of removable DIMM
The removable DIMM SPD data wasn't read. As a result the system only uses the 2GB onboard memory and the GNU Linux kernel paniced in acpi_ds_build_internal_package_obj. Read the SPD and allow native raminit and MRC blob to use the removable DIMM. The system is able to use the removable dimm and the kernel panic is gone. Change-Id: I30eed747f924cb0029de55d2ab85c5a94075dc1b Signed-off-by: Patrick Rudolph <siro@das-labor.org> Tested-by: Idwer Vollering <vidwer@gmail.com> Reviewed-on: https://review.coreboot.org/14278 Tested-by: build bot (Jenkins) Reviewed-by: Martin Roth <martinroth@google.com>
Diffstat (limited to 'src/mainboard/samsung')
-rw-r--r--src/mainboard/samsung/lumpy/romstage.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/mainboard/samsung/lumpy/romstage.c b/src/mainboard/samsung/lumpy/romstage.c
index 650c8d771e..4d318b7069 100644
--- a/src/mainboard/samsung/lumpy/romstage.c
+++ b/src/mainboard/samsung/lumpy/romstage.c
@@ -216,6 +216,8 @@ void mainboard_fill_pei_data(struct pei_data *pei_data)
*pei_data = pei_data_template;
// leave onboard dimm address at f0, and copy spd data there.
memcpy(pei_data->spd_data[0], locate_spd(), 256);
+ /* read removable dimm spd */
+ read_spd(&pei_data->spd_data[2], 0x50);
}
const struct southbridge_usb_port mainboard_usb_ports[] = {
@@ -238,7 +240,10 @@ const struct southbridge_usb_port mainboard_usb_ports[] = {
void mainboard_get_spd(spd_raw_data *spd)
{
- memcpy(&spd[0], locate_spd(), 128);
+ /* get onboard dimm spd */
+ memcpy(&spd[0], locate_spd(), 256);
+ /* read removable dimm spd */
+ read_spd(&spd[2], 0x50);
}
void mainboard_early_init(int s3resume)