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:
@@ -230,6 +230,7 @@ static inline u16 read_acpi16(u32 addr)
|
|||||||
void main(unsigned long bist)
|
void main(unsigned long bist)
|
||||||
{
|
{
|
||||||
u32 reg32;
|
u32 reg32;
|
||||||
|
int cbmem_initted;
|
||||||
int s3resume = 0;
|
int s3resume = 0;
|
||||||
|
|
||||||
timestamp_init(rdtsc ());
|
timestamp_init(rdtsc ());
|
||||||
@@ -329,11 +330,14 @@ void main(unsigned long bist)
|
|||||||
reg32 = inl(DEFAULT_PMBASE + 0x04);
|
reg32 = inl(DEFAULT_PMBASE + 0x04);
|
||||||
outl(reg32 & ~(7 << 10), DEFAULT_PMBASE + 0x04);
|
outl(reg32 & ~(7 << 10), DEFAULT_PMBASE + 0x04);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
cbmem_initted = !cbmem_initialize();
|
||||||
|
|
||||||
#if CONFIG_HAVE_ACPI_RESUME
|
#if CONFIG_HAVE_ACPI_RESUME
|
||||||
/* If there is no high memory area, we didn't boot before, so
|
/* 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.
|
* 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);
|
void *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
|
||||||
|
Reference in New Issue
Block a user