lenovo/x201: Really do EARLY_CBMEM_INIT

The board was missing cbmem_initialize() call in romstage. Selecting
EARLY_CBMEM_INIT implies this is done in romstage.

Change-Id: I9ec93f89fe4cbb9e729532be36db601b6e62bca6
Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
Reviewed-on: http://review.coreboot.org/4667
Tested-by: build bot (Jenkins)
Reviewed-by: Vladimir Serbinenko <phcoder@gmail.com>
This commit is contained in:
Kyösti Mälkki 2014-01-06 17:18:58 +02:00
parent 886a543d60
commit 97e1b11f41
1 changed files with 5 additions and 1 deletions

View File

@ -230,6 +230,7 @@ static inline u16 read_acpi16(u32 addr)
void main(unsigned long bist)
{
u32 reg32;
int cbmem_initted;
int s3resume = 0;
timestamp_init(rdtsc ());
@ -329,11 +330,14 @@ void main(unsigned long bist)
reg32 = inl(DEFAULT_PMBASE + 0x04);
outl(reg32 & ~(7 << 10), DEFAULT_PMBASE + 0x04);
}
cbmem_initted = !cbmem_initialize();
#if CONFIG_HAVE_ACPI_RESUME
/* If there is no high memory area, we didn't boot before, so
* this is not a resume. In that case we just create the cbmem toc.
*/
if (s3resume && cbmem_reinit()) {
if (s3resume && cbmem_initted) {
void *resume_backup_memory = cbmem_find(CBMEM_ID_RESUME);
/* copy 1MB - 64K to high tables ram_base to prevent memory corruption