Re: [edk2-devel][PATCH v4 0/8] Support PEI 64bit in IntelFsp2Pkg and IntelFsp2WrapperPkg

2022-04-12 Thread Chiu, Chasel


Thanks Ted for updating patch!
For this patch series, Reviewed-by: Chasel Chiu 


> -Original Message-
> From: devel@edk2.groups.io  On Behalf Of Kuo,
> Ted
> Sent: Wednesday, April 13, 2022 10:43 AM
> To: devel@edk2.groups.io
> Subject: [edk2-devel][PATCH v4 0/8] Support PEI 64bit in IntelFsp2Pkg and
> IntelFsp2WrapperPkg
> 
> REF:https://bugzilla.tianocore.org/show_bug.cgi?id=3893
> 
> Currently PEI drivers/libraries only support 32bit in IntelFsp2Pkg and
> IntelFsp2WrapperPkg. The patches below are needed to support these
> drivers/libraries in 64bit.
> 
> V2 changes:
> 1.Change FSPM_UPD_COMMON2 to FSPM_UPD_COMMON_FSP24 in
> FspApiEntryM.nasm.
> 2.Add FSPx_UPD_COMMON_FSP24 in FspApi.h.
> 3.Add 3 additional patches for supporting X64 in IntelFsp2WrapperPkg.
> 
> V3 changes:
> 1.Update FSPT_ARCH2_UPD and add FSPT_CORE_UPD back.
> 2.Use 0x instead of MAX_ADDRESS to reflect the default of
> FspData.
> 3.Remove EnableMultiPhaseMemoryInit from FSPM_ARCH2_UPD.
> 4.Bump GenCfgOpt version to 0.57.
> 
> V4 changes:
> 1.Added EFIAPI to SwapStack and PEI_CORE_ENTRY.
> 2.Cast FspData from pointer to UINTN and then from UINTN to UINT32.
> 3.Corrected few typos.
> 
> Ted Kuo (8):
>   IntelFsp2Pkg: X64 compatible changes to support PEI in 64bit
>   IntelFsp2Pkg: Add FSPx_ARCH2_UPD support for X64
>   IntelFsp2Pkg: Update FSP_GLOBAL_DATA and FSP_PLAT_DATA for X64
>   IntelFsp2Pkg: FspSecCore support for X64
>   IntelFsp2Pkg: SecFspSecPlatformLibNull support for X64
>   IntelFsp2WrapperPkg: Adopt FSPM_UPD_COMMON_FSP24 for X64
>   IntelFsp2WrapperPkg: BaseFspWrapperApiLib support for X64
>   IntelFsp2WrapperPkg: SecFspWrapperPlatformSecLibSample support for
> X64
> 
>  IntelFsp2Pkg/FspNotifyPhase/FspNotifyPhasePeim.c   |   1 +
>  IntelFsp2Pkg/FspSecCore/Fsp22SecCoreS.inf  |   8 +-
>  IntelFsp2Pkg/FspSecCore/FspSecCoreM.inf|   9 +-
>  IntelFsp2Pkg/FspSecCore/FspSecCoreS.inf|   8 +-
>  IntelFsp2Pkg/FspSecCore/FspSecCoreT.inf|  10 +-
>  .../FspSecCore/Ia32/FspApiEntryCommon.nasm |   4 +-
>  IntelFsp2Pkg/FspSecCore/Ia32/FspApiEntryM.nasm |  30 +-
>  IntelFsp2Pkg/FspSecCore/Ia32/FspApiEntryT.nasm |  96 +++-
>  IntelFsp2Pkg/FspSecCore/Ia32/ReadEsp.nasm  |   8 +-
>  IntelFsp2Pkg/FspSecCore/Ia32/Stack.nasm|  10 +-
>  IntelFsp2Pkg/FspSecCore/SecFsp.c   |  10 +-
>  IntelFsp2Pkg/FspSecCore/SecFsp.h   |   2 +-
>  IntelFsp2Pkg/FspSecCore/SecFspApiChk.c |   8 +-
>  IntelFsp2Pkg/FspSecCore/SecMain.c  |   8 +-
>  IntelFsp2Pkg/FspSecCore/SecMain.h  |  18 +-
>  IntelFsp2Pkg/FspSecCore/X64/Fsp22ApiEntryS.nasm| 103 +
>  IntelFsp2Pkg/FspSecCore/X64/FspApiEntryCommon.nasm |  76 
>  IntelFsp2Pkg/FspSecCore/X64/FspApiEntryM.nasm  | 262 +++
>  IntelFsp2Pkg/FspSecCore/X64/FspApiEntryS.nasm  |  67 +++
>  IntelFsp2Pkg/FspSecCore/X64/FspApiEntryT.nasm  | 495
> +
>  IntelFsp2Pkg/FspSecCore/X64/FspHelper.nasm |  34 ++
>  IntelFsp2Pkg/FspSecCore/X64/MicrocodeLoadNasm.inc  |  11 +
>  IntelFsp2Pkg/FspSecCore/X64/ReadRsp.nasm   |  22 +
>  IntelFsp2Pkg/FspSecCore/X64/Stack.nasm |  73 +++
>  IntelFsp2Pkg/Include/FspEas/FspApi.h   | 145 +-
>  IntelFsp2Pkg/Include/FspGlobalData.h   |  51 ++-
>  IntelFsp2Pkg/Include/Guid/FspHeaderFile.h  |  14 +-
>  IntelFsp2Pkg/Include/SaveRestoreSseAvxNasm.inc | 284 
>  IntelFsp2Pkg/IntelFsp2Pkg.dsc  |   2 +-
>  .../Library/BaseFspCommonLib/FspCommonLib.c|   4 +-
>  .../BaseFspSwitchStackLib/FspSwitchStackLib.c  |   1 +
>  .../Library/BaseFspSwitchStackLib/X64/Stack.nasm   |   5 +-
>  .../SecFspSecPlatformLibNull/Ia32/Flat32.nasm  |   2 +-
>  .../SecFspSecPlatformLibNull.inf   |   6 +-
>  .../SecFspSecPlatformLibNull/X64/Long64.nasm   |  31 ++
>  .../SecFspSecPlatformLibNull/X64/SecCarInit.nasm   |  40 ++
>  IntelFsp2Pkg/Tools/GenCfgOpt.py|   4 +-
>  .../FspmWrapperPeim/FspmWrapperPeim.c  |  25 +-
>  .../BaseFspWrapperApiLib/FspWrapperApiLib.c|  42 +-
>  .../BaseFspWrapperApiLib/IA32/DispatchExecute.c|  21 +
>  .../BaseFspWrapperApiLib/X64/DispatchExecute.c |  45 +-
>  .../{Ia32 => }/Fsp.h   |   0
>  .../Ia32/Stack.nasm|   6 +-
>  .../SecFspWrapperPlatformSecLibSample.inf  |   7 +-
>  .../SecRamInitData.c   |  22 +-
>  .../X64/PeiCoreEntry.nasm  | 149 +++
>  .../X64/SecEntry.nasm  | 171 +++
> 

