mirror of
https://github.com/fail0verflow/switch-coreboot.git
synced 2025-05-04 01:39:18 -04:00
nehalem: Move cbmem_recovery call to raminit.
Currently cbmem_recovery is done in raminit only on non-S3-resume path do it on both paths to reduce confusion. Change-Id: I16161ad449b9802a855fcf834aa721f4f65c0bb4 Signed-off-by: Vladimir Serbinenko <phcoder@gmail.com> Reviewed-on: http://review.coreboot.org/5954 Reviewed-by: Kyösti Mälkki <kyosti.malkki@gmail.com> Tested-by: build bot (Jenkins)
This commit is contained in:
parent
4af1245ea1
commit
b16f09238d
3 changed files with 16 additions and 21 deletions
|
@ -324,16 +324,6 @@ void main(unsigned long bist)
|
||||||
if (s3resume) {
|
if (s3resume) {
|
||||||
void *resume_backup_memory;
|
void *resume_backup_memory;
|
||||||
|
|
||||||
/* For non-S3-resume, CBMEM is inited in raminit code. */
|
|
||||||
if (cbmem_recovery(1)) {
|
|
||||||
printk(BIOS_ERR, "Failed S3 resume.\n");
|
|
||||||
ram_check(0x100000, 0x200000);
|
|
||||||
|
|
||||||
/* Failed S3 resume, reset to come up cleanly */
|
|
||||||
outb(0xe, 0xcf9);
|
|
||||||
hlt();
|
|
||||||
}
|
|
||||||
|
|
||||||
resume_backup_memory = cbmem_find(CBMEM_ID_RESUME);
|
resume_backup_memory = cbmem_find(CBMEM_ID_RESUME);
|
||||||
|
|
||||||
/* copy 1MB - 64K to high tables ram_base to prevent memory corruption
|
/* copy 1MB - 64K to high tables ram_base to prevent memory corruption
|
||||||
|
|
|
@ -306,16 +306,6 @@ void main(unsigned long bist)
|
||||||
if (s3resume) {
|
if (s3resume) {
|
||||||
void *resume_backup_memory;
|
void *resume_backup_memory;
|
||||||
|
|
||||||
/* For non-S3-resume, CBMEM is inited in raminit code. */
|
|
||||||
if (cbmem_recovery(1)) {
|
|
||||||
printk(BIOS_ERR, "Failed S3 resume.\n");
|
|
||||||
ram_check(0x100000, 0x200000);
|
|
||||||
|
|
||||||
/* Failed S3 resume, reset to come up cleanly */
|
|
||||||
outb(0xe, 0xcf9);
|
|
||||||
hlt();
|
|
||||||
}
|
|
||||||
|
|
||||||
resume_backup_memory = cbmem_find(CBMEM_ID_RESUME);
|
resume_backup_memory = cbmem_find(CBMEM_ID_RESUME);
|
||||||
|
|
||||||
/* copy 1MB - 64K to high tables ram_base to prevent memory corruption
|
/* copy 1MB - 64K to high tables ram_base to prevent memory corruption
|
||||||
|
|
|
@ -1715,7 +1715,6 @@ static void save_timings(struct raminfo *info)
|
||||||
printk (BIOS_SPEW, "[6e8] = %x\n", train.reg_6e8);
|
printk (BIOS_SPEW, "[6e8] = %x\n", train.reg_6e8);
|
||||||
|
|
||||||
/* Save the MRC S3 restore data to cbmem */
|
/* Save the MRC S3 restore data to cbmem */
|
||||||
cbmem_recovery(0);
|
|
||||||
mrcdata = cbmem_add
|
mrcdata = cbmem_add
|
||||||
(CBMEM_ID_MRCDATA, output_len + sizeof(struct mrc_data_container));
|
(CBMEM_ID_MRCDATA, output_len + sizeof(struct mrc_data_container));
|
||||||
|
|
||||||
|
@ -3869,6 +3868,7 @@ void raminit(const int s3resume, const u8 *spd_addrmap)
|
||||||
struct raminfo info;
|
struct raminfo info;
|
||||||
u8 x2ca8;
|
u8 x2ca8;
|
||||||
u16 deven;
|
u16 deven;
|
||||||
|
int cbmem_wasnot_inited;
|
||||||
|
|
||||||
x2ca8 = read_mchbar8(0x2ca8);
|
x2ca8 = read_mchbar8(0x2ca8);
|
||||||
deven = pcie_read_config16(NORTHBRIDGE, D0F0_DEVEN);
|
deven = pcie_read_config16(NORTHBRIDGE, D0F0_DEVEN);
|
||||||
|
@ -4973,7 +4973,22 @@ void raminit(const int s3resume, const u8 *spd_addrmap)
|
||||||
#if REAL
|
#if REAL
|
||||||
udelay(1000);
|
udelay(1000);
|
||||||
dump_timings(&info);
|
dump_timings(&info);
|
||||||
|
cbmem_wasnot_inited = cbmem_recovery(s3resume);
|
||||||
|
|
||||||
if (!s3resume)
|
if (!s3resume)
|
||||||
save_timings(&info);
|
save_timings(&info);
|
||||||
|
if (s3resume && cbmem_wasnot_inited) {
|
||||||
|
u32 reg32;
|
||||||
|
printk(BIOS_ERR, "Failed S3 resume.\n");
|
||||||
|
ram_check(0x100000, 0x200000);
|
||||||
|
|
||||||
|
/* Clear SLP_TYPE. */
|
||||||
|
reg32 = inl(DEFAULT_PMBASE + 0x04);
|
||||||
|
outl(reg32 & ~(7 << 10), DEFAULT_PMBASE + 0x04);
|
||||||
|
|
||||||
|
/* Failed S3 resume, reset to come up cleanly */
|
||||||
|
outb(0xe, 0xcf9);
|
||||||
|
hlt();
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue