[edk2-devel] [PATCH v3 0/2] MdePkg,SecurityPkg: Add support to RngDxe and BaseRngLib for AARCH64 RNDR

Rebecca Cran posted 2 patches 2 years, 12 months ago
Failed in applying to current master (apply log)
MdePkg/MdePkg.dec                                             |   9 +-
SecurityPkg/SecurityPkg.dec                                   |   2 +
MdePkg/MdePkg.dsc                                             |   4 +-
SecurityPkg/SecurityPkg.dsc                                   |  11 +-
MdePkg/Library/BaseRngLib/BaseRngLib.inf                      |  23 ++-
SecurityPkg/RandomNumberGenerator/RngDxe/RngDxe.inf           |  24 ++-
MdePkg/Library/BaseRngLib/AArch64/ArmRng.h                    |  43 +++++
MdePkg/Library/BaseRngLib/BaseRngLibInternals.h               |  78 +++++++++
SecurityPkg/RandomNumberGenerator/RngDxe/{ => Rand}/AesCore.h |   0
SecurityPkg/RandomNumberGenerator/RngDxe/{ => Rand}/RdRand.h  |  17 --
SecurityPkg/RandomNumberGenerator/RngDxe/RngDxeInternals.h    | 117 ++++++++++++++
MdePkg/Library/BaseRngLib/AArch64/Rndr.c                      | 139 ++++++++++++++++
MdePkg/Library/BaseRngLib/BaseRng.c                           |  87 +++++-----
MdePkg/Library/BaseRngLib/Rand/RdRand.c                       | 131 +++++++++++++++
SecurityPkg/RandomNumberGenerator/RngDxe/AArch64/RngDxe.c     | 127 +++++++++++++++
SecurityPkg/RandomNumberGenerator/RngDxe/{ => Rand}/AesCore.c |   0
SecurityPkg/RandomNumberGenerator/RngDxe/{ => Rand}/RdRand.c  |  45 +-----
SecurityPkg/RandomNumberGenerator/RngDxe/Rand/RngDxe.c        | 146 +++++++++++++++++
SecurityPkg/RandomNumberGenerator/RngDxe/RngDxe.c             | 170 ++++++++------------
MdePkg/Library/BaseRngLib/AArch64/ArmReadIdIsar0.S            |  31 ++++
MdePkg/Library/BaseRngLib/AArch64/ArmReadIdIsar0.asm          |  30 ++++
MdePkg/Library/BaseRngLib/AArch64/ArmRng.S                    |  37 +++++
MdePkg/Library/BaseRngLib/AArch64/ArmRng.asm                  |  39 +++++
MdePkg/Library/BaseRngLib/BaseRngLib.uni                      |   6 +-
24 files changed, 1086 insertions(+), 230 deletions(-)
create mode 100644 MdePkg/Library/BaseRngLib/AArch64/ArmRng.h
create mode 100644 MdePkg/Library/BaseRngLib/BaseRngLibInternals.h
rename SecurityPkg/RandomNumberGenerator/RngDxe/{ => Rand}/AesCore.h (100%)
rename SecurityPkg/RandomNumberGenerator/RngDxe/{ => Rand}/RdRand.h (72%)
create mode 100644 SecurityPkg/RandomNumberGenerator/RngDxe/RngDxeInternals.h
create mode 100644 MdePkg/Library/BaseRngLib/AArch64/Rndr.c
create mode 100644 MdePkg/Library/BaseRngLib/Rand/RdRand.c
create mode 100644 SecurityPkg/RandomNumberGenerator/RngDxe/AArch64/RngDxe.c
rename SecurityPkg/RandomNumberGenerator/RngDxe/{ => Rand}/AesCore.c (100%)
rename SecurityPkg/RandomNumberGenerator/RngDxe/{ => Rand}/RdRand.c (71%)
create mode 100644 SecurityPkg/RandomNumberGenerator/RngDxe/Rand/RngDxe.c
create mode 100644 MdePkg/Library/BaseRngLib/AArch64/ArmReadIdIsar0.S
create mode 100644 MdePkg/Library/BaseRngLib/AArch64/ArmReadIdIsar0.asm
create mode 100644 MdePkg/Library/BaseRngLib/AArch64/ArmRng.S
create mode 100644 MdePkg/Library/BaseRngLib/AArch64/ArmRng.asm
[edk2-devel] [PATCH v3 0/2] MdePkg,SecurityPkg: Add support to RngDxe and BaseRngLib for AARCH64 RNDR
Posted by Rebecca Cran 2 years, 12 months ago
Update MdePkg BaseRngLib and SecurityPkg RngDxe to add support for
the AARCH64 RNDR instruction.

Changes from v2 to v3:

o Fixed the default value of gEfiSecurityPkgTokenSpaceGuid.PcdCpuRngSupportedAlgorithm
  to be an empty GUID.
o Removed RNDRRS since it wasn't being used.
o Fixed the commit message to remove mention of BaseLib.

