summaryrefslogtreecommitdiff
path: root/src/arch
diff options
context:
space:
mode:
authorFelix Held <felix-coreboot@felixheld.de>2024-01-05 17:04:34 +0100
committerFelix Held <felix-coreboot@felixheld.de>2024-01-11 22:35:22 +0000
commitc6322e1f823028003da10a0e21048d674a0933cb (patch)
treeded75097658e9b55399d5420a49d0d82c69d6a31 /src/arch
parent11ecbcf5cb04cb4c6b763d6f94bbe06eae58413c (diff)
arch/x86/include/smm_call: improve documentation of call_smm
Since the inline assembly code in call_smm doesn't make it exactly obvious how this function to call the APMC SMI handler works in detail, add a more detailed explanation as comment. Signed-off-by: Felix Held <felix-coreboot@felixheld.de> Change-Id: I3566af191492ce00a3033335ff80e01c33e98e63 Reviewed-on: https://review.coreboot.org/c/coreboot/+/79834 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Matt DeVillier <matt.devillier@amd.corp-partner.google.com>
Diffstat (limited to 'src/arch')
-rw-r--r--src/arch/x86/include/smm_call.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/arch/x86/include/smm_call.h b/src/arch/x86/include/smm_call.h
index 66925c4a06..dc780399e0 100644
--- a/src/arch/x86/include/smm_call.h
+++ b/src/arch/x86/include/smm_call.h
@@ -4,7 +4,10 @@
#include <cpu/x86/smm.h>
/*
- * calls into SMM with the given cmd and subcmd in eax, and arg in ebx
+ * Call the APMC SMI handler that resides in SMM. First, the command and sub-command are stored
+ * in eax, and the argument pointer is stored in ebx, then the command byte is written to the
+ * APMC IO port to trigger the SMI. The APMC SMI handler then reads the command from the APMC
+ * IO port and the contents of eax and ebx from the SMM state save area.
*
* static inline because the resulting assembly is often smaller than
* the call sequence due to constant folding.