summaryrefslogtreecommitdiffstats
path: root/BaseTools/Source/Python/UPT/UnitTest/CommentGeneratingUnitTest.py
diff options
context:
space:
mode:
authorPatrick Rudolph <patrick.rudolph@9elements.com>2022-02-25 12:16:39 +0100
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>2025-04-09 18:12:48 +0000
commit034de59fb7a0048525109eeaba76d78d48b21ef5 (patch)
tree34599b7f0aadb63a36279a09d68f38e5eee9d639 /BaseTools/Source/Python/UPT/UnitTest/CommentGeneratingUnitTest.py
parentc67d975cfca4ecefeba34b593ec35b29d5a313ec (diff)
downloadedk2-034de59fb7a0048525109eeaba76d78d48b21ef5.tar.gz
edk2-034de59fb7a0048525109eeaba76d78d48b21ef5.tar.bz2
edk2-034de59fb7a0048525109eeaba76d78d48b21ef5.zip
UefiPayloadPkg: Add SmmStoreLib
Implement all of the FVB protocol functions on top of the SmmStore as a library. The library consumes the introduced gEfiSmmStoreInfoHobGuid. The SMI handler uses a fixed communication buffer in reserved DRAM. To initiate a transaction you must write to the I/O APM_CNT port. Tests on Intel(R) Xeon(R) E-2288G CPU @ 3.70G showed that the SMI isn't triggered with a probability of 1:40 of all cases when called in a tight loop. The CPU continues running and the SMI is triggered asynchronously a few clock cycles later. coreboot only handles synchronous APM request and does nothing on asynchronous APM triggers. As there's no livesign from SMM it's impossible to tell if the handler has run. Just wait a bit and try again to trigger a synchronous SMI. Tests confirmed that out of 5 million tries the SMI is now always handled. When a synchronous SMI happens with the correct write to the APM_CNT port, the ebx register is checked first that it doesn't point to SMRAM. If it doesn't it's used to read in the arguments that define an SmmStore transaction. The SMI handler will only operate on a predefined and memory mapped region in the boot media. Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com> Signed-off-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
Diffstat (limited to 'BaseTools/Source/Python/UPT/UnitTest/CommentGeneratingUnitTest.py')
0 files changed, 0 insertions, 0 deletions