1*f4f56ff4SMark Johnston.\"- 2*f4f56ff4SMark Johnston.\" Copyright (c) 2020 Rubicon Communications, LLC (Netgate) 3*f4f56ff4SMark Johnston.\" 4*f4f56ff4SMark Johnston.\" Redistribution and use in source and binary forms, with or without 5*f4f56ff4SMark Johnston.\" modification, are permitted provided that the following conditions 6*f4f56ff4SMark Johnston.\" are met: 7*f4f56ff4SMark Johnston.\" 1. Redistributions of source code must retain the above copyright 8*f4f56ff4SMark Johnston.\" notice, this list of conditions and the following disclaimer. 9*f4f56ff4SMark Johnston.\" 2. Redistributions in binary form must reproduce the above copyright 10*f4f56ff4SMark Johnston.\" notice, this list of conditions and the following disclaimer in the 11*f4f56ff4SMark Johnston.\" documentation and/or other materials provided with the distribution. 12*f4f56ff4SMark Johnston.\" 13*f4f56ff4SMark Johnston.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 14*f4f56ff4SMark Johnston.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15*f4f56ff4SMark Johnston.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 16*f4f56ff4SMark Johnston.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 17*f4f56ff4SMark Johnston.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 18*f4f56ff4SMark Johnston.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 19*f4f56ff4SMark Johnston.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 20*f4f56ff4SMark Johnston.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 21*f4f56ff4SMark Johnston.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 22*f4f56ff4SMark Johnston.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 23*f4f56ff4SMark Johnston.\" SUCH DAMAGE. 24*f4f56ff4SMark Johnston.\" 25*f4f56ff4SMark Johnston.Dd July 21, 2022 26*f4f56ff4SMark Johnston.Dt QAT_C2XXX 4 27*f4f56ff4SMark Johnston.Os 28*f4f56ff4SMark Johnston.Sh NAME 29*f4f56ff4SMark Johnston.Nm qat_c2xxx 30*f4f56ff4SMark Johnston.Nd Intel QuickAssist Technology (QAT) driver for Atom C2000 chipsets 31*f4f56ff4SMark Johnston.Sh SYNOPSIS 32*f4f56ff4SMark JohnstonTo compile this driver into the kernel, 33*f4f56ff4SMark Johnstonplace the following lines in your 34*f4f56ff4SMark Johnstonkernel configuration file: 35*f4f56ff4SMark Johnston.Bd -ragged -offset indent 36*f4f56ff4SMark Johnston.Cd "device crypto" 37*f4f56ff4SMark Johnston.Cd "device cryptodev" 38*f4f56ff4SMark Johnston.Cd "device qat" 39*f4f56ff4SMark Johnston.Ed 40*f4f56ff4SMark Johnston.Pp 41*f4f56ff4SMark JohnstonAlternatively, to load the driver as a 42*f4f56ff4SMark Johnstonmodule at boot time, place the following lines in 43*f4f56ff4SMark Johnston.Xr loader.conf 5 : 44*f4f56ff4SMark Johnston.Bd -literal -offset indent 45*f4f56ff4SMark Johnstonqat_c2xxx_load="YES" 46*f4f56ff4SMark Johnstonqat_c2xxxfw_load="YES" 47*f4f56ff4SMark Johnston.Ed 48*f4f56ff4SMark Johnston.Sh DESCRIPTION 49*f4f56ff4SMark JohnstonThe 50*f4f56ff4SMark Johnston.Nm 51*f4f56ff4SMark Johnstondriver implements 52*f4f56ff4SMark Johnston.Xr crypto 4 53*f4f56ff4SMark Johnstonsupport for some of the cryptographic acceleration functions of the Intel 54*f4f56ff4SMark JohnstonQuickAssist (QAT) device found on Atom C2000 devices. 55*f4f56ff4SMark JohnstonQAT devices are enumerated through PCIe and are thus visible in 56*f4f56ff4SMark Johnston.Xr pciconf 8 57*f4f56ff4SMark Johnstonoutput. 58*f4f56ff4SMark Johnston.Pp 59*f4f56ff4SMark JohnstonThe 60*f4f56ff4SMark Johnston.Nm 61*f4f56ff4SMark Johnstondriver can accelerate AES in CBC, CTR, and GCM modes, 62*f4f56ff4SMark Johnstonand can perform authenticated encryption combining the CBC, and CTR modes 63*f4f56ff4SMark Johnstonwith SHA1-HMAC and SHA2-HMAC. 64*f4f56ff4SMark JohnstonThe 65*f4f56ff4SMark Johnston.Nm 66*f4f56ff4SMark Johnstondriver can also compute SHA1 and SHA2 digests. 67*f4f56ff4SMark JohnstonThe implementation of AES-GCM has a firmware-imposed constraint that the length 68*f4f56ff4SMark Johnstonof any additional authenticated data (AAD) must not exceed 240 bytes. 69*f4f56ff4SMark JohnstonThe driver thus rejects 70*f4f56ff4SMark Johnston.Xr crypto 9 71*f4f56ff4SMark Johnstonrequests that do not satisfy this constraint. 72*f4f56ff4SMark Johnston.Sh SEE ALSO 73*f4f56ff4SMark Johnston.Xr crypto 4 , 74*f4f56ff4SMark Johnston.Xr ipsec 4 , 75*f4f56ff4SMark Johnston.Xr pci 4 , 76*f4f56ff4SMark Johnston.Xr qat 4 , 77*f4f56ff4SMark Johnston.Xr random 4 , 78*f4f56ff4SMark Johnston.Xr crypto 7 , 79*f4f56ff4SMark Johnston.Xr crypto 9 80*f4f56ff4SMark Johnston.Sh HISTORY 81*f4f56ff4SMark JohnstonThe 82*f4f56ff4SMark Johnston.Nm 83*f4f56ff4SMark Johnstondriver first appeared in 84*f4f56ff4SMark Johnston.Fx 13.0 . 85*f4f56ff4SMark Johnston.Sh AUTHORS 86*f4f56ff4SMark JohnstonThe 87*f4f56ff4SMark Johnston.Nm 88*f4f56ff4SMark Johnstondriver was written for 89*f4f56ff4SMark Johnston.Nx 90*f4f56ff4SMark Johnstonby 91*f4f56ff4SMark Johnston.An Hikaru Abe Aq Mt hikaru@iij.ad.jp . 92*f4f56ff4SMark Johnston.An Mark Johnston Aq Mt markj@FreeBSD.org 93*f4f56ff4SMark Johnstonported the driver to 94*f4f56ff4SMark Johnston.Fx . 95*f4f56ff4SMark Johnston.Sh BUGS 96*f4f56ff4SMark JohnstonSome Atom C2000 QAT devices have two acceleration engines instead of one. 97*f4f56ff4SMark JohnstonThe 98*f4f56ff4SMark Johnston.Nm 99*f4f56ff4SMark Johnstondriver currently misbehaves when both are enabled and thus does not enable 100*f4f56ff4SMark Johnstonthe second acceleration engine if one is present. 101