Rebecca Cran (2):
  MdePkg/BaseRngLib: Add support for ARMv8.5 RNG instructions
  SecurityPkg: Add support for RngDxe on AARCH64

 MdePkg/MdePkg.dec                                             |   9 +-
 SecurityPkg/SecurityPkg.dec                                   |   2 +
 MdePkg/MdePkg.dsc                                             |   4 +-
 SecurityPkg/SecurityPkg.dsc                                   |  11 +-
 MdePkg/Library/BaseRngLib/BaseRngLib.inf                      |  23 ++-
 SecurityPkg/RandomNumberGenerator/RngDxe/RngDxe.inf           |  24 ++-
 MdePkg/Library/BaseRngLib/AArch64/ArmRng.h                    |  43 +++++
 MdePkg/Library/BaseRngLib/BaseRngLibInternals.h               |  78 +++++++++
 SecurityPkg/RandomNumberGenerator/RngDxe/{ => Rand}/AesCore.h |   0
 SecurityPkg/RandomNumberGenerator/RngDxe/{ => Rand}/RdRand.h  |  17 --
 SecurityPkg/RandomNumberGenerator/RngDxe/RngDxeInternals.h    | 117 ++++++++++++++
 MdePkg/Library/BaseRngLib/AArch64/Rndr.c                      | 139 ++++++++++++++++
 MdePkg/Library/BaseRngLib/BaseRng.c                           |  87 +++++-----
 MdePkg/Library/BaseRngLib/Rand/RdRand.c                       | 131 +++++++++++++++
 SecurityPkg/RandomNumberGenerator/RngDxe/AArch64/RngDxe.c     | 127 +++++++++++++++
 SecurityPkg/RandomNumberGenerator/RngDxe/{ => Rand}/AesCore.c |   0
 SecurityPkg/RandomNumberGenerator/RngDxe/{ => Rand}/RdRand.c  |  45 +-----
 SecurityPkg/RandomNumberGenerator/RngDxe/Rand/RngDxe.c        | 146 +++++++++++++++++
 SecurityPkg/RandomNumberGenerator/RngDxe/RngDxe.c             | 170 ++++++++------------
 MdePkg/Library/BaseRngLib/AArch64/ArmReadIdIsar0.S            |  31 ++++
 MdePkg/Library/BaseRngLib/AArch64/ArmReadIdIsar0.asm          |  30 ++++
 MdePkg/Library/BaseRngLib/AArch64/ArmRng.S                    |  37 +++++
 MdePkg/Library/BaseRngLib/AArch64/ArmRng.asm                  |  39 +++++
 MdePkg/Library/BaseRngLib/BaseRngLib.uni                      |   6 +-
 24 files changed, 1086 insertions(+), 230 deletions(-)
 create mode 100644 MdePkg/Library/BaseRngLib/AArch64/ArmRng.h
 create mode 100644 MdePkg/Library/BaseRngLib/BaseRngLibInternals.h
 rename SecurityPkg/RandomNumberGenerator/RngDxe/{ => Rand}/AesCore.h (100%)
 rename SecurityPkg/RandomNumberGenerator/RngDxe/{ => Rand}/RdRand.h (72%)
 create mode 100644 SecurityPkg/RandomNumberGenerator/RngDxe/RngDxeInternals.h
 create mode 100644 MdePkg/Library/BaseRngLib/AArch64/Rndr.c
 create mode 100644 MdePkg/Library/BaseRngLib/Rand/RdRand.c
 create mode 100644 SecurityPkg/RandomNumberGenerator/RngDxe/AArch64/RngDxe.c
 rename SecurityPkg/RandomNumberGenerator/RngDxe/{ => Rand}/AesCore.c (100%)
 rename SecurityPkg/RandomNumberGenerator/RngDxe/{ => Rand}/RdRand.c (71%)
 create mode 100644 SecurityPkg/RandomNumberGenerator/RngDxe/Rand/RngDxe.c
 create mode 100644 MdePkg/Library/BaseRngLib/AArch64/ArmReadIdIsar0.S
 create mode 100644 MdePkg/Library/BaseRngLib/AArch64/ArmReadIdIsar0.asm
 create mode 100644 MdePkg/Library/BaseRngLib/AArch64/ArmRng.S
 create mode 100644 MdePkg/Library/BaseRngLib/AArch64/ArmRng.asm

-- 
2.26.2



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#74925): https://edk2.groups.io/g/devel/message/74925
Mute This Topic: https://groups.io/mt/82732210/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-


Re: [edk2-devel] [PATCH v3 0/2] MdePkg,SecurityPkg: Add support to RngDxe and BaseRngLib for AARCH64 RNDR
Posted by PierreGondois 2 years, 3 months ago
Hello all,
I have a question about the this patch, and more generically the organization
of the MdePkg. The current organization, for the BaseRngLib, is as:
 - the BaseRngLib implements the library functions of
   MdePkg/Include/Library/RngLib.h
 - the BaseRngLib contains Ia32, X64 and AARCH64 implementations

This means the BaseRngLib contains arch specific functions. It comes that I
would like to re-use one of these arch specific functions. My question is
then, shouldn't the BaseRngLib contains an arch agnostic implementation,
and the arch specific implementation be placed in arch specific folders
(ArmPkg for arm, I am not sure for other architectures) ?

Another possibility for me is to me is to move the function that I want
to use to the ArmPkg, but this means the MdePkg would be dependent
on the ArmPkg. Would this be a viable option ?

Regards,
Pierre

