Acidanthera UEFI Development Kit based on EDK II edk2-stable202311
Go to file
Jeff Fan 4a0f88dd64 UefiCpuPkg/PiSmmCpuDxeSmm: Put AP into safe hlt-loop code on S3 path
On S3 path, we will wake up APs to restore CPU context in PiSmmCpuDxeSmm
driver. However, we place AP in hlt-loop under 1MB space borrowed after CPU
restoring CPU contexts.
In case, one NMI or SMI happens, APs may exit from hlt state and execute the
instruction after HLT instruction. But the code under 1MB is no longer safe at
that time.

This fix is to allocate one ACPI NVS range to place the AP hlt-loop code. When
CPU finished restoration CPU contexts, AP will execute in this ACPI NVS range.

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

v2:
  1. Make stack alignment per Laszlo's comment.
  2. Trim whitespace at end of end.
  3. Update year mark in file header.

Reported-by: Laszlo Ersek <lersek@redhat.com>
Analyzed-by: Paolo Bonzini <pbonzini@redhat.com>
Analyzed-by: Laszlo Ersek <lersek@redhat.com>
Cc: Laszlo Ersek <lersek@redhat.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jeff Fan <jeff.fan@intel.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
Tested-by: Laszlo Ersek <lersek@redhat.com>
2016-11-15 09:44:53 +08:00
AppPkg AppPkg: Update email and URL. 2016-10-26 09:34:34 -07:00
ArmPkg ArmPkg/CpuDxe: set DmaBufferAlignment according to CWG 2016-11-02 16:22:48 +00:00
ArmPlatformPkg ArmPlatformPkg/ArmVExpressFastBootDxe: eliminate deprecated string functions 2016-10-28 16:26:50 +01:00
ArmVirtPkg ArmVirPkg/PlatformBds: Dispatch deferred images after EndOfDxe 2016-11-10 15:58:04 +08:00
BaseTools BaseTools/Scripts: Add BinToPcd utility 2016-11-14 08:40:41 -08:00
BeagleBoardPkg BeagleBoardPkg: enable -DDISABLE_NEW_DEPRECATED_INTERFACES 2016-10-28 15:55:53 +01:00
Conf
CorebootModulePkg CorebootModulePkgPkg: Expose FindCbTag API from CbParseLib 2016-10-27 09:51:16 -07:00
CorebootPayloadPkg CorebootPayload/PlatformBds: Dispatch deferred images after EndOfDxe 2016-11-10 15:58:31 +08:00
CryptoPkg CryptoPkg/BaseCryptLib: Make comments consistent with the function 2016-11-11 13:46:04 +08:00
DuetPkg DuetPkg: Add POSTBUILD in DSC files to run post-build automatically 2016-11-14 19:33:11 +08:00
EdkCompatibilityPkg EdkCompatibilityPkg/PrintLite: Fix ErrorPrint() wrong NULL char check 2016-11-03 10:28:47 +08:00
EdkShellBinPkg */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
EdkShellPkg */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
EmbeddedPkg EmbeddedPkg: MmcDxe: add SPEC_VERS field in CSD structure 2016-11-14 15:45:49 +00:00
EmulatorPkg EmulatorPkg: Fix typos in comments and variables 2016-10-19 13:32:20 -07:00
FatBinPkg FatBinPkg: Change to 2-clause BSD license 2016-04-22 00:55:21 -07:00
FatPkg FatPkg/EnhancedFatDxe: rebase to ARRAY_SIZE() 2016-10-27 11:10:54 +02:00
IntelFrameworkModulePkg IntelFrameworkModulePkg/LegacyBios: Fix legacy serial redirection bug 2016-11-10 10:19:54 +08:00
IntelFrameworkPkg IntelFrameworkPkg: Fix typos in comments 2016-10-24 09:09:26 +08:00
IntelFsp2Pkg IntelFsp2Pkg: Support to return error status from FSP API done 2016-11-14 12:11:05 +08:00
IntelFsp2WrapperPkg IntelFsp2WrapperPkg: Add a PCD to control if signaling PciEnumerationComplete. 2016-10-28 07:46:42 +08:00
IntelFspPkg IntelFspPkg: Fix typos in comments 2016-10-24 09:26:28 +08:00
IntelFspWrapperPkg IntelFspWrapperPkg: Fix typos in comments 2016-10-24 09:26:30 +08:00
IntelSiliconPkg IntelSiliconPkg: Add PCD for Graphics VBT FFS GUID 2016-11-14 10:28:38 -08:00
MdeModulePkg MdeModulePkg/BMMUI: add comments for function parameter 2016-11-15 09:36:03 +08:00
MdePkg MdePkg: Fix spec mismatch in string representation of EMMC dev node 2016-11-14 11:08:41 +08:00
NetworkPkg NetworkPkg: Check for NULL pointer before dereference it. 2016-10-31 16:04:02 +08:00
Nt32Pkg Nt32Pkg/PlatformBds: Dispatch deferred images after EndOfDxe 2016-11-10 15:58:38 +08:00
Omap35xxPkg EmbeddedPkg: remove unused PrePiHobListPointerLib 2016-10-28 13:51:35 +01:00
OptionRomPkg OptionRomPkg/AtapiPassThruDxe: rebase to ARRAY_SIZE() 2016-10-27 11:10:58 +02:00
OvmfPkg OvmfPkg/PlatformBds: Dispatch deferred images after EndOfDxe 2016-11-10 15:58:27 +08:00
PcAtChipsetPkg PcAtChipsetPkg/HpetTimerDxe: Fix race condition in SetTimerPeriod() 2016-10-27 21:46:42 -07:00
PerformancePkg PerformancePkg/Dp_App: rebase to ARRAY_SIZE() 2016-10-27 11:10:59 +02:00
QuarkPlatformPkg QuarkPlatformPkg/PlatformBds: Dispatch deferred images after EndOfDxe 2016-11-10 15:58:35 +08:00
QuarkSocPkg QuarkSocPkg/Library: Remove extra UefiBaseType.h includes 2016-10-27 21:32:46 -07:00
SecurityPkg SecurityPkg/SecurityPkg.dsc: Add FmpAuthenticationLib*. 2016-11-08 22:37:19 +08:00
ShellBinPkg ShellBinPkg Arm/AArch64 Shell binary update 2016-08-02 12:25:13 +02:00
ShellPkg ShellPkg/ShellCommandLib: Add missing EFIAPI for public library APIs 2016-11-11 10:59:39 +08:00
SignedCapsulePkg SignedCapsulePkg/CapsulePkg.dsc: Add capsule related component. 2016-11-11 15:28:11 +08:00
SourceLevelDebugPkg SourceLevelDebugPkg: Fix typos in comments 2016-10-24 09:10:15 +08:00
StdLib StdLib/LibC ARM AARCH64: do not redefine compiler intrinsics 2016-08-09 10:10:12 +02:00
StdLibPrivateInternalFiles StdLib: Clarify and improve comments. 2016-01-06 00:31:42 +00:00
UefiCpuPkg UefiCpuPkg/PiSmmCpuDxeSmm: Put AP into safe hlt-loop code on S3 path 2016-11-15 09:44:53 +08:00
UnixPkg
Vlv2DeviceRefCodePkg Vlv2DeviceRefCodePkg/ValleyView2Soc: Remove the unused code 2016-08-03 11:02:19 +08:00
Vlv2TbltDevicePkg Vlv2TbltDevicePkg/Build: Add capsule/recovery in help info. 2016-11-08 22:49:57 +08:00
.gitignore
BuildNotes2.txt BaseTools: Updated BuildNotes URLs 2016-03-25 09:46:44 +08:00
Edk2Setup.bat Edk2Setup.bat: Fix build errors from VS tools PREFIX ENV missing 2016-11-05 09:10:58 +08:00
Maintainers.txt Maintainers.txt: Change maintainer of VLV2 packages. 2016-10-27 21:08:23 +08:00
edksetup.bat edksetup.bat: make sure BASE_TOOLS_PATH be set correctly 2016-10-26 13:45:45 +08:00
edksetup.sh edksetup.sh, BaseTools/BuildEnv: add --reconfig support 2016-10-24 13:53:16 +01:00