Intel (sandy/ivy): Avoid calling cbmem_initialize() twice

Delay the copying of MRC cache data from CAR to CBMEM until after
sdram_initialize() returns and cbmem_initialize() completes.
Calling cbmem_initialize() twice would complicate the decision logic
of when CBMEM area needs to be wiped clean.

Change-Id: Ic59e94cb2436293efc47b52f7418f5dbf76c714a
Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
Reviewed-on: http://review.coreboot.org/4666
Tested-by: build bot (Jenkins)
Reviewed-by: Aaron Durbin <adurbin@google.com>
This commit is contained in:
Kyösti Mälkki
2014-01-04 11:02:45 +02:00
parent 1e5cacc8f8
commit 78938481eb
10 changed files with 18 additions and 6 deletions

View File

@@ -54,7 +54,7 @@
#define CMOS_OFFSET_MRC_SEED_CHK 160
#endif
static void save_mrc_data(struct pei_data *pei_data)
void save_mrc_data(struct pei_data *pei_data)
{
u16 c1, c2, checksum;
@@ -63,7 +63,6 @@ static void save_mrc_data(struct pei_data *pei_data)
int output_len = ALIGN(pei_data->mrc_output_len, 16);
/* Save the MRC S3 restore data to cbmem */
cbmem_initialize();
mrcdata = cbmem_add
(CBMEM_ID_MRCDATA,
output_len + sizeof(struct mrc_data_container));
@@ -297,8 +296,4 @@ void sdram_initialize(struct pei_data *pei_data)
post_system_agent_init(pei_data);
report_memory_config();
/* S3 resume: don't save scrambler seed or MRC data */
if (pei_data->boot_mode != 2)
save_mrc_data(pei_data);
}