Attention is currently required from: Jérémy Compostella.
Felix Held has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/79834?usp=email )
Change subject: arch/x86/include/smm: improve documentation of call_smm ......................................................................
arch/x86/include/smm: improve documentation of call_smm
Since the inline assembly code doesn't make it exactly obvious how this function to call the APMC SMI handler works in detail and especially how it passes the sub-command and argument pointer to the SMI handler, add a more detailed explanation as comment.
Signed-off-by: Felix Held felix-coreboot@felixheld.de Change-Id: I3566af191492ce00a3033335ff80e01c33e98e63 --- M src/arch/x86/include/smm_call.h 1 file changed, 4 insertions(+), 1 deletion(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/34/79834/1
diff --git a/src/arch/x86/include/smm_call.h b/src/arch/x86/include/smm_call.h index 66925c4..d940d0b 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 can then read 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.