1.\" $OpenBSD: hifn.4,v 1.32 2002/09/26 07:55:40 miod Exp $ 2.\" $FreeBSD: src/share/man/man4/hifn.4,v 1.9 2009/10/19 14:36:12 brueffer Exp $ 3.\" 4.\" Copyright (c) 2000 Theo de Raadt 5.\" All rights reserved. 6.\" 7.\" Redistribution and use in source and binary forms, with or without 8.\" modification, are permitted provided that the following conditions 9.\" are met: 10.\" 1. Redistributions of source code must retain the above copyright 11.\" notice, this list of conditions and the following disclaimer. 12.\" 2. Redistributions in binary form must reproduce the above copyright 13.\" notice, this list of conditions and the following disclaimer in the 14.\" documentation and/or other materials provided with the distribution. 15.\" 16.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 17.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 18.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 19.\" DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, 20.\" INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 21.\" (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 22.\" SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 23.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 24.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 25.\" ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 26.\" POSSIBILITY OF SUCH DAMAGE. 27.\" 28.Dd February 14, 2010 29.Dt HIFN 4 30.Os 31.Sh NAME 32.Nm hifn 33.Nd Hifn 7751/7951/7811/7955/7956 crypto accelerator 34.Sh SYNOPSIS 35To compile this driver into the kernel, 36place the following lines in your 37kernel configuration file: 38.Bd -ragged -offset indent 39.Cd "device crypto" 40.Cd "device cryptodev" 41.Cd "device hifn" 42.Ed 43.Pp 44Alternatively, to load the driver as a 45module at boot time, place the following line in 46.Xr loader.conf 5 : 47.Bd -literal -offset indent 48hifn_load="YES" 49.Ed 50.Sh DESCRIPTION 51The 52.Nm 53driver supports various cards containing the Hifn 7751, 7951, 547811, 7955, and 7956 chipsets. 55.Pp 56The 57.Nm 58driver registers itself to accelerate DES, Triple-DES, 59AES (7955 and 7956 only), ARC4, MD5, 60MD5-HMAC, SHA1, and SHA1-HMAC operations for 61.Xr ipsec 4 62and 63.Xr crypto 4 . 64.Pp 65The Hifn 66.Tn 7951 , 67.Tn 7811 , 68.Tn 7955 , 69and 70.Tn 7956 71will also supply data to the kernel 72.Xr random 4 73subsystem. 74.Sh HARDWARE 75The 76.Nm 77driver supports various cards containing the Hifn 7751, 7951, 787811, 7955, and 7956 79chipsets, such as: 80.Bl -tag -width namenamenamena -offset indent 81.It Invertex AEON 82No longer being made. 83Came as 128KB SRAM model, or 2MB DRAM model. 84.It Hifn 7751 85Reference board with 512KB SRAM. 86.It PowerCrypt 87Comes with 512KB SRAM. 88.It XL-Crypt 89Only board based on 7811 (which is faster than 7751 and has 90a random number generator). 91.It NetSec 7751 92Supports the most IPsec sessions, with 1MB SRAM. 93.It Soekris Engineering vpn1201 and vpn1211 94See 95.Pa http://www.soekris.com/ . 96Contains a 7951 and supports symmetric and random number operations. 97.It Soekris Engineering vpn1401 and vpn1411 98See 99.Pa http://www.soekris.com/ . 100Contains a 7955 and supports symmetric and random number operations. 101.El 102.Sh SEE ALSO 103.Xr crypt 3 , 104.Xr crypto 4 , 105.Xr intro 4 , 106.Xr ipsec 4 , 107.Xr random 4 , 108.Xr crypto 9 109.Sh CAVEATS 110The Hifn 9751 shares the same PCI ID. 111This chip is basically a 7751, but with the cryptographic functions missing. 112Instead, the 9751 is only capable of doing compression. 113Since we do not currently attempt to use any of these chips to do 114compression, the 9751-based cards are not useful. 115.Pp 116Support for the 7955 and 7956 is incomplete; the asymmetric crypto 117facilities are to be added and the performance is suboptimal. 118.Sh HISTORY 119The 120.Nm 121device driver appeared in 122.Ox 2.7 . 123The 124.Nm 125device driver was imported to 126.Fx 5.0 . 127.Sh BUGS 128The 7751 chip starts out at initialization by only supporting compression. 129A proprietary algorithm, which has been reverse engineered, is required to 130unlock the cryptographic functionality of the chip. 131It is possible for vendors to make boards which have a lock ID not known 132to the driver, but all vendors currently just use the obvious ID which is 13313 bytes of 0. 134