fsp1_1: supply fsp version to mrc_cache API

The memory init code needs to match the saved mrc data. To
ensure that invariant holds supply the FSP version when
using the mrc cache API.

BUG=chrome-os-partner:46050
BRANCH=None
TEST=Built and booted on glados. Verified version mismatch checking
     works.

Change-Id: I3f6dd19cb15a18761d34509749adafc89a72ed2d
Signed-off-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-on: https://review.coreboot.org/12701
Tested-by: build bot (Jenkins)
Reviewed-by: Patrick Georgi <pgeorgi@google.com>
diff --git a/src/drivers/intel/fsp1_1/romstage.c b/src/drivers/intel/fsp1_1/romstage.c
index b50bf73..16db4df 100644
--- a/src/drivers/intel/fsp1_1/romstage.c
+++ b/src/drivers/intel/fsp1_1/romstage.c
@@ -62,11 +62,14 @@
 	/* Display parameters */
 	printk(BIOS_SPEW, "CONFIG_MMCONF_BASE_ADDRESS: 0x%08x\n",
 		CONFIG_MMCONF_BASE_ADDRESS);
-	printk(BIOS_INFO, "Using FSP 1.1");
+	printk(BIOS_INFO, "Using FSP 1.1\n");
 
 	/* Display FSP banner */
 	print_fsp_info(fih);
 
+	/* Stash FSP version. */
+	params.fsp_version = fsp_version(fih);
+
 	/* Get power state */
 	params.power_state = fill_power_state();
 
@@ -125,7 +128,8 @@
 			/* Recovery mode does not use MRC cache */
 			printk(BIOS_DEBUG,
 			       "Recovery mode: not using MRC cache.\n");
-		} else if (!mrc_cache_get_current(&cache)) {
+		} else if (!mrc_cache_get_current_with_version(&cache,
+							params->fsp_version)) {
 			/* MRC cache found */
 			params->pei_data->saved_data_size = cache->size;
 			params->pei_data->saved_data = &cache->data[0];
@@ -151,8 +155,10 @@
 	if (params->pei_data->boot_mode != SLEEP_STATE_S3) {
 		if (params->pei_data->data_to_save_size != 0 &&
 		    params->pei_data->data_to_save != NULL) {
-			mrc_cache_stash_data(params->pei_data->data_to_save,
-				params->pei_data->data_to_save_size);
+			mrc_cache_stash_data_with_version(
+				params->pei_data->data_to_save,
+				params->pei_data->data_to_save_size,
+				params->fsp_version);
 		}
 	}