On 2/26/20 11:11 PM, Laszlo Ersek 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>
---

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.


Reviewed-by: Philippe Mathieu-Daude <phi...@redhat.com>


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#55196): https://edk2.groups.io/g/devel/message/55196
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]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to