[edk2-devel][PATCH v4 0/8] Support PEI 64bit in IntelFsp2Pkg and IntelFsp2WrapperPkg

2022-04-12 Thread Kuo, Ted
REF:https://bugzilla.tianocore.org/show_bug.cgi?id=3893

Currently PEI drivers/libraries only support 32bit in IntelFsp2Pkg and
IntelFsp2WrapperPkg. The patches below are needed to support these
drivers/libraries in 64bit.

V2 changes:
1.Change FSPM_UPD_COMMON2 to FSPM_UPD_COMMON_FSP24 in FspApiEntryM.nasm.
2.Add FSPx_UPD_COMMON_FSP24 in FspApi.h.
3.Add 3 additional patches for supporting X64 in IntelFsp2WrapperPkg.

V3 changes:
1.Update FSPT_ARCH2_UPD and add FSPT_CORE_UPD back.
2.Use 0x instead of MAX_ADDRESS to reflect the default of FspData.
3.Remove EnableMultiPhaseMemoryInit from FSPM_ARCH2_UPD.
4.Bump GenCfgOpt version to 0.57.

V4 changes:
1.Added EFIAPI to SwapStack and PEI_CORE_ENTRY.
2.Cast FspData from pointer to UINTN and then from UINTN to UINT32.
3.Corrected few typos.

