RISC-V port will follow this implementation.
Acked-by: Abner Chang <abner.chang@hpe.com>
> -----Original Message-----
> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Yu Pu
> Sent: Tuesday, March 29, 2022 2:37 PM
> To: devel@edk2.groups.io
> Cc: Yu Pu <yu.pu@intel.com>
> Subject: [edk2-devel] [PATCH v1 00/15] Merge UefiCpuLib to CpuLib
>
> REF:INVALID URI REMOVED.
> cgi?id=3394__;!!NpxR!xX2rZhlg2fzyUFxuyOaXIdXyQT_5yKUpj_ImUmTUQvQ
> cy3zCD4VRcBtL-uHKGxM$
>
> Today lots of duplicated code call CPUID and calculates the address
> mask. Adding an API named GetPhysicalAddressBits in UefiCpuLib can
> solve this problem, but at the same time cause MdeModulePkg depend
> on UefiCpuPkg which does not meet the design spec. So merge UefiCpuLib
> to CpuLib is a good way to sovle these problems. To minimize the impact,
> this operation is divided into four steps.
>
> Yu Pu (15):
> IntelFsp2Pkg: Add CpuLib to module INFs that depend on UefiCpuLib
> IntelFsp2WrapperPkg: Add CpuLib to module INFs that depend on
> UefiCpuLib.
> MdePkg: Add CpuLib to module INFs that depend on UefiCpuLib.
> OvmfPkg: Add CpuLib to module INFs that depend on UefiCpuLib.
> UefiCpuPkg: Add CpuLib to module INFs that depend on UefiCpuLib.
> UefiPayloadPkg: Add CpuLib to module INFs that depend on UefiCpuLib.
> MdePkg: Move API and implementation from UefiCpuLib to CpuLib
> UefiCpuPkg: Move API and implementation from UefiCpuLib to CpuLib
> IntelFsp2Pkg: Remove UefiCpuLib from module INFs.
> OvmfPkg: Remove UefiCpuLib from module INFs.
> PcAtChipsetPkg: Remove UefiCpuLib from module INFs.
> SourceLevelDebugPkg: Remove UefiCpuLib from module INFs.
> UefiCpuPkg: Remove UefiCpuLib from module INFs.
> UefiPayloadPkg: Remove UefiCpuLib from module INFs.
> UefiCpuLib: Remove UefiCpuLib.
>
> MdePkg/Library/BaseCpuLib/X86BaseCpuLib.c | 122
> ++++++++++++++++++++
> OvmfPkg/Sec/SecMain.c | 2 +-
> UefiCpuPkg/Library/BaseUefiCpuLib/BaseUefiCpuLib.c |
> 81 -------------
> UefiCpuPkg/Library/BaseXApicLib/BaseXApicLib.c | 2
> +-
> UefiCpuPkg/Library/BaseXApicX2ApicLib/BaseXApicX2ApicLib.c
> | 2 +-
> IntelFsp2Pkg/FspSecCore/FspSecCoreM.inf | 2 +-
> IntelFsp2Pkg/FspSecCore/SecMain.h | 2 +-
> IntelFsp2Pkg/IntelFsp2Pkg.dsc | 1 -
> IntelFsp2Pkg/Tools/Tests/QemuFspPkg.dsc | 1 -
> IntelFsp2WrapperPkg/FspmWrapperPeim/FspmWrapperPeim.inf
> | 2 +-
> IntelFsp2WrapperPkg/FspsWrapperPeim/FspsWrapperPeim.inf
> | 2 +-
> IntelFsp2WrapperPkg/IntelFsp2WrapperPkg.dsc | 1 -
> MdePkg/Include/Library/CpuLib.h | 65
> +++++++++++
> MdePkg/Library/BaseCpuLib/BaseCpuLib.inf | 6 +
> {UefiCpuPkg/Library/BaseUefiCpuLib =>
> MdePkg/Library/BaseCpuLib}/Ia32/InitializeFpu.nasm | 0
> {UefiCpuPkg/Library/BaseUefiCpuLib =>
> MdePkg/Library/BaseCpuLib}/X64/InitializeFpu.nasm | 0
> MdePkg/MdeLibs.dsc.inc | 1 +
> OvmfPkg/AmdSev/AmdSevX64.dsc | 1 -
> OvmfPkg/Bhyve/BhyveX64.dsc | 1 -
> OvmfPkg/CloudHv/CloudHvX64.dsc | 1 -
> OvmfPkg/Microvm/MicrovmX64.dsc | 1 -
> OvmfPkg/OvmfPkgIa32.dsc | 1 -
> OvmfPkg/OvmfPkgIa32X64.dsc | 1 -
> OvmfPkg/OvmfPkgX64.dsc | 1 -
> OvmfPkg/OvmfXen.dsc | 1 -
> OvmfPkg/Sec/SecMain.inf | 2 +-
> PcAtChipsetPkg/PcAtChipsetPkg.dsc | 1 -
> SourceLevelDebugPkg/SourceLevelDebugPkg.dsc | 1
> -
> UefiCpuPkg/CpuDxe/CpuDxe.h | 1 -
> UefiCpuPkg/CpuDxe/CpuDxe.inf | 1 -
> UefiCpuPkg/Include/Library/UefiCpuLib.h | 65 ------
> -----
> UefiCpuPkg/Library/BaseUefiCpuLib/BaseUefiCpuLib.inf |
> 41 -------
> UefiCpuPkg/Library/BaseUefiCpuLib/BaseUefiCpuLib.uni |
> 16 ---
> UefiCpuPkg/Library/BaseXApicLib/BaseXApicLib.inf | 2
> +-
> UefiCpuPkg/Library/BaseXApicX2ApicLib/BaseXApicX2ApicLib.inf
> | 2 +-
> UefiCpuPkg/Library/MpInitLib/DxeMpInitLib.inf | 1 -
> UefiCpuPkg/Library/MpInitLib/MpLib.h | 1 -
> UefiCpuPkg/Library/MpInitLib/PeiMpInitLib.inf | 1 -
> UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.h
> | 2 +-
> UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.inf
> | 1 -
> UefiCpuPkg/PiSmmCpuDxeSmm/SmmProfileInternal.h
> | 1 -
> UefiCpuPkg/SecCore/SecCore.inf | 2 +-
> UefiCpuPkg/SecCore/SecCoreNative.inf | 2 +-
> UefiCpuPkg/SecCore/SecMain.h | 2 +-
> UefiCpuPkg/UefiCpuPkg.dec | 5 -
> UefiCpuPkg/UefiCpuPkg.dsc | 2 -
> UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.h |
> 2 +-
> UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.inf |
> 2 +-
> UefiPayloadPkg/UefiPayloadEntry/UniversalPayloadEntry.inf
> | 2 +-
> UefiPayloadPkg/UefiPayloadPkg.dsc | 1 -
> 50 files changed, 211 insertions(+), 248 deletions(-)
> create mode 100644 MdePkg/Library/BaseCpuLib/X86BaseCpuLib.c
> delete mode 100644 UefiCpuPkg/Library/BaseUefiCpuLib/BaseUefiCpuLib.c
> rename {UefiCpuPkg/Library/BaseUefiCpuLib =>
> MdePkg/Library/BaseCpuLib}/Ia32/InitializeFpu.nasm (100%)
> rename {UefiCpuPkg/Library/BaseUefiCpuLib =>
> MdePkg/Library/BaseCpuLib}/X64/InitializeFpu.nasm (100%)
> delete mode 100644 UefiCpuPkg/Include/Library/UefiCpuLib.h
> delete mode 100644
> UefiCpuPkg/Library/BaseUefiCpuLib/BaseUefiCpuLib.inf
> delete mode 100644
> UefiCpuPkg/Library/BaseUefiCpuLib/BaseUefiCpuLib.uni
>
> --
> 2.30.0.windows.2
>
>
>
>
>