]> git.proxmox.com Git - mirror_edk2.git/commit
UefiCpuPkg: Setting initial-count register as the last step
authorMin Xu <min.m.xu@intel.com>
Mon, 29 Nov 2021 02:46:40 +0000 (10:46 +0800)
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Sat, 2 Apr 2022 08:15:12 +0000 (08:15 +0000)
commit299c44cd4f53fe7493e7dad283f60e184f90b0b9
tree8af6323ab84e4169199e0781152a7762f92dbf65
parentc2e7be4055cbfa604042dc0edac186a5f234163b
UefiCpuPkg: Setting initial-count register as the last step

BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=3711

Per SDM, changing the mode of APIC timer (from one-shot to periodic or
vice versa) by writing to the timer LVT entry does not start the timer.
To start the timer, it is necessary to write to the initial-count
register.

If initial-count is wrote before mode change, it's possible that timer
expired before the mode change. Thus failing the periodic mode.

Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Cc: Anthony Perard <anthony.perard@citrix.com>
Cc: Julien Grall <julien@xen.org>
Cc: Eric Dong <eric.dong@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Acked-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Ray Ni <ray.ni@intel.com>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
Signed-off-by: Min Xu <min.m.xu@intel.com>
UefiCpuPkg/Library/BaseXApicX2ApicLib/BaseXApicX2ApicLib.c