+ Kane Hi Cedric,
> 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, > We plan to implement the "HACE/CRYPT commands", which should resolve these kernel warnings. However, according to the kernel self-test report, the kernel attempts to test several crypto modes "that are currently not supported by QEMU crypto/cipher.c such as CFB (Cipher Feedback) and OFB(Output Feedback)" root@ast2700-default:~# dmesg | grep "self-tests" [ 5.312232] alg: self-tests for ctr(des) using aspeed-ctr-des failed (rc=-22) [ 5.314913] alg: self-tests for ctr(des) using aspeed-ctr-des failed (rc=-22) [ 5.316347] alg: self-tests for ctr(des3_ede) using aspeed-ctr-tdes failed (rc=-22) [ 5.321167] alg: self-tests for ecb(des) using aspeed-ecb-des failed (rc=-22) [ 5.321622] alg: self-tests for ecb(des) using aspeed-ecb-des failed (rc=-22) [ 5.343443] alg: self-tests for ctr(des3_ede) using aspeed-ctr-tdes failed (rc=-22) [ 5.358788] alg: self-tests for ecb(des3_ede) using aspeed-ecb-tdes failed (rc=-22) [ 5.359267] alg: self-tests for ecb(des3_ede) using aspeed-ecb-tdes failed (rc=-22) [ 5.541477] alg: self-tests for cbc(des) using aspeed-cbc-des failed (rc=-22) [ 5.541888] alg: self-tests for cbc(des) using aspeed-cbc-des failed (rc=-22) [ 5.561193] alg: self-tests for cbc(des3_ede) using aspeed-cbc-tdes failed (rc=-22) [ 5.561645] alg: self-tests for cbc(des3_ede) using aspeed-cbc-tdes failed (rc=-22) [ 5.629708] alg: self-tests for cbc(aes) using aspeed-cbc-aes failed (rc=-22) [ 5.630234] alg: self-tests for cbc(aes) using aspeed-cbc-aes failed (rc=-22) [ 5.640356] alg: self-tests for ctr(aes) using aspeed-ctr-aes failed (rc=-22) [ 5.641544] alg: self-tests for ctr(aes) using aspeed-ctr-aes failed (rc=-22) [ 5.653529] alg: self-tests for ecb(aes) using aspeed-ecb-aes failed (rc=-22) [ 5.654212] alg: self-tests for ecb(aes) using aspeed-ecb-aes failed (rc=-22) I asked our BSP team several times if they could disable the crypto self-tests, but they rejected the request. Their reason is that they want to validate our hardware crypto engine during kernel startup in the ASPEED SDK. If you prefer not to see these kernel warnings, I can add the following kernel boot parameter in the functional test environment: bootargs=console=ttyS12,115200n8 root=/dev/ram rw earlycon cryptomgr.notests=1 Thanks, Jamin > C. >
