Adapted crypto engine for Linux 5.13
Created by: cybergaszcz
I have merged and adapted crypto engine available in Linux 4.19 for Linux 5.13. Based on logs it looks that selftest are succed for ciphers:
[riscv@fedora-starfive ~]$ uname -a
Linux fedora-starfive 5.13.0-beaglev-gefcbc00d6753-dirty #1 SMP Tue Jun 29 16:50:51 CEST 2021 riscv64 riscv64 riscv64 GNU/Linux
[riscv@fedora-starfive ~]$ cat /proc/interrupts
CPU0 CPU1
5: 9031 8479 RISC-V INTC 5 riscv-timer
7: 471 0 SiFive PLIC 73 ttyS0
8: 0 0 SiFive PLIC 2 dw_axi_dmac_platform
10: 0 0 SiFive PLIC 1 dw_axi_dmac_platform
11: 86 0 SiFive PLIC 44 xhci-hcd:usb1
13: 0 0 SiFive PLIC 43 104c0000.usb
14: 0 0 SiFive PLIC 32 11910000.gpio
15: 253 0 SiFive PLIC 96 118b0000.i2c
16: 0 0 SiFive PLIC 97 118c0000.i2c
17: 0 0 SiFive PLIC 74 12450000.i2c
18: 7 0 SiFive PLIC 98 118d0000.trng
19: 1 0 SiFive PLIC 31 100d0000.crypto
20: 0 0 SiFive PLIC 6 eth0
21: 0 0 SiFive PLIC 7 eth0
22: 0 0 SiFive PLIC 22 11940000.nvdla
26: 0 0 SiFive PLIC 70 12410000.spi
29: 18786 0 SiFive PLIC 4 dw-mci
30: 4985 0 SiFive PLIC 5 dw-mci
31: 1657 0 SiFive PLIC 101 sf_lcdc
32: 0 0 SiFive PLIC 103 sf_vpp1
35: 5 0 SiFive PLIC 122 124a0000.tmon
IPI0: 95 90 Rescheduling interrupts
IPI1: 2163 11031 Function call interrupts
IPI2: 0 0 CPU stop interrupts
IPI3: 0 0 IRQ work interrupts
IPI4: 0 0 Timer broadcast interrupts
[riscv@fedora-starfive ~]$ cat /proc/crypto
name : pkcs1pad(rsa,sha256)
driver : pkcs1pad(rsa-vic,sha256)
module : kernel
priority : 3000
refcnt : 1
selftest : passed
internal : no
type : akcipher
name : rsa
driver : rsa-vic
module : kernel
priority : 3000
refcnt : 1
selftest : passed
internal : no
type : akcipher
name : ccm(aes)
driver : vic-ccm-aes
module : kernel
priority : 200
refcnt : 1
selftest : passed
internal : no
type : aead
async : yes
blocksize : 1
ivsize : 16
maxauthsize : 16
geniv : <none>
name : gcm(aes)
driver : vic-gcm-aes
module : kernel
priority : 200
refcnt : 1
selftest : passed
internal : no
type : aead
async : yes
blocksize : 1
ivsize : 12
maxauthsize : 16
geniv : <none>
name : ofb(aes)
driver : vic-ofb-aes
module : kernel
priority : 200
refcnt : 1
selftest : passed
internal : no
type : skcipher
async : yes
blocksize : 16
min keysize : 16
max keysize : 32
ivsize : 16
chunksize : 16
walksize : 16
name : cfb(aes)
driver : vic-cfb-aes
module : kernel
priority : 200
refcnt : 1
selftest : passed
internal : no
type : skcipher
async : yes
blocksize : 16
min keysize : 16
max keysize : 32
ivsize : 16
chunksize : 16
walksize : 16
name : ctr(aes)
driver : vic-ctr-aes
module : kernel
priority : 200
refcnt : 1
selftest : passed
internal : no
type : skcipher
async : yes
blocksize : 1
min keysize : 16
max keysize : 32
ivsize : 16
chunksize : 1
walksize : 1
name : cbc(aes)
driver : vic-cbc-aes
module : kernel
priority : 200
refcnt : 1
selftest : passed
internal : no
type : skcipher
async : yes
blocksize : 16
min keysize : 16
max keysize : 32
ivsize : 16
chunksize : 16
walksize : 16
name : ecb(aes)
driver : vic-ecb-aes
module : kernel
priority : 200
refcnt : 1
selftest : passed
internal : no
type : skcipher
async : yes
blocksize : 16
min keysize : 16
max keysize : 32
ivsize : 0
chunksize : 16
walksize : 16
name : cmac(aes)
driver : vic-cmac-aes
module : kernel
priority : 200
refcnt : 1
selftest : passed
internal : no
type : ahash
async : yes
blocksize : 16
digestsize : 16
name : hmac(sha384)
driver : vic-hmac-sha384
module : kernel
priority : 200
refcnt : 1
selftest : passed
internal : no
type : ahash
async : yes
blocksize : 128
digestsize : 48
name : sha384
driver : vic-sha384
module : kernel
priority : 200
refcnt : 1
selftest : passed
internal : no
type : ahash
async : yes
blocksize : 128
digestsize : 48
name : hmac(sha256)
driver : vic-hmac-sha256
module : kernel
priority : 200
refcnt : 1
selftest : passed
internal : no
type : ahash
async : yes
blocksize : 64
digestsize : 32
name : sha256
driver : vic-sha256
module : kernel
priority : 200
refcnt : 1
selftest : passed
internal : no
type : ahash
async : yes
blocksize : 64
digestsize : 32
name : zstd
driver : zstd-scomp
module : kernel
priority : 0
refcnt : 1
selftest : passed
internal : no
type : scomp
name : zstd
driver : zstd-generic
module : kernel
priority : 0
refcnt : 1
selftest : passed
internal : no
type : compression
name : xxhash64
driver : xxhash64-generic
module : kernel
priority : 100
refcnt : 1
selftest : passed
internal : no
type : shash
blocksize : 32
digestsize : 8
name : crc32c
driver : crc32c-generic
module : kernel
priority : 100
refcnt : 6
selftest : passed
internal : no
type : shash
blocksize : 1
digestsize : 4
name : blake2b-512
driver : blake2b-512-generic
module : kernel
priority : 100
refcnt : 1
selftest : passed
internal : no
type : shash
blocksize : 128
digestsize : 64
name : blake2b-384
driver : blake2b-384-generic
module : kernel
priority : 100
refcnt : 1
selftest : passed
internal : no
type : shash
blocksize : 128
digestsize : 48
name : blake2b-256
driver : blake2b-256-generic
module : kernel
priority : 100
refcnt : 1
selftest : passed
internal : no
type : shash
blocksize : 128
digestsize : 32
name : blake2b-160
driver : blake2b-160-generic
module : kernel
priority : 100
refcnt : 1
selftest : passed
internal : no
type : shash
blocksize : 128
digestsize : 20
name : sha224
driver : sha224-generic
module : kernel
priority : 100
refcnt : 1
selftest : passed
internal : no
type : shash
blocksize : 64
digestsize : 28
name : sha256
driver : sha256-generic
module : kernel
priority : 100
refcnt : 1
selftest : passed
internal : no
type : shash
blocksize : 64
digestsize : 32
name : ecb(cipher_null)
driver : ecb-cipher_null
module : kernel
priority : 100
refcnt : 1
selftest : passed
internal : no
type : skcipher
async : no
blocksize : 1
min keysize : 0
max keysize : 0