diff options
Diffstat (limited to 'gitlab/issues/target_i386/host_missing/accel_missing/2064.toml')
| -rw-r--r-- | gitlab/issues/target_i386/host_missing/accel_missing/2064.toml | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/gitlab/issues/target_i386/host_missing/accel_missing/2064.toml b/gitlab/issues/target_i386/host_missing/accel_missing/2064.toml new file mode 100644 index 00000000..e45eef08 --- /dev/null +++ b/gitlab/issues/target_i386/host_missing/accel_missing/2064.toml @@ -0,0 +1,20 @@ +id = 2064 +title = "QEMU v8.2.0-rc4 and above will not take SMI" +state = "closed" +created_at = "2024-01-02T21:46:05.776Z" +closed_at = "2024-02-17T07:54:07.106Z" +labels = ["target: i386"] +url = "https://gitlab.com/qemu-project/qemu/-/issues/2064" +host-os = "Windows 11 and WSL" +host-arch = "x64" +qemu-version = "v8.2.0-rc4" +guest-os = "N/A, still in UEFI firmware" +guest-arch = "x86" +description = """Starting from v8.2.0-rc4, the x86 QEMU system will take SMI from an incorrect starting address. Without any firmware relocation, sending an SMI will move the RIP to 0x8000, instead of the traditional 0x38000. This caused the existing UEFI drivers not functional during SMI relocation step. + +After some investigation, the issue was caused by this commit: https://github.com/qemu/qemu/commit/b5e0d5d22fbffc3d8f7d3e86d7a2d05a1a974e27. There seems to be 2 issues with this change: + +1. This code section https://github.com/qemu/qemu/blob/7425b6277f12e82952cede1f531bfc689bf77fb1/target/i386/tcg/translate.c#L568C1-L572C6 was updated from calculating `cpu_eip` based on `s->pc` to `s->base.pc_next`. This will cause undetermined behavior. +2. This code section https://github.com/qemu/qemu/blob/7425b6277f12e82952cede1f531bfc689bf77fb1/target/i386/tcg/translate.c#L2848C1-L2869C67 added the routine of updating `new_pc`, which is later used `tcg_gen_addi_tl`. This will cause the `new_pc` to be populated with undesirable value and thus cause faulting behaviors.""" +reproduce = """1. Launch once booting UEFI firmware, and the system will get stuck at the SMM base relocation logic.""" +additional = """I verified that after fixing the 2 issues mentioned above, the SMI can be correctly invoked at desired location.""" |