The Layerscape 1088A contains an accelerator called Security Engine (SEC). To this, the CAAM exists that provides the ability of fast data moval between SEC and host memory. Considering that the 1088A supports KVM at the same time, I wonder if one could either provide direct HW access from a specific VM or even better utilise virtio-crypto-pci
, such as:
-object cryptodev-backend-builtin,id=cryptodev0 \
-device virtio-crypto-pci,id=crypto0,cryptodev=cryptodev0 \
While there is quite some documentation about virtio-crypto-pci
, I wonder if that would work?
Before changing muvirt
, I first tried to figure out the device ids and hence if maybe the entire HW device could be passed into the VM, however:
root@muvirt:~# lspci
0000:00:00.0 PCI bridge: Freescale Semiconductor Inc Device 80c0 (rev 10)
0000:01:00.0 Non-Volatile memory controller: Sandisk Corp PC SN520 NVMe SSD (rev 01)
0001:00:00.0 PCI bridge: Freescale Semiconductor Inc Device 80c0 (rev 10)
0001:01:00.0 PCI bridge: Pericom Semiconductor Device b304 (rev 01)
0001:02:01.0 PCI bridge: Pericom Semiconductor Device b304 (rev 01)
0001:02:02.0 PCI bridge: Pericom Semiconductor Device b304 (rev 01)
0002:00:00.0 PCI bridge: Freescale Semiconductor Inc Device 80c0 (rev 10)
0002:01:00.0 SATA controller: JMicron Technology Corp. JMB58x AHCI SATA controller
No clear pci-device, while dmesg
and lsmod
tell me that CAAM is given:
root@muvirt:~# lsmod | grep -i caam
akcipher 16384 2 caam_jr,rsa_generic
authenc 16384 2 dpaa2_caam,caam_jr
caam 28672 1 caam_jr
caam_jr 172032 0
caamalg_desc 36864 2 dpaa2_caam,caam_jr
caamhash_desc 16384 2 dpaa2_caam,caam_jr
crypto_engine 16384 1 caam_jr
dpaa2_caam 94208 0
error 24576 5 dpaa2_caam,caam_jr,caamhash_desc,caamalg_desc,caam
libdes 24576 3 dpaa2_caam,caam_jr,des_generic
rng_core 20480 2 caam_jr,tpm
rsa_generic 20480 1 caam_jr
root@muvirt:~# dmesg | grep -i caam
[ 8.386544] caam 8000000.crypto: device ID = 0x0a13030000000000 (Era 8)
[ 8.386549] caam 8000000.crypto: job rings = 3, qi = 1
[ 8.395563] caam algorithms registered in /proc/crypto
[ 8.396433] caam 8000000.crypto: caam pkc algorithms registered in /proc/crypto
[ 8.396438] caam 8000000.crypto: registering rng-caam
[ 8.399659] dpaa2_caam dpseci.0: Adding to iommu group 2
[ 8.401313] dpaa2_caam dpseci.0: dpseci v5.3
[ 8.432577] dpaa2_caam dpseci.0: algorithms registered in /proc/crypto
[ 8.433277] dpaa2_caam dpseci.0: hash algorithms registered in /proc/crypto
I wonder, in case one would just like to pass through SEC and CAAM into the VM, if one could use in some fashion the printed device id?
Or did anyone tried virtio-crypto-pci
on the Ten64?