The series of patches add error handlings (ASSERTs) in APIC timer libraries and LocalApicLib instances when local APIC is not configurated properly.
The following conditions will lead to ASSERT: 1. Local APIC is not globally enabled. 2. Local APIC is not software enabled. 3. Local APIC is not running under proper mode (For the TimerLib in MdePkg, it assumes the local APIC is running under xAPIC mode). 4. The value of Initial Count Register is zero and this value will be used as a divisor (This will happen when no value is written into the Initial Count Register, therefore, the local APIC timer is not running). Hao Wu (3): MdePkg: Add ASSERT to handle local APIC not config properly UefiCpuPkg: Add ASSERT to handle local APIC not config properly UefiCpuPkg BaseXApic(X2)Lib: Add ASSERT if local APIC not software enabled MdePkg/Library/SecPeiDxeTimerLibCpu/X86TimerLib.c | 39 ++++++++++++++++++++-- UefiCpuPkg/Library/BaseXApicLib/BaseXApicLib.c | 9 +++++ .../BaseXApicX2ApicLib/BaseXApicX2ApicLib.c | 11 +++++- .../Library/SecPeiDxeTimerLibUefiCpu/X86TimerLib.c | 6 +++- 4 files changed, 61 insertions(+), 4 deletions(-) -- 1.9.5.msysgit.0 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel