glados: Add SPD manufacturer and part number

The FSP memory info hob does not return this data so we need
to supply it from the SPD included with the mainboard.

BUG=chrome-os-partner:42975, chrome-os-partner:42561
BRANCH=none
TEST=execute "mosys memory spd print all" on glados

Change-Id: Idfb71d36d1f8163d0daceb68675b10194db7cde7
Signed-off-by: Patrick Georgi <pgeorgi@chromium.org>
Original-Commit-Id: 7feece45900e5166864927047ad3ab7b997f8258
Original-Change-Id: Id2bc544ac5faf53f0f676fe132fea1db5640a401
Original-Signed-off-by: Duncan Laurie <dlaurie@chromium.org>
Original-Reviewed-on: https://chromium-review.googlesource.com/286877
Original-Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-on: http://review.coreboot.org/11034
Tested-by: build bot (Jenkins)
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
This commit is contained in:
Duncan Laurie 2015-07-20 16:59:20 -07:00 committed by Patrick Georgi
parent 46a2c77aaf
commit 8228621955
2 changed files with 17 additions and 8 deletions

View file

@ -21,6 +21,7 @@
#include <cbfs.h> #include <cbfs.h>
#include <console/console.h> #include <console/console.h>
#include <memory_info.h>
#include <string.h> #include <string.h>
#include <ec/google/chromeec/ec.h> #include <ec/google/chromeec/ec.h>
#include <soc/pei_data.h> #include <soc/pei_data.h>
@ -45,14 +46,6 @@ void mainboard_memory_init_params(struct romstage_params *params,
(UINT32)(params->pei_data->spd_data[0][0]); (UINT32)(params->pei_data->spd_data[0][0]);
memory_params->MemorySpdPtr10 = memory_params->MemorySpdPtr10 =
(UINT32)(params->pei_data->spd_data[1][0]); (UINT32)(params->pei_data->spd_data[1][0]);
printk(BIOS_SPEW, "0x%08x: SpdDataBuffer_0_0\n",
memory_params->MemorySpdPtr00);
printk(BIOS_SPEW, "0x%08x: SpdDataBuffer_0_1\n",
memory_params->MemorySpdPtr01);
printk(BIOS_SPEW, "0x%08x: SpdDataBuffer_1_0\n",
memory_params->MemorySpdPtr10);
printk(BIOS_SPEW, "0x%08x: SpdDataBuffer_1_1\n",
memory_params->MemorySpdPtr11);
} }
memcpy(memory_params->DqByteMapCh0, params->pei_data->dq_map[0], memcpy(memory_params->DqByteMapCh0, params->pei_data->dq_map[0],
sizeof(params->pei_data->dq_map[0])); sizeof(params->pei_data->dq_map[0]));
@ -69,3 +62,18 @@ void mainboard_memory_init_params(struct romstage_params *params,
memory_params->MemorySpdDataLen = SPD_LEN; memory_params->MemorySpdDataLen = SPD_LEN;
memory_params->DqPinsInterleaved = FALSE; memory_params->DqPinsInterleaved = FALSE;
} }
void mainboard_add_dimm_info(struct romstage_params *params,
struct memory_info *mem_info,
int channel, int dimm, int index)
{
/* Set the manufacturer */
memcpy(&mem_info->dimm[index].mod_id,
&params->pei_data->spd_data[channel][dimm][SPD_MANU_OFF],
sizeof(mem_info->dimm[index].mod_id));
/* Set the module part number */
memcpy(mem_info->dimm[index].module_part_number,
&params->pei_data->spd_data[channel][dimm][SPD_PART_OFF],
sizeof(mem_info->dimm[index].module_part_number));
}

View file

@ -32,5 +32,6 @@
#define SPD_BUS_DEV_WIDTH 8 #define SPD_BUS_DEV_WIDTH 8
#define SPD_PART_OFF 128 #define SPD_PART_OFF 128
#define SPD_PART_LEN 18 #define SPD_PART_LEN 18
#define SPD_MANU_OFF 148
#endif #endif