[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <cover.1766131281.git.AlanSong-oc@zhaoxin.com>
Date: Fri, 19 Dec 2025 16:03:04 +0800
From: AlanSong-oc <AlanSong-oc@...oxin.com>
To: <herbert@...dor.apana.org.au>, <ebiggers@...nel.org>, <Jason@...c4.com>,
<ardb@...nel.org>, <linux-crypto@...r.kernel.org>,
<linux-kernel@...r.kernel.org>
CC: <CobeChen@...oxin.com>, <TonyWWang-oc@...oxin.com>, <YunShen@...oxin.com>,
<GeorgeXue@...oxin.com>, <LeoLiu-oc@...oxin.com>, <HansHu@...oxin.com>,
AlanSong-oc <AlanSong-oc@...oxin.com>
Subject: [PATCH v2 0/2] lib/crypto: x86/sha: Add PHE Extensions support
For Zhaoxin processors, the XSHA1 instruction requires the total memory
allocated at %rdi register must be 32 bytes, while the XSHA1 and
XSHA256 instruction doesn't perform any operation when %ecx is zero.
Due to these requirements, the current padlock-sha driver does not work
correctly with Zhaoxin processors. It cannot pass the self-tests and
therefore does not activate the driver on Zhaoxin processors. This issue
has been reported in Debian [1]. The self-tests fail with the
following messages [2]:
alg: shash: sha1-padlock-nano test failed (wrong result) on test vector 0, cfg="init+update+final aligned buffer"
alg: self-tests for sha1 using sha1-padlock-nano failed (rc=-22)
------------[ cut here ]------------
alg: shash: sha256-padlock-nano test failed (wrong result) on test vector 0, cfg="init+update+final aligned buffer"
alg: self-tests for sha256 using sha256-padlock-nano failed (rc=-22)
------------[ cut here ]------------
To enable XSHA1 and XSHA256 instruction support on Zhaoxin processors,
this series adds PHE Extensions support to lib/crypto for SHA-1 and
SHA-256, following the suggestion in [3].
v1 link is below:
https://lore.kernel.org/linux-crypto/20250611101750.6839-1-AlanSong-oc@zhaoxin.com/
---
v1->v2: Add Zhaoxin support to lib/crypto instead of extending
the existing padlock-sha driver
[1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1103397
[2] https://linux-hardware.org/?probe=271fabb7a4&log=dmesg
[3] https://lore.kernel.org/linux-crypto/aUI4CGp6kK7mxgEr@gondor.apana.org.au/
AlanSong-oc (2):
lib/crypto: x86/sha1: PHE Extensions optimized SHA1 transform function
lib/crypto: x86/sha256: PHE Extensions optimized SHA256 transform
function
lib/crypto/Makefile | 6 ++-
lib/crypto/x86/sha1-phe-asm.S | 71 +++++++++++++++++++++++++++++++++
lib/crypto/x86/sha1.h | 20 ++++++++++
lib/crypto/x86/sha256-phe-asm.S | 70 ++++++++++++++++++++++++++++++++
lib/crypto/x86/sha256.h | 20 ++++++++++
5 files changed, 185 insertions(+), 2 deletions(-)
create mode 100644 lib/crypto/x86/sha1-phe-asm.S
create mode 100644 lib/crypto/x86/sha256-phe-asm.S
--
2.34.1
Powered by blists - more mailing lists