Hi Pierre,

Could you share what tests you did and the test results?

Regards,
Yi

-----Original Message-----
From: Pierre Gondois <pierre.gond...@arm.com> 
Sent: Thursday, November 2, 2023 9:54 PM
To: devel@edk2.groups.io
Cc: Yao, Jiewen <jiewen....@intel.com>; Li, Yi1 <yi1...@intel.com>; Lu, Xiaoyu1 
<xiaoyu1...@intel.com>; Jiang, Guomin <guomin.ji...@intel.com>; Leif Lindholm 
<quic_llind...@quicinc.com>; Ard Biesheuvel <ardb+tianoc...@kernel.org>; Sami 
Mujawar <sami.muja...@arm.com>; Gerd Hoffmann <kra...@redhat.com>
Subject: [PATCH v1 0/7] CryptoPkg: Enable Openssl native instruction support 
for AARCH64

Various OpensslLib implementations are available in edk2. The 
OpensslLibAccel.inf and OpensslLibFullAccel.inf ones use architecture specific 
instructions, e.g. AESE, PMULL, SHA256H, ..., allowing to improve speed.

Enable support for Aarch64's native instructions:
- Add ArmReadCntPctReg() and ArmReadIdAA64Isar0Reg() to
  Aarch64's BaseLib.
- Generate Aarch64's specific Openssl functions.
- Add a OpensslStub/AArch64Cap.c file to allow Openssl
  to probe Aarch64 native instruction support.

This patch-set only enable support for GCC for now (MSFT support not added).

Pierre Gondois (7):
  MdePkg/BaseLib: AARCH64: Add ArmReadCntPctReg()
  MdePkg/BaseLib: AARCH64: Add ArmReadIdAA64Isar0Reg()
  MdePkg/BaseRngLib: Prefer ArmReadIdAA64Isar0Reg() over
    ArmReadIdIsar0()
  CryptoPkg/OpensslLib: Add native instruction support for AARCH64
  CryptoPkg/OpensslLib: Generate files for AARCH64 native support
  CryptoPkg/OpensslLib: Add AArch64Cap for arch specific hooks
  CryptoPkg: Enable Openssl Accel builds for AARCH64

 CryptoPkg/CryptoPkg.dsc                       |   23 +-
 .../AARCH64-GCC/crypto/aes/aesv8-armx.S       | 3180 ++++++++
 .../AARCH64-GCC/crypto/aes/vpaes-armv8.S      | 1196 +++
 .../AARCH64-GCC/crypto/arm64cpuid.S           |  129 +
 .../AARCH64-GCC/crypto/bn/armv8-mont.S        | 2124 ++++++
 .../crypto/ec/ecp_nistz256-armv8.S            | 4242 +++++++++++
 .../crypto/modes/aes-gcm-armv8_64.S           | 6389 +++++++++++++++++
 .../AARCH64-GCC/crypto/modes/ghashv8-armx.S   |  552 ++
 .../AARCH64-GCC/crypto/sha/keccak1600-armv8.S | 1009 +++
 .../AARCH64-GCC/crypto/sha/sha1-armv8.S       | 1211 ++++
 .../AARCH64-GCC/crypto/sha/sha256-armv8.S     | 2051 ++++++
 .../AARCH64-GCC/crypto/sha/sha512-armv8.S     | 1606 +++++
 .../Library/OpensslLib/OpensslLibAccel.inf    |  642 +-
 .../OpensslLib/OpensslLibFullAccel.inf        |  691 +-
 .../OpensslLib/OpensslStub/AArch64Cap.c       |  107 +
 CryptoPkg/Library/OpensslLib/UefiAsm.conf     |    6 +
 CryptoPkg/Library/OpensslLib/configure.py     |    5 +-
 CryptoPkg/Readme.md                           |   14 +-
 MdePkg/Include/Library/BaseLib.h              |   86 +
 .../BaseLib/AArch64/ArmReadCntPctReg.S        |   30 +
 .../BaseLib/AArch64/ArmReadCntPctReg.asm      |   30 +
 .../AArch64/ArmReadIdAA64Isar0Reg.S}          |   10 +-
 .../AArch64/ArmReadIdAA64Isar0Reg.asm}        |   10 +-
 MdePkg/Library/BaseLib/BaseLib.inf            |    6 +-
 MdePkg/Library/BaseRngLib/AArch64/ArmRng.h    |   12 -
 MdePkg/Library/BaseRngLib/AArch64/Rndr.c      |   14 +-
 MdePkg/Library/BaseRngLib/BaseRngLib.inf      |    2 -
 27 files changed, 25320 insertions(+), 57 deletions(-)  create mode 100644 
CryptoPkg/Library/OpensslLib/OpensslGen/AARCH64-GCC/crypto/aes/aesv8-armx.S
 create mode 100644 
CryptoPkg/Library/OpensslLib/OpensslGen/AARCH64-GCC/crypto/aes/vpaes-armv8.S
 create mode 100644 
CryptoPkg/Library/OpensslLib/OpensslGen/AARCH64-GCC/crypto/arm64cpuid.S
 create mode 100644 
CryptoPkg/Library/OpensslLib/OpensslGen/AARCH64-GCC/crypto/bn/armv8-mont.S
 create mode 100644 
CryptoPkg/Library/OpensslLib/OpensslGen/AARCH64-GCC/crypto/ec/ecp_nistz256-armv8.S
 create mode 100644 
CryptoPkg/Library/OpensslLib/OpensslGen/AARCH64-GCC/crypto/modes/aes-gcm-armv8_64.S
 create mode 100644 
CryptoPkg/Library/OpensslLib/OpensslGen/AARCH64-GCC/crypto/modes/ghashv8-armx.S
 create mode 100644 
CryptoPkg/Library/OpensslLib/OpensslGen/AARCH64-GCC/crypto/sha/keccak1600-armv8.S
 create mode 100644 
CryptoPkg/Library/OpensslLib/OpensslGen/AARCH64-GCC/crypto/sha/sha1-armv8.S
 create mode 100644 
CryptoPkg/Library/OpensslLib/OpensslGen/AARCH64-GCC/crypto/sha/sha256-armv8.S
 create mode 100644 
CryptoPkg/Library/OpensslLib/OpensslGen/AARCH64-GCC/crypto/sha/sha512-armv8.S
 create mode 100644 CryptoPkg/Library/OpensslLib/OpensslStub/AArch64Cap.c
 create mode 100644 MdePkg/Library/BaseLib/AArch64/ArmReadCntPctReg.S
 create mode 100644 MdePkg/Library/BaseLib/AArch64/ArmReadCntPctReg.asm
 rename MdePkg/Library/{BaseRngLib/AArch64/ArmReadIdIsar0.S => 
BaseLib/AArch64/ArmReadIdAA64Isar0Reg.S} (70%)  rename 
MdePkg/Library/{BaseRngLib/AArch64/ArmReadIdIsar0.asm => 
BaseLib/AArch64/ArmReadIdAA64Isar0Reg.asm} (72%)

--
2.25.1



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


Reply via email to