public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* Re: [edk2-devel] [PATCH v8 00/19] Add Raw algorithm support using Arm FW-TRNG interface
       [not found] <171F2CF84A83B997.20472@groups.io>
@ 2022-10-19 14:45 ` PierreGondois
  2022-10-21  1:13   ` 回复: " gaoliming
  2022-10-25 12:32 ` PierreGondois
  1 sibling, 1 reply; 6+ messages in thread
From: PierreGondois @ 2022-10-19 14:45 UTC (permalink / raw)
  To: devel
  Cc: Sami Mujawar, Leif Lindholm, Ard Biesheuvel, Rebecca Cran,
	Michael D Kinney, Liming Gao, Jiewen Yao, Jian J Wang

Hello,
I finally found back the message from Liming on the v4:
https://edk2.groups.io/g/devel/message/91800

There has been some changes to the patches affecting the MdePkg,
but it should not be significant changes:
- Renamed FID_TRNG_* macros to ARM_SMC_ID_TRNG_*.
- Added RISCV64 to the list of VALID_ARCHITECTURES for BaseTrngLibNull
- Dropped patch: 'MdePkg/BaseRngLib: Rename ArmReadIdIsar0() to
   ArmGetFeatRng()'
- Removed references in Trnglib.h to 'Special Publication'
   800-90A and 800-90C, and only reference 'Arm True Random
   Number Generator Firmware, Interface 1.0' in the Arm
   implementation of the TrngLib.

Liming's Rb is not currently added to the MdePkg patches.

Regards,
Pierre

On 10/18/22 15:20, PierreGondois via groups.io wrote:
> From: Pierre Gondois <pierre.gondois@arm.com>
> 
> Bugzilla: Bug 3668 (https://bugzilla.tianocore.org/show_bug.cgi?id=3668)
> 
> The Arm True Random Number Generator Firmware, Interface 1.0, specification
> defines an interface between an Operating System (OS) executing at EL1 and
> Firmware (FW) exposing a conditioned entropy source that is provided by a
> TRNG back end.
> This patch-set:
> - defines a TRNG library class that provides an interface to access the
>    entropy source on a platform.
> - implements a TRNG library instance that uses the Arm FW-TRNG interface.
> - Adds RawAlgorithm support to RngDxe for Arm architecture using the Arm
>    FW-TRNG interface.
> - Enables RNG support using FW-TRNG interface for Kvmtool Guest/Virtual
>    firmware.
> 
> This patch-set is based on the v2 from Sami Mujawar:
> [PATCH v2 0/8] Add Raw algorithm support using Arm FW-TRNG interface
> v2:
> https://edk2.groups.io/g/devel/message/83775
> v3:
> https://edk2.groups.io/g/devel/message/90845
> https://github.com/PierreARM/edk2/tree/Arm_Trng_v3
> v4:
> https://github.com/PierreARM/edk2/tree/Arm_Trng_v4
> v5:
> https://github.com/PierreARM/edk2/tree/Arm_Trng_v5
> v6:
> https://github.com/PierreARM/edk2/tree/Arm_Trng_v6
> v7:
> https://github.com/PierreARM/edk2/tree/Arm_Trng_v7
> v8:
> https://github.com/PierreARM/edk2/tree/Arm_Trng_v8
> 
> v8:
>   - Added Reviewed-by/Acked-by from Leif on ArmPkg/SecurityPkg
>     patches. [Leif]
>   - Renamed FID_TRNG_* macros to ARM_SMC_ID_TRNG_*. [Leif]
> v7:
>   - Removed Reviewed-by from Leif.
>   - Remove Sami's Signed-off.
> V6:
>   - Added my signed-off on patches authored by Sami. [Leif]
>   - New patch to make it easier to add new libraries in alphabetical
>     order: ArmPkg: Sort HVC/SMC section alphbetically in ArmPkg.dsc [Leif]
>   - Renmaed ArmHvcNullLib to ArmHvcLibNull. [Leif]
>   - Added RISCV64 to the list of VALID_ARCHITECTURES for BaseTrngLibNull. [Leif]
>   - Removed unnecessary space in function parameter documentation
>     ('[in, out]'). [Rebecca]
>   - Updated INF_VERSION to latest spec (1.29) for new libraries. [Rebecca]
>   - Dropped the following patches [Leif]:
>    - ArmPkg/ArmLib: Add ArmHasRngExt()
>    - ArmPkg/ArmLib: Add ArmReadIdIsar0() helper
>    - MdePkg/BaseRngLib: Rename ArmReadIdIsar0() to ArmGetFeatRng()
> V5:
>   - Removed references in Trnglib.h to 'Special Publication'
>     800-90A and 800-90C, and only reference 'Arm True Random
>     Number Generator Firmware, Interface 1.0' in the Arm
>     implementation of the TrngLib. [Jiewen]
> V4:
>   - Removed dependencies on ArmPkg and dropped patch:
>      [PATCH v3 12/22] SecurityPkg: Update Securitypkg.ci.yaml
>     [Jiewen]
>   - Use a dynamically allocated array to hold available algorithms.
>     The array is freed in a new UNLOAD_IMAGE function and
>     allocated in arch specific implementations of
>     GetAvailableAlgorithms(), available in AArch64/AArch64Algo.c
>     and Arm/ArmAlgo.c.
>   - Correctly reference gEfiRngAlgorithmSp80090Ctr256Guid
>     Guid by copying its address (add missing '&'). [Jiewen]
> V3:
>   - Address Leif's comment (moving definitions, optimizations, ...)
>   - Add ArmMonitorLib to choose Hvc/Smc conduit depending on a Pcd.
>   - Re-factor some parts of SecurityPkg/RngDxe/ to ease the addition
>     of new algorithms.
>   - Add ArmHasRngExt() function to check Arm's FEAT_RNG extension.
> V2:
>   - Updates TrngLib definitions to use RETURN_STATUS as the return type
>     from the interface functions as TrngLib is base type library.
>   - Drops the patch "MdePkg: Add definition for NULL GUID" as there is
>     already an equivalent definition provided by gZeroGuid. Thus, the
>     use of gNullGuid has been replaced with gZeroGuid.
> 
> Pierre Gondois (11):
>    ArmPkg/ArmMonitorLib: Definition for ArmMonitorLib library class
>    ArmPkg/ArmMonitorLib: Add ArmMonitorLib
>    ArmPkg: Sort HVC/SMC section alphbetically in ArmPkg.dsc
>    ArmPkg/ArmHvcLibNull: Add NULL instance of ArmHvcLib
>    SecurityPkg/RngDxe: Replace Pcd with Sp80090Ctr256Guid
>    SecurityPkg/RngDxe: Remove ArchGetSupportedRngAlgorithms()
>    SecurityPkg/RngDxe: Documentation/include/parameter cleanup
>    SecurityPkg/RngDxe: Check before advertising Cpu Rng algo
>    SecurityPkg/RngDxe: Add debug warning for NULL
>      PcdCpuRngSupportedAlgorithm
>    SecurityPkg/RngDxe: Rename AArch64/RngDxe.c
>    SecurityPkg/RngDxe: Add Arm support of RngDxe
> 
> Sami Mujawar (8):
>    ArmPkg: PCD to select conduit for monitor calls
>    MdePkg/TrngLib: Definition for TRNG library class interface
>    MdePkg/TrngLib: Add NULL instance of TRNG Library
>    ArmPkg: Add FID definitions for Firmware TRNG
>    ArmPkg/TrngLib: Add Arm Firmware TRNG library
>    SecurityPkg/RngDxe: Rename RdRandGenerateEntropy to generic name
>    SecurityPkg/RngDxe: Add AArch64 RawAlgorithm support through TrngLib
>    ArmVirtPkg: Kvmtool: Add RNG support using FW-TRNG interface
> 
>   ArmPkg/ArmPkg.dec                             |  12 +-
>   ArmPkg/ArmPkg.dsc                             |   5 +-
>   ArmPkg/Include/IndustryStandard/ArmStdSmc.h   | 109 ++++-
>   ArmPkg/Include/Library/ArmMonitorLib.h        |  42 ++
>   ArmPkg/Library/ArmFwTrngLib/ArmFwTrngDefs.h   |  50 +++
>   ArmPkg/Library/ArmFwTrngLib/ArmFwTrngLib.c    | 388 ++++++++++++++++++
>   ArmPkg/Library/ArmFwTrngLib/ArmFwTrngLib.inf  |  29 ++
>   ArmPkg/Library/ArmHvcLibNull/ArmHvcLibNull.c  |  29 ++
>   .../Library/ArmHvcLibNull/ArmHvcLibNull.inf   |  22 +
>   ArmPkg/Library/ArmMonitorLib/ArmMonitorLib.c  |  34 ++
>   .../Library/ArmMonitorLib/ArmMonitorLib.inf   |  29 ++
>   ArmVirtPkg/ArmVirtKvmTool.dsc                 |  10 +
>   ArmVirtPkg/ArmVirtKvmTool.fdf                 |   5 +
>   MdePkg/Include/Library/TrngLib.h              | 103 +++++
>   .../Library/BaseTrngLibNull/BaseTrngLibNull.c | 117 ++++++
>   .../BaseTrngLibNull/BaseTrngLibNull.inf       |  30 ++
>   .../BaseTrngLibNull/BaseTrngLibNull.uni       |  12 +
>   MdePkg/MdePkg.dec                             |   5 +
>   MdePkg/MdePkg.dsc                             |   1 +
>   .../RngDxe/AArch64/AArch64Algo.c              |  72 ++++
>   .../RngDxe/Arm/ArmAlgo.c                      |  51 +++
>   .../RngDxe/{AArch64/RngDxe.c => ArmRngDxe.c}  |  81 +++-
>   .../RandomNumberGenerator/RngDxe/ArmTrng.c    |  71 ++++
>   .../RngDxe/Rand/RdRand.c                      |  14 +-
>   .../RngDxe/Rand/RdRand.h                      |  43 --
>   .../RngDxe/Rand/RngDxe.c                      |  62 ++-
>   .../RandomNumberGenerator/RngDxe/RngDxe.c     |  90 ++--
>   .../RandomNumberGenerator/RngDxe/RngDxe.inf   |  18 +-
>   .../RngDxe/RngDxeInternals.h                  |  71 ++--
>   SecurityPkg/SecurityPkg.dsc                   |   5 +-
>   30 files changed, 1454 insertions(+), 156 deletions(-)
>   create mode 100644 ArmPkg/Include/Library/ArmMonitorLib.h
>   create mode 100644 ArmPkg/Library/ArmFwTrngLib/ArmFwTrngDefs.h
>   create mode 100644 ArmPkg/Library/ArmFwTrngLib/ArmFwTrngLib.c
>   create mode 100644 ArmPkg/Library/ArmFwTrngLib/ArmFwTrngLib.inf
>   create mode 100644 ArmPkg/Library/ArmHvcLibNull/ArmHvcLibNull.c
>   create mode 100644 ArmPkg/Library/ArmHvcLibNull/ArmHvcLibNull.inf
>   create mode 100644 ArmPkg/Library/ArmMonitorLib/ArmMonitorLib.c
>   create mode 100644 ArmPkg/Library/ArmMonitorLib/ArmMonitorLib.inf
>   create mode 100644 MdePkg/Include/Library/TrngLib.h
>   create mode 100644 MdePkg/Library/BaseTrngLibNull/BaseTrngLibNull.c
>   create mode 100644 MdePkg/Library/BaseTrngLibNull/BaseTrngLibNull.inf
>   create mode 100644 MdePkg/Library/BaseTrngLibNull/BaseTrngLibNull.uni
>   create mode 100644 SecurityPkg/RandomNumberGenerator/RngDxe/AArch64/AArch64Algo.c
>   create mode 100644 SecurityPkg/RandomNumberGenerator/RngDxe/Arm/ArmAlgo.c
>   rename SecurityPkg/RandomNumberGenerator/RngDxe/{AArch64/RngDxe.c => ArmRngDxe.c} (64%)
>   create mode 100644 SecurityPkg/RandomNumberGenerator/RngDxe/ArmTrng.c
>   delete mode 100644 SecurityPkg/RandomNumberGenerator/RngDxe/Rand/RdRand.h
> 

^ permalink raw reply	[flat|nested] 6+ messages in thread

* 回复: [edk2-devel] [PATCH v8 00/19] Add Raw algorithm support using Arm FW-TRNG interface
  2022-10-19 14:45 ` [edk2-devel] [PATCH v8 00/19] Add Raw algorithm support using Arm FW-TRNG interface PierreGondois
