Age | Commit message (Collapse) | Author |
|
key and IV data). This kinda sucks for HMAC, but the alternative is
a cache manager and I just don't want to go there. Tested by sturm@ (thanks!)
|
|
- don't bother with the master/mmio enable stuff (it's done in pci.c for us)
based on suggestion from mickey
|
|
|
|
|
|
|
|
|
|
|
|
inline macro's; if hifn wanted to make it possible to write a very efficient
driver they would have fixed the bugs in the chips). Also, invalidate the
burst write checks when a read is executed.
|
|
off when not), I should really get a life.
|
|
burst writes (bridges may coalesce sequential writes into a burst) by
inserting a read (I know, icky!) in between sequential writes. Thanks
to sam@errno.com, GTGI, and Hifn for helping track this one down.
|
|
|
|
While here, avoid resetting the card so often during the ram probe [speeds up autoconf and simplifies the driver a bit].
Also, add a missing argument to a debugging printf() (no longer ever called because the abort timers are disabled =)
|
|
bus_dmamem_* operations; instead, store them in softc. This allows
the driver to get through autoconf on sparc64 (ok, well it fails the
ram test because of endian issues... but it's a start).
|
|
Most work by Wilbern Cobb <vedge@csoft.org> with some fixes from me, mickey@
and drahn@.
|
|
TRDY_TIMEOUT). These registers must be initialized to zero to disable
these timers or 7751 will get PCI aborts on its descriptor rings on
certain chipsets. These timers were removed because they were unneeded
in the 7951. I'm not sure how I missed this in the datasheet, but there
it is plain as day on page 24. Thanks go to Hifn for pointing this out.
Upshot: PCI abort problem on 7751 appears to be solved.
|
|
|
|
chain. This allows us to avoid mbuf copies (and EINVAL on iov's) for
packets of non "nice" length. Do this by adding a pad u_int32_t to
catch the (possible) overflow and detecting when it's necessary. Also,
do a bit of cleaning that ben pointed out.
|
|
|
|
|
|
|
|
|
|
passed through. After a few seconds (5 currently) of no activity, stop them
completely.
|
|
the caller of *_process() doesn't seem to initialize crd_klen correctly;
it has a zero value... still debugging...).
|
|
doesn't hurt).
- Turn the dma queues on and off as needed. This results in fewer PCI
aborts on 7751.
|
|
the tree. Hi/fn, Hi/Fn and HiFn -> Hifn.
--
Ok'd by deraadt@
|
|
|
|
|
|
descriptors passed in instead.
|
|
|
|
- clean up pub/rng initialization call
- attempt to remove more intertex vestiges
|
|
- Hi/Fn length fields in command structures are 18 bits (feature!), but
descriptor lengths are 16 bits.
- define dmamap maximum lengths correctly (2^18 for total length, 2^16
for segments).
- Make the defines more consistent, and add other modes
- split source_count in command descriptors into a 16 bit length, and 16bit reserved part
upshot: blocks as large as 2^18 - 8 work now for userland crypto
|
|
|
|
- vtophys is dead
- now builds on alpha
|
|
if we fail" semantics and extends to two varients of data movement: mbuf,
or an iovec style block.
|
|
|
|
|
|
|
|
doesn't exist anymore.
|
|
(falls under the category of compute it once and use it).
- just copy the computed masks in hifn_write_command()
- remove the now unnecessary flags field from hifn_command
|
|
|
|
- recompute destination length from destination descriptors and reclaim the
destination ring there.
|
|
enabling interrupts when the command queue has more than one entry.
- fix comment on hifn_newsession to reflect reality
- allocate session structure in softc
- compute a random IV when a session is created and try to chain from a
software kept IV for subsequent packets
- add handling of CRD_F_EXPLICIT
|
|
register as supporting MD5_HMAC96 and SHA1_HMAC96
use the correct bit (HIFN_MAC_CMD_NEW_KEY) when checking the mac_cmd mask
don't append the mac result to the dest buffer, add it to the result buffer
remove incorrect source count calculation involving mac length
add order checking to hifn_process so that we can verify the request is
possible given the ordering of processing units within the hifn.
correct hifn_callback()'s handling of mac checking and copy the computed
mac into the right place in the mbuf.
|
|
- remove all ability to block (no more tsleep/wakeup)
|
|
being more intelligent about allocation in the future.
|
|
o register the hifn as handling DES and 3DES (no md5 or sha1 yet) depending
on whether the board is unlocked (none, half, or full)
o Fix many KNF nits
o print the amount of memory correctly and don't print the number of sessions
o set command and result buffer sizes correctly
o reclaim the descriptor rings so new commands and buffers can be added
o remove some bogus checks on the command buffer
o add new variables mac_process_len and crypt_process_len to hifn_command_t
o fix calculation in hifn_mbuf to generate the pa/len array for src/dst
o simplify the code for setting up the jump descriptor
o rework the hifn_intr routine to interrupt at IPL_IMP and simplify it's
results processing
o more to come...
|
|
|
|
surrounding comments
|
|
|
|
|