Page MenuHomeFreeBSD

Add support for the ARMv8 crypto extensions.
ClosedPublic

Authored by andrew on Oct 20 2016, 11:13 AM.
Tags
None
Referenced Files
Unknown Object (File)
Sat, Apr 20, 2:27 PM
Unknown Object (File)
Sat, Apr 20, 2:04 PM
Unknown Object (File)
Sat, Mar 30, 5:09 PM
Unknown Object (File)
Mar 13 2024, 7:15 PM
Unknown Object (File)
Mar 13 2024, 6:46 PM
Unknown Object (File)
Jan 8 2024, 1:18 PM
Unknown Object (File)
Dec 27 2023, 7:43 PM
Unknown Object (File)
Dec 27 2023, 7:35 PM
Subscribers

Details

Summary

Add accelerated AES with using the ARMv8 crypto instructions. This
is based on the AES-NI code, and modified as needed for use on ARMv8.
When loaded the driver will check the appropriate field in the
id_aa64isar0_el1 register to see if AES is supported, and if so the
probe function will signal the driver should attach.

With this I have seen up to 2000Mb/s from the cryptotest test with a
single thread on a ThunderX Pass 2.0.

Test Plan

Ran on ThunderX with a known key, IV, and plain text & verified the
cipher text. Verified decryption produced the correct plain text.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

andrew retitled this revision from to Add support for the ARMv8 crypto extensions..
andrew updated this object.
andrew edited the test plan for this revision. (Show Details)
andrew added reviewers: arm64, jmg.
andrew added a subscriber: emaste.
imp added a reviewer: imp.
imp added a subscriber: imp.

This looks great!

sys/crypto/armv8/armv8_crypto_wrap.c
46 ↗(On Diff #21531)

This is outside the kernel, so this might introduce build issues for a less than full buildworld environment. Not sure it is a big deal (same issues with AESNI work), but thought I'd mention it.

This revision is now accepted and ready to land.Nov 17 2016, 6:08 PM
This revision was automatically updated to reflect the committed changes.