audk/UefiCpuPkg/Library/CpuExceptionHandlerLib
Tan, Dun d98efb4682 UefiCpuPkg: Restore HpetTimer after CpuExceptionHandlerLib test
Disable/Restore HpetTimer before and after running the Dxe
CpuExceptionHandlerLib unit test module. During the UnitTest, a
new Idt is initialized for the test. There is no handler for timer
intrrupt in this new idt. After the test module, HpetTimer does
not work any more since the comparator value register and main
counter value register for timer does not match. To fix this issue,
disable/restore HpetTimer before and after Unit Test if HpetTimer
driver has been dispatched. We don't need to send Apic Eoi in this
unit test module.When disabling timer, after RaiseTPL(), if there
is a pending timer interrupt, bit64 of Interrupt Request Register
(IRR) will be set to 1 to indicate there is a pending timer
interrupt. After RestoreTPL(), CPU will handle the pending
interrupt in IRR.Then TimerInterruptHandler calls SendApicEoi().

Signed-off-by: Dun Tan <dun.tan@intel.com>
Cc: Eric Dong <eric.dong@intel.com>
Reviewed-by: Ray Ni <ray.ni@intel.com>
Cc: Rahul Kumar <rahul1.kumar@intel.com>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
2022-10-28 09:02:46 +00:00
..
Ia32 UefiCpuPkg/CpuExceptionHandlerLib: Code optimization to allow bigger stack 2022-10-08 05:45:22 +00:00
UnitTest UefiCpuPkg: Restore HpetTimer after CpuExceptionHandlerLib test 2022-10-28 09:02:46 +00:00
X64 UefiCpuPkg/CpuExceptionHandlerLib: Code optimization to allow bigger stack 2022-10-08 05:45:22 +00:00
CpuExceptionCommon.c UefiCpuPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
CpuExceptionCommon.h UefiCpuPkg: Simplify the implementation when separate exception stacks 2022-08-31 04:23:55 +00:00
DxeCpuExceptionHandlerLib.inf UefiCpuPkg/CpuExceptionHandlerLib: Clear CET shadow stack token busy bit 2021-03-02 05:11:55 +00:00
DxeCpuExceptionHandlerLib.uni UefiCpuPkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:28 -07:00
DxeException.c UefiCpuPkg: Simplify the implementation when separate exception stacks 2022-08-31 04:23:55 +00:00
PeiCpuException.c UefiCpuPkg:Add RegisterExceptionHandler in PeiCpuExceptionHandlerLib 2022-10-17 08:03:06 +00:00
PeiCpuExceptionHandlerLib.inf UefiCpuPkg: Simplify InitializeSeparateExceptionStacks 2022-08-09 04:12:28 +00:00
PeiCpuExceptionHandlerLib.uni UefiCpuPkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:28 -07:00
PeiDxeSmmCpuException.c CpuException: Remove InitializeCpuInterruptHandlers 2022-06-10 07:54:48 +00:00
SecPeiCpuException.c UefiCpuPkg: Simplify InitializeSeparateExceptionStacks 2022-08-09 04:12:28 +00:00
SecPeiCpuExceptionHandlerLib.inf UefiCpuPkg: Simplify the implementation when separate exception stacks 2022-08-31 04:23:55 +00:00
SecPeiCpuExceptionHandlerLib.uni UefiCpuPkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:28 -07:00
SmmCpuExceptionHandlerLib.inf UefiCpuPkg: Simplify the implementation when separate exception stacks 2022-08-31 04:23:55 +00:00
SmmCpuExceptionHandlerLib.uni UefiCpuPkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:28 -07:00
SmmException.c UefiCpuPkg: Simplify InitializeSeparateExceptionStacks 2022-08-09 04:12:28 +00:00
Xcode5SecPeiCpuExceptionHandlerLib.inf UefiCpuPkg: Simplify the implementation when separate exception stacks 2022-08-31 04:23:55 +00:00
Xcode5SecPeiCpuExceptionHandlerLib.uni UefiCpuPkg/CpuExceptionHandler: Make XCODE5 changes toolchain specific 2020-05-11 19:25:33 +00:00