soc/intel/apollolake: save GNVS pointer to SMM handler

Like other boards there will likely be information needed from
GNVS in the SMM handler. Therefore, it's important that the point
is stashed accordingly.

BUG=chrome-os-partner:54275
TEST=Noted GNVS messages from SMM console on reef.

Change-Id: If12b69731330a1e0af7f8fe880635e5ffd02d715
Signed-off-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-on: https://review.coreboot.org/15152
Tested-by: build bot (Jenkins)
Reviewed-by: Furquan Shaikh <furquan@google.com>
diff --git a/src/soc/intel/apollolake/acpi.c b/src/soc/intel/apollolake/acpi.c
index 07a5fcb..c950255 100644
--- a/src/soc/intel/apollolake/acpi.c
+++ b/src/soc/intel/apollolake/acpi.c
@@ -21,6 +21,7 @@
 #include <arch/smp/mpspec.h>
 #include <cbmem.h>
 #include <cpu/x86/smm.h>
+#include <cpu/cpu.h>
 #include <soc/acpi.h>
 #include <soc/intel/common/acpi.h>
 #include <soc/iomap.h>
@@ -159,6 +160,8 @@
 	if (gnvs) {
 		acpi_create_gnvs(gnvs);
 		acpi_save_gnvs((uintptr_t)gnvs);
+		/* And tell SMI about it */
+		smm_setup_structures(gnvs, NULL, NULL);
 
 		/* Add it to DSDT.  */
 		acpigen_write_scope("\\");