diff options
| author | Kun Qin <kuqin@microsoft.com> | 2026-09-25 21:52:21 +0300 |
|---|---|---|
| committer | mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> | 2026-09-29 12:12:40 +0300 |
| commit | 10f2053c2d769c6c1becef9dc313e786d5743117 (patch) | |
| tree | 892a95e9f7303ecf809680a8466e59ba7a10a6a4 /BaseTools/Source/Python/Workspace/MetaFileTable.py | |
| parent | 75400a462b52c349dd070e6f6d435511cbf7db13 (diff) | |
| download | edk2-10f2053c2d769c6c1becef9dc313e786d5743117.tar.xz | |
OvmfPkg: SmmRelocationLib: Optimize SMI init 16-bit bootstrapping
Every once in a while the SMM relocation routine would hang the system.
This is due to the 16-bit code after relocation could land at the end of
a 4K page boundary. Then the code fetching into the next page will trip
on QEMU block-exit handling logic, which will truncate the EIP with
0xFFFF, causing the code to read back garbage and fault.
This change short-circuits the jump by copying the entire 16-bit stub
over to the BASE + 0x8000 location. The GDTr is also moved to the same
location, otherwise we could risk reaching out to a different page
because it is marked in a different section inside this image.
Signed-off-by: Kun Qin <kun.qin@microsoft.com>
Diffstat (limited to 'BaseTools/Source/Python/Workspace/MetaFileTable.py')
0 files changed, 0 insertions, 0 deletions