On 5/10/21 11:53 PM, Rebecca Cran via groups.io wrote:
> Update MdePkg BaseRngLib and SecurityPkg RngDxe to add support for
> the AARCH64 RNDR instruction.
>
> Changes from v2 to v3:
>
> o Fixed the default value of gEfiSecurityPkgTokenSpaceGuid.PcdCpuRngSupportedAlgorithm
>   to be an empty GUID.
> o Removed RNDRRS since it wasn't being used.
> o Fixed the commit message to remove mention of BaseLib.
>
> Rebecca Cran (2):
>   MdePkg/BaseRngLib: Add support for ARMv8.5 RNG instructions
>   SecurityPkg: Add support for RngDxe on AARCH64
>
>  MdePkg/MdePkg.dec                                             |   9 +-
>  SecurityPkg/SecurityPkg.dec                                   |   2 +
>  MdePkg/MdePkg.dsc                                             |   4 +-
>  SecurityPkg/SecurityPkg.dsc                                   |  11 +-
>  MdePkg/Library/BaseRngLib/BaseRngLib.inf                      |  23 ++-
>  SecurityPkg/RandomNumberGenerator/RngDxe/RngDxe.inf           |  24 ++-
>  MdePkg/Library/BaseRngLib/AArch64/ArmRng.h                    |  43 +++++
>  MdePkg/Library/BaseRngLib/BaseRngLibInternals.h               |  78 +++++++++
>  SecurityPkg/RandomNumberGenerator/RngDxe/{ => Rand}/AesCore.h |   0
>  SecurityPkg/RandomNumberGenerator/RngDxe/{ => Rand}/RdRand.h  |  17 --
>  SecurityPkg/RandomNumberGenerator/RngDxe/RngDxeInternals.h    | 117 ++++++++++++++
>  MdePkg/Library/BaseRngLib/AArch64/Rndr.c                      | 139 ++++++++++++++++
>  MdePkg/Library/BaseRngLib/BaseRng.c                           |  87 +++++-----
>  MdePkg/Library/BaseRngLib/Rand/RdRand.c                       | 131 +++++++++++++++
>  SecurityPkg/RandomNumberGenerator/RngDxe/AArch64/RngDxe.c     | 127 +++++++++++++++
>  SecurityPkg/RandomNumberGenerator/RngDxe/{ => Rand}/AesCore.c |   0
>  SecurityPkg/RandomNumberGenerator/RngDxe/{ => Rand}/RdRand.c  |  45 +-----
>  SecurityPkg/RandomNumberGenerator/RngDxe/Rand/RngDxe.c        | 146 +++++++++++++++++
>  SecurityPkg/RandomNumberGenerator/RngDxe/RngDxe.c             | 170 ++++++++------------
>  MdePkg/Library/BaseRngLib/AArch64/ArmReadIdIsar0.S            |  31 ++++
>  MdePkg/Library/BaseRngLib/AArch64/ArmReadIdIsar0.asm          |  30 ++++
>  MdePkg/Library/BaseRngLib/AArch64/ArmRng.S                    |  37 +++++
>  MdePkg/Library/BaseRngLib/AArch64/ArmRng.asm                  |  39 +++++
>  MdePkg/Library/BaseRngLib/BaseRngLib.uni                      |   6 +-
>  24 files changed, 1086 insertions(+), 230 deletions(-)
>  create mode 100644 MdePkg/Library/BaseRngLib/AArch64/ArmRng.h
>  create mode 100644 MdePkg/Library/BaseRngLib/BaseRngLibInternals.h
>  rename SecurityPkg/RandomNumberGenerator/RngDxe/{ => Rand}/AesCore.h (100%)
>  rename SecurityPkg/RandomNumberGenerator/RngDxe/{ => Rand}/RdRand.h (72%)
>  create mode 100644 SecurityPkg/RandomNumberGenerator/RngDxe/RngDxeInternals.h
>  create mode 100644 MdePkg/Library/BaseRngLib/AArch64/Rndr.c
>  create mode 100644 MdePkg/Library/BaseRngLib/Rand/RdRand.c
>  create mode 100644 SecurityPkg/RandomNumberGenerator/RngDxe/AArch64/RngDxe.c
>  rename SecurityPkg/RandomNumberGenerator/RngDxe/{ => Rand}/AesCore.c (100%)
>  rename SecurityPkg/RandomNumberGenerator/RngDxe/{ => Rand}/RdRand.c (71%)
>  create mode 100644 SecurityPkg/RandomNumberGenerator/RngDxe/Rand/RngDxe.c
>  create mode 100644 MdePkg/Library/BaseRngLib/AArch64/ArmReadIdIsar0.S
>  create mode 100644 MdePkg/Library/BaseRngLib/AArch64/ArmReadIdIsar0.asm
>  create mode 100644 MdePkg/Library/BaseRngLib/AArch64/ArmRng.S
>  create mode 100644 MdePkg/Library/BaseRngLib/AArch64/ArmRng.asm
>


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#85780): https://edk2.groups.io/g/devel/message/85780
Mute This Topic: https://groups.io/mt/82732210/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-


回复: [edk2-devel] [PATCH v3 0/2] MdePkg,SecurityPkg: Add support to RngDxe and BaseRngLib for AARCH64 RNDR
Posted by gaoliming 2 years, 3 months ago
Pierre:
  MdePkg can provide the arch specific implementation. BaseRngLib places the arch specific code into its Arch directory. If the arch logic is generic enough, new API can be defined in BaseLib.

