Patrick Georgi (pgeorgi@google.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/11033
-gerrit
commit c03328b438edf37fe80b26d008ce362487304890 Author: Duncan Laurie dlaurie@chromium.org Date: Mon Jul 20 16:48:55 2015 -0700
intel: common: Let mainboard supplement FSP memory info
Since the FSP memory info HOB does not return all the data that we need about a DIMM add a weak function that will allow the mainboard to supplement the generated memory_info structure.
Ideally this would not be necessary but until FSP returns the module part number we need this.
BUG=chrome-os-partner:42975, chrome-os-partner:42561 BRANCH=none TEST=run "mosys memory spd print all" on glados
Change-Id: Ic6d0ee0a31d23efcf7e7d7f18a74e944e09e7b46 Signed-off-by: Patrick Georgi pgeorgi@chromium.org Original-Commit-Id: 34ad7f1906ba526e52d38d5a6bce7b88b83f0c13 Original-Change-Id: I8509c5c627c1605894473fdea567e7f7ede08cf9 Original-Signed-off-by: Duncan Laurie dlaurie@chromium.org Original-Reviewed-on: https://chromium-review.googlesource.com/286876 Original-Reviewed-by: Aaron Durbin adurbin@chromium.org --- src/soc/intel/common/romstage.c | 13 +++++++++++++ src/soc/intel/common/romstage.h | 4 ++++ 2 files changed, 17 insertions(+)
diff --git a/src/soc/intel/common/romstage.c b/src/soc/intel/common/romstage.c index 99ac890..7a05e17 100644 --- a/src/soc/intel/common/romstage.c +++ b/src/soc/intel/common/romstage.c @@ -363,6 +363,10 @@ __attribute__((weak)) void mainboard_save_dimm_info( MEMORY_BUS_WIDTH_128; break; } + + /* Add any mainboard specific information */ + mainboard_add_dimm_info(params, mem_info, + channel, dimm, index); index++; } } @@ -371,6 +375,15 @@ __attribute__((weak)) void mainboard_save_dimm_info( printk(BIOS_DEBUG, "%d DIMMs found\n", mem_info->dimm_cnt); }
+/* Add any mainboard specific information */ +__attribute__((weak)) void mainboard_add_dimm_info( + struct romstage_params *params, + struct memory_info *mem_info, + int channel, int dimm, int index) +{ + printk(BIOS_DEBUG, "WEAK: %s/%s called\n", __FILE__, __func__); +} + /* Get the memory configuration data */ __attribute__((weak)) int mrc_cache_get_current( const struct mrc_saved_data **cache) diff --git a/src/soc/intel/common/romstage.h b/src/soc/intel/common/romstage.h index c677095..403016e 100644 --- a/src/soc/intel/common/romstage.h +++ b/src/soc/intel/common/romstage.h @@ -23,6 +23,7 @@
#include <stdint.h> #include <arch/cpu.h> +#include <memory_info.h> #include <fsp_util.h> #include <soc/intel/common/util.h> #include <soc/pei_data.h> @@ -76,6 +77,9 @@ void mainboard_memory_init_params(struct romstage_params *params, void mainboard_pre_console_init(struct romstage_params *params); void mainboard_romstage_entry(struct romstage_params *params); void mainboard_save_dimm_info(struct romstage_params *params); +void mainboard_add_dimm_info(struct romstage_params *params, + struct memory_info *mem_info, + int channel, int dimm, int index); void raminit(struct romstage_params *params); void report_memory_config(void); void report_platform_info(void);