Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

.\"	$NetBSD: hifn.4,v 1.9 2018/06/15 23:11:56 wiz Exp $
.\"	$OpenBSD: hifn.4,v 1.32 2002/09/26 07:55:40 miod Exp $
.\"	$FreeBSD: src/share/man/man4/hifn.4,v 1.1.2.2 2003/10/08 23:57:50 sam Exp $
.\"
.\" Copyright (c) 2000 Theo de Raadt
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in the
.\"    documentation and/or other materials provided with the distribution.
.\" 3. The name of the author may not be used to endorse or promote products
.\"    derived from this software without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
.\" DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
.\" INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
.\" (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
.\" SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
.\" ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
.\" POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd June 13, 2018
.Dt HIFN 4
.Os
.Sh NAME
.Nm hifn
.Nd Hifn 7751/7951/7811/7955/7956 crypto accelerator
.Sh SYNOPSIS
.Cd "hifn* at pci? dev ? function ?"
.Sh DESCRIPTION
The
.Nm
driver supports various cards containing the Hifn 7751, 7951,
7811, 7955, and 7956
chipsets, such as
.Bl -tag -width namenamenamena -offset indent
.It Invertex AEON
No longer being made.
Came as 128KB SRAM model, or 2MB DRAM model.
.It Hifn 7751
Reference board with 512KB SRAM.
.It PowerCrypt
Comes with 512KB SRAM.
.It XL-Crypt
Only board based on 7811 (which is faster than 7751 and has
a random number generator).
.It NetSec 7751
Supports the most IPsec sessions, with 1MB SRAM.
.It Soekris Engineering vpn1201 and vpn1211
Contains a 7951 and supports symmetric and random number operations.
.It Soekris Engineering vpn1401 and vpn1411
Contains a 7955 and supports symmetric and random number operations.
.El
.Pp
The
.Nm
driver registers itself to accelerate DES, Triple-DES,
AES (7955 and 7956 only), ARC4, MD5,
MD5-HMAC, SHA1, and SHA1-HMAC operations for
.Xr opencrypto 9 ,
and thus for
.Xr ipsec 4
and
.Xr crypto 4 .
.Pp
The Hifn
.Tn 7951 ,
.Tn 7811 ,
.Tn 7955 ,
and
.Tn 7956
may also supply data to the kernel
.Xr rnd 4
subsystem.
.Sh SEE ALSO
.Xr crypto 4 ,
.Xr intro 4 ,
.Xr ipsec 4 ,
.Xr rnd 4 ,
.Xr opencrypto 9
.Sh HISTORY
The
.Nm
device driver appeared in
.Ox 2.7 .
The
.Nm
device driver was imported to
.Fx 5.0 ,
back-ported to
.Fx 4.8 ,
and subsequently imported into
.Nx 2.0 .
.Sh CAVEATS
The Hifn 9751 shares the same PCI ID.
This chip is basically a 7751, but with the cryptographic functions missing.
Instead, the 9751 is only capable of doing compression.
Since we do not currently attempt to use any of these chips to do
compression, the 9751-based cards are not useful.
.Pp
Support for the 7955 and 7956 is incomplete; the asymmetric crypto
facilities are to be added and the performance is suboptimal.
.Pp
Supplying data to the kernel
.Xr rnd 4
subsystem has been disabled, pending verification that the on-chip
RNG is statistically adequate.
.Sh BUGS
The 7751 chip starts out at initialization by only supporting compression.
A proprietary algorithm, which has been reverse engineered, is required to
unlock the cryptographic functionality of the chip.
It is possible for vendors to make boards which have a lock ID not known
to the driver, but all vendors currently just use the obvious ID which is
13 bytes of 0.