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>
This commit is contained in:
Felix Held 2024-01-05 17:04:34 +01:00
parent 11ecbcf5cb
commit c6322e1f82
1 changed files with 4 additions and 1 deletions

View File

@ -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.