Thanks
Liming
> -----邮件原件-----
> 发件人: devel@edk2.groups.io <devel@edk2.groups.io> 代表
> PierreGondois
> 发送时间: 2022年1月18日 17:24
> 收件人: devel@edk2.groups.io; Jiewen Yao <jiewen.yao@intel.com>; Jian J
> Wang <jian.j.wang@intel.com>; Michael D Kinney
> <michael.d.kinney@intel.com>; Liming Gao <gaoliming@byosoft.com.cn>;
> Zhiguang Liu <zhiguang.liu@intel.com>; Ard Biesheuvel
> <ardb+tianocore@kernel.org>; Sami Mujawar <sami.mujawar@arm.com>;
> Rebecca Cran <quic_rcran@quicinc.com>
> 主题: Re: [edk2-devel] [PATCH v3 0/2] MdePkg,SecurityPkg: Add support to
> RngDxe and BaseRngLib for AARCH64 RNDR
> 
> Hello all,
> I have a question about the this patch, and more generically the organization
> of the MdePkg. The current organization, for the BaseRngLib, is as:
>  - the BaseRngLib implements the library functions of
>    MdePkg/Include/Library/RngLib.h
>  - the BaseRngLib contains Ia32, X64 and AARCH64 implementations
> 
> This means the BaseRngLib contains arch specific functions. It comes that I
> would like to re-use one of these arch specific functions. My question is
> then, shouldn't the BaseRngLib contains an arch agnostic implementation,
> and the arch specific implementation be placed in arch specific folders
> (ArmPkg for arm, I am not sure for other architectures) ?
> 
> Another possibility for me is to me is to move the function that I want
> to use to the ArmPkg, but this means the MdePkg would be dependent
> on the ArmPkg. Would this be a viable option ?
> 
> Regards,
> Pierre
> 
> On 5/10/21 11:53 PM, Rebecca Cran via groups.io wrote:
> > Update MdePkg BaseRngLib and SecurityPkg RngDxe to add support for
> > the AARCH64 RNDR instruction.
> >
> > Changes from v2 to v3:
> >
> > o Fixed the default value of
> gEfiSecurityPkgTokenSpaceGuid.PcdCpuRngSupportedAlgorithm
> >   to be an empty GUID.
> > o Removed RNDRRS since it wasn't being used.
> > o Fixed the commit message to remove mention of BaseLib.
> >
> > Rebecca Cran (2):
> >   MdePkg/BaseRngLib: Add support for ARMv8.5 RNG instructions
> >   SecurityPkg: Add support for RngDxe on AARCH64
> >
> >  MdePkg/MdePkg.dec
> |   9 +-
> >  SecurityPkg/SecurityPkg.dec                                   |
> 2 +
> >  MdePkg/MdePkg.dsc
> |   4 +-
> >  SecurityPkg/SecurityPkg.dsc                                   |
> 11 +-
> >  MdePkg/Library/BaseRngLib/BaseRngLib.inf                      |
> 23 ++-
> >  SecurityPkg/RandomNumberGenerator/RngDxe/RngDxe.inf
> |  24 ++-
> >  MdePkg/Library/BaseRngLib/AArch64/ArmRng.h
> |  43 +++++
> >  MdePkg/Library/BaseRngLib/BaseRngLibInternals.h               |
> 78 +++++++++
> >  SecurityPkg/RandomNumberGenerator/RngDxe/{ => Rand}/AesCore.h |
> 0
> >  SecurityPkg/RandomNumberGenerator/RngDxe/{ => Rand}/RdRand.h  |
> 17 --
> >  SecurityPkg/RandomNumberGenerator/RngDxe/RngDxeInternals.h    |
> 117 ++++++++++++++
> >  MdePkg/Library/BaseRngLib/AArch64/Rndr.c                      |
> 139 ++++++++++++++++
> >  MdePkg/Library/BaseRngLib/BaseRng.c
> |  87 +++++-----
> >  MdePkg/Library/BaseRngLib/Rand/RdRand.c
> | 131 +++++++++++++++
> >  SecurityPkg/RandomNumberGenerator/RngDxe/AArch64/RngDxe.c
> | 127 +++++++++++++++
> >  SecurityPkg/RandomNumberGenerator/RngDxe/{ => Rand}/AesCore.c |
> 0
> >  SecurityPkg/RandomNumberGenerator/RngDxe/{ => Rand}/RdRand.c  |
> 45 +-----
> >  SecurityPkg/RandomNumberGenerator/RngDxe/Rand/RngDxe.c
> | 146 +++++++++++++++++
> >  SecurityPkg/RandomNumberGenerator/RngDxe/RngDxe.c
> | 170 ++++++++------------
> >  MdePkg/Library/BaseRngLib/AArch64/ArmReadIdIsar0.S            |
> 31 ++++
> >  MdePkg/Library/BaseRngLib/AArch64/ArmReadIdIsar0.asm          |
> 30 ++++
> >  MdePkg/Library/BaseRngLib/AArch64/ArmRng.S
> |  37 +++++
> >  MdePkg/Library/BaseRngLib/AArch64/ArmRng.asm
> |  39 +++++
> >  MdePkg/Library/BaseRngLib/BaseRngLib.uni                      |
> 6 +-
> >  24 files changed, 1086 insertions(+), 230 deletions(-)
> >  create mode 100644 MdePkg/Library/BaseRngLib/AArch64/ArmRng.h
> >  create mode 100644 MdePkg/Library/BaseRngLib/BaseRngLibInternals.h
> >  rename SecurityPkg/RandomNumberGenerator/RngDxe/{ =>
> Rand}/AesCore.h (100%)
> >  rename SecurityPkg/RandomNumberGenerator/RngDxe/{ =>
> Rand}/RdRand.h (72%)
> >  create mode 100644
> SecurityPkg/RandomNumberGenerator/RngDxe/RngDxeInternals.h
> >  create mode 100644 MdePkg/Library/BaseRngLib/AArch64/Rndr.c
> >  create mode 100644 MdePkg/Library/BaseRngLib/Rand/RdRand.c
> >  create mode 100644
> SecurityPkg/RandomNumberGenerator/RngDxe/AArch64/RngDxe.c
> >  rename SecurityPkg/RandomNumberGenerator/RngDxe/{ =>
> Rand}/AesCore.c (100%)
> >  rename SecurityPkg/RandomNumberGenerator/RngDxe/{ =>
> Rand}/RdRand.c (71%)
> >  create mode 100644
> SecurityPkg/RandomNumberGenerator/RngDxe/Rand/RngDxe.c
> >  create mode 100644
> MdePkg/Library/BaseRngLib/AArch64/ArmReadIdIsar0.S
> >  create mode 100644
> MdePkg/Library/BaseRngLib/AArch64/ArmReadIdIsar0.asm
> >  create mode 100644 MdePkg/Library/BaseRngLib/AArch64/ArmRng.S
> >  create mode 100644 MdePkg/Library/BaseRngLib/AArch64/ArmRng.asm
> >
> 
> 
> 
> 





