Update MdePkg BaseRngLib and SecurityPkg RngDxe to add support for the AARCH64 RNDR instruction.
Changes from v1 to v2: o Added a PCD, gEfiSecurityPkgTokenSpaceGuid.PcdCpuRngSupportedAlgorithm to specify which algorighm the platform supports. o Moved ArmRndr() and ArmRndrrs() into BaseRngLib. o Added Doxygen headers. o Merged X64 and AARCH64 *GetBytes functions into a single RngGetBytes function. o Updated constructors to return EFI_STATUS instead of RETURN_STATUS. o Added ArchIsRngSupported function that gets called before each call to ArchGetRandomNumber*. 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 | 59 +++++++ MdePkg/Library/BaseRngLib/BaseRngLibInternals.h | 79 +++++++++ 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 | 61 +++++++ MdePkg/Library/BaseRngLib/AArch64/ArmRng.asm | 64 ++++++++ MdePkg/Library/BaseRngLib/BaseRngLib.uni | 6 +- 24 files changed, 1152 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 (#74815): https://edk2.groups.io/g/devel/message/74815 Mute This Topic: https://groups.io/mt/82656488/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-