From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from us-smtp-delivery-1.mimecast.com (us-smtp-delivery-1.mimecast.com [205.139.110.61]) by mx.groups.io with SMTP id smtpd.web10.14366.1583156698140380189 for ; Mon, 02 Mar 2020 05:44:58 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=CGT3yZ1K; spf=pass (domain: redhat.com, ip: 205.139.110.61, mailfrom: philmd@redhat.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1583156697; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=+I6WjJXVekmH3hshXYIR+toTLZE7JbG0GjwhSTC/xno=; b=CGT3yZ1KP0ibK4UoiBbWCON6mkjeb6wD6AzWRJV8Xz4ETeYRRvenSnrJHcy/Fr02di83tg LqRl1rj9JCPqPlqyza7D9aq3RX+2BI90tZtki+GfQiEOn3PDIVC3Bxwl7UpKFkIKAdVZEu E93zNlWMECVU2POjuAkMhohc3Cfaxlg= Received: from mail-wr1-f71.google.com (mail-wr1-f71.google.com [209.85.221.71]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-46-U6lKV5lHPYqu1b2kgb5UMw-1; Mon, 02 Mar 2020 08:44:53 -0500 X-MC-Unique: U6lKV5lHPYqu1b2kgb5UMw-1 Received: by mail-wr1-f71.google.com with SMTP id l1so5866241wrt.4 for ; Mon, 02 Mar 2020 05:44:53 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=2jdkuhaQUj4JzgDilGrQZOb/hYjf1m4rjuY78eMSwBQ=; b=YZ563WgA5ckRRr1EUU7AySlJUupKoTHC5j380i9q0BS/L6Dqnm8/WPCmG1dHuhlB4B K9QXPnlv133kPksf6f9i4wvS9HDtFBMHRVys5mLD1vcD7KEQtpxqGy3WU8DDOHsp62SL 84Q67vmF2LGihYG5lRggURmQfjgTyJGMsgUn3WKKqsQ3LEAz8E+LHwStEtP9cNdiWZZV 2ww6fKT6bmqjfJkDQXMD4lcWmIFy6mfF7YzTMKvcnDJCkfgfVENIBaLDpjoSy5PFu6fD LVAP64etmISdEDHcOgXtO7yRZD3byH4xesDDbOafcJpUIyNoCErYtw9xVTltMbuczgmL jdGg== X-Gm-Message-State: APjAAAWy+l8n8dX3VsbHUrxtnRDr7NG5A61YLx4SQparAZzDqbtULxjC XaiTHFflj3X64aFaw57srWe6aIqOizds8FDvTm4/RHQFwywmjb9XsGNqP1uzzukbop05YCZ4Pk3 BfY1+7RU8NLN7+w== X-Received: by 2002:a5d:55ca:: with SMTP id i10mr22163286wrw.111.1583156692114; Mon, 02 Mar 2020 05:44:52 -0800 (PST) X-Google-Smtp-Source: APXvYqw2OCCOTf2Shs3ubMzExxdXIflJM15pXpNz/V90sJk+54GMOmgs/9qRZhlGxiCg4XIsPh94ig== X-Received: by 2002:a5d:55ca:: with SMTP id i10mr22163258wrw.111.1583156691836; Mon, 02 Mar 2020 05:44:51 -0800 (PST) Return-Path: Received: from ?IPv6:2a01:e35:2fb0:49e0:3f7b:4b69:b9c:cdc0? ([2a01:e35:2fb0:49e0:3f7b:4b69:b9c:cdc0]) by smtp.gmail.com with ESMTPSA id h3sm29867598wrb.23.2020.03.02.05.44.50 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 02 Mar 2020 05:44:51 -0800 (PST) Subject: Re: [PATCH v2 14/16] OvmfPkg: clone CpuS3DataDxe from UefiCpuPkg To: Laszlo Ersek , edk2-devel-groups-io Cc: Ard Biesheuvel , Igor Mammedov , Jiewen Yao , Jordan Justen , Michael Kinney References: <20200226221156.29589-1-lersek@redhat.com> <20200226221156.29589-15-lersek@redhat.com> From: =?UTF-8?B?UGhpbGlwcGUgTWF0aGlldS1EYXVkw6k=?= Message-ID: Date: Mon, 2 Mar 2020 14:44:50 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.4.1 MIME-Version: 1.0 In-Reply-To: <20200226221156.29589-15-lersek@redhat.com> X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Language: en-US Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: quoted-printable On 2/26/20 11:11 PM, Laszlo Ersek wrote: > The @file comments in UefiCpuPkg/CpuS3DataDxe say, >=20 > [...] It also only supports the number of CPUs reported by the MP > Services Protocol, so this module does not support hot plug CPUs. Thi= s > module can be copied into a CPU specific package and customized if the= se > additional features are required. [...] >=20 > 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: >=20 > - 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". >=20 > This patch is best reviewed with: >=20 > $ git show --find-copies-harder >=20 > Cc: Ard Biesheuvel > Cc: Igor Mammedov > Cc: Jiewen Yao > Cc: Jordan Justen > Cc: Michael Kinney > Cc: Philippe Mathieu-Daud=C3=A9 > Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=3D1512 > Signed-off-by: Laszlo Ersek > Acked-by: Ard Biesheuvel > --- >=20 > Notes: > v2: > =20 > - Pick up Ard's Acked-by, which is conditional on approval from Inte= l > reviewers on Cc. (I'd like to save Ard the churn of re-acking > unmodified patches.) >=20 > 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 =3D> OvmfPkg}/CpuS3DataDxe/CpuS3DataDxe.inf | 10 +++------- > {UefiCpuPkg =3D> OvmfPkg}/CpuS3DataDxe/CpuS3Data.c | 4 ++-- > 8 files changed, 11 insertions(+), 15 deletions(-) >=20 > 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/UefiHandle= ParsingLib.inf > PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf > BcfgCommandLib|ShellPkg/Library/UefiShellBcfgCommandLib/UefiShell= BcfgCommandLib.inf > =20 > > gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0xFF > gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE > gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|8000 > } > =20 > !if $(SECURE_BOOT_ENABLE) =3D=3D TRUE > SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfi= gDxe.inf > OvmfPkg/EnrollDefaultKeys/EnrollDefaultKeys.inf > !endif > =20 > OvmfPkg/PlatformDxe/Platform.inf > OvmfPkg/IoMmuDxe/IoMmuDxe.inf > =20 > !if $(SMM_REQUIRE) =3D=3D TRUE > OvmfPkg/SmmAccess/SmmAccess2Dxe.inf > OvmfPkg/SmmControl2Dxe/SmmControl2Dxe.inf > - UefiCpuPkg/CpuS3DataDxe/CpuS3DataDxe.inf > + OvmfPkg/CpuS3DataDxe/CpuS3DataDxe.inf > =20 > # > # SMM Initial Program Load (a DXE_RUNTIME_DRIVER) > # > MdeModulePkg/Core/PiSmmCore/PiSmmIpl.inf > =20 > # > # SMM_CORE > # > MdeModulePkg/Core/PiSmmCore/PiSmmCore.inf > =20 > # > # Privileged drivers (DXE_SMM_DRIVER modules) > # > OvmfPkg/CpuHotplugSmm/CpuHotplugSmm.inf > UefiCpuPkg/CpuIo2Smm/CpuIo2Smm.inf > MdeModulePkg/Universal/LockBox/SmmLockBox/SmmLockBox.inf { > > LockBoxLib|MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxSmmLib.in= f > } > UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.inf { > > 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/UefiHandle= ParsingLib.inf > PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf > BcfgCommandLib|ShellPkg/Library/UefiShellBcfgCommandLib/UefiShell= BcfgCommandLib.inf > =20 > > gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0xFF > gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE > gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|8000 > } > =20 > !if $(SECURE_BOOT_ENABLE) =3D=3D TRUE > SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfi= gDxe.inf > OvmfPkg/EnrollDefaultKeys/EnrollDefaultKeys.inf > !endif > =20 > OvmfPkg/PlatformDxe/Platform.inf > OvmfPkg/AmdSevDxe/AmdSevDxe.inf > OvmfPkg/IoMmuDxe/IoMmuDxe.inf > =20 > !if $(SMM_REQUIRE) =3D=3D TRUE > OvmfPkg/SmmAccess/SmmAccess2Dxe.inf > OvmfPkg/SmmControl2Dxe/SmmControl2Dxe.inf > - UefiCpuPkg/CpuS3DataDxe/CpuS3DataDxe.inf > + OvmfPkg/CpuS3DataDxe/CpuS3DataDxe.inf > =20 > # > # SMM Initial Program Load (a DXE_RUNTIME_DRIVER) > # > MdeModulePkg/Core/PiSmmCore/PiSmmIpl.inf > =20 > # > # SMM_CORE > # > MdeModulePkg/Core/PiSmmCore/PiSmmCore.inf > =20 > # > # Privileged drivers (DXE_SMM_DRIVER modules) > # > OvmfPkg/CpuHotplugSmm/CpuHotplugSmm.inf > UefiCpuPkg/CpuIo2Smm/CpuIo2Smm.inf > MdeModulePkg/Universal/LockBox/SmmLockBox/SmmLockBox.inf { > > LockBoxLib|MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxSmmLib.in= f > } > UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.inf { > > 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/UefiHandle= ParsingLib.inf > PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf > BcfgCommandLib|ShellPkg/Library/UefiShellBcfgCommandLib/UefiShell= BcfgCommandLib.inf > =20 > > gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0xFF > gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE > gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|8000 > } > =20 > !if $(SECURE_BOOT_ENABLE) =3D=3D TRUE > SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfi= gDxe.inf > OvmfPkg/EnrollDefaultKeys/EnrollDefaultKeys.inf > !endif > =20 > OvmfPkg/PlatformDxe/Platform.inf > OvmfPkg/AmdSevDxe/AmdSevDxe.inf > OvmfPkg/IoMmuDxe/IoMmuDxe.inf > =20 > !if $(SMM_REQUIRE) =3D=3D TRUE > OvmfPkg/SmmAccess/SmmAccess2Dxe.inf > OvmfPkg/SmmControl2Dxe/SmmControl2Dxe.inf > - UefiCpuPkg/CpuS3DataDxe/CpuS3DataDxe.inf > + OvmfPkg/CpuS3DataDxe/CpuS3DataDxe.inf > =20 > # > # SMM Initial Program Load (a DXE_RUNTIME_DRIVER) > # > MdeModulePkg/Core/PiSmmCore/PiSmmIpl.inf > =20 > # > # SMM_CORE > # > MdeModulePkg/Core/PiSmmCore/PiSmmCore.inf > =20 > # > # Privileged drivers (DXE_SMM_DRIVER modules) > # > OvmfPkg/CpuHotplugSmm/CpuHotplugSmm.inf > UefiCpuPkg/CpuIo2Smm/CpuIo2Smm.inf > MdeModulePkg/Universal/LockBox/SmmLockBox/SmmLockBox.inf { > > LockBoxLib|MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxSmmLib.in= f > } > UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.inf { > > 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 > =20 > !ifdef $(CSM_ENABLE) > INF OvmfPkg/Csm/BiosThunk/VideoDxe/VideoDxe.inf > INF OvmfPkg/Csm/LegacyBiosDxe/LegacyBiosDxe.inf > INF RuleOverride=3DCSM OvmfPkg/Csm/Csm16/Csm16.inf > !else > INF OvmfPkg/QemuVideoDxe/QemuVideoDxe.inf > !endif > =20 > INF OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf > INF OvmfPkg/VirtioGpuDxe/VirtioGpu.inf > INF OvmfPkg/PlatformDxe/Platform.inf > INF OvmfPkg/IoMmuDxe/IoMmuDxe.inf > =20 > !if $(SMM_REQUIRE) =3D=3D 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 > =20 > # > # 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.i= nf > =20 > !else > =20 > # > # 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 > =20 > !ifdef $(CSM_ENABLE) > INF OvmfPkg/Csm/BiosThunk/VideoDxe/VideoDxe.inf > INF OvmfPkg/Csm/LegacyBiosDxe/LegacyBiosDxe.inf > INF RuleOverride=3DCSM OvmfPkg/Csm/Csm16/Csm16.inf > !else > INF OvmfPkg/QemuVideoDxe/QemuVideoDxe.inf > !endif > =20 > 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 > =20 > !if $(SMM_REQUIRE) =3D=3D 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 > =20 > # > # 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.i= nf > =20 > !else > =20 > # > # 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 > =20 > !ifdef $(CSM_ENABLE) > INF OvmfPkg/Csm/BiosThunk/VideoDxe/VideoDxe.inf > INF OvmfPkg/Csm/LegacyBiosDxe/LegacyBiosDxe.inf > INF RuleOverride=3DCSM OvmfPkg/Csm/Csm16/Csm16.inf > !else > INF OvmfPkg/QemuVideoDxe/QemuVideoDxe.inf > !endif > =20 > 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 > =20 > !if $(SMM_REQUIRE) =3D=3D 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 > =20 > # > # 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.i= nf > =20 > !else > =20 > # > # Variable driver stack (non-SMM) > # > INF OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesRuntimeDxe.inf > INF OvmfPkg/EmuVariableFvbRuntimeDxe/Fvb.inf > diff --git a/UefiCpuPkg/CpuS3DataDxe/CpuS3DataDxe.inf b/OvmfPkg/CpuS3Data= Dxe/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 th= e 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 sup= ports 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 specifi= c package > # and customized if these additional features are required. > # > # Copyright (c) 2013-2016, Intel Corporation. All rights reserved.
> -# Copyright (c) 2015, Red Hat, Inc. > +# Copyright (c) 2015-2020, Red Hat, Inc. > # > # SPDX-License-Identifier: BSD-2-Clause-Patent > # > ## > =20 > [Defines] > - INF_VERSION =3D 0x00010005 > + INF_VERSION =3D 1.29 > BASE_NAME =3D CpuS3DataDxe > - MODULE_UNI_FILE =3D CpuS3DataDxe.uni > - FILE_GUID =3D 4D2E57EE-0E3F-44DD-93C4-D3B57E96945= D > + FILE_GUID =3D 229B7EFD-DA02-46B9-93F4-E20C009F94E= 9 > MODULE_TYPE =3D DXE_DRIVER > VERSION_STRING =3D 1.0 > ENTRY_POINT =3D CpuS3DataInitialize > =20 > # The following information is for reference only and not required by t= he build > # tools. > # > # VALID_ARCHITECTURES =3D IA32 X64 > =20 > [Sources] > CpuS3Data.c > =20 > [Packages] > MdePkg/MdePkg.dec > MdeModulePkg/MdeModulePkg.dec > UefiCpuPkg/UefiCpuPkg.dec > =20 > [LibraryClasses] > UefiDriverEntryPoint > UefiBootServicesTableLib > BaseMemoryLib > DebugLib > BaseLib > MtrrLib > MemoryAllocationLib > =20 > [Guids] > gEfiEndOfDxeEventGroupGuid ## CONSUMES ## Event > =20 > [Protocols] > gEfiMpServiceProtocolGuid ## CONSUMES > =20 > [Pcd] > gUefiCpuPkgTokenSpaceGuid.PcdCpuApStackSize ## CONSUMES > gUefiCpuPkgTokenSpaceGuid.PcdCpuS3DataAddress ## PRODUCES > gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiS3Enable ## CONSUMES > =20 > [Depex] > gEfiMpServiceProtocolGuid > - > -[UserExtensions.TianoCore."ExtraFiles"] > - CpuS3DataDxeExtra.uni > diff --git a/UefiCpuPkg/CpuS3DataDxe/CpuS3Data.c b/OvmfPkg/CpuS3DataDxe/C= puS3Data.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 > =20 > This module initializes the ACPI_CPU_DATA structure and registers the a= ddress > of this structure in the PcdCpuS3DataAddress PCD. This is a generic/si= mple > version of this module. It does not provide a machine check handler or= CPU > register initialization tables for ACPI S3 resume. It also only suppor= ts the > number of CPUs reported by the MP Services Protocol, so this module doe= s not > support hot plug CPUs. This module can be copied into a CPU specific p= ackage > and customized if these additional features are required. > =20 > Copyright (c) 2013 - 2017, Intel Corporation. All rights reserved.
> -Copyright (c) 2015, Red Hat, Inc. > +Copyright (c) 2015 - 2020, Red Hat, Inc. > =20 > SPDX-License-Identifier: BSD-2-Clause-Patent > =20 > **/ > =20 > #include > =20 > #include > =20 > #include > #include > #include > #include > #include > #include > =20 > #include > #include > =20 > // > // Data structure used to allocate ACPI_CPU_DATA and its supporting str= uctures > // > @@ -107,45 +107,45 @@ VOID > EFIAPI > CpuS3DataOnEndOfDxe ( > IN EFI_EVENT Event, > OUT VOID *Context > ) > { > EFI_STATUS Status; > ACPI_CPU_DATA_EX *AcpiCpuDataEx; > =20 > AcpiCpuDataEx =3D (ACPI_CPU_DATA_EX *) Context; > // > // Allocate a 4KB reserved page below 1MB > // > AcpiCpuDataEx->AcpiCpuData.StartupVector =3D BASE_1MB - 1; > Status =3D gBS->AllocatePages ( > AllocateMaxAddress, > EfiReservedMemoryType, > 1, > &AcpiCpuDataEx->AcpiCpuData.StartupVector > ); > ASSERT_EFI_ERROR (Status); > =20 > - DEBUG ((EFI_D_VERBOSE, "%a\n", __FUNCTION__)); > + DEBUG ((DEBUG_VERBOSE, "%a\n", __FUNCTION__)); > MtrrGetAllMtrrs (&AcpiCpuDataEx->MtrrTable); > =20 > // > // Close event, so it will not be invoked again. > // > gBS->CloseEvent (Event); > } > =20 > /** > The entry function of the CpuS3Data driver. > =20 > Allocate and initialize all fields of the ACPI_CPU_DATA structure ex= cept the > MTRR settings. Register an event notification on gEfiEndOfDxeEventG= roupGuid > to capture the ACPI_CPU_DATA MTRR settings. The PcdCpuS3DataAddress= is set > to the address that ACPI_CPU_DATA is allocated at. > =20 > @param[in] ImageHandle The firmware allocated handle for the EFI im= age. > @param[in] SystemTable A pointer to the EFI System Table. > =20 > @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. >=20 Reviewed-by: Philippe Mathieu-Daude