-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#85805): https://edk2.groups.io/g/devel/message/85805
Mute This Topic: https://groups.io/mt/88529551/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-


Re: [edk2-devel] [PATCH v3 0/2] MdePkg,SecurityPkg: Add support to RngDxe and BaseRngLib for AARCH64 RNDR
Posted by Yao, Jiewen 1 year, 6 months ago
MdePkg *can* provide implementation. But usually, it is for a generic interface, which may be implemented by multiple architecture.

But here the TrngLib is very ARM specific, what it follows is "ARM TRNG firmware interface". For example, GetVersion, GetUUID.

As such, I suggest to name it ArmTrngLib and move to ArmPkg.

Thank you
Yao, Jiewen

> -----Original Message-----
> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of
> gaoliming
> Sent: Wednesday, January 19, 2022 2:44 PM
> To: devel@edk2.groups.io; pierre.gondois@arm.com; Yao, Jiewen
> <jiewen.yao@intel.com>; Wang, Jian J <jian.j.wang@intel.com>; Kinney,
> Michael D <michael.d.kinney@intel.com>; Liu, Zhiguang
> <zhiguang.liu@intel.com>; 'Ard Biesheuvel' <ardb+tianocore@kernel.org>;
> 'Sami Mujawar' <sami.mujawar@arm.com>; 'Rebecca Cran'
> <quic_rcran@quicinc.com>
> Subject: 回复: [edk2-devel] [PATCH v3 0/2] MdePkg,SecurityPkg: Add
> support to RngDxe and BaseRngLib for AARCH64 RNDR
> 
> Pierre:
>   MdePkg can provide the arch specific implementation. BaseRngLib places
> the arch specific code into its Arch directory. If the arch logic is generic
> enough, new API can be defined in BaseLib.
> 
> Thanks
> Liming
> > -----邮件原件-----
> > 发件人: devel@edk2.groups.io <devel@edk2.groups.io> 代表
> > PierreGondois
> > 发送时间: 2022年1月18日 17:24
> > 收件人: devel@edk2.groups.io; Jiewen Yao <jiewen.yao@intel.com>; Jian
> J
> > Wang <jian.j.wang@intel.com>; Michael D Kinney
> > <michael.d.kinney@intel.com>; Liming Gao <gaoliming@byosoft.com.cn>;
> > Zhiguang Liu <zhiguang.liu@intel.com>; Ard Biesheuvel
> > <ardb+tianocore@kernel.org>; Sami Mujawar <sami.mujawar@arm.com>;
> > Rebecca Cran <quic_rcran@quicinc.com>
> > 主题: Re: [edk2-devel] [PATCH v3 0/2] MdePkg,SecurityPkg: Add support
> to
> > RngDxe and BaseRngLib for AARCH64 RNDR
> >
> > Hello all,
> > I have a question about the this patch, and more generically the
> organization
> > of the MdePkg. The current organization, for the BaseRngLib, is as:
> >  - the BaseRngLib implements the library functions of
> >    MdePkg/Include/Library/RngLib.h
> >  - the BaseRngLib contains Ia32, X64 and AARCH64 implementations
> >
> > This means the BaseRngLib contains arch specific functions. It comes that I
> > would like to re-use one of these arch specific functions. My question is
> > then, shouldn't the BaseRngLib contains an arch agnostic implementation,
> > and the arch specific implementation be placed in arch specific folders
> > (ArmPkg for arm, I am not sure for other architectures) ?
> >
> > Another possibility for me is to me is to move the function that I want
> > to use to the ArmPkg, but this means the MdePkg would be dependent
> > on the ArmPkg. Would this be a viable option ?
> >
> > Regards,
> > Pierre
> >
> > On 5/10/21 11:53 PM, Rebecca Cran via groups.io wrote:
> > > Update MdePkg BaseRngLib and SecurityPkg RngDxe to add support for
> > > the AARCH64 RNDR instruction.
> > >
> > > Changes from v2 to v3:
> > >
> > > o Fixed the default value of
> > gEfiSecurityPkgTokenSpaceGuid.PcdCpuRngSupportedAlgorithm
> > >   to be an empty GUID.
> > > o Removed RNDRRS since it wasn't being used.
> > > o Fixed the commit message to remove mention of BaseLib.
> > >
> > > Rebecca Cran (2):
> > >   MdePkg/BaseRngLib: Add support for ARMv8.5 RNG instructions
> > >   SecurityPkg: Add support for RngDxe on AARCH64
> > >
> > >  MdePkg/MdePkg.dec
> > |   9 +-
> > >  SecurityPkg/SecurityPkg.dec                                   |
> > 2 +
> > >  MdePkg/MdePkg.dsc
> > |   4 +-
> > >  SecurityPkg/SecurityPkg.dsc                                   |
> > 11 +-
> > >  MdePkg/Library/BaseRngLib/BaseRngLib.inf                      |
> > 23 ++-
> > >  SecurityPkg/RandomNumberGenerator/RngDxe/RngDxe.inf
> > |  24 ++-
> > >  MdePkg/Library/BaseRngLib/AArch64/ArmRng.h
> > |  43 +++++
> > >  MdePkg/Library/BaseRngLib/BaseRngLibInternals.h               |
> > 78 +++++++++
> > >  SecurityPkg/RandomNumberGenerator/RngDxe/{ => Rand}/AesCore.h |
> > 0
> > >  SecurityPkg/RandomNumberGenerator/RngDxe/{ => Rand}/RdRand.h  |
> > 17 --
> > >  SecurityPkg/RandomNumberGenerator/RngDxe/RngDxeInternals.h    |
> > 117 ++++++++++++++
> > >  MdePkg/Library/BaseRngLib/AArch64/Rndr.c                      |
> > 139 ++++++++++++++++
> > >  MdePkg/Library/BaseRngLib/BaseRng.c
> > |  87 +++++-----
> > >  MdePkg/Library/BaseRngLib/Rand/RdRand.c
> > | 131 +++++++++++++++
> > >  SecurityPkg/RandomNumberGenerator/RngDxe/AArch64/RngDxe.c
> > | 127 +++++++++++++++
> > >  SecurityPkg/RandomNumberGenerator/RngDxe/{ => Rand}/AesCore.c |
> > 0
> > >  SecurityPkg/RandomNumberGenerator/RngDxe/{ => Rand}/RdRand.c  |
> > 45 +-----
> > >  SecurityPkg/RandomNumberGenerator/RngDxe/Rand/RngDxe.c
> > | 146 +++++++++++++++++
> > >  SecurityPkg/RandomNumberGenerator/RngDxe/RngDxe.c
> > | 170 ++++++++------------
> > >  MdePkg/Library/BaseRngLib/AArch64/ArmReadIdIsar0.S            |
> > 31 ++++
> > >  MdePkg/Library/BaseRngLib/AArch64/ArmReadIdIsar0.asm          |
> > 30 ++++
> > >  MdePkg/Library/BaseRngLib/AArch64/ArmRng.S
> > |  37 +++++
> > >  MdePkg/Library/BaseRngLib/AArch64/ArmRng.asm
> > |  39 +++++
> > >  MdePkg/Library/BaseRngLib/BaseRngLib.uni                      |
> > 6 +-
> > >  24 files changed, 1086 insertions(+), 230 deletions(-)
> > >  create mode 100644 MdePkg/Library/BaseRngLib/AArch64/ArmRng.h
> > >  create mode 100644
> MdePkg/Library/BaseRngLib/BaseRngLibInternals.h
> > >  rename SecurityPkg/RandomNumberGenerator/RngDxe/{ =>
> > Rand}/AesCore.h (100%)
> > >  rename SecurityPkg/RandomNumberGenerator/RngDxe/{ =>
> > Rand}/RdRand.h (72%)
> > >  create mode 100644
> > SecurityPkg/RandomNumberGenerator/RngDxe/RngDxeInternals.h
> > >  create mode 100644 MdePkg/Library/BaseRngLib/AArch64/Rndr.c
> > >  create mode 100644 MdePkg/Library/BaseRngLib/Rand/RdRand.c
> > >  create mode 100644
> > SecurityPkg/RandomNumberGenerator/RngDxe/AArch64/RngDxe.c
> > >  rename SecurityPkg/RandomNumberGenerator/RngDxe/{ =>
> > Rand}/AesCore.c (100%)
> > >  rename SecurityPkg/RandomNumberGenerator/RngDxe/{ =>
> > Rand}/RdRand.c (71%)
> > >  create mode 100644
> > SecurityPkg/RandomNumberGenerator/RngDxe/Rand/RngDxe.c
> > >  create mode 100644
> > MdePkg/Library/BaseRngLib/AArch64/ArmReadIdIsar0.S
> > >  create mode 100644
> > MdePkg/Library/BaseRngLib/AArch64/ArmReadIdIsar0.asm
> > >  create mode 100644 MdePkg/Library/BaseRngLib/AArch64/ArmRng.S
> > >  create mode 100644
> MdePkg/Library/BaseRngLib/AArch64/ArmRng.asm
> > >
> >
> >
> >
> >
> 
> 
> 
> 
> 
> 
> 



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#95610): https://edk2.groups.io/g/devel/message/95610
Mute This Topic: https://groups.io/mt/94581551/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-


