diff options
author | Felix Held <felix-coreboot@felixheld.de> | 2024-01-05 17:04:34 +0100 |
---|---|---|
committer | Felix Held <felix-coreboot@felixheld.de> | 2024-01-11 22:35:22 +0000 |
commit | c6322e1f823028003da10a0e21048d674a0933cb (patch) | |
tree | ded75097658e9b55399d5420a49d0d82c69d6a31 /src | |
parent | 11ecbcf5cb04cb4c6b763d6f94bbe06eae58413c (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')
-rw-r--r-- | src/arch/x86/include/smm_call.h | 5 |
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. |