Subject: Re: RE: [PATCH v4 0/4] Support HACE to AST2700 (resend)
Hello Jamin,
On 3/12/25 10:32, Jamin Lin wrote:
Hi Cedric,
-----Original Message-----
From: Cédric Le Goater <[email protected]>
Sent: Wednesday, March 12, 2025 5:25 PM
To: Jamin Lin <[email protected]>; Peter Maydell
<[email protected]>; Steven Lee <[email protected]>;
Troy Lee <[email protected]>; Andrew Jeffery
<[email protected]>; Joel Stanley <[email protected]>; open
list:ASPEED BMCs <[email protected]>; open list:All patches CC here
<[email protected]>
Cc: Troy Lee <[email protected]>
Subject: Re: [PATCH v4 0/4] Support HACE to AST2700 (resend)
Jamin,
On 2/25/25 08:56, Jamin Lin wrote:
This patch series is from
https://patchwork.kernel.org/project/qemu-devel/cover/20250213033531.
336
[email protected]/.
To expedite the review process, I have separated the HACE patches
portion from the
https://patchwork.kernel.org/project/qemu-devel/cover/20250213033531.
336 [email protected]/ patch series into this new patch
series.
v4: Support HACE to AST2700
Jamin Lin (4):
hw/misc/aspeed_hace: Fix coding style
hw/misc/aspeed_hace: Add AST2700 support
hw/arm/aspeed_ast27x0: Add HACE support for AST2700
hw/misc/aspeed_hace: Fix boot issue in the Crypto Manager Self
Test
include/hw/misc/aspeed_hace.h | 2 ++
hw/arm/aspeed_ast27x0.c | 15 ++++++++++
hw/misc/aspeed_hace.c | 55
++++++++++++++++++++++++++++++++---
3 files changed, 68 insertions(+), 4 deletions(-)
The kernel reports a lot of errors when running the crypto tests on a
AST2700 A1 Soc. See the functional test logs :
$ grep alg:
build/tests/functional/aarch64/test_aarch64_aspeed.AST2x00MachineSDK.
test _aarch64_ast2700a1_evb_sdk_v09_05/console.log
2025-03-12 10:10:42,705: [ 2.206831] alg: skcipher:
aspeed-ctr-tdes
encryption test failed (wrong result) on test vector 0, cfg="in-place (one
sglist)"
2025-03-12 10:10:42,706: [ 2.207328] alg: self-tests for
ctr(des3_ede) using aspeed-ctr-tdes failed (rc=-22)
2025-03-12 10:10:42,707: [ 2.207894] alg: self-tests for
ctr(des3_ede) using aspeed-ctr-tdes failed (rc=-22)
2025-03-12 10:10:42,725: [ 2.219342] alg: skcipher:
aspeed-ctr-des
encryption test failed (wrong result) on test vector 0, cfg="in-place (one
sglist)"
2025-03-12 10:10:42,725: [ 2.219511] alg: self-tests for ctr(des)
using aspeed-ctr-des failed (rc=-22)
2025-03-12 10:10:42,725: [ 2.219651] alg: self-tests for ctr(des)
using aspeed-ctr-des failed (rc=-22)
2025-03-12 10:10:42,733: [ 2.224344] alg: skcipher:
aspeed-ctr-aes
encryption test failed (wrong result) on test vector 0, cfg="in-place (one
sglist)"
2025-03-12 10:10:42,734: [ 2.224775] alg: self-tests for ctr(aes)
using aspeed-ctr-aes failed (rc=-22)
2025-03-12 10:10:42,734: [ 2.225015] alg: self-tests for ctr(aes)
using aspeed-ctr-aes failed (rc=-22)
...
What is something missing in the models ?
Currently, we do not implement HACE/CRYPT in aspeed_hace.c.
https://patchwork.kernel.org/project/qemu-devel/patch/20250225075622.3
[email protected]/
Known Issue:
The HACE crypto and hash engine is enable by default since AST2700 A1.
However, aspeed_hace.c(HACE model) currently does not support the
CRYPTO command.
To boot AST2700 A1, created a patch which temporarily resolves the
issue by sending an interrupt to notify the firmware that the
cryptographic command has completed. It is a temporary workaround to
resolve the boot issue in the Crypto Manager SelfTest.
As a result, you will encounter the following kernel warning due to
the Crypto Manager test failure.
```
alg: skcipher: aspeed-ctr-tdes encryption test failed (wrong result) on test
vector 0, cfg="in-place (one sglist)"
[ 5.035966] alg: self-tests for ctr(des3_ede) using aspeed-ctr-tdes failed
(rc=-22)
[ 5.036139] ------------[ cut here ]------------
[ 5.037188] alg: self-tests for ctr(des3_ede) using aspeed-ctr-tdes failed
(rc=-22)
[ 5.037312] WARNING: CPU: 2 PID: 109 at /crypto/testmgr.c:5936
alg_test+0x42c/0x548
[ 5.038049] Modules linked in:
[ 5.038302] CPU: 2 PID: 109 Comm: cryptomgr_test Tainted: G
W 6.6.52-v00.06.04-gf52a0cf7c475 #1
[ 5.038787] Hardware name: AST2700-EVB (DT)
[ 5.038988] pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS
BTYPE=--)
[ 5.039315] pc : alg_test+0x42c/0x548
[ 5.039505] lr : alg_test+0x42c/0x548
[ 5.039697] sp : ffffffc0825e3d50
[ 5.039862] x29: ffffffc0825e3df0 x28: 0000000000000004 x27:
0000000000000000
[ 5.040226] x26: ffffffc080bcada0 x25: ffffffc081dac9d0 x24:
0000000000000004
[ 5.040700] x23: 0000000000001285 x22: ffffff8003ded280 x21:
ffffff8003ded200
[ 5.041458] x20: 00000000ffffffff x19: 00000000ffffffea x18: ffffffffffffffff
[ 5.041915] x17: 282064656c696166 x16: 20736564742d7274 x15:
00000000fffffffe
[ 5.042287] x14: 0000000000000000 x13: ffffffc081ba555c x12:
65742d666c657320
[ 5.042684] x11: 00000000fffeffff x10: ffffffc0818ff048 x9 :
ffffffc0800a36e4
[ 5.043077] x8 : 000000000017ffe8 x7 : c0000000fffeffff x6 :
000000000057ffa8
[ 5.043461] x5 : 000000000000ffff x4 : 0000000000000000 x3 :
0000000000000000
[ 5.043751] x2 : 0000000000000000 x1 : 0000000000000000 x0 :
ffffff800415e740
[ 5.045544] Call trace:
[ 5.045693] alg_test+0x42c/0x548
[ 5.045878] cryptomgr_test+0x28/0x48
[ 5.046052] kthread+0x114/0x120
[ 5.046226] ret_from_fork+0x10/0x20
[ 5.046413] ---[ end trace 0000000000000000 ]---
[ 5.071510] alg: skcipher: aspeed-ctr-des encryption test failed (wrong
result) on test vector 0, cfg="in-place (one sglist)"
[ 5.072145] alg: self-tests for ctr(des) using aspeed-ctr-des failed
(rc=-22)
```
This is a bit confusing for people running the tests, since it might be
considered
as a regression in the models. I understand it is interesting for real HW and
so,
it would good to complete the implementation of the QEMU models too or,
may be, we could deactivate the tests from the kernel command line ? if
possible.
Thanks,