[edk2-devel] 回复: [PATCH v3 0/2] MdePkg,SecurityPkg: Add support to RngDxe and BaseRngLib for AARCH64 RNDR
Posted by gaoliming 2 years, 11 months ago
Thanks for your update. This version patches are good to me. 

Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>

> -----邮件原件-----
> 发件人: Rebecca Cran <rebecca@nuviainc.com>
> 发送时间: 2021年5月11日 5:53
> 收件人: devel@edk2.groups.io; Jiewen Yao <jiewen.yao@intel.com>; Jian J
> Wang <jian.j.wang@intel.com>; Michael D Kinney
> <michael.d.kinney@intel.com>; Liming Gao <gaoliming@byosoft.com.cn>;
> Zhiguang Liu <zhiguang.liu@intel.com>; Ard Biesheuvel
> <ardb+tianocore@kernel.org>; Sami Mujawar <sami.mujawar@arm.com>
> 抄送: Rebecca Cran <rebecca@nuviainc.com>
> 主题: [PATCH v3 0/2] MdePkg,SecurityPkg: Add support to RngDxe and
> BaseRngLib for AARCH64 RNDR
> 
> Update MdePkg BaseRngLib and SecurityPkg RngDxe to add support for
> the AARCH64 RNDR instruction.
> 
> Changes from v2 to v3:
> 
> o Fixed the default value of
> gEfiSecurityPkgTokenSpaceGuid.PcdCpuRngSupportedAlgorithm
>   to be an empty GUID.
> o Removed RNDRRS since it wasn't being used.
> o Fixed the commit message to remove mention of BaseLib.
> 
> Rebecca Cran (2):
>   MdePkg/BaseRngLib: Add support for ARMv8.5 RNG instructions
>   SecurityPkg: Add support for RngDxe on AARCH64
> 
>  MdePkg/MdePkg.dec
> |   9 +-
>  SecurityPkg/SecurityPkg.dec                                   |
> 2 +
>  MdePkg/MdePkg.dsc
> |   4 +-
>  SecurityPkg/SecurityPkg.dsc                                   |
> 11 +-
>  MdePkg/Library/BaseRngLib/BaseRngLib.inf                      |
> 23 ++-
>  SecurityPkg/RandomNumberGenerator/RngDxe/RngDxe.inf           |
> 24 ++-
>  MdePkg/Library/BaseRngLib/AArch64/ArmRng.h                    |
> 43 +++++
>  MdePkg/Library/BaseRngLib/BaseRngLibInternals.h               |
> 78 +++++++++
>  SecurityPkg/RandomNumberGenerator/RngDxe/{ => Rand}/AesCore.h |
> 0
>  SecurityPkg/RandomNumberGenerator/RngDxe/{ => Rand}/RdRand.h  |
> 17 --
>  SecurityPkg/RandomNumberGenerator/RngDxe/RngDxeInternals.h    |
> 117 ++++++++++++++
>  MdePkg/Library/BaseRngLib/AArch64/Rndr.c                      |
> 139 ++++++++++++++++
>  MdePkg/Library/BaseRngLib/BaseRng.c                           |
> 87 +++++-----
>  MdePkg/Library/BaseRngLib/Rand/RdRand.c                       |
> 131 +++++++++++++++
>  SecurityPkg/RandomNumberGenerator/RngDxe/AArch64/RngDxe.c     |
> 127 +++++++++++++++
>  SecurityPkg/RandomNumberGenerator/RngDxe/{ => Rand}/AesCore.c |
> 0
>  SecurityPkg/RandomNumberGenerator/RngDxe/{ => Rand}/RdRand.c  |
> 45 +-----
>  SecurityPkg/RandomNumberGenerator/RngDxe/Rand/RngDxe.c        |
> 146 +++++++++++++++++
>  SecurityPkg/RandomNumberGenerator/RngDxe/RngDxe.c             |
> 170 ++++++++------------
>  MdePkg/Library/BaseRngLib/AArch64/ArmReadIdIsar0.S            |
> 31 ++++
>  MdePkg/Library/BaseRngLib/AArch64/ArmReadIdIsar0.asm          |
> 30 ++++
>  MdePkg/Library/BaseRngLib/AArch64/ArmRng.S                    |
> 37 +++++
>  MdePkg/Library/BaseRngLib/AArch64/ArmRng.asm                  |
> 39 +++++
>  MdePkg/Library/BaseRngLib/BaseRngLib.uni                      |
> 6 +-
>  24 files changed, 1086 insertions(+), 230 deletions(-)
>  create mode 100644 MdePkg/Library/BaseRngLib/AArch64/ArmRng.h
>  create mode 100644 MdePkg/Library/BaseRngLib/BaseRngLibInternals.h
>  rename SecurityPkg/RandomNumberGenerator/RngDxe/{ =>
> Rand}/AesCore.h (100%)
>  rename SecurityPkg/RandomNumberGenerator/RngDxe/{ =>
> Rand}/RdRand.h (72%)
>  create mode 100644
> SecurityPkg/RandomNumberGenerator/RngDxe/RngDxeInternals.h
>  create mode 100644 MdePkg/Library/BaseRngLib/AArch64/Rndr.c
>  create mode 100644 MdePkg/Library/BaseRngLib/Rand/RdRand.c
>  create mode 100644
> SecurityPkg/RandomNumberGenerator/RngDxe/AArch64/RngDxe.c
>  rename SecurityPkg/RandomNumberGenerator/RngDxe/{ =>
> Rand}/AesCore.c (100%)
>  rename SecurityPkg/RandomNumberGenerator/RngDxe/{ =>
> Rand}/RdRand.c (71%)
>  create mode 100644
> SecurityPkg/RandomNumberGenerator/RngDxe/Rand/RngDxe.c
>  create mode 100644
> MdePkg/Library/BaseRngLib/AArch64/ArmReadIdIsar0.S
>  create mode 100644
> MdePkg/Library/BaseRngLib/AArch64/ArmReadIdIsar0.asm
>  create mode 100644 MdePkg/Library/BaseRngLib/AArch64/ArmRng.S
>  create mode 100644 MdePkg/Library/BaseRngLib/AArch64/ArmRng.asm
> 
> --
> 2.26.2