@ 2022-10-21  1:13   ` gaoliming
  2022-10-21  7:29     ` PierreGondois
  0 siblings, 1 reply; 6+ messages in thread
From: gaoliming @ 2022-10-21  1:13 UTC (permalink / raw)
  To: 'Pierre Gondois', devel
  Cc: 'Sami Mujawar', 'Leif Lindholm',
	'Ard Biesheuvel', 'Rebecca Cran',
	'Michael D Kinney', 'Jiewen Yao',
	'Jian J Wang'

Pierre:
  Is MdePkg BaseTrngLibNull Library instance only for build? 

  Is it possible to be used in the platform without RNG support? If yes, I suggest to remove ASSERT in API implementation. 

  Last, I suggest to add BaseTrngLibNull as the default TrngLib library instance in MdePkg/MdeLibs.dsc.inc.

Thanks
Liming
> -----邮件原件-----
> 发件人: Pierre Gondois <pierre.gondois@arm.com>
> 发送时间: 2022年10月19日 22:46
> 收件人: devel@edk2.groups.io
> 抄送: Sami Mujawar <sami.mujawar@arm.com>; Leif Lindholm
> <quic_llindhol@quicinc.com>; Ard Biesheuvel <ardb+tianocore@kernel.org>;
> Rebecca Cran <rebecca@bsdio.com>; Michael D Kinney
> <michael.d.kinney@intel.com>; Liming Gao <gaoliming@byosoft.com.cn>;
> Jiewen Yao <jiewen.yao@intel.com>; Jian J Wang <jian.j.wang@intel.com>
> 主题: Re: [edk2-devel] [PATCH v8 00/19] Add Raw algorithm support using
> Arm FW-TRNG interface
> 
> Hello,
> I finally found back the message from Liming on the v4:
> https://edk2.groups.io/g/devel/message/91800
> 
> There has been some changes to the patches affecting the MdePkg,
> but it should not be significant changes:
> - Renamed FID_TRNG_* macros to ARM_SMC_ID_TRNG_*.
> - Added RISCV64 to the list of VALID_ARCHITECTURES for BaseTrngLibNull
> - Dropped patch: 'MdePkg/BaseRngLib: Rename ArmReadIdIsar0() to
>    ArmGetFeatRng()'
> - Removed references in Trnglib.h to 'Special Publication'
>    800-90A and 800-90C, and only reference 'Arm True Random
>    Number Generator Firmware, Interface 1.0' in the Arm
>    implementation of the TrngLib.
> 
> Liming's Rb is not currently added to the MdePkg patches.
> 
> Regards,
> Pierre
> 
> On 10/18/22 15:20, PierreGondois via groups.io wrote:
> > From: Pierre Gondois <pierre.gondois@arm.com>
> >
> > Bugzilla: Bug 3668 (https://bugzilla.tianocore.org/show_bug.cgi?id=3668)
> >
> > The Arm True Random Number Generator Firmware, Interface 1.0,
> specification
> > defines an interface between an Operating System (OS) executing at EL1
> and
> > Firmware (FW) exposing a conditioned entropy source that is provided by a
> > TRNG back end.
> > This patch-set:
> > - defines a TRNG library class that provides an interface to access the
> >    entropy source on a platform.
> > - implements a TRNG library instance that uses the Arm FW-TRNG
> interface.
> > - Adds RawAlgorithm support to RngDxe for Arm architecture using the Arm
> >    FW-TRNG interface.
> > - Enables RNG support using FW-TRNG interface for Kvmtool Guest/Virtual
> >    firmware.
> >
> > This patch-set is based on the v2 from Sami Mujawar:
> > [PATCH v2 0/8] Add Raw algorithm support using Arm FW-TRNG interface
> > v2:
> > https://edk2.groups.io/g/devel/message/83775
> > v3:
> > https://edk2.groups.io/g/devel/message/90845
> > https://github.com/PierreARM/edk2/tree/Arm_Trng_v3
> > v4:
> > https://github.com/PierreARM/edk2/tree/Arm_Trng_v4
> > v5:
> > https://github.com/PierreARM/edk2/tree/Arm_Trng_v5
> > v6:
> > https://github.com/PierreARM/edk2/tree/Arm_Trng_v6
> > v7:
> > https://github.com/PierreARM/edk2/tree/Arm_Trng_v7
> > v8:
> > https://github.com/PierreARM/edk2/tree/Arm_Trng_v8
> >
> > v8:
> >   - Added Reviewed-by/Acked-by from Leif on ArmPkg/SecurityPkg
> >     patches. [Leif]
> >   - Renamed FID_TRNG_* macros to ARM_SMC_ID_TRNG_*. [Leif]
> > v7:
> >   - Removed Reviewed-by from Leif.
> >   - Remove Sami's Signed-off.
> > V6:
> >   - Added my signed-off on patches authored by Sami. [Leif]
> >   - New patch to make it easier to add new libraries in alphabetical
> >     order: ArmPkg: Sort HVC/SMC section alphbetically in ArmPkg.dsc
> [Leif]
> >   - Renmaed ArmHvcNullLib to ArmHvcLibNull. [Leif]
> >   - Added RISCV64 to the list of VALID_ARCHITECTURES for
> BaseTrngLibNull. [Leif]
> >   - Removed unnecessary space in function parameter documentation
> >     ('[in, out]'). [Rebecca]
> >   - Updated INF_VERSION to latest spec (1.29) for new libraries. [Rebecca]
> >   - Dropped the following patches [Leif]:
> >    - ArmPkg/ArmLib: Add ArmHasRngExt()
> >    - ArmPkg/ArmLib: Add ArmReadIdIsar0() helper
> >    - MdePkg/BaseRngLib: Rename ArmReadIdIsar0() to ArmGetFeatRng()
> > V5:
> >   - Removed references in Trnglib.h to 'Special Publication'
> >     800-90A and 800-90C, and only reference 'Arm True Random
> >     Number Generator Firmware, Interface 1.0' in the Arm
> >     implementation of the TrngLib. [Jiewen]
> > V4:
> >   - Removed dependencies on ArmPkg and dropped patch:
> >      [PATCH v3 12/22] SecurityPkg: Update Securitypkg.ci.yaml
> >     [Jiewen]
> >   - Use a dynamically allocated array to hold available algorithms.
> >     The array is freed in a new UNLOAD_IMAGE function and
> >     allocated in arch specific implementations of
> >     GetAvailableAlgorithms(), available in AArch64/AArch64Algo.c
> >     and Arm/ArmAlgo.c.
> >   - Correctly reference gEfiRngAlgorithmSp80090Ctr256Guid
> >     Guid by copying its address (add missing '&'). [Jiewen]
> > V3:
> >   - Address Leif's comment (moving definitions, optimizations, ...)
> >   - Add ArmMonitorLib to choose Hvc/Smc conduit depending on a Pcd.
> >   - Re-factor some parts of SecurityPkg/RngDxe/ to ease the addition
> >     of new algorithms.
> >   - Add ArmHasRngExt() function to check Arm's FEAT_RNG extension.
> > V2:
> >   - Updates TrngLib definitions to use RETURN_STATUS as the return type
> >     from the interface functions as TrngLib is base type library.
> >   - Drops the patch "MdePkg: Add definition for NULL GUID" as there is
> >     already an equivalent definition provided by gZeroGuid. Thus, the
> >     use of gNullGuid has been replaced with gZeroGuid.
> >
> > Pierre Gondois (11):
> >    ArmPkg/ArmMonitorLib: Definition for ArmMonitorLib library class
> >    ArmPkg/ArmMonitorLib: Add ArmMonitorLib
> >    ArmPkg: Sort HVC/SMC section alphbetically in ArmPkg.dsc
> >    ArmPkg/ArmHvcLibNull: Add NULL instance of ArmHvcLib
> >    SecurityPkg/RngDxe: Replace Pcd with Sp80090Ctr256Guid
> >    SecurityPkg/RngDxe: Remove ArchGetSupportedRngAlgorithms()
> >    SecurityPkg/RngDxe: Documentation/include/parameter cleanup
> >    SecurityPkg/RngDxe: Check before advertising Cpu Rng algo
> >    SecurityPkg/RngDxe: Add debug warning for NULL
> >      PcdCpuRngSupportedAlgorithm
> >    SecurityPkg/RngDxe: Rename AArch64/RngDxe.c
> >    SecurityPkg/RngDxe: Add Arm support of RngDxe
> >
> > Sami Mujawar (8):
> >    ArmPkg: PCD to select conduit for monitor calls
> >    MdePkg/TrngLib: Definition for TRNG library class interface
> >    MdePkg/TrngLib: Add NULL instance of TRNG Library
> >    ArmPkg: Add FID definitions for Firmware TRNG
> >    ArmPkg/TrngLib: Add Arm Firmware TRNG library
> >    SecurityPkg/RngDxe: Rename RdRandGenerateEntropy to generic
> name
> >    SecurityPkg/RngDxe: Add AArch64 RawAlgorithm support through
> TrngLib
> >    ArmVirtPkg: Kvmtool: Add RNG support using FW-TRNG interface
> >
> >   ArmPkg/ArmPkg.dec                             |  12 +-
> >   ArmPkg/ArmPkg.dsc                             |   5 +-
> >   ArmPkg/Include/IndustryStandard/ArmStdSmc.h   | 109 ++++-
> >   ArmPkg/Include/Library/ArmMonitorLib.h        |  42 ++
> >   ArmPkg/Library/ArmFwTrngLib/ArmFwTrngDefs.h   |  50 +++
> >   ArmPkg/Library/ArmFwTrngLib/ArmFwTrngLib.c    | 388
> ++++++++++++++++++
> >   ArmPkg/Library/ArmFwTrngLib/ArmFwTrngLib.inf  |  29 ++
> >   ArmPkg/Library/ArmHvcLibNull/ArmHvcLibNull.c  |  29 ++
> >   .../Library/ArmHvcLibNull/ArmHvcLibNull.inf   |  22 +
> >   ArmPkg/Library/ArmMonitorLib/ArmMonitorLib.c  |  34 ++
> >   .../Library/ArmMonitorLib/ArmMonitorLib.inf   |  29 ++
> >   ArmVirtPkg/ArmVirtKvmTool.dsc                 |  10 +
> >   ArmVirtPkg/ArmVirtKvmTool.fdf                 |   5 +
> >   MdePkg/Include/Library/TrngLib.h              | 103 +++++
> >   .../Library/BaseTrngLibNull/BaseTrngLibNull.c | 117 ++++++
> >   .../BaseTrngLibNull/BaseTrngLibNull.inf       |  30 ++
> >   .../BaseTrngLibNull/BaseTrngLibNull.uni       |  12 +
> >   MdePkg/MdePkg.dec                             |   5 +
> >   MdePkg/MdePkg.dsc                             |   1 +
> >   .../RngDxe/AArch64/AArch64Algo.c              |  72 ++++
> >   .../RngDxe/Arm/ArmAlgo.c                      |  51 +++
> >   .../RngDxe/{AArch64/RngDxe.c => ArmRngDxe.c}  |  81 +++-
> >   .../RandomNumberGenerator/RngDxe/ArmTrng.c    |  71 ++++
> >   .../RngDxe/Rand/RdRand.c                      |  14 +-
> >   .../RngDxe/Rand/RdRand.h                      |  43 --
> >   .../RngDxe/Rand/RngDxe.c                      |  62 ++-
> >   .../RandomNumberGenerator/RngDxe/RngDxe.c     |  90 ++--
> >   .../RandomNumberGenerator/RngDxe/RngDxe.inf   |  18 +-
> >   .../RngDxe/RngDxeInternals.h                  |  71 ++--
> >   SecurityPkg/SecurityPkg.dsc                   |   5 +-
> >   30 files changed, 1454 insertions(+), 156 deletions(-)
> >   create mode 100644 ArmPkg/Include/Library/ArmMonitorLib.h
> >   create mode 100644 ArmPkg/Library/ArmFwTrngLib/ArmFwTrngDefs.h
> >   create mode 100644 ArmPkg/Library/ArmFwTrngLib/ArmFwTrngLib.c
> >   create mode 100644 ArmPkg/Library/ArmFwTrngLib/ArmFwTrngLib.inf
> >   create mode 100644 ArmPkg/Library/ArmHvcLibNull/ArmHvcLibNull.c
> >   create mode 100644 ArmPkg/Library/ArmHvcLibNull/ArmHvcLibNull.inf
> >   create mode 100644 ArmPkg/Library/ArmMonitorLib/ArmMonitorLib.c
> >   create mode 100644 ArmPkg/Library/ArmMonitorLib/ArmMonitorLib.inf
> >   create mode 100644 MdePkg/Include/Library/TrngLib.h
> >   create mode 100644
> MdePkg/Library/BaseTrngLibNull/BaseTrngLibNull.c
> >   create mode 100644
> MdePkg/Library/BaseTrngLibNull/BaseTrngLibNull.inf
> >   create mode 100644
> MdePkg/Library/BaseTrngLibNull/BaseTrngLibNull.uni
> >   create mode 100644
> SecurityPkg/RandomNumberGenerator/RngDxe/AArch64/AArch64Algo.c
> >   create mode 100644
> SecurityPkg/RandomNumberGenerator/RngDxe/Arm/ArmAlgo.c
> >   rename
> SecurityPkg/RandomNumberGenerator/RngDxe/{AArch64/RngDxe.c =>
> ArmRngDxe.c} (64%)
> >   create mode 100644
> SecurityPkg/RandomNumberGenerator/RngDxe/ArmTrng.c
> >   delete mode 100644
> SecurityPkg/RandomNumberGenerator/RngDxe/Rand/RdRand.h
> >



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: 回复: [edk2-devel] [PATCH v8 00/19] Add Raw algorithm support using Arm FW-TRNG interface
  2022-10-21  1:13   ` 回复: " gaoliming
@ 2022-10-21  7:29     ` PierreGondois
  2022-10-26  1:10       ` 回复: " gaoliming
  0 siblings, 1 reply; 6+ messages in thread
From: PierreGondois @ 2022-10-21  7:29 UTC (permalink / raw)
  To: gaoliming, devel
  Cc: 'Sami Mujawar', 'Leif Lindholm',
	'Ard Biesheuvel', 'Rebecca Cran',
	'Michael D Kinney', 'Jiewen Yao',
	'Jian J Wang'

Hello Liming,

On 10/21/22 03:13, gaoliming wrote:
> Pierre:
>    Is MdePkg BaseTrngLibNull Library instance only for build?
> 
>    Is it possible to be used in the platform without RNG support? If yes, I suggest to remove ASSERT in API implementation.

The BaseTrngLibNull is only here to have a default Null library when building
the MdePkg (TrngLib.h is in the MdePkg). I don't think it would be possible to
use the Null implementation on a platform.

> 
>    Last, I suggest to add BaseTrngLibNull as the default TrngLib library instance in MdePkg/MdeLibs.dsc.inc.

This would mean building the BaseTrngLibNull for many packages that don't
require it. If this is ok for you I can move it there.

Thanks for the review,
Pierre

> 
> Thanks
> Liming
>> -----邮件原件-----
>> 发件人: Pierre Gondois <pierre.gondois@arm.com>
>> 发送时间: 2022年10月19日 22:46
>> 收件人: devel@edk2.groups.io
>> 抄送: Sami Mujawar <sami.mujawar@arm.com>; Leif Lindholm
>> <quic_llindhol@quicinc.com>; Ard Biesheuvel <ardb+tianocore@kernel.org>;
>> Rebecca Cran <rebecca@bsdio.com>; Michael D Kinney
>> <michael.d.kinney@intel.com>; Liming Gao <gaoliming@byosoft.com.cn>;
>> Jiewen Yao <jiewen.yao@intel.com>; Jian J Wang <jian.j.wang@intel.com>
>> 主题: Re: [edk2-devel] [PATCH v8 00/19] Add Raw algorithm support using
>> Arm FW-TRNG interface
>>
>> Hello,
>> I finally found back the message from Liming on the v4:
>> https://edk2.groups.io/g/devel/message/91800
>>
>> There has been some changes to the patches affecting the MdePkg,
>> but it should not be significant changes:
>> - Renamed FID_TRNG_* macros to ARM_SMC_ID_TRNG_*.
>> - Added RISCV64 to the list of VALID_ARCHITECTURES for BaseTrngLibNull
>> - Dropped patch: 'MdePkg/BaseRngLib: Rename ArmReadIdIsar0() to
>>     ArmGetFeatRng()'
>> - Removed references in Trnglib.h to 'Special Publication'
>>     800-90A and 800-90C, and only reference 'Arm True Random
>>     Number Generator Firmware, Interface 1.0' in the Arm
>>     implementation of the TrngLib.
>>
>> Liming's Rb is not currently added to the MdePkg patches.
>>
>> Regards,
>> Pierre
>>
>> On 10/18/22 15:20, PierreGondois via groups.io wrote:
>>> From: Pierre Gondois <pierre.gondois@arm.com>
>>>
>>> Bugzilla: Bug 3668 (https://bugzilla.tianocore.org/show_bug.cgi?id=3668)
>>>
>>> The Arm True Random Number Generator Firmware, Interface 1.0,
>> specification
>>> defines an interface between an Operating System (OS) executing at EL1
>> and
>>> Firmware (FW) exposing a conditioned entropy source that is provided by a
>>> TRNG back end.
>>> This patch-set:
>>> - defines a TRNG library class that provides an interface to access the
>>>     entropy source on a platform.
>>> - implements a TRNG library instance that uses the Arm FW-TRNG
>> interface.
>>> - Adds RawAlgorithm support to RngDxe for Arm architecture using the Arm
>>>     FW-TRNG interface.
>>> - Enables RNG support using FW-TRNG interface for Kvmtool Guest/Virtual
>>>     firmware.
>>>
>>> This patch-set is based on the v2 from Sami Mujawar:
>>> [PATCH v2 0/8] Add Raw algorithm support using Arm FW-TRNG interface
>>> v2:
>>> https://edk2.groups.io/g/devel/message/83775
>>> v3:
>>> https://edk2.groups.io/g/devel/message/90845
>>> https://github.com/PierreARM/edk2/tree/Arm_Trng_v3
>>> v4:
>>> https://github.com/PierreARM/edk2/tree/Arm_Trng_v4
>>> v5:
>>> https://github.com/PierreARM/edk2/tree/Arm_Trng_v5
>>> v6:
>>> https://github.com/PierreARM/edk2/tree/Arm_Trng_v6
>>> v7:
>>> https://github.com/PierreARM/edk2/tree/Arm_Trng_v7
>>> v8:
>>> https://github.com/PierreARM/edk2/tree/Arm_Trng_v8
>>>
>>> v8:
>>>    - Added Reviewed-by/Acked-by from Leif on ArmPkg/SecurityPkg
>>>      patches. [Leif]
>>>    - Renamed FID_TRNG_* macros to ARM_SMC_ID_TRNG_*. [Leif]
>>> v7:
>>>    - Removed Reviewed-by from Leif.
>>>    - Remove Sami's Signed-off.
>>> V6:
>>>    - Added my signed-off on patches authored by Sami. [Leif]
>>>    - New patch to make it easier to add new libraries in alphabetical
>>>      order: ArmPkg: Sort HVC/SMC section alphbetically in ArmPkg.dsc
>> [Leif]
>>>    - Renmaed ArmHvcNullLib to ArmHvcLibNull. [Leif]
>>>    - Added RISCV64 to the list of VALID_ARCHITECTURES for
>> BaseTrngLibNull. [Leif]
>>>    - Removed unnecessary space in function parameter documentation
>>>      ('[in, out]'). [Rebecca]
>>>    - Updated INF_VERSION to latest spec (1.29) for new libraries. [Rebecca]
>>>    - Dropped the following patches [Leif]:
>>>     - ArmPkg/ArmLib: Add ArmHasRngExt()
>>>     - ArmPkg/ArmLib: Add ArmReadIdIsar0() helper
>>>     - MdePkg/BaseRngLib: Rename ArmReadIdIsar0() to ArmGetFeatRng()
>>> V5:
>>>    - Removed references in Trnglib.h to 'Special Publication'
>>>      800-90A and 800-90C, and only reference 'Arm True Random
>>>      Number Generator Firmware, Interface 1.0' in the Arm
>>>      implementation of the TrngLib. [Jiewen]
>>> V4:
>>>    - Removed dependencies on ArmPkg and dropped patch:
>>>       [PATCH v3 12/22] SecurityPkg: Update Securitypkg.ci.yaml
>>>      [Jiewen]
>>>    - Use a dynamically allocated array to hold available algorithms.
>>>      The array is freed in a new UNLOAD_IMAGE function and
>>>      allocated in arch specific implementations of
>>>      GetAvailableAlgorithms(), available in AArch64/AArch64Algo.c
>>>      and Arm/ArmAlgo.c.
>>>    - Correctly reference gEfiRngAlgorithmSp80090Ctr256Guid
>>>      Guid by copying its address (add missing '&'). [Jiewen]
>>> V3:
>>>    - Address Leif's comment (moving definitions, optimizations, ...)
>>>    - Add ArmMonitorLib to choose Hvc/Smc conduit depending on a Pcd.
>>>    - Re-factor some parts of SecurityPkg/RngDxe/ to ease the addition
>>>      of new algorithms.
>>>    - Add ArmHasRngExt() function to check Arm's FEAT_RNG extension.
>>> V2:
>>>    - Updates TrngLib definitions to use RETURN_STATUS as the return type
>>>      from the interface functions as TrngLib is base type library.
>>>    - Drops the patch "MdePkg: Add definition for NULL GUID" as there is
>>>      already an equivalent definition provided by gZeroGuid. Thus, the
>>>      use of gNullGuid has been replaced with gZeroGuid.
>>>
>>> Pierre Gondois (11):
>>>     ArmPkg/ArmMonitorLib: Definition for ArmMonitorLib library class
>>>     ArmPkg/ArmMonitorLib: Add ArmMonitorLib
>>>     ArmPkg: Sort HVC/SMC section alphbetically in ArmPkg.dsc
>>>     ArmPkg/ArmHvcLibNull: Add NULL instance of ArmHvcLib
>>>     SecurityPkg/RngDxe: Replace Pcd with Sp80090Ctr256Guid
>>>     SecurityPkg/RngDxe: Remove ArchGetSupportedRngAlgorithms()
>>>     SecurityPkg/RngDxe: Documentation/include/parameter cleanup
>>>     SecurityPkg/RngDxe: Check before advertising Cpu Rng algo
>>>     SecurityPkg/RngDxe: Add debug warning for NULL
>>>       PcdCpuRngSupportedAlgorithm
>>>     SecurityPkg/RngDxe: Rename AArch64/RngDxe.c
>>>     SecurityPkg/RngDxe: Add Arm support of RngDxe
>>>
>>> Sami Mujawar (8):
>>>     ArmPkg: PCD to select conduit for monitor calls
>>>     MdePkg/TrngLib: Definition for TRNG library class interface
>>>     MdePkg/TrngLib: Add NULL instance of TRNG Library
>>>     ArmPkg: Add FID definitions for Firmware TRNG
>>>     ArmPkg/TrngLib: Add Arm Firmware TRNG library
>>>     SecurityPkg/RngDxe: Rename RdRandGenerateEntropy to generic
>> name
>>>     SecurityPkg/RngDxe: Add AArch64 RawAlgorithm support through
>> TrngLib
>>>     ArmVirtPkg: Kvmtool: Add RNG support using FW-TRNG interface
>>>
>>>    ArmPkg/ArmPkg.dec                             |  12 +-
>>>    ArmPkg/ArmPkg.dsc                             |   5 +-
>>>    ArmPkg/Include/IndustryStandard/ArmStdSmc.h   | 109 ++++-
>>>    ArmPkg/Include/Library/ArmMonitorLib.h        |  42 ++
>>>    ArmPkg/Library/ArmFwTrngLib/ArmFwTrngDefs.h   |  50 +++
>>>    ArmPkg/Library/ArmFwTrngLib/ArmFwTrngLib.c    | 388
>> ++++++++++++++++++
>>>    ArmPkg/Library/ArmFwTrngLib/ArmFwTrngLib.inf  |  29 ++
>>>    ArmPkg/Library/ArmHvcLibNull/ArmHvcLibNull.c  |  29 ++
>>>    .../Library/ArmHvcLibNull/ArmHvcLibNull.inf   |  22 +
>>>    ArmPkg/Library/ArmMonitorLib/ArmMonitorLib.c  |  34 ++
>>>    .../Library/ArmMonitorLib/ArmMonitorLib.inf   |  29 ++
>>>    ArmVirtPkg/ArmVirtKvmTool.dsc                 |  10 +
>>>    ArmVirtPkg/ArmVirtKvmTool.fdf                 |   5 +
>>>    MdePkg/Include/Library/TrngLib.h              | 103 +++++
>>>    .../Library/BaseTrngLibNull/BaseTrngLibNull.c | 117 ++++++
>>>    .../BaseTrngLibNull/BaseTrngLibNull.inf       |  30 ++
>>>    .../BaseTrngLibNull/BaseTrngLibNull.uni       |  12 +
>>>    MdePkg/MdePkg.dec                             |   5 +
>>>    MdePkg/MdePkg.dsc                             |   1 +
>>>    .../RngDxe/AArch64/AArch64Algo.c              |  72 ++++
>>>    .../RngDxe/Arm/ArmAlgo.c                      |  51 +++
>>>    .../RngDxe/{AArch64/RngDxe.c => ArmRngDxe.c}  |  81 +++-
>>>    .../RandomNumberGenerator/RngDxe/ArmTrng.c    |  71 ++++
>>>    .../RngDxe/Rand/RdRand.c                      |  14 +-
>>>    .../RngDxe/Rand/RdRand.h                      |  43 --
>>>    .../RngDxe/Rand/RngDxe.c                      |  62 ++-
>>>    .../RandomNumberGenerator/RngDxe/RngDxe.c     |  90 ++--
>>>    .../RandomNumberGenerator/RngDxe/RngDxe.inf   |  18 +-
>>>    .../RngDxe/RngDxeInternals.h                  |  71 ++--
>>>    SecurityPkg/SecurityPkg.dsc                   |   5 +-
>>>    30 files changed, 1454 insertions(+), 156 deletions(-)
>>>    create mode 100644 ArmPkg/Include/Library/ArmMonitorLib.h
>>>    create mode 100644 ArmPkg/Library/ArmFwTrngLib/ArmFwTrngDefs.h
>>>    create mode 100644 ArmPkg/Library/ArmFwTrngLib/ArmFwTrngLib.c
>>>    create mode 100644 ArmPkg/Library/ArmFwTrngLib/ArmFwTrngLib.inf
>>>    create mode 100644 ArmPkg/Library/ArmHvcLibNull/ArmHvcLibNull.c
>>>    create mode 100644 ArmPkg/Library/ArmHvcLibNull/ArmHvcLibNull.inf
>>>    create mode 100644 ArmPkg/Library/ArmMonitorLib/ArmMonitorLib.c
>>>    create mode 100644 ArmPkg/Library/ArmMonitorLib/ArmMonitorLib.inf
>>>    create mode 100644 MdePkg/Include/Library/TrngLib.h
>>>    create mode 100644
>> MdePkg/Library/BaseTrngLibNull/BaseTrngLibNull.c
>>>    create mode 100644
>> MdePkg/Library/BaseTrngLibNull/BaseTrngLibNull.inf
>>>    create mode 100644
>> MdePkg/Library/BaseTrngLibNull/BaseTrngLibNull.uni
>>>    create mode 100644
>> SecurityPkg/RandomNumberGenerator/RngDxe/AArch64/AArch64Algo.c
>>>    create mode 100644
>> SecurityPkg/RandomNumberGenerator/RngDxe/Arm/ArmAlgo.c
>>>    rename
>> SecurityPkg/RandomNumberGenerator/RngDxe/{AArch64/RngDxe.c =>
>> ArmRngDxe.c} (64%)
>>>    create mode 100644
>> SecurityPkg/RandomNumberGenerator/RngDxe/ArmTrng.c
>>>    delete mode 100644
>> SecurityPkg/RandomNumberGenerator/RngDxe/Rand/RdRand.h
>>>
> 
> 

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [edk2-devel] [PATCH v8 00/19] Add Raw algorithm support using Arm FW-TRNG interface
       [not found] <171F2CF84A83B997.20472@groups.io>
  2022-10-19 14:45 ` [edk2-devel] [PATCH v8 00/19] Add Raw algorithm support using Arm FW-TRNG interface PierreGondois
@ 2022-10-25 12:32 ` PierreGondois
  2022-10-26  1:13   ` 回复: " gaoliming
  1 sibling, 1 reply; 6+ messages in thread
From: PierreGondois @ 2022-10-25 12:32 UTC (permalink / raw)
  To: devel
  Cc: Sami Mujawar, Leif Lindholm, Ard Biesheuvel, Rebecca Cran,
	Michael D Kinney, Liming Gao, Jiewen Yao, Jian J Wang

Hello Jiewen and Jian,
Does the patch-set look ok for SecurityPkg ?

Regards,
Pierre

On 10/18/22 15:20, PierreGondois via groups.io wrote:
> From: Pierre Gondois <pierre.gondois@arm.com>
> 
> Bugzilla: Bug 3668 (https://bugzilla.tianocore.org/show_bug.cgi?id=3668)
> 
> The Arm True Random Number Generator Firmware, Interface 1.0, specification
> defines an interface between an Operating System (OS) executing at EL1 and
> Firmware (FW) exposing a conditioned entropy source that is provided by a
> TRNG back end.
> This patch-set:
> - defines a TRNG library class that provides an interface to access the
>    entropy source on a platform.
> - implements a TRNG library instance that uses the Arm FW-TRNG interface.
> - Adds RawAlgorithm support to RngDxe for Arm architecture using the Arm
>    FW-TRNG interface.
> - Enables RNG support using FW-TRNG interface for Kvmtool Guest/Virtual
>    firmware.
> 
> This patch-set is based on the v2 from Sami Mujawar:
> [PATCH v2 0/8] Add Raw algorithm support using Arm FW-TRNG interface
> v2:
> https://edk2.groups.io/g/devel/message/83775
> v3:
> https://edk2.groups.io/g/devel/message/90845
> https://github.com/PierreARM/edk2/tree/Arm_Trng_v3
> v4:
> https://github.com/PierreARM/edk2/tree/Arm_Trng_v4
> v5:
> https://github.com/PierreARM/edk2/tree/Arm_Trng_v5
> v6:
> https://github.com/PierreARM/edk2/tree/Arm_Trng_v6
> v7:
> https://github.com/PierreARM/edk2/tree/Arm_Trng_v7
> v8:
> https://github.com/PierreARM/edk2/tree/Arm_Trng_v8
> 
> v8:
>   - Added Reviewed-by/Acked-by from Leif on ArmPkg/SecurityPkg
>     patches. [Leif]
>   - Renamed FID_TRNG_* macros to ARM_SMC_ID_TRNG_*. [Leif]
> v7:
>   - Removed Reviewed-by from Leif.
>   - Remove Sami's Signed-off.
> V6:
>   - Added my signed-off on patches authored by Sami. [Leif]
>   - New patch to make it easier to add new libraries in alphabetical
>     order: ArmPkg: Sort HVC/SMC section alphbetically in ArmPkg.dsc [Leif]
>   - Renmaed ArmHvcNullLib to ArmHvcLibNull. [Leif]
>   - Added RISCV64 to the list of VALID_ARCHITECTURES for BaseTrngLibNull. [Leif]
>   - Removed unnecessary space in function parameter documentation
>     ('[in, out]'). [Rebecca]
>   - Updated INF_VERSION to latest spec (1.29) for new libraries. [Rebecca]
>   - Dropped the following patches [Leif]:
>    - ArmPkg/ArmLib: Add ArmHasRngExt()
>    - ArmPkg/ArmLib: Add ArmReadIdIsar0() helper
>    - MdePkg/BaseRngLib: Rename ArmReadIdIsar0() to ArmGetFeatRng()
> V5:
>   - Removed references in Trnglib.h to 'Special Publication'
>     800-90A and 800-90C, and only reference 'Arm True Random
>     Number Generator Firmware, Interface 1.0' in the Arm
>     implementation of the TrngLib. [Jiewen]
> V4:
>   - Removed dependencies on ArmPkg and dropped patch:
>      [PATCH v3 12/22] SecurityPkg: Update Securitypkg.ci.yaml
>     [Jiewen]
>   - Use a dynamically allocated array to hold available algorithms.
>     The array is freed in a new UNLOAD_IMAGE function and
>     allocated in arch specific implementations of
>     GetAvailableAlgorithms(), available in AArch64/AArch64Algo.c
>     and Arm/ArmAlgo.c.
>   - Correctly reference gEfiRngAlgorithmSp80090Ctr256Guid
>     Guid by copying its address (add missing '&'). [Jiewen]
> V3:
>   - Address Leif's comment (moving definitions, optimizations, ...)
>   - Add ArmMonitorLib to choose Hvc/Smc conduit depending on a Pcd.
>   - Re-factor some parts of SecurityPkg/RngDxe/ to ease the addition
>     of new algorithms.
>   - Add ArmHasRngExt() function to check Arm's FEAT_RNG extension.
> V2:
>   - Updates TrngLib definitions to use RETURN_STATUS as the return type
>     from the interface functions as TrngLib is base type library.
>   - Drops the patch "MdePkg: Add definition for NULL GUID" as there is
>     already an equivalent definition provided by gZeroGuid. Thus, the
>     use of gNullGuid has been replaced with gZeroGuid.
> 
> Pierre Gondois (11):
>    ArmPkg/ArmMonitorLib: Definition for ArmMonitorLib library class
>    ArmPkg/ArmMonitorLib: Add ArmMonitorLib
>    ArmPkg: Sort HVC/SMC section alphbetically in ArmPkg.dsc
>    ArmPkg/ArmHvcLibNull: Add NULL instance of ArmHvcLib
>    SecurityPkg/RngDxe: Replace Pcd with Sp80090Ctr256Guid
>    SecurityPkg/RngDxe: Remove ArchGetSupportedRngAlgorithms()
>    SecurityPkg/RngDxe: Documentation/include/parameter cleanup
>    SecurityPkg/RngDxe: Check before advertising Cpu Rng algo
>    SecurityPkg/RngDxe: Add debug warning for NULL
>      PcdCpuRngSupportedAlgorithm
>    SecurityPkg/RngDxe: Rename AArch64/RngDxe.c
>    SecurityPkg/RngDxe: Add Arm support of RngDxe
> 
> Sami Mujawar (8):
>    ArmPkg: PCD to select conduit for monitor calls
>    MdePkg/TrngLib: Definition for TRNG library class interface
>    MdePkg/TrngLib: Add NULL instance of TRNG Library
>    ArmPkg: Add FID definitions for Firmware TRNG
>    ArmPkg/TrngLib: Add Arm Firmware TRNG library
>    SecurityPkg/RngDxe: Rename RdRandGenerateEntropy to generic name
>    SecurityPkg/RngDxe: Add AArch64 RawAlgorithm support through TrngLib
>    ArmVirtPkg: Kvmtool: Add RNG support using FW-TRNG interface
> 
>   ArmPkg/ArmPkg.dec                             |  12 +-
>   ArmPkg/ArmPkg.dsc                             |   5 +-
>   ArmPkg/Include/IndustryStandard/ArmStdSmc.h   | 109 ++++-
>   ArmPkg/Include/Library/ArmMonitorLib.h        |  42 ++
>   ArmPkg/Library/ArmFwTrngLib/ArmFwTrngDefs.h   |  50 +++
>   ArmPkg/Library/ArmFwTrngLib/ArmFwTrngLib.c    | 388 ++++++++++++++++++
>   ArmPkg/Library/ArmFwTrngLib/ArmFwTrngLib.inf  |  29 ++
>   ArmPkg/Library/ArmHvcLibNull/ArmHvcLibNull.c  |  29 ++
>   .../Library/ArmHvcLibNull/ArmHvcLibNull.inf   |  22 +
>   ArmPkg/Library/ArmMonitorLib/ArmMonitorLib.c  |  34 ++
>   .../Library/ArmMonitorLib/ArmMonitorLib.inf   |  29 ++
>   ArmVirtPkg/ArmVirtKvmTool.dsc                 |  10 +
>   ArmVirtPkg/ArmVirtKvmTool.fdf                 |   5 +
>   MdePkg/Include/Library/TrngLib.h              | 103 +++++
>   .../Library/BaseTrngLibNull/BaseTrngLibNull.c | 117 ++++++
>   .../BaseTrngLibNull/BaseTrngLibNull.inf       |  30 ++
>   .../BaseTrngLibNull/BaseTrngLibNull.uni       |  12 +
>   MdePkg/MdePkg.dec                             |   5 +
>   MdePkg/MdePkg.dsc                             |   1 +
>   .../RngDxe/AArch64/AArch64Algo.c              |  72 ++++
>   .../RngDxe/Arm/ArmAlgo.c                      |  51 +++
>   .../RngDxe/{AArch64/RngDxe.c => ArmRngDxe.c}  |  81 +++-
>   .../RandomNumberGenerator/RngDxe/ArmTrng.c    |  71 ++++
>   .../RngDxe/Rand/RdRand.c                      |  14 +-
>   .../RngDxe/Rand/RdRand.h                      |  43 --
>   .../RngDxe/Rand/RngDxe.c                      |  62 ++-
>   .../RandomNumberGenerator/RngDxe/RngDxe.c     |  90 ++--
>   .../RandomNumberGenerator/RngDxe/RngDxe.inf   |  18 +-
>   .../RngDxe/RngDxeInternals.h                  |  71 ++--
>   SecurityPkg/SecurityPkg.dsc                   |   5 +-
>   30 files changed, 1454 insertions(+), 156 deletions(-)
>   create mode 100644 ArmPkg/Include/Library/ArmMonitorLib.h
>   create mode 100644 ArmPkg/Library/ArmFwTrngLib/ArmFwTrngDefs.h
>   create mode 100644 ArmPkg/Library/ArmFwTrngLib/ArmFwTrngLib.c
>   create mode 100644 ArmPkg/Library/ArmFwTrngLib/ArmFwTrngLib.inf
>   create mode 100644 ArmPkg/Library/ArmHvcLibNull/ArmHvcLibNull.c
>   create mode 100644 ArmPkg/Library/ArmHvcLibNull/ArmHvcLibNull.inf
>   create mode 100644 ArmPkg/Library/ArmMonitorLib/ArmMonitorLib.c
>   create mode 100644 ArmPkg/Library/ArmMonitorLib/ArmMonitorLib.inf
>   create mode 100644 MdePkg/Include/Library/TrngLib.h
>   create mode 100644 MdePkg/Library/BaseTrngLibNull/BaseTrngLibNull.c
>   create mode 100644 MdePkg/Library/BaseTrngLibNull/BaseTrngLibNull.inf
>   create mode 100644 MdePkg/Library/BaseTrngLibNull/BaseTrngLibNull.uni
>   create mode 100644 SecurityPkg/RandomNumberGenerator/RngDxe/AArch64/AArch64Algo.c
>   create mode 100644 SecurityPkg/RandomNumberGenerator/RngDxe/Arm/ArmAlgo.c
>   rename SecurityPkg/RandomNumberGenerator/RngDxe/{AArch64/RngDxe.c => ArmRngDxe.c} (64%)
>   create mode 100644 SecurityPkg/RandomNumberGenerator/RngDxe/ArmTrng.c
>   delete mode 100644 SecurityPkg/RandomNumberGenerator/RngDxe/Rand/RdRand.h
> 

^ permalink raw reply	[flat|nested] 6+ messages in thread

* 回复: 回复: [edk2-devel] [PATCH v8 00/19] Add Raw algorithm support using Arm FW-TRNG interface
  2022-10-21  7:29     ` PierreGondois
@ 2022-10-26  1:10       ` gaoliming
  0 siblings, 0 replies; 6+ messages in thread
From: gaoliming @ 2022-10-26  1:10 UTC (permalink / raw)
  To: devel, pierre.gondois
  Cc: 'Sami Mujawar', 'Leif Lindholm',
	'Ard Biesheuvel', 'Rebecca Cran',
	'Michael D Kinney', 'Jiewen Yao',
	'Jian J Wang'

Pierre:

> -----邮件原件-----
> 发件人: devel@edk2.groups.io <devel@edk2.groups.io> 代表
> PierreGondois
> 发送时间: 2022年10月21日 15:29
> 收件人: gaoliming <gaoliming@byosoft.com.cn>; devel@edk2.groups.io
> 抄送: 'Sami Mujawar' <sami.mujawar@arm.com>; 'Leif Lindholm'
> <quic_llindhol@quicinc.com>; 'Ard Biesheuvel' <ardb+tianocore@kernel.org>;
> 'Rebecca Cran' <rebecca@bsdio.com>; 'Michael D Kinney'
> <michael.d.kinney@intel.com>; 'Jiewen Yao' <jiewen.yao@intel.com>; 'Jian J
> Wang' <jian.j.wang@intel.com>
> 主题: Re: 回复: [edk2-devel] [PATCH v8 00/19] Add Raw algorithm support
> using Arm FW-TRNG interface
> 
> Hello Liming,
> 
> On 10/21/22 03:13, gaoliming wrote:
> > Pierre:
> >    Is MdePkg BaseTrngLibNull Library instance only for build?
> >
> >    Is it possible to be used in the platform without RNG support? If yes, I
> suggest to remove ASSERT in API implementation.
> 
> The BaseTrngLibNull is only here to have a default Null library when building
> the MdePkg (TrngLib.h is in the MdePkg). I don't think it would be possible to
> use the Null implementation on a platform.
> 
> >
> >    Last, I suggest to add BaseTrngLibNull as the default TrngLib library
> instance in MdePkg/MdeLibs.dsc.inc.
> 
> This would mean building the BaseTrngLibNull for many packages that don't
> require it. If this is ok for you I can move it there.
> 
[Liming] BaseTrngLibNull will be built when it is consumed by the module.
If the package has no module to consume TrngLib, BaseTrngLibNull will not be built. 
With this change, if the platform doesn't use the real TrngLib, they don't specify TrngLib library instance in their DSC file. 

> Thanks for the review,
> Pierre
> 
> >
> > Thanks
> > Liming
> >> -----邮件原件-----
> >> 发件人: Pierre Gondois <pierre.gondois@arm.com>
> >> 发送时间: 2022年10月19日 22:46
> >> 收件人: devel@edk2.groups.io
> >> 抄送: Sami Mujawar <sami.mujawar@arm.com>; Leif Lindholm
> >> <quic_llindhol@quicinc.com>; Ard Biesheuvel
> <ardb+tianocore@kernel.org>;
> >> Rebecca Cran <rebecca@bsdio.com>; Michael D Kinney
> >> <michael.d.kinney@intel.com>; Liming Gao <gaoliming@byosoft.com.cn>;
> >> Jiewen Yao <jiewen.yao@intel.com>; Jian J Wang <jian.j.wang@intel.com>
> >> 主题: Re: [edk2-devel] [PATCH v8 00/19] Add Raw algorithm support using
> >> Arm FW-TRNG interface
> >>
> >> Hello,
> >> I finally found back the message from Liming on the v4:
> >> https://edk2.groups.io/g/devel/message/91800
> >>
> >> There has been some changes to the patches affecting the MdePkg,
> >> but it should not be significant changes:
> >> - Renamed FID_TRNG_* macros to ARM_SMC_ID_TRNG_*.
> >> - Added RISCV64 to the list of VALID_ARCHITECTURES for BaseTrngLibNull
> >> - Dropped patch: 'MdePkg/BaseRngLib: Rename ArmReadIdIsar0() to
> >>     ArmGetFeatRng()'
> >> - Removed references in Trnglib.h to 'Special Publication'
> >>     800-90A and 800-90C, and only reference 'Arm True Random
> >>     Number Generator Firmware, Interface 1.0' in the Arm
> >>     implementation of the TrngLib.
> >>
> >> Liming's Rb is not currently added to the MdePkg patches.
> >>
> >> Regards,
> >> Pierre
> >>
> >> On 10/18/22 15:20, PierreGondois via groups.io wrote:
> >>> From: Pierre Gondois <pierre.gondois@arm.com>
> >>>
> >>> Bugzilla: Bug 3668 (https://bugzilla.tianocore.org/show_bug.cgi?id=3668)
> >>>
> >>> The Arm True Random Number Generator Firmware, Interface 1.0,
> >> specification
> >>> defines an interface between an Operating System (OS) executing at EL1
> >> and
> >>> Firmware (FW) exposing a conditioned entropy source that is provided by
> a
> >>> TRNG back end.
> >>> This patch-set:
> >>> - defines a TRNG library class that provides an interface to access the
> >>>     entropy source on a platform.
> >>> - implements a TRNG library instance that uses the Arm FW-TRNG
> >> interface.
> >>> - Adds RawAlgorithm support to RngDxe for Arm architecture using the
> Arm
> >>>     FW-TRNG interface.
> >>> - Enables RNG support using FW-TRNG interface for Kvmtool
> Guest/Virtual
> >>>     firmware.
> >>>
> >>> This patch-set is based on the v2 from Sami Mujawar:
> >>> [PATCH v2 0/8] Add Raw algorithm support using Arm FW-TRNG interface
> >>> v2:
> >>> https://edk2.groups.io/g/devel/message/83775
> >>> v3:
> >>> https://edk2.groups.io/g/devel/message/90845
> >>> https://github.com/PierreARM/edk2/tree/Arm_Trng_v3
> >>> v4:
> >>> https://github.com/PierreARM/edk2/tree/Arm_Trng_v4
> >>> v5:
> >>> https://github.com/PierreARM/edk2/tree/Arm_Trng_v5
> >>> v6:
> >>> https://github.com/PierreARM/edk2/tree/Arm_Trng_v6
> >>> v7:
> >>> https://github.com/PierreARM/edk2/tree/Arm_Trng_v7
> >>> v8:
> >>> https://github.com/PierreARM/edk2/tree/Arm_Trng_v8
> >>>
> >>> v8:
> >>>    - Added Reviewed-by/Acked-by from Leif on ArmPkg/SecurityPkg
> >>>      patches. [Leif]
> >>>    - Renamed FID_TRNG_* macros to ARM_SMC_ID_TRNG_*. [Leif]
> >>> v7:
> >>>    - Removed Reviewed-by from Leif.
> >>>    - Remove Sami's Signed-off.
> >>> V6:
> >>>    - Added my signed-off on patches authored by Sami. [Leif]
> >>>    - New patch to make it easier to add new libraries in alphabetical
> >>>      order: ArmPkg: Sort HVC/SMC section alphbetically in ArmPkg.dsc
> >> [Leif]
> >>>    - Renmaed ArmHvcNullLib to ArmHvcLibNull. [Leif]
> >>>    - Added RISCV64 to the list of VALID_ARCHITECTURES for
> >> BaseTrngLibNull. [Leif]
> >>>    - Removed unnecessary space in function parameter documentation
> >>>      ('[in, out]'). [Rebecca]
> >>>    - Updated INF_VERSION to latest spec (1.29) for new libraries.
> [Rebecca]
> >>>    - Dropped the following patches [Leif]:
> >>>     - ArmPkg/ArmLib: Add ArmHasRngExt()
> >>>     - ArmPkg/ArmLib: Add ArmReadIdIsar0() helper
> >>>     - MdePkg/BaseRngLib: Rename ArmReadIdIsar0() to
> ArmGetFeatRng()
> >>> V5:
> >>>    - Removed references in Trnglib.h to 'Special Publication'
> >>>      800-90A and 800-90C, and only reference 'Arm True Random
> >>>      Number Generator Firmware, Interface 1.0' in the Arm
> >>>      implementation of the TrngLib. [Jiewen]
> >>> V4:
> >>>    - Removed dependencies on ArmPkg and dropped patch:
> >>>       [PATCH v3 12/22] SecurityPkg: Update Securitypkg.ci.yaml
> >>>      [Jiewen]
> >>>    - Use a dynamically allocated array to hold available algorithms.
> >>>      The array is freed in a new UNLOAD_IMAGE function and
> >>>      allocated in arch specific implementations of
> >>>      GetAvailableAlgorithms(), available in AArch64/AArch64Algo.c
> >>>      and Arm/ArmAlgo.c.
> >>>    - Correctly reference gEfiRngAlgorithmSp80090Ctr256Guid
> >>>      Guid by copying its address (add missing '&'). [Jiewen]
> >>> V3:
> >>>    - Address Leif's comment (moving definitions, optimizations, ...)
> >>>    - Add ArmMonitorLib to choose Hvc/Smc conduit depending on a
> Pcd.
> >>>    - Re-factor some parts of SecurityPkg/RngDxe/ to ease the addition
> >>>      of new algorithms.
> >>>    - Add ArmHasRngExt() function to check Arm's FEAT_RNG extension.
> >>> V2:
> >>>    - Updates TrngLib definitions to use RETURN_STATUS as the return
> type
> >>>      from the interface functions as TrngLib is base type library.
> >>>    - Drops the patch "MdePkg: Add definition for NULL GUID" as there is
> >>>      already an equivalent definition provided by gZeroGuid. Thus, the
> >>>      use of gNullGuid has been replaced with gZeroGuid.
> >>>
> >>> Pierre Gondois (11):
> >>>     ArmPkg/ArmMonitorLib: Definition for ArmMonitorLib library class
> >>>     ArmPkg/ArmMonitorLib: Add ArmMonitorLib
> >>>     ArmPkg: Sort HVC/SMC section alphbetically in ArmPkg.dsc
> >>>     ArmPkg/ArmHvcLibNull: Add NULL instance of ArmHvcLib
> >>>     SecurityPkg/RngDxe: Replace Pcd with Sp80090Ctr256Guid
> >>>     SecurityPkg/RngDxe: Remove ArchGetSupportedRngAlgorithms()
> >>>     SecurityPkg/RngDxe: Documentation/include/parameter cleanup
> >>>     SecurityPkg/RngDxe: Check before advertising Cpu Rng algo
> >>>     SecurityPkg/RngDxe: Add debug warning for NULL
> >>>       PcdCpuRngSupportedAlgorithm
> >>>     SecurityPkg/RngDxe: Rename AArch64/RngDxe.c
> >>>     SecurityPkg/RngDxe: Add Arm support of RngDxe
> >>>
> >>> Sami Mujawar (8):
> >>>     ArmPkg: PCD to select conduit for monitor calls
> >>>     MdePkg/TrngLib: Definition for TRNG library class interface
> >>>     MdePkg/TrngLib: Add NULL instance of TRNG Library
> >>>     ArmPkg: Add FID definitions for Firmware TRNG
> >>>     ArmPkg/TrngLib: Add Arm Firmware TRNG library
> >>>     SecurityPkg/RngDxe: Rename RdRandGenerateEntropy to generic
> >> name
> >>>     SecurityPkg/RngDxe: Add AArch64 RawAlgorithm support through
> >> TrngLib
> >>>     ArmVirtPkg: Kvmtool: Add RNG support using FW-TRNG interface
> >>>
> >>>    ArmPkg/ArmPkg.dec                             |  12 +-
> >>>    ArmPkg/ArmPkg.dsc                             |   5 +-
> >>>    ArmPkg/Include/IndustryStandard/ArmStdSmc.h   | 109 ++++-
> >>>    ArmPkg/Include/Library/ArmMonitorLib.h        |  42 ++
> >>>    ArmPkg/Library/ArmFwTrngLib/ArmFwTrngDefs.h   |  50 +++
> >>>    ArmPkg/Library/ArmFwTrngLib/ArmFwTrngLib.c    | 388
> >> ++++++++++++++++++
> >>>    ArmPkg/Library/ArmFwTrngLib/ArmFwTrngLib.inf  |  29 ++
> >>>    ArmPkg/Library/ArmHvcLibNull/ArmHvcLibNull.c  |  29 ++
> >>>    .../Library/ArmHvcLibNull/ArmHvcLibNull.inf   |  22 +
> >>>    ArmPkg/Library/ArmMonitorLib/ArmMonitorLib.c  |  34 ++
> >>>    .../Library/ArmMonitorLib/ArmMonitorLib.inf   |  29 ++
> >>>    ArmVirtPkg/ArmVirtKvmTool.dsc                 |  10 +
> >>>    ArmVirtPkg/ArmVirtKvmTool.fdf                 |   5 +
> >>>    MdePkg/Include/Library/TrngLib.h              | 103 +++++
> >>>    .../Library/BaseTrngLibNull/BaseTrngLibNull.c | 117 ++++++
> >>>    .../BaseTrngLibNull/BaseTrngLibNull.inf       |  30 ++
> >>>    .../BaseTrngLibNull/BaseTrngLibNull.uni       |  12 +
> >>>    MdePkg/MdePkg.dec                             |   5 +
> >>>    MdePkg/MdePkg.dsc                             |   1 +
> >>>    .../RngDxe/AArch64/AArch64Algo.c              |  72 ++++
> >>>    .../RngDxe/Arm/ArmAlgo.c                      |  51 +++
> >>>    .../RngDxe/{AArch64/RngDxe.c => ArmRngDxe.c}  |  81 +++-
> >>>    .../RandomNumberGenerator/RngDxe/ArmTrng.c    |  71 ++++
> >>>    .../RngDxe/Rand/RdRand.c                      |  14 +-
> >>>    .../RngDxe/Rand/RdRand.h                      |  43 --
> >>>    .../RngDxe/Rand/RngDxe.c                      |  62 ++-
> >>>    .../RandomNumberGenerator/RngDxe/RngDxe.c     |  90 ++--
> >>>    .../RandomNumberGenerator/RngDxe/RngDxe.inf   |  18 +-
> >>>    .../RngDxe/RngDxeInternals.h                  |  71 ++--
> >>>    SecurityPkg/SecurityPkg.dsc                   |   5 +-
> >>>    30 files changed, 1454 insertions(+), 156 deletions(-)
> >>>    create mode 100644 ArmPkg/Include/Library/ArmMonitorLib.h
> >>>    create mode 100644
> ArmPkg/Library/ArmFwTrngLib/ArmFwTrngDefs.h
> >>>    create mode 100644 ArmPkg/Library/ArmFwTrngLib/ArmFwTrngLib.c
> >>>    create mode 100644
> ArmPkg/Library/ArmFwTrngLib/ArmFwTrngLib.inf
> >>>    create mode 100644
> ArmPkg/Library/ArmHvcLibNull/ArmHvcLibNull.c
> >>>    create mode 100644
> ArmPkg/Library/ArmHvcLibNull/ArmHvcLibNull.inf
> >>>    create mode 100644
> ArmPkg/Library/ArmMonitorLib/ArmMonitorLib.c
> >>>    create mode 100644
> ArmPkg/Library/ArmMonitorLib/ArmMonitorLib.inf
> >>>    create mode 100644 MdePkg/Include/Library/TrngLib.h
> >>>    create mode 100644
> >> MdePkg/Library/BaseTrngLibNull/BaseTrngLibNull.c
> >>>    create mode 100644
> >> MdePkg/Library/BaseTrngLibNull/BaseTrngLibNull.inf
> >>>    create mode 100644
> >> MdePkg/Library/BaseTrngLibNull/BaseTrngLibNull.uni
> >>>    create mode 100644
> >> SecurityPkg/RandomNumberGenerator/RngDxe/AArch64/AArch64Algo.c
> >>>    create mode 100644
> >> SecurityPkg/RandomNumberGenerator/RngDxe/Arm/ArmAlgo.c
> >>>    rename
> >> SecurityPkg/RandomNumberGenerator/RngDxe/{AArch64/RngDxe.c =>
> >> ArmRngDxe.c} (64%)
> >>>    create mode 100644
> >> SecurityPkg/RandomNumberGenerator/RngDxe/ArmTrng.c
> >>>    delete mode 100644
> >> SecurityPkg/RandomNumberGenerator/RngDxe/Rand/RdRand.h
> >>>
> >
> >
> 
> 
> 
> 




^ permalink raw reply	[flat|nested] 6+ messages in thread

* 回复: [edk2-devel] [PATCH v8 00/19] Add Raw algorithm support using Arm FW-TRNG interface
  2022-10-25 12:32 ` PierreGondois
@ 2022-10-26  1:13   ` gaoliming
  0 siblings, 0 replies; 6+ messages in thread
From: gaoliming @ 2022-10-26  1:13 UTC (permalink / raw)
  To: devel, pierre.gondois
  Cc: 'Sami Mujawar', 'Leif Lindholm',
	'Ard Biesheuvel', 'Rebecca Cran',
	'Michael D Kinney', 'Jiewen Yao',
	'Jian J Wang'

Pierre:
  edk2-stable202211 tag is coming. If this patch plans to catch this stable tag, it needs to pass review before 2022-11-07. 

  Here is release planning https://github.com/tianocore/tianocore.github.io/wiki/EDK-II-Release-Planning

Thanks
Liming
> -----邮件原件-----
> 发件人: devel@edk2.groups.io <devel@edk2.groups.io> 代表
> PierreGondois
> 发送时间: 2022年10月25日 20:32
> 收件人: devel@edk2.groups.io
> 抄送: Sami Mujawar <sami.mujawar@arm.com>; Leif Lindholm
> <quic_llindhol@quicinc.com>; Ard Biesheuvel <ardb+tianocore@kernel.org>;
> Rebecca Cran <rebecca@bsdio.com>; Michael D Kinney
> <michael.d.kinney@intel.com>; Liming Gao <gaoliming@byosoft.com.cn>;
> Jiewen Yao <jiewen.yao@intel.com>; Jian J Wang <jian.j.wang@intel.com>
> 主题: Re: [edk2-devel] [PATCH v8 00/19] Add Raw algorithm support using
> Arm FW-TRNG interface
> 
> Hello Jiewen and Jian,
> Does the patch-set look ok for SecurityPkg ?
> 
> Regards,
> Pierre
> 
> On 10/18/22 15:20, PierreGondois via groups.io wrote:
> > From: Pierre Gondois <pierre.gondois@arm.com>
> >
> > Bugzilla: Bug 3668 (https://bugzilla.tianocore.org/show_bug.cgi?id=3668)
> >
> > The Arm True Random Number Generator Firmware, Interface 1.0,
> specification
> > defines an interface between an Operating System (OS) executing at EL1
> and
> > Firmware (FW) exposing a conditioned entropy source that is provided by a
> > TRNG back end.
> > This patch-set:
> > - defines a TRNG library class that provides an interface to access the
> >    entropy source on a platform.
> > - implements a TRNG library instance that uses the Arm FW-TRNG
> interface.
> > - Adds RawAlgorithm support to RngDxe for Arm architecture using the Arm
> >    FW-TRNG interface.
> > - Enables RNG support using FW-TRNG interface for Kvmtool Guest/Virtual
> >    firmware.
> >
> > This patch-set is based on the v2 from Sami Mujawar:
> > [PATCH v2 0/8] Add Raw algorithm support using Arm FW-TRNG interface
> > v2:
> > https://edk2.groups.io/g/devel/message/83775
> > v3:
> > https://edk2.groups.io/g/devel/message/90845
> > https://github.com/PierreARM/edk2/tree/Arm_Trng_v3
> > v4:
> > https://github.com/PierreARM/edk2/tree/Arm_Trng_v4
> > v5:
> > https://github.com/PierreARM/edk2/tree/Arm_Trng_v5
> > v6:
> > https://github.com/PierreARM/edk2/tree/Arm_Trng_v6
> > v7:
> > https://github.com/PierreARM/edk2/tree/Arm_Trng_v7
> > v8:
> > https://github.com/PierreARM/edk2/tree/Arm_Trng_v8
> >
> > v8:
> >   - Added Reviewed-by/Acked-by from Leif on ArmPkg/SecurityPkg
> >     patches. [Leif]
> >   - Renamed FID_TRNG_* macros to ARM_SMC_ID_TRNG_*. [Leif]
> > v7:
> >   - Removed Reviewed-by from Leif.
> >   - Remove Sami's Signed-off.
> > V6:
> >   - Added my signed-off on patches authored by Sami. [Leif]
> >   - New patch to make it easier to add new libraries in alphabetical
> >     order: ArmPkg: Sort HVC/SMC section alphbetically in ArmPkg.dsc
> [Leif]
> >   - Renmaed ArmHvcNullLib to ArmHvcLibNull. [Leif]
> >   - Added RISCV64 to the list of VALID_ARCHITECTURES for
> BaseTrngLibNull. [Leif]
> >   - Removed unnecessary space in function parameter documentation
> >     ('[in, out]'). [Rebecca]
> >   - Updated INF_VERSION to latest spec (1.29) for new libraries. [Rebecca]
> >   - Dropped the following patches [Leif]:
> >    - ArmPkg/ArmLib: Add ArmHasRngExt()
> >    - ArmPkg/ArmLib: Add ArmReadIdIsar0() helper
> >    - MdePkg/BaseRngLib: Rename ArmReadIdIsar0() to ArmGetFeatRng()
> > V5:
> >   - Removed references in Trnglib.h to 'Special Publication'
> >     800-90A and 800-90C, and only reference 'Arm True Random
> >     Number Generator Firmware, Interface 1.0' in the Arm
> >     implementation of the TrngLib. [Jiewen]
> > V4:
> >   - Removed dependencies on ArmPkg and dropped patch:
> >      [PATCH v3 12/22] SecurityPkg: Update Securitypkg.ci.yaml
> >     [Jiewen]
> >   - Use a dynamically allocated array to hold available algorithms.
> >     The array is freed in a new UNLOAD_IMAGE function and
> >     allocated in arch specific implementations of
> >     GetAvailableAlgorithms(), available in AArch64/AArch64Algo.c
> >     and Arm/ArmAlgo.c.
> >   - Correctly reference gEfiRngAlgorithmSp80090Ctr256Guid
> >     Guid by copying its address (add missing '&'). [Jiewen]
> > V3:
> >   - Address Leif's comment (moving definitions, optimizations, ...)
> >   - Add ArmMonitorLib to choose Hvc/Smc conduit depending on a Pcd.
> >   - Re-factor some parts of SecurityPkg/RngDxe/ to ease the addition
> >     of new algorithms.
> >   - Add ArmHasRngExt() function to check Arm's FEAT_RNG extension.
> > V2:
> >   - Updates TrngLib definitions to use RETURN_STATUS as the return type
> >     from the interface functions as TrngLib is base type library.
> >   - Drops the patch "MdePkg: Add definition for NULL GUID" as there is
> >     already an equivalent definition provided by gZeroGuid. Thus, the
> >     use of gNullGuid has been replaced with gZeroGuid.
> >
> > Pierre Gondois (11):
> >    ArmPkg/ArmMonitorLib: Definition for ArmMonitorLib library class
> >    ArmPkg/ArmMonitorLib: Add ArmMonitorLib
> >    ArmPkg: Sort HVC/SMC section alphbetically in ArmPkg.dsc
> >    ArmPkg/ArmHvcLibNull: Add NULL instance of ArmHvcLib
> >    SecurityPkg/RngDxe: Replace Pcd with Sp80090Ctr256Guid
> >    SecurityPkg/RngDxe: Remove ArchGetSupportedRngAlgorithms()
> >    SecurityPkg/RngDxe: Documentation/include/parameter cleanup
> >    SecurityPkg/RngDxe: Check before advertising Cpu Rng algo
> >    SecurityPkg/RngDxe: Add debug warning for NULL
> >      PcdCpuRngSupportedAlgorithm
> >    SecurityPkg/RngDxe: Rename AArch64/RngDxe.c
> >    SecurityPkg/RngDxe: Add Arm support of RngDxe
> >
> > Sami Mujawar (8):
> >    ArmPkg: PCD to select conduit for monitor calls
> >    MdePkg/TrngLib: Definition for TRNG library class interface
> >    MdePkg/TrngLib: Add NULL instance of TRNG Library
> >    ArmPkg: Add FID definitions for Firmware TRNG
> >    ArmPkg/TrngLib: Add Arm Firmware TRNG library
> >    SecurityPkg/RngDxe: Rename RdRandGenerateEntropy to generic
> name
> >    SecurityPkg/RngDxe: Add AArch64 RawAlgorithm support through
> TrngLib
> >    ArmVirtPkg: Kvmtool: Add RNG support using FW-TRNG interface
> >
> >   ArmPkg/ArmPkg.dec                             |  12 +-
> >   ArmPkg/ArmPkg.dsc                             |   5 +-
> >   ArmPkg/Include/IndustryStandard/ArmStdSmc.h   | 109 ++++-
> >   ArmPkg/Include/Library/ArmMonitorLib.h        |  42 ++
> >   ArmPkg/Library/ArmFwTrngLib/ArmFwTrngDefs.h   |  50 +++
> >   ArmPkg/Library/ArmFwTrngLib/ArmFwTrngLib.c    | 388
> ++++++++++++++++++
> >   ArmPkg/Library/ArmFwTrngLib/ArmFwTrngLib.inf  |  29 ++
> >   ArmPkg/Library/ArmHvcLibNull/ArmHvcLibNull.c  |  29 ++
> >   .../Library/ArmHvcLibNull/ArmHvcLibNull.inf   |  22 +
> >   ArmPkg/Library/ArmMonitorLib/ArmMonitorLib.c  |  34 ++
> >   .../Library/ArmMonitorLib/ArmMonitorLib.inf   |  29 ++
> >   ArmVirtPkg/ArmVirtKvmTool.dsc                 |  10 +
> >   ArmVirtPkg/ArmVirtKvmTool.fdf                 |   5 +
> >   MdePkg/Include/Library/TrngLib.h              | 103 +++++
> >   .../Library/BaseTrngLibNull/BaseTrngLibNull.c | 117 ++++++
> >   .../BaseTrngLibNull/BaseTrngLibNull.inf       |  30 ++
> >   .../BaseTrngLibNull/BaseTrngLibNull.uni       |  12 +
> >   MdePkg/MdePkg.dec                             |   5 +
> >   MdePkg/MdePkg.dsc                             |   1 +
> >   .../RngDxe/AArch64/AArch64Algo.c              |  72 ++++
> >   .../RngDxe/Arm/ArmAlgo.c                      |  51 +++
> >   .../RngDxe/{AArch64/RngDxe.c => ArmRngDxe.c}  |  81 +++-
> >   .../RandomNumberGenerator/RngDxe/ArmTrng.c    |  71 ++++
> >   .../RngDxe/Rand/RdRand.c                      |  14 +-
> >   .../RngDxe/Rand/RdRand.h                      |  43 --
> >   .../RngDxe/Rand/RngDxe.c                      |  62 ++-
> >   .../RandomNumberGenerator/RngDxe/RngDxe.c     |  90 ++--
> >   .../RandomNumberGenerator/RngDxe/RngDxe.inf   |  18 +-
> >   .../RngDxe/RngDxeInternals.h                  |  71 ++--
> >   SecurityPkg/SecurityPkg.dsc                   |   5 +-
> >   30 files changed, 1454 insertions(+), 156 deletions(-)
> >   create mode 100644 ArmPkg/Include/Library/ArmMonitorLib.h
> >   create mode 100644 ArmPkg/Library/ArmFwTrngLib/ArmFwTrngDefs.h
> >   create mode 100644 ArmPkg/Library/ArmFwTrngLib/ArmFwTrngLib.c
> >   create mode 100644 ArmPkg/Library/ArmFwTrngLib/ArmFwTrngLib.inf
> >   create mode 100644 ArmPkg/Library/ArmHvcLibNull/ArmHvcLibNull.c
> >   create mode 100644 ArmPkg/Library/ArmHvcLibNull/ArmHvcLibNull.inf
> >   create mode 100644 ArmPkg/Library/ArmMonitorLib/ArmMonitorLib.c
> >   create mode 100644 ArmPkg/Library/ArmMonitorLib/ArmMonitorLib.inf
> >   create mode 100644 MdePkg/Include/Library/TrngLib.h
> >   create mode 100644
> MdePkg/Library/BaseTrngLibNull/BaseTrngLibNull.c
> >   create mode 100644
> MdePkg/Library/BaseTrngLibNull/BaseTrngLibNull.inf
> >   create mode 100644
> MdePkg/Library/BaseTrngLibNull/BaseTrngLibNull.uni
> >   create mode 100644
> SecurityPkg/RandomNumberGenerator/RngDxe/AArch64/AArch64Algo.c
> >   create mode 100644
> SecurityPkg/RandomNumberGenerator/RngDxe/Arm/ArmAlgo.c
> >   rename
> SecurityPkg/RandomNumberGenerator/RngDxe/{AArch64/RngDxe.c =>
> ArmRngDxe.c} (64%)
> >   create mode 100644
> SecurityPkg/RandomNumberGenerator/RngDxe/ArmTrng.c
> >   delete mode 100644
> SecurityPkg/RandomNumberGenerator/RngDxe/Rand/RdRand.h
> >
> 
> 
> 
> 




^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2022-10-26  1:13 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <171F2CF84A83B997.20472@groups.io>
2022-10-19 14:45 ` [edk2-devel] [PATCH v8 00/19] Add Raw algorithm support using Arm FW-TRNG interface PierreGondois
2022-10-21  1:13   ` 回复: " gaoliming
2022-10-21  7:29     ` PierreGondois
2022-10-26  1:10       ` 回复: " gaoliming
2022-10-25 12:32 ` PierreGondois
2022-10-26  1:13   ` 回复: " gaoliming

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox