AGESA boards: Fix split to romstage and ramstage

Boards broken with commit:
  062ef1c AGESA boards: Split dispatcher to romstage and ramstage

Boot failure with asus/f2a85-m witnessed around MemMS3Save() call,
message "Save memory S3 data in heap" in verbose agesa logs was
replaced by a system reset.

Default stubs for MemS3ResumeConstructNBBlock() returned TRUE
without initializing the block contents. This would not work for case
with multiple NB support built into same firmware.

MemMCreateS3NbBlock() then returned with S3NBPtr!=NULL with uninitialized
data and MemMContextSave() referenced those as invalid pointers.

There is no reason to prevent booting in the case S3 resume data is not
passed to ramstage, so remove the ASSERT(). It only affects builds with
IDSOPT_IDS_ENABLED=TRUE anyways.

Change-Id: I8fd1e308ceab2b6f4b4c90f0f712934c2918d92d
Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
Reviewed-on: https://review.coreboot.org/15344
Tested-by: build bot (Jenkins)
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
Reviewed-by: Idwer Vollering <vidwer@gmail.com>
This commit is contained in:
Kyösti Mälkki 2016-06-24 16:37:05 +03:00
parent e1a022ade4
commit 6aa45c090b
4 changed files with 2 additions and 4 deletions

View File

@ -124,7 +124,7 @@ BOOLEAN MemFS3DefConstructorRet (
IN UINT8 NodeID IN UINT8 NodeID
) )
{ {
return TRUE; return FALSE;
} }
#if (OPTION_MEMCTLR_DR == TRUE) #if (OPTION_MEMCTLR_DR == TRUE)

View File

@ -319,7 +319,6 @@ MemMS3Save (
if (RefPtr->MemContext.NvStorage == NULL) { if (RefPtr->MemContext.NvStorage == NULL) {
// Memory context cannot be saved succesfully // Memory context cannot be saved succesfully
ASSERT (FALSE);
return FALSE; return FALSE;
} }
} }

View File

@ -124,7 +124,7 @@ BOOLEAN MemFS3DefConstructorRet (
IN UINT8 NodeID IN UINT8 NodeID
) )
{ {
return TRUE; return FALSE;
} }
#if (OPTION_MEMCTLR_TN == TRUE) #if (OPTION_MEMCTLR_TN == TRUE)

View File

@ -576,7 +576,6 @@ MemMS3Save (
if (RefPtr->MemContext.NvStorage == NULL) { if (RefPtr->MemContext.NvStorage == NULL) {
// Memory context cannot be saved succesfully // Memory context cannot be saved succesfully
ASSERT (FALSE);
return FALSE; return FALSE;
} }
} }