-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#74936): https://edk2.groups.io/g/devel/message/74936
Mute This Topic: https://groups.io/mt/82738068/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-


Re: [edk2-devel] 回复: [PATCH v3 0/2] MdePkg,SecurityPkg: Add support to RngDxe and BaseRngLib for AARCH64 RNDR
Posted by Ard Biesheuvel 2 years, 11 months ago
On Tue, 11 May 2021 at 05:03, gaoliming <gaoliming@byosoft.com.cn> wrote:
>
> Thanks for your update. This version patches are good to me.
>
> Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
>

Merged as #1633

Thanks all,

> > -----邮件原件-----
> > 发件人: Rebecca Cran <rebecca@nuviainc.com>
> > 发送时间: 2021年5月11日 5:53
> > 收件人: devel@edk2.groups.io; Jiewen Yao <jiewen.yao@intel.com>; Jian J
> > Wang <jian.j.wang@intel.com>; Michael D Kinney
> > <michael.d.kinney@intel.com>; Liming Gao <gaoliming@byosoft.com.cn>;
> > Zhiguang Liu <zhiguang.liu@intel.com>; Ard Biesheuvel
> > <ardb+tianocore@kernel.org>; Sami Mujawar <sami.mujawar@arm.com>
> > 抄送: Rebecca Cran <rebecca@nuviainc.com>
> > 主题: [PATCH v3 0/2] MdePkg,SecurityPkg: Add support to RngDxe and
> > BaseRngLib for AARCH64 RNDR
> >
> > Update MdePkg BaseRngLib and SecurityPkg RngDxe to add support for
> > the AARCH64 RNDR instruction.
> >
> > Changes from v2 to v3:
> >
> > o Fixed the default value of
> > gEfiSecurityPkgTokenSpaceGuid.PcdCpuRngSupportedAlgorithm
> >   to be an empty GUID.
> > o Removed RNDRRS since it wasn't being used.
> > o Fixed the commit message to remove mention of BaseLib.
> >
> > Rebecca Cran (2):
> >   MdePkg/BaseRngLib: Add support for ARMv8.5 RNG instructions
> >   SecurityPkg: Add support for RngDxe on AARCH64
> >
> >  MdePkg/MdePkg.dec
> > |   9 +-
> >  SecurityPkg/SecurityPkg.dec                                   |
> > 2 +
> >  MdePkg/MdePkg.dsc
> > |   4 +-
> >  SecurityPkg/SecurityPkg.dsc                                   |
> > 11 +-
> >  MdePkg/Library/BaseRngLib/BaseRngLib.inf                      |
> > 23 ++-
> >  SecurityPkg/RandomNumberGenerator/RngDxe/RngDxe.inf           |
> > 24 ++-
> >  MdePkg/Library/BaseRngLib/AArch64/ArmRng.h                    |
> > 43 +++++
> >  MdePkg/Library/BaseRngLib/BaseRngLibInternals.h               |
> > 78 +++++++++
> >  SecurityPkg/RandomNumberGenerator/RngDxe/{ => Rand}/AesCore.h |
> > 0
> >  SecurityPkg/RandomNumberGenerator/RngDxe/{ => Rand}/RdRand.h  |
> > 17 --
> >  SecurityPkg/RandomNumberGenerator/RngDxe/RngDxeInternals.h    |
> > 117 ++++++++++++++
> >  MdePkg/Library/BaseRngLib/AArch64/Rndr.c                      |
> > 139 ++++++++++++++++
> >  MdePkg/Library/BaseRngLib/BaseRng.c                           |
> > 87 +++++-----
> >  MdePkg/Library/BaseRngLib/Rand/RdRand.c                       |
> > 131 +++++++++++++++
> >  SecurityPkg/RandomNumberGenerator/RngDxe/AArch64/RngDxe.c     |
> > 127 +++++++++++++++
> >  SecurityPkg/RandomNumberGenerator/RngDxe/{ => Rand}/AesCore.c |
> > 0
> >  SecurityPkg/RandomNumberGenerator/RngDxe/{ => Rand}/RdRand.c  |
> > 45 +-----
> >  SecurityPkg/RandomNumberGenerator/RngDxe/Rand/RngDxe.c        |
> > 146 +++++++++++++++++
> >  SecurityPkg/RandomNumberGenerator/RngDxe/RngDxe.c             |
> > 170 ++++++++------------
> >  MdePkg/Library/BaseRngLib/AArch64/ArmReadIdIsar0.S            |
> > 31 ++++
> >  MdePkg/Library/BaseRngLib/AArch64/ArmReadIdIsar0.asm          |
> > 30 ++++
> >  MdePkg/Library/BaseRngLib/AArch64/ArmRng.S                    |
> > 37 +++++
> >  MdePkg/Library/BaseRngLib/AArch64/ArmRng.asm                  |
> > 39 +++++
> >  MdePkg/Library/BaseRngLib/BaseRngLib.uni                      |
> > 6 +-
> >  24 files changed, 1086 insertions(+), 230 deletions(-)
> >  create mode 100644 MdePkg/Library/BaseRngLib/AArch64/ArmRng.h
> >  create mode 100644 MdePkg/Library/BaseRngLib/BaseRngLibInternals.h
> >  rename SecurityPkg/RandomNumberGenerator/RngDxe/{ =>
> > Rand}/AesCore.h (100%)
> >  rename SecurityPkg/RandomNumberGenerator/RngDxe/{ =>
> > Rand}/RdRand.h (72%)
> >  create mode 100644
> > SecurityPkg/RandomNumberGenerator/RngDxe/RngDxeInternals.h
> >  create mode 100644 MdePkg/Library/BaseRngLib/AArch64/Rndr.c
> >  create mode 100644 MdePkg/Library/BaseRngLib/Rand/RdRand.c
> >  create mode 100644
> > SecurityPkg/RandomNumberGenerator/RngDxe/AArch64/RngDxe.c
> >  rename SecurityPkg/RandomNumberGenerator/RngDxe/{ =>
> > Rand}/AesCore.c (100%)
> >  rename SecurityPkg/RandomNumberGenerator/RngDxe/{ =>
> > Rand}/RdRand.c (71%)
> >  create mode 100644
> > SecurityPkg/RandomNumberGenerator/RngDxe/Rand/RngDxe.c
> >  create mode 100644
> > MdePkg/Library/BaseRngLib/AArch64/ArmReadIdIsar0.S
> >  create mode 100644
> > MdePkg/Library/BaseRngLib/AArch64/ArmReadIdIsar0.asm
> >  create mode 100644 MdePkg/Library/BaseRngLib/AArch64/ArmRng.S
> >  create mode 100644 MdePkg/Library/BaseRngLib/AArch64/ArmRng.asm
> >
> > --
> > 2.26.2
>
>
>
>
>
> 
>
>


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#75020): https://edk2.groups.io/g/devel/message/75020
Mute This Topic: https://groups.io/mt/82738068/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-