[coreboot-gerrit] New patch to review for coreboot: 74d7d00 Added fix for SMM/SMI

kayalvizhi dhandapani (kayalvizhid@ami.com) gerrit at coreboot.org
Mon Oct 6 19:16:08 CEST 2014


kayalvizhi dhandapani (kayalvizhid at ami.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/7022

-gerrit

commit 74d7d0042f056717088ea1348f1e04a29bca3de6
Author: kayalvizhid <kayalvizhid at ami.com>
Date:   Mon Oct 6 11:59:02 2014 -0400

    Added fix for SMM/SMI
    
    When enabled SMM, the boot stopped while patching up global NVS in DSDT.
    Noticed both CPUs were assigned the same SMBASE address.
    Updated cpu_smm_do_relocation() function so that every cpu get different SMBASE address
    Added other minor fix to fix the errors 1.unknown type error for "device_t" &
    2.implicit declaration of funtion "southcluster_smm_save_gpio_route".
    [TESTED]Tested on intel bayleybay CRB. The SMI works with the above fixes.
    
    Change-Id: Ia414678cffd27bef3caac6761a576bbba46a0e51
    Signed-off-by: kayalvizhi dhandapani <kayalvizhid at ami.com>
---
 src/mainboard/intel/bayleybay_fsp/devicetree.cb |  2 +-
 src/soc/intel/fsp_baytrail/cpu.c                | 10 ++++++++--
 src/soc/intel/fsp_baytrail/gpio.c               |  1 +
 src/soc/intel/fsp_baytrail/tsc_freq.c           | 10 +++++-----
 4 files changed, 15 insertions(+), 8 deletions(-)

diff --git a/src/mainboard/intel/bayleybay_fsp/devicetree.cb b/src/mainboard/intel/bayleybay_fsp/devicetree.cb
index befd3dc..356c8df 100644
--- a/src/mainboard/intel/bayleybay_fsp/devicetree.cb
+++ b/src/mainboard/intel/bayleybay_fsp/devicetree.cb
@@ -27,7 +27,7 @@ chip soc/intel/fsp_baytrail
 	register "SataMode"             = "SATA_MODE_AHCI"
 	register "MrcInitSPDAddr1"      = "SPD_ADDR_DEFAULT"
 	register "MrcInitSPDAddr2"      = "SPD_ADDR_DEFAULT"
-	register "MrcInitTsegSize"      = "TSEG_SIZE_DEFAULT"
+	register "MrcInitTsegSize"      = "TSEG_SIZE_8_MB"
 	register "MrcInitMmioSize"      = "MMIO_SIZE_DEFAULT"
 	register "eMMCBootMode"         = "EMMC_FOLLOWS_DEVICETREE"
 	register "IgdDvmt50PreAlloc"    = "IGD_MEMSIZE_DEFAULT"
diff --git a/src/soc/intel/fsp_baytrail/cpu.c b/src/soc/intel/fsp_baytrail/cpu.c
index f260880..6f1e9c4 100644
--- a/src/soc/intel/fsp_baytrail/cpu.c
+++ b/src/soc/intel/fsp_baytrail/cpu.c
@@ -148,14 +148,20 @@ static void adjust_apic_id_map(struct smm_loader_params *smm_params)
 		runtime->apic_id_to_cpu[i] = mp_get_apic_id(i);
 }
 
-static void asmlinkage
-cpu_smm_do_relocation(void *arg, int cpu, const struct smm_runtime *runtime)
+static void asmlinkage cpu_smm_do_relocation(void *arg)
 {
 #ifndef CONFIG_MAX_CPUS
 #error CONFIG_MAX_CPUS must be set.
 #endif
 	msr_t smrr;
 	em64t100_smm_state_save_area_t *smm_state;
+        const struct smm_module_params *p;
+        const struct smm_runtime *runtime;
+        int cpu;
+
+        p = arg;
+        runtime = p->runtime;
+        cpu = p->cpu;
 
 	if (cpu >= CONFIG_MAX_CPUS) {
 		printk(BIOS_CRIT,
diff --git a/src/soc/intel/fsp_baytrail/gpio.c b/src/soc/intel/fsp_baytrail/gpio.c
index 69e9ac6..c12c937 100644
--- a/src/soc/intel/fsp_baytrail/gpio.c
+++ b/src/soc/intel/fsp_baytrail/gpio.c
@@ -21,6 +21,7 @@
 #include <console/console.h>
 #include <baytrail/gpio.h>
 #include <baytrail/pmc.h>
+#include <baytrail/smm.h>
 
 /* GPIO-to-Pad LUTs */
 static const u8 gpncore_gpio_to_pad[GPNCORE_COUNT] =
diff --git a/src/soc/intel/fsp_baytrail/tsc_freq.c b/src/soc/intel/fsp_baytrail/tsc_freq.c
index b74e41e..da7e965 100644
--- a/src/soc/intel/fsp_baytrail/tsc_freq.c
+++ b/src/soc/intel/fsp_baytrail/tsc_freq.c
@@ -21,11 +21,6 @@
 #include <cpu/x86/msr.h>
 #include <cpu/x86/tsc.h>
 #include <baytrail/msr.h>
-#if !defined(__PRE_RAM__)
-#include <baytrail/ramstage.h>
-#else
-#include <baytrail/romstage.h>
-#endif
 
 unsigned bus_freq_khz(void)
 {
@@ -57,6 +52,11 @@ unsigned long tsc_freq_mhz(void)
 }
 
 #if !defined(__SMM__)
+#if !defined(__PRE_RAM__)
+#include <baytrail/ramstage.h>
+#else
+#include <baytrail/romstage.h>
+#endif
 
 void set_max_freq(void)
 {



More information about the coreboot-gerrit mailing list