summaryrefslogtreecommitdiff
path: root/src/drivers/intel/fsp1_1/romstage.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/drivers/intel/fsp1_1/romstage.c')
-rw-r--r--src/drivers/intel/fsp1_1/romstage.c48
1 files changed, 24 insertions, 24 deletions
diff --git a/src/drivers/intel/fsp1_1/romstage.c b/src/drivers/intel/fsp1_1/romstage.c
index 46df1c8697..5a59c502a9 100644
--- a/src/drivers/intel/fsp1_1/romstage.c
+++ b/src/drivers/intel/fsp1_1/romstage.c
@@ -23,7 +23,7 @@
static void raminit_common(struct romstage_params *params)
{
bool s3wake;
- struct region_device rdev;
+ size_t mrc_size;
post_code(0x32);
@@ -45,24 +45,31 @@ static void raminit_common(struct romstage_params *params)
/* Recovery mode does not use MRC cache */
printk(BIOS_DEBUG,
"Recovery mode: not using MRC cache.\n");
- } else if (CONFIG(CACHE_MRC_SETTINGS)
- && (!mrc_cache_get_current(MRC_TRAINING_DATA,
- params->fsp_version,
- &rdev))) {
- /* MRC cache found */
- params->saved_data_size = region_device_sz(&rdev);
- params->saved_data = rdev_mmap_full(&rdev);
+ } else {
/* Assume boot device is memory mapped. */
assert(CONFIG(BOOT_DEVICE_MEMORY_MAPPED));
- } else if (s3wake) {
- /* Waking from S3 and no cache. */
- printk(BIOS_DEBUG,
- "No MRC cache found in S3 resume path.\n");
- post_code(POST_RESUME_FAILURE);
- /* FIXME: A "system" reset is likely enough: */
- full_reset();
- } else {
- printk(BIOS_DEBUG, "No MRC cache found.\n");
+
+ params->saved_data = NULL;
+ if (CONFIG(CACHE_MRC_SETTINGS))
+ params->saved_data =
+ mrc_cache_current_mmap_leak(MRC_TRAINING_DATA,
+ params->fsp_version,
+ &mrc_size);
+ if (params->saved_data) {
+ /* MRC cache found */
+ params->saved_data_size = mrc_size;
+
+ } else if (s3wake) {
+ /* Waking from S3 and no cache. */
+ printk(BIOS_DEBUG,
+ "No MRC cache "
+ "found in S3 resume path.\n");
+ post_code(POST_RESUME_FAILURE);
+ /* FIXME: A "system" reset is likely enough: */
+ full_reset();
+ } else {
+ printk(BIOS_DEBUG, "No MRC cache found.\n");
+ }
}
}
@@ -283,13 +290,6 @@ __weak void mainboard_add_dimm_info(
{
}
-/* Get the memory configuration data */
-__weak int mrc_cache_get_current(int type, uint32_t version,
- struct region_device *rdev)
-{
- return -1;
-}
-
/* Save the memory configuration data */
__weak int mrc_cache_stash_data(int type, uint32_t version,
const void *data, size_t size)