Ted Kuo (8):
  IntelFsp2Pkg: X64 compatible changes to support PEI in 64bit
  IntelFsp2Pkg: Add FSPx_ARCH2_UPD support for X64
  IntelFsp2Pkg: Update FSP_GLOBAL_DATA and FSP_PLAT_DATA for X64
  IntelFsp2Pkg: FspSecCore support for X64
  IntelFsp2Pkg: SecFspSecPlatformLibNull support for X64
  IntelFsp2WrapperPkg: Adopt FSPM_UPD_COMMON_FSP24 for X64
  IntelFsp2WrapperPkg: BaseFspWrapperApiLib support for X64
  IntelFsp2WrapperPkg: SecFspWrapperPlatformSecLibSample support for X64

 IntelFsp2Pkg/FspNotifyPhase/FspNotifyPhasePeim.c   |   1 +
 IntelFsp2Pkg/FspSecCore/Fsp22SecCoreS.inf  |   8 +-
 IntelFsp2Pkg/FspSecCore/FspSecCoreM.inf|   9 +-
 IntelFsp2Pkg/FspSecCore/FspSecCoreS.inf|   8 +-
 IntelFsp2Pkg/FspSecCore/FspSecCoreT.inf|  10 +-
 .../FspSecCore/Ia32/FspApiEntryCommon.nasm |   4 +-
 IntelFsp2Pkg/FspSecCore/Ia32/FspApiEntryM.nasm |  30 +-
 IntelFsp2Pkg/FspSecCore/Ia32/FspApiEntryT.nasm |  96 +++-
 IntelFsp2Pkg/FspSecCore/Ia32/ReadEsp.nasm  |   8 +-
 IntelFsp2Pkg/FspSecCore/Ia32/Stack.nasm|  10 +-
 IntelFsp2Pkg/FspSecCore/SecFsp.c   |  10 +-
 IntelFsp2Pkg/FspSecCore/SecFsp.h   |   2 +-
 IntelFsp2Pkg/FspSecCore/SecFspApiChk.c |   8 +-
 IntelFsp2Pkg/FspSecCore/SecMain.c  |   8 +-
 IntelFsp2Pkg/FspSecCore/SecMain.h  |  18 +-
 IntelFsp2Pkg/FspSecCore/X64/Fsp22ApiEntryS.nasm| 103 +
 IntelFsp2Pkg/FspSecCore/X64/FspApiEntryCommon.nasm |  76 
 IntelFsp2Pkg/FspSecCore/X64/FspApiEntryM.nasm  | 262 +++
 IntelFsp2Pkg/FspSecCore/X64/FspApiEntryS.nasm  |  67 +++
 IntelFsp2Pkg/FspSecCore/X64/FspApiEntryT.nasm  | 495 +
 IntelFsp2Pkg/FspSecCore/X64/FspHelper.nasm |  34 ++
 IntelFsp2Pkg/FspSecCore/X64/MicrocodeLoadNasm.inc  |  11 +
 IntelFsp2Pkg/FspSecCore/X64/ReadRsp.nasm   |  22 +
 IntelFsp2Pkg/FspSecCore/X64/Stack.nasm |  73 +++
 IntelFsp2Pkg/Include/FspEas/FspApi.h   | 145 +-
 IntelFsp2Pkg/Include/FspGlobalData.h   |  51 ++-
 IntelFsp2Pkg/Include/Guid/FspHeaderFile.h  |  14 +-
 IntelFsp2Pkg/Include/SaveRestoreSseAvxNasm.inc | 284 
 IntelFsp2Pkg/IntelFsp2Pkg.dsc  |   2 +-
 .../Library/BaseFspCommonLib/FspCommonLib.c|   4 +-
 .../BaseFspSwitchStackLib/FspSwitchStackLib.c  |   1 +
 .../Library/BaseFspSwitchStackLib/X64/Stack.nasm   |   5 +-
 .../SecFspSecPlatformLibNull/Ia32/Flat32.nasm  |   2 +-
 .../SecFspSecPlatformLibNull.inf   |   6 +-
 .../SecFspSecPlatformLibNull/X64/Long64.nasm   |  31 ++
 .../SecFspSecPlatformLibNull/X64/SecCarInit.nasm   |  40 ++
 IntelFsp2Pkg/Tools/GenCfgOpt.py|   4 +-
 .../FspmWrapperPeim/FspmWrapperPeim.c  |  25 +-
 .../BaseFspWrapperApiLib/FspWrapperApiLib.c|  42 +-
 .../BaseFspWrapperApiLib/IA32/DispatchExecute.c|  21 +
 .../BaseFspWrapperApiLib/X64/DispatchExecute.c |  45 +-
 .../{Ia32 => }/Fsp.h   |   0
 .../Ia32/Stack.nasm|   6 +-
 .../SecFspWrapperPlatformSecLibSample.inf  |   7 +-
 .../SecRamInitData.c   |  22 +-
 .../X64/PeiCoreEntry.nasm  | 149 +++
 .../X64/SecEntry.nasm  | 171 +++
 .../X64/Stack.nasm |  73 +++
 48 files changed, 2413 insertions(+), 110 deletions(-)
 create mode 100644 IntelFsp2Pkg/FspSecCore/X64/Fsp22ApiEntryS.nasm
 create mode 100644 IntelFsp2Pkg/FspSecCore/X64/FspApiEntryCommon.nasm
 create mode 100644 IntelFsp2Pkg/FspSecCore/X64/FspApiEntryM.nasm
 create mode 100644 IntelFsp2Pkg/FspSecCore/X64/FspApiEntryS.nasm
 create mode 100644 IntelFsp2Pkg/FspSecCore/X64/FspApiEntryT.nasm
 create mode 100644 IntelFsp2Pkg/FspSecCore/X64/FspHelper.nasm
 create mode 100644 IntelFsp2Pkg/FspSecCore/X64/MicrocodeLoadNasm.inc
 create mode 100644 IntelFsp2Pkg/FspSecCore/X64/ReadRsp.nasm
 create mode 100644 IntelFsp2Pkg/FspSecCore/X64/Stack.nasm
 create mode 100644 IntelFsp2Pkg/Include/SaveRestoreSseAvxNasm.inc
 create mode