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.gond...@arm.com>
发送时间: 2022年10月19日 22:46
收件人: devel@edk2.groups.io
抄送: Sami Mujawar <sami.muja...@arm.com>; Leif Lindholm
<quic_llind...@quicinc.com>; Ard Biesheuvel <ardb+tianoc...@kernel.org>;
Rebecca Cran <rebe...@bsdio.com>; Michael D Kinney
<michael.d.kin...@intel.com>; Liming Gao <gaolim...@byosoft.com.cn>;
Jiewen Yao <jiewen....@intel.com>; Jian J Wang <jian.j.w...@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.gond...@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





-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#95469): https://edk2.groups.io/g/devel/message/95469
Mute This Topic: https://groups.io/mt/94467475/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to