1.\" SPDX-License-Identifier: BSD-3-Clause 2.\" Copyright(c) 2007-2022 Intel Corporation 3.\" $FreeBSD$ 4.Dd May 4, 2023 5.Dt QAT 4 6.Os 7.Sh NAME 8.Nm qat 9.Nd Intel (R) QuickAssist Technology (QAT) driver 10.Sh SYNOPSIS 11To load the driver call: 12.Pp 13.Bl -item -compact 14.It 15kldload qat 16.El 17.Pp 18In order to load the driver on boot add these lines to 19.Xr loader.conf 5 selecting firmware(s) suitable for installed device(s) 20.Pp 21.Bl -item -compact 22.It 23qat_200xx_fw_load="YES" 24.It 25qat_c3xxx_fw_load="YES" 26.It 27qat_c4xxx_fw_load="YES" 28.It 29qat_c62x_fw_load="YES" 30.It 31qat_dh895xcc_fw_load="YES" 32.It 33qat_4xxx_fw_load="YES" 34.It 35qat_load="YES" 36.El 37.Sh DESCRIPTION 38The 39.Nm 40driver supports cryptography and compression acceleration of the 41Intel (R) QuickAssist Technology (QAT) devices. 42.Pp 43The 44.Nm 45driver is intended for platforms that contain: 46.Bl -bullet -compact 47.It 48Intel (R) C62x Chipset 49.It 50Intel (R) Atom C3000 processor product family 51.It 52Intel (R) QuickAssist Adapter 8960/Intel (R) QuickAssist Adapter 8970 53(formerly known as "Lewis Hill") 54.It 55Intel (R) Communications Chipset 8925 to 8955 Series 56.It 57Intel (R) Atom P5300 processor product family 58.It 59Intel (R) QAT 4xxx Series 60.El 61.Pp 62The 63.Nm 64driver supports cryptography and compression acceleration. 65A complete API for offloading these operations is exposed in the kernel and may 66be used by any other entity directly. 67For details of usage and supported operations and algorithms refer to the 68following documentation available from 69.Lk 01.org : 70.Bl -bullet -compact 71.It 72.Rs 73.%A Intel (R) 74.%T QuickAssist Technology API Programmer's Guide 75.Re 76.It 77.Rs 78.%A Intel (R) 79.%T QuickAssist Technology Cryptographic API Reference Manual 80.Re 81.It 82.Rs 83.%A Intel (R) 84.%T QuickAssist Technology Data Compression API Reference Manual 85.Re 86.It 87.Rs 88.%A Intel (R) 89.%T QuickAssist Technology Performance Optimization Guide 90.Re 91.El 92.Pp 93In addition to exposing complete kernel API for offloading cryptography and 94compression operations, the 95.Nm 96driver also integrates with 97.Xr crypto 4 , 98allowing offloading supported cryptography operations to Intel (R) QuickAssist 99Technology (QAT) devices. 100For details of usage and supported operations and algorithms refer to the 101documentation mentioned above and 102.Sx SEE ALSO 103section. 104.Sh SYSCTL_VARIABLES 105Following variables may be used to reconfigure the QAT device.\& 106For configuration persistence those variables may be set before loading the driver, either via 107.Xr kenv 1 108or 109.Xr loader.conf(5). 110The device specific configuration options are prefixed with 111.Va dev.qat.X\&. 112where X is the device number. 113The specific device needs to be in "down" state before changing the configuration. 114.Bl -tag -width indent 115.It Va state 116Show current state of the device. Override the device state. Possible values: "down", "up". 117 118NOTE: If the symmetric services are used for device the qat_ocf driver needs to be disabled prior the device 119reconfiguration. 120Following variable may be used to enable/disable the QAT cryptographic framework connectivity 121.Va dev.qat_ocf.0.enable\&. 122Enabled by default. 123.It Va cfg_services 124Override the device services enabled: symmetric, asymmetric, data compression. 125Possible values: "sym", "asym", "dc", "sym;dc", "asym;dc", "sym;asym". 126Default services configured are "sym;asym" for even and "dc" for odd devices. 127.It Va cfg_mode 128Override the device mode configuration for kernel space and user space instances. 129Possible values: "ks", "us", "ks;us". 130Default value "ks;us". 131.It Va num_user_processes 132Override the number of uio user space processes that can connect to the QAT device. 133Default: 2 134.El 135.Pp 136The following 137.Xr sysctl 8 138variables are read-only: 139.Bl -tag -width indent 140.It Va frequency 141QAT device frequency value. 142.It Va mmp_version 143QAT MMP Library revision number. 144.It Va hw_version 145QAT hardware revision number. 146.It Va fw_version 147QAT firmware revision number. 148.It Va dev_cfg 149Summary of device specific configuration. 150.It Va heartbeat 151QAT device heartbeat status. Value '1' indicates that the device is operational. 152'0' value means that the device is not responsive. Device requires restart. 153.It Va heartbeat_failed 154Number of QAT heartbeat failures received. 155.It Va heartbeat_sent 156Number of QAT heartbeat requests sent. 157.El 158 159.Sh COMPATIBILITY 160The 161.Nm 162driver replaced previous implementation introduced in 163.Fx 13.0 . 164Current version, in addition to 165.Xr crypto 4 166integration, supports also data compression and exposes a complete API for 167offloading data compression and cryptography operations. 168.Sh SEE ALSO 169.Xr crypto 4 , 170.Xr ipsec 4 , 171.Xr pci 4 , 172.Xr crypto 7 , 173.Xr crypto 9 174.Sh HISTORY 175This 176.Nm 177driver was introduced in 178.Fx 14.0 . 179.Fx 13.0 included a different version of 180.Nm 181driver. 182.Sh AUTHORS 183The 184.Nm 185driver was written by 186.An Intel (R) Corporation . 187