SMM: Restore GNVS pointer in the resume path
The SMM GNVS pointer is normally updated only when the ACPI tables are created, which does not happen in the resume path. In order to restore this pointer it needs to be available at resume time. The method used to locate it at creation time cannot be used again as that magic signature is overwritten with the address itself. So a new CBMEM ID is added to store the 32bit address so it can be found again easily. A new function is defined to save this pointer in CBMEM which needs to be called when the ACPI tables are created in each mainboard when write_acpi_tables() is called. The cpu_index variable had to be renamed due to a conflict when cpu/cpu.h is added for the smm_setup_structures() prototype. Change-Id: Ic764ff54525e12b617c1dd8d6a3e5c4f547c3e6b Signed-off-by: Duncan Laurie <dlaurie@chromium.org> Reviewed-on: http://review.coreboot.org/1765 Tested-by: build bot (Jenkins) Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
This commit is contained in:
committed by
Ronald G. Minnich
parent
313ec9d15b
commit
11290c49b0
@ -44,6 +44,7 @@
|
||||
#define CBMEM_ID_FREESPACE 0x46524545
|
||||
#define CBMEM_ID_GDT 0x4c474454
|
||||
#define CBMEM_ID_ACPI 0x41435049
|
||||
#define CBMEM_ID_ACPI_GNVS 0x474e5653
|
||||
#define CBMEM_ID_CBTABLE 0x43425442
|
||||
#define CBMEM_ID_PIRQ 0x49525154
|
||||
#define CBMEM_ID_MPTABLE 0x534d5054
|
||||
|
Reference in New Issue
Block a user