Hi Pu,
When would you expect having CpuLib merged to edk2 mainstream? 
Regards,
Abner

From: devel@edk2.groups.io <devel@edk2.groups.io> on behalf of Abner Chang <abner.chang@hpe.com>
Sent: Friday, April 1, 2022 9:45 PM
To: devel@edk2.groups.io <devel@edk2.groups.io>; yu.pu@intel.com <yu.pu@intel.com>
Subject: Re: [edk2-devel] [PATCH v1 00/15] Merge UefiCpuLib to CpuLib
 
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
>
>
>
>
>