On Wed, 26 Feb 2020 at 23:12, Laszlo Ersek <ler...@redhat.com> wrote: > > The @file comments in UefiCpuPkg/CpuS3DataDxe say, > > [...] It also only supports the number of CPUs reported by the MP > Services Protocol, so this module does not support hot plug CPUs. This > module can be copied into a CPU specific package and customized if these > additional features are required. [...] > > The driver is so small that the simplest way to extend it with hotplug > support is indeed to clone it at first. In this patch, customize the > driver only with the following no-op steps: > > - Update copyright notices. > - Update INF_VERSION to the latest INF spec version (1.29). > - Update FILE_GUID. > - Drop the UNI files. > - Replace EFI_D_VERBOSE with DEBUG_VERBOSE, to appease "PatchCheck.py". > > This patch is best reviewed with: > > $ git show --find-copies-harder > > Cc: Ard Biesheuvel <ard.biesheu...@linaro.org> > Cc: Igor Mammedov <imamm...@redhat.com> > Cc: Jiewen Yao <jiewen....@intel.com> > Cc: Jordan Justen <jordan.l.jus...@intel.com> > Cc: Michael Kinney <michael.d.kin...@intel.com> > Cc: Philippe Mathieu-Daudé <phi...@redhat.com> > Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=1512 > Signed-off-by: Laszlo Ersek <ler...@redhat.com> > Acked-by: Ard Biesheuvel <ard.biesheu...@linaro.org>
Reviewed-by: Ard Biesheuvel <ard.biesheu...@linaro.org> > --- > > Notes: > v2: > > - Pick up Ard's Acked-by, which is conditional on approval from Intel > reviewers on Cc. (I'd like to save Ard the churn of re-acking > unmodified patches.) > > OvmfPkg/OvmfPkgIa32.dsc | 2 +- > OvmfPkg/OvmfPkgIa32X64.dsc | 2 +- > OvmfPkg/OvmfPkgX64.dsc | 2 +- > OvmfPkg/OvmfPkgIa32.fdf | 2 +- > OvmfPkg/OvmfPkgIa32X64.fdf | 2 +- > OvmfPkg/OvmfPkgX64.fdf | 2 +- > {UefiCpuPkg => OvmfPkg}/CpuS3DataDxe/CpuS3DataDxe.inf | 10 +++------- > {UefiCpuPkg => OvmfPkg}/CpuS3DataDxe/CpuS3Data.c | 4 ++-- > 8 files changed, 11 insertions(+), 15 deletions(-) > > diff --git a/OvmfPkg/OvmfPkgIa32.dsc b/OvmfPkg/OvmfPkgIa32.dsc > index 78310da44a5f..8d8ca746ba03 100644 > --- a/OvmfPkg/OvmfPkgIa32.dsc > +++ b/OvmfPkg/OvmfPkgIa32.dsc > @@ -836,45 +836,45 @@ [Components] > !endif > > HandleParsingLib|ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.inf > PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf > > BcfgCommandLib|ShellPkg/Library/UefiShellBcfgCommandLib/UefiShellBcfgCommandLib.inf > > <PcdsFixedAtBuild> > gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0xFF > gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE > gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|8000 > } > > !if $(SECURE_BOOT_ENABLE) == TRUE > > SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigDxe.inf > OvmfPkg/EnrollDefaultKeys/EnrollDefaultKeys.inf > !endif > > OvmfPkg/PlatformDxe/Platform.inf > OvmfPkg/IoMmuDxe/IoMmuDxe.inf > > !if $(SMM_REQUIRE) == TRUE > OvmfPkg/SmmAccess/SmmAccess2Dxe.inf > OvmfPkg/SmmControl2Dxe/SmmControl2Dxe.inf > - UefiCpuPkg/CpuS3DataDxe/CpuS3DataDxe.inf > + OvmfPkg/CpuS3DataDxe/CpuS3DataDxe.inf > > # > # SMM Initial Program Load (a DXE_RUNTIME_DRIVER) > # > MdeModulePkg/Core/PiSmmCore/PiSmmIpl.inf > > # > # SMM_CORE > # > MdeModulePkg/Core/PiSmmCore/PiSmmCore.inf > > # > # Privileged drivers (DXE_SMM_DRIVER modules) > # > OvmfPkg/CpuHotplugSmm/CpuHotplugSmm.inf > UefiCpuPkg/CpuIo2Smm/CpuIo2Smm.inf > MdeModulePkg/Universal/LockBox/SmmLockBox/SmmLockBox.inf { > <LibraryClasses> > LockBoxLib|MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxSmmLib.inf > } > UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.inf { > <LibraryClasses> > diff --git a/OvmfPkg/OvmfPkgIa32X64.dsc b/OvmfPkg/OvmfPkgIa32X64.dsc > index 428578a4f839..acba1f80a431 100644 > --- a/OvmfPkg/OvmfPkgIa32X64.dsc > +++ b/OvmfPkg/OvmfPkgIa32X64.dsc > @@ -850,45 +850,45 @@ [Components.X64] > > HandleParsingLib|ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.inf > PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf > > BcfgCommandLib|ShellPkg/Library/UefiShellBcfgCommandLib/UefiShellBcfgCommandLib.inf > > <PcdsFixedAtBuild> > gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0xFF > gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE > gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|8000 > } > > !if $(SECURE_BOOT_ENABLE) == TRUE > > SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigDxe.inf > OvmfPkg/EnrollDefaultKeys/EnrollDefaultKeys.inf > !endif > > OvmfPkg/PlatformDxe/Platform.inf > OvmfPkg/AmdSevDxe/AmdSevDxe.inf > OvmfPkg/IoMmuDxe/IoMmuDxe.inf > > !if $(SMM_REQUIRE) == TRUE > OvmfPkg/SmmAccess/SmmAccess2Dxe.inf > OvmfPkg/SmmControl2Dxe/SmmControl2Dxe.inf > - UefiCpuPkg/CpuS3DataDxe/CpuS3DataDxe.inf > + OvmfPkg/CpuS3DataDxe/CpuS3DataDxe.inf > > # > # SMM Initial Program Load (a DXE_RUNTIME_DRIVER) > # > MdeModulePkg/Core/PiSmmCore/PiSmmIpl.inf > > # > # SMM_CORE > # > MdeModulePkg/Core/PiSmmCore/PiSmmCore.inf > > # > # Privileged drivers (DXE_SMM_DRIVER modules) > # > OvmfPkg/CpuHotplugSmm/CpuHotplugSmm.inf > UefiCpuPkg/CpuIo2Smm/CpuIo2Smm.inf > MdeModulePkg/Universal/LockBox/SmmLockBox/SmmLockBox.inf { > <LibraryClasses> > LockBoxLib|MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxSmmLib.inf > } > UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.inf { > <LibraryClasses> > diff --git a/OvmfPkg/OvmfPkgX64.dsc b/OvmfPkg/OvmfPkgX64.dsc > index 73b92f259201..621b27f80d4b 100644 > --- a/OvmfPkg/OvmfPkgX64.dsc > +++ b/OvmfPkg/OvmfPkgX64.dsc > @@ -848,45 +848,45 @@ [Components] > > HandleParsingLib|ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.inf > PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf > > BcfgCommandLib|ShellPkg/Library/UefiShellBcfgCommandLib/UefiShellBcfgCommandLib.inf > > <PcdsFixedAtBuild> > gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0xFF > gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE > gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|8000 > } > > !if $(SECURE_BOOT_ENABLE) == TRUE > > SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigDxe.inf > OvmfPkg/EnrollDefaultKeys/EnrollDefaultKeys.inf > !endif > > OvmfPkg/PlatformDxe/Platform.inf > OvmfPkg/AmdSevDxe/AmdSevDxe.inf > OvmfPkg/IoMmuDxe/IoMmuDxe.inf > > !if $(SMM_REQUIRE) == TRUE > OvmfPkg/SmmAccess/SmmAccess2Dxe.inf > OvmfPkg/SmmControl2Dxe/SmmControl2Dxe.inf > - UefiCpuPkg/CpuS3DataDxe/CpuS3DataDxe.inf > + OvmfPkg/CpuS3DataDxe/CpuS3DataDxe.inf > > # > # SMM Initial Program Load (a DXE_RUNTIME_DRIVER) > # > MdeModulePkg/Core/PiSmmCore/PiSmmIpl.inf > > # > # SMM_CORE > # > MdeModulePkg/Core/PiSmmCore/PiSmmCore.inf > > # > # Privileged drivers (DXE_SMM_DRIVER modules) > # > OvmfPkg/CpuHotplugSmm/CpuHotplugSmm.inf > UefiCpuPkg/CpuIo2Smm/CpuIo2Smm.inf > MdeModulePkg/Universal/LockBox/SmmLockBox/SmmLockBox.inf { > <LibraryClasses> > LockBoxLib|MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxSmmLib.inf > } > UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.inf { > <LibraryClasses> > diff --git a/OvmfPkg/OvmfPkgIa32.fdf b/OvmfPkg/OvmfPkgIa32.fdf > index 61b891765c56..004aa318b222 100644 > --- a/OvmfPkg/OvmfPkgIa32.fdf > +++ b/OvmfPkg/OvmfPkgIa32.fdf > @@ -298,45 +298,45 @@ [FV.DXEFV] > INF MdeModulePkg/Bus/Pci/EhciDxe/EhciDxe.inf > INF MdeModulePkg/Bus/Pci/XhciDxe/XhciDxe.inf > INF MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf > INF MdeModulePkg/Bus/Usb/UsbKbDxe/UsbKbDxe.inf > INF MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf > > !ifdef $(CSM_ENABLE) > INF OvmfPkg/Csm/BiosThunk/VideoDxe/VideoDxe.inf > INF OvmfPkg/Csm/LegacyBiosDxe/LegacyBiosDxe.inf > INF RuleOverride=CSM OvmfPkg/Csm/Csm16/Csm16.inf > !else > INF OvmfPkg/QemuVideoDxe/QemuVideoDxe.inf > !endif > > INF OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf > INF OvmfPkg/VirtioGpuDxe/VirtioGpu.inf > INF OvmfPkg/PlatformDxe/Platform.inf > INF OvmfPkg/IoMmuDxe/IoMmuDxe.inf > > !if $(SMM_REQUIRE) == TRUE > INF OvmfPkg/SmmAccess/SmmAccess2Dxe.inf > INF OvmfPkg/SmmControl2Dxe/SmmControl2Dxe.inf > -INF UefiCpuPkg/CpuS3DataDxe/CpuS3DataDxe.inf > +INF OvmfPkg/CpuS3DataDxe/CpuS3DataDxe.inf > INF MdeModulePkg/Core/PiSmmCore/PiSmmIpl.inf > INF MdeModulePkg/Core/PiSmmCore/PiSmmCore.inf > INF OvmfPkg/CpuHotplugSmm/CpuHotplugSmm.inf > INF UefiCpuPkg/CpuIo2Smm/CpuIo2Smm.inf > INF MdeModulePkg/Universal/LockBox/SmmLockBox/SmmLockBox.inf > INF UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.inf > > # > # Variable driver stack (SMM) > # > INF OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesSmm.inf > INF MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteSmm.inf > INF MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmm.inf > INF MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmmRuntimeDxe.inf > > !else > > # > # Variable driver stack (non-SMM) > # > INF OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesRuntimeDxe.inf > INF OvmfPkg/EmuVariableFvbRuntimeDxe/Fvb.inf > diff --git a/OvmfPkg/OvmfPkgIa32X64.fdf b/OvmfPkg/OvmfPkgIa32X64.fdf > index 501b4fcb7b67..13da8b9dbe65 100644 > --- a/OvmfPkg/OvmfPkgIa32X64.fdf > +++ b/OvmfPkg/OvmfPkgIa32X64.fdf > @@ -305,45 +305,45 @@ [FV.DXEFV] > INF MdeModulePkg/Bus/Pci/XhciDxe/XhciDxe.inf > INF MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf > INF MdeModulePkg/Bus/Usb/UsbKbDxe/UsbKbDxe.inf > INF MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf > > !ifdef $(CSM_ENABLE) > INF OvmfPkg/Csm/BiosThunk/VideoDxe/VideoDxe.inf > INF OvmfPkg/Csm/LegacyBiosDxe/LegacyBiosDxe.inf > INF RuleOverride=CSM OvmfPkg/Csm/Csm16/Csm16.inf > !else > INF OvmfPkg/QemuVideoDxe/QemuVideoDxe.inf > !endif > > INF OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf > INF OvmfPkg/VirtioGpuDxe/VirtioGpu.inf > INF OvmfPkg/PlatformDxe/Platform.inf > INF OvmfPkg/AmdSevDxe/AmdSevDxe.inf > INF OvmfPkg/IoMmuDxe/IoMmuDxe.inf > > !if $(SMM_REQUIRE) == TRUE > INF OvmfPkg/SmmAccess/SmmAccess2Dxe.inf > INF OvmfPkg/SmmControl2Dxe/SmmControl2Dxe.inf > -INF UefiCpuPkg/CpuS3DataDxe/CpuS3DataDxe.inf > +INF OvmfPkg/CpuS3DataDxe/CpuS3DataDxe.inf > INF MdeModulePkg/Core/PiSmmCore/PiSmmIpl.inf > INF MdeModulePkg/Core/PiSmmCore/PiSmmCore.inf > INF OvmfPkg/CpuHotplugSmm/CpuHotplugSmm.inf > INF UefiCpuPkg/CpuIo2Smm/CpuIo2Smm.inf > INF MdeModulePkg/Universal/LockBox/SmmLockBox/SmmLockBox.inf > INF UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.inf > > # > # Variable driver stack (SMM) > # > INF OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesSmm.inf > INF MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteSmm.inf > INF MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmm.inf > INF MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmmRuntimeDxe.inf > > !else > > # > # Variable driver stack (non-SMM) > # > INF OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesRuntimeDxe.inf > INF OvmfPkg/EmuVariableFvbRuntimeDxe/Fvb.inf > diff --git a/OvmfPkg/OvmfPkgX64.fdf b/OvmfPkg/OvmfPkgX64.fdf > index 501b4fcb7b67..13da8b9dbe65 100644 > --- a/OvmfPkg/OvmfPkgX64.fdf > +++ b/OvmfPkg/OvmfPkgX64.fdf > @@ -305,45 +305,45 @@ [FV.DXEFV] > INF MdeModulePkg/Bus/Pci/XhciDxe/XhciDxe.inf > INF MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf > INF MdeModulePkg/Bus/Usb/UsbKbDxe/UsbKbDxe.inf > INF MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf > > !ifdef $(CSM_ENABLE) > INF OvmfPkg/Csm/BiosThunk/VideoDxe/VideoDxe.inf > INF OvmfPkg/Csm/LegacyBiosDxe/LegacyBiosDxe.inf > INF RuleOverride=CSM OvmfPkg/Csm/Csm16/Csm16.inf > !else > INF OvmfPkg/QemuVideoDxe/QemuVideoDxe.inf > !endif > > INF OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf > INF OvmfPkg/VirtioGpuDxe/VirtioGpu.inf > INF OvmfPkg/PlatformDxe/Platform.inf > INF OvmfPkg/AmdSevDxe/AmdSevDxe.inf > INF OvmfPkg/IoMmuDxe/IoMmuDxe.inf > > !if $(SMM_REQUIRE) == TRUE > INF OvmfPkg/SmmAccess/SmmAccess2Dxe.inf > INF OvmfPkg/SmmControl2Dxe/SmmControl2Dxe.inf > -INF UefiCpuPkg/CpuS3DataDxe/CpuS3DataDxe.inf > +INF OvmfPkg/CpuS3DataDxe/CpuS3DataDxe.inf > INF MdeModulePkg/Core/PiSmmCore/PiSmmIpl.inf > INF MdeModulePkg/Core/PiSmmCore/PiSmmCore.inf > INF OvmfPkg/CpuHotplugSmm/CpuHotplugSmm.inf > INF UefiCpuPkg/CpuIo2Smm/CpuIo2Smm.inf > INF MdeModulePkg/Universal/LockBox/SmmLockBox/SmmLockBox.inf > INF UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.inf > > # > # Variable driver stack (SMM) > # > INF OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesSmm.inf > INF MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteSmm.inf > INF MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmm.inf > INF MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmmRuntimeDxe.inf > > !else > > # > # Variable driver stack (non-SMM) > # > INF OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesRuntimeDxe.inf > INF OvmfPkg/EmuVariableFvbRuntimeDxe/Fvb.inf > diff --git a/UefiCpuPkg/CpuS3DataDxe/CpuS3DataDxe.inf > b/OvmfPkg/CpuS3DataDxe/CpuS3DataDxe.inf > similarity index 83% > copy from UefiCpuPkg/CpuS3DataDxe/CpuS3DataDxe.inf > copy to OvmfPkg/CpuS3DataDxe/CpuS3DataDxe.inf > index 510133a614ba..0ad8a0b35d25 100644 > --- a/UefiCpuPkg/CpuS3DataDxe/CpuS3DataDxe.inf > +++ b/OvmfPkg/CpuS3DataDxe/CpuS3DataDxe.inf > @@ -1,65 +1,61 @@ > ## @file > # ACPI CPU Data initialization module > # > # This module initializes the ACPI_CPU_DATA structure and registers the > address > # of this structure in the PcdCpuS3DataAddress PCD. This is a > generic/simple > # version of this module. It does not provide a machine check handler or > CPU > # register initialization tables for ACPI S3 resume. It also only supports > the > # number of CPUs reported by the MP Services Protocol, so this module does > not > # support hot plug CPUs. This module can be copied into a CPU specific > package > # and customized if these additional features are required. > # > # Copyright (c) 2013-2016, Intel Corporation. All rights reserved.<BR> > -# Copyright (c) 2015, Red Hat, Inc. > +# Copyright (c) 2015-2020, Red Hat, Inc. > # > # SPDX-License-Identifier: BSD-2-Clause-Patent > # > ## > > [Defines] > - INF_VERSION = 0x00010005 > + INF_VERSION = 1.29 > BASE_NAME = CpuS3DataDxe > - MODULE_UNI_FILE = CpuS3DataDxe.uni > - FILE_GUID = 4D2E57EE-0E3F-44DD-93C4-D3B57E96945D > + FILE_GUID = 229B7EFD-DA02-46B9-93F4-E20C009F94E9 > MODULE_TYPE = DXE_DRIVER > VERSION_STRING = 1.0 > ENTRY_POINT = CpuS3DataInitialize > > # The following information is for reference only and not required by the > build > # tools. > # > # VALID_ARCHITECTURES = IA32 X64 > > [Sources] > CpuS3Data.c > > [Packages] > MdePkg/MdePkg.dec > MdeModulePkg/MdeModulePkg.dec > UefiCpuPkg/UefiCpuPkg.dec > > [LibraryClasses] > UefiDriverEntryPoint > UefiBootServicesTableLib > BaseMemoryLib > DebugLib > BaseLib > MtrrLib > MemoryAllocationLib > > [Guids] > gEfiEndOfDxeEventGroupGuid ## CONSUMES ## Event > > [Protocols] > gEfiMpServiceProtocolGuid ## CONSUMES > > [Pcd] > gUefiCpuPkgTokenSpaceGuid.PcdCpuApStackSize ## CONSUMES > gUefiCpuPkgTokenSpaceGuid.PcdCpuS3DataAddress ## PRODUCES > gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiS3Enable ## CONSUMES > > [Depex] > gEfiMpServiceProtocolGuid > - > -[UserExtensions.TianoCore."ExtraFiles"] > - CpuS3DataDxeExtra.uni > diff --git a/UefiCpuPkg/CpuS3DataDxe/CpuS3Data.c > b/OvmfPkg/CpuS3DataDxe/CpuS3Data.c > similarity index 96% > copy from UefiCpuPkg/CpuS3DataDxe/CpuS3Data.c > copy to OvmfPkg/CpuS3DataDxe/CpuS3Data.c > index 2be335d91903..2bb60d591b1e 100644 > --- a/UefiCpuPkg/CpuS3DataDxe/CpuS3Data.c > +++ b/OvmfPkg/CpuS3DataDxe/CpuS3Data.c > @@ -1,35 +1,35 @@ > /** @file > ACPI CPU Data initialization module > > This module initializes the ACPI_CPU_DATA structure and registers the address > of this structure in the PcdCpuS3DataAddress PCD. This is a generic/simple > version of this module. It does not provide a machine check handler or CPU > register initialization tables for ACPI S3 resume. It also only supports the > number of CPUs reported by the MP Services Protocol, so this module does not > support hot plug CPUs. This module can be copied into a CPU specific package > and customized if these additional features are required. > > Copyright (c) 2013 - 2017, Intel Corporation. All rights reserved.<BR> > -Copyright (c) 2015, Red Hat, Inc. > +Copyright (c) 2015 - 2020, Red Hat, Inc. > > SPDX-License-Identifier: BSD-2-Clause-Patent > > **/ > > #include <PiDxe.h> > > #include <AcpiCpuData.h> > > #include <Library/BaseLib.h> > #include <Library/BaseMemoryLib.h> > #include <Library/UefiBootServicesTableLib.h> > #include <Library/DebugLib.h> > #include <Library/MtrrLib.h> > #include <Library/MemoryAllocationLib.h> > > #include <Protocol/MpService.h> > #include <Guid/EventGroup.h> > > // > // Data structure used to allocate ACPI_CPU_DATA and its supporting > structures > // > @@ -107,45 +107,45 @@ VOID > EFIAPI > CpuS3DataOnEndOfDxe ( > IN EFI_EVENT Event, > OUT VOID *Context > ) > { > EFI_STATUS Status; > ACPI_CPU_DATA_EX *AcpiCpuDataEx; > > AcpiCpuDataEx = (ACPI_CPU_DATA_EX *) Context; > // > // Allocate a 4KB reserved page below 1MB > // > AcpiCpuDataEx->AcpiCpuData.StartupVector = BASE_1MB - 1; > Status = gBS->AllocatePages ( > AllocateMaxAddress, > EfiReservedMemoryType, > 1, > &AcpiCpuDataEx->AcpiCpuData.StartupVector > ); > ASSERT_EFI_ERROR (Status); > > - DEBUG ((EFI_D_VERBOSE, "%a\n", __FUNCTION__)); > + DEBUG ((DEBUG_VERBOSE, "%a\n", __FUNCTION__)); > MtrrGetAllMtrrs (&AcpiCpuDataEx->MtrrTable); > > // > // Close event, so it will not be invoked again. > // > gBS->CloseEvent (Event); > } > > /** > The entry function of the CpuS3Data driver. > > Allocate and initialize all fields of the ACPI_CPU_DATA structure except > the > MTRR settings. Register an event notification on > gEfiEndOfDxeEventGroupGuid > to capture the ACPI_CPU_DATA MTRR settings. The PcdCpuS3DataAddress is > set > to the address that ACPI_CPU_DATA is allocated at. > > @param[in] ImageHandle The firmware allocated handle for the EFI image. > @param[in] SystemTable A pointer to the EFI System Table. > > @retval EFI_SUCCESS The entry point is executed successfully. > @retval EFI_UNSUPPORTED Do not support ACPI S3. > @retval other Some error occurs when executing this entry point. > -- > 2.19.1.3.g30247aa5d201 > > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#55207): https://edk2.groups.io/g/devel/message/55207 Mute This Topic: https://groups.io/mt/71575193/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-