summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDuncan Laurie <dlaurie@chromium.org>2012-10-10 12:11:55 -0700
committerRonald G. Minnich <rminnich@gmail.com>2012-11-14 05:47:05 +0100
commit4b85d9b434f6150745e469bd8c04671f4307de33 (patch)
tree83d1de2d72675a5341243bcf884e5864e194afb1 /src
parent38109d558aaf763eb3708e747d848d7ea23d8345 (diff)
SMM: Fix save state searching for GSMI
The search for save state was comparing the entire RAX value when it needs to just operate on the bottom byte so it can find the GSMI command in bits 7:0 but not the extended command code in bits 15:8. Change-Id: I526c60e6b3732fa3680a17a4bed2a2ef23ccf94f Signed-off-by: Duncan Laurie <dlaurie@chromium.org> Reviewed-on: http://review.coreboot.org/1774 Tested-by: build bot (Jenkins) Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
Diffstat (limited to 'src')
-rw-r--r--src/southbridge/intel/bd82x6x/smihandler.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/southbridge/intel/bd82x6x/smihandler.c b/src/southbridge/intel/bd82x6x/smihandler.c
index 4cad88bfcf..804607c927 100644
--- a/src/southbridge/intel/bd82x6x/smihandler.c
+++ b/src/southbridge/intel/bd82x6x/smihandler.c
@@ -429,7 +429,7 @@ static void southbridge_smi_sleep(unsigned int node, smm_state_save_area_t *stat
* core in case we are not running on the same core that
* initiated the IO transaction.
*/
-static em64t101_smm_state_save_area_t *smi_apmc_find_state_save(u64 cmd)
+static em64t101_smm_state_save_area_t *smi_apmc_find_state_save(u8 cmd)
{
em64t101_smm_state_save_area_t *state;
u32 base = smi_get_tseg_base() + 0x8000 + 0x7d00;
@@ -453,7 +453,7 @@ static em64t101_smm_state_save_area_t *smi_apmc_find_state_save(u64 cmd)
continue;
/* Check AX against the requested command */
- if (state->rax != cmd)
+ if ((state->rax & 0xff) != cmd)
continue;
return state;