<p>Arthur Heymans has uploaded this change for <strong>review</strong>.</p><p><a href="https://review.coreboot.org/c/coreboot/+/30012">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">[WIP]sb/intel/common/smihandler: Hook up smmstore<br><br>TESTED on Asus P5QC<br><br>Change-Id: I20b87f3dcb898656ad31478820dd5153e4053cb2<br>Signed-off-by: Arthur Heymans <arthur@aheymans.xyz><br>---<br>M src/cpu/x86/lapic/Makefile.inc<br>M src/southbridge/intel/common/smihandler.c<br>2 files changed, 26 insertions(+), 0 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://review.coreboot.org:29418/coreboot refs/changes/12/30012/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/cpu/x86/lapic/Makefile.inc b/src/cpu/x86/lapic/Makefile.inc</span><br><span>index 9454f8f..7637250 100644</span><br><span>--- a/src/cpu/x86/lapic/Makefile.inc</span><br><span>+++ b/src/cpu/x86/lapic/Makefile.inc</span><br><span>@@ -4,6 +4,7 @@</span><br><span> romstage-$(CONFIG_UDELAY_LAPIC) += apic_timer.c</span><br><span> ramstage-$(CONFIG_UDELAY_LAPIC) += apic_timer.c</span><br><span> postcar-$(CONFIG_UDELAY_LAPIC) += apic_timer.c</span><br><span style="color: hsl(120, 100%, 40%);">+smm-$(CONFIG_UDELAY_LAPIC) += apic_timer.c</span><br><span> bootblock-y += boot_cpu.c</span><br><span> verstage-y += boot_cpu.c</span><br><span> romstage-y += boot_cpu.c</span><br><span>diff --git a/src/southbridge/intel/common/smihandler.c b/src/southbridge/intel/common/smihandler.c</span><br><span>index 0ad400c..bd3af3a 100644</span><br><span>--- a/src/southbridge/intel/common/smihandler.c</span><br><span>+++ b/src/southbridge/intel/common/smihandler.c</span><br><span>@@ -25,6 +25,7 @@</span><br><span> #include <halt.h></span><br><span> #include <pc80/mc146818rtc.h></span><br><span> #include <southbridge/intel/common/pmbase.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <smmstore.h></span><br><span> </span><br><span> #include "pmutil.h"</span><br><span> </span><br><span>@@ -266,6 +267,26 @@</span><br><span> }</span><br><span> #endif</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+static void southbridge_smi_store(void)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+       u8 sub_command, ret;</span><br><span style="color: hsl(120, 100%, 40%);">+  em64t101_smm_state_save_area_t *io_smi =</span><br><span style="color: hsl(120, 100%, 40%);">+              smi_apmc_find_state_save(SMMSTORE_APM_CNT);</span><br><span style="color: hsl(120, 100%, 40%);">+   uint32_t reg_ebx;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   if (!io_smi)</span><br><span style="color: hsl(120, 100%, 40%);">+          return;</span><br><span style="color: hsl(120, 100%, 40%);">+       /* Command and return value in EAX */</span><br><span style="color: hsl(120, 100%, 40%);">+ sub_command = (io_smi->rax >> 8) & 0xff;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       /* Parameter buffer in EBX */</span><br><span style="color: hsl(120, 100%, 40%);">+ reg_ebx = io_smi->rbx;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   /* drivers/smmstore/smi.c */</span><br><span style="color: hsl(120, 100%, 40%);">+  ret = smmstore_exec(sub_command, (void *)reg_ebx);</span><br><span style="color: hsl(120, 100%, 40%);">+        io_smi->rax = ret;</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> static int mainboard_finalized = 0;</span><br><span> </span><br><span> static void southbridge_smi_apmc(void)</span><br><span>@@ -320,6 +341,10 @@</span><br><span>           southbridge_smi_gsmi();</span><br><span>              break;</span><br><span> #endif</span><br><span style="color: hsl(120, 100%, 40%);">+      case SMMSTORE_APM_CNT:</span><br><span style="color: hsl(120, 100%, 40%);">+                if (IS_ENABLED(CONFIG_SMMSTORE))</span><br><span style="color: hsl(120, 100%, 40%);">+                      southbridge_smi_store();</span><br><span style="color: hsl(120, 100%, 40%);">+              break;</span><br><span>       }</span><br><span> </span><br><span>        mainboard_smi_apmc(reg8);</span><br><span></span><br></pre><p>To view, visit <a href="https://review.coreboot.org/c/coreboot/+/30012">change 30012</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://review.coreboot.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://review.coreboot.org/c/coreboot/+/30012"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: coreboot </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I20b87f3dcb898656ad31478820dd5153e4053cb2 </div>
<div style="display:none"> Gerrit-Change-Number: 30012 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Arthur Heymans <arthur@aheymans.xyz> </div>
<div style="display:none"> Gerrit-Reviewer: Arthur Heymans <arthur@aheymans.xyz> </div>
<div style="display:none"> Gerrit-Reviewer: Martin Roth <martinroth@google.com> </div>
<div style="display:none"> Gerrit-Reviewer: Patrick Georgi <pgeorgi@google.com> </div>
<div style="display:none"> Gerrit-Reviewer: Patrick Rudolph <siro@das-labor.org> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>