Age | Commit message (Collapse) | Author |
|
|
|
will hang during the first DMA operation on some machines.
|
|
alias's > 4MB
- remove extra initialization loop (cut/pasto)
based on private email from Henric Jungheim <henric@henric.info>
|
|
<henric@henric.info>
Also, while here, improve memory detection speed (poll for valid bit to be reset and exit as soon as it is or we timeout).
|
|
|
|
|
|
<bauerm@immd1.informatik.uni-erlangen.de>
|
|
|
|
o enable illegal read/write interrupts on 7811 (mainly for debugging)
|
|
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 =)
|
|
on big endian machines. (Unfortunately I can't verify this really works
on sparc64 because of crazy psycho(4) interrupt problems).
- use htole32() on constants instead of letoh32() on variables and hope for
better optimization.
- In several places use the unswizzled shadows to see what kind of operation
has been queued instead of the (now) swizzled versions.
- hifn provides some BE/LE assist, but it seems to vary depending on revision
and chip number, perhaps it's worth investigating?
|
|
bit of letoh16 and letoh32 then let simmer while sparc64 gets through
the ram test correctly.
|
|
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).
|
|
|
|
(Look ma, I might have broken the tree)
|
|
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.
|
|
|
|
|
|
All callers actually took all arguments to pci_intr_map from pci_attach_args
structs, so this simplifies code.
This also allows more complicated interrupt assignment schemes like the one
on sparc64.
This makes sparc64 pci interrupts work.
Inspired by the same change in NetBSD.
|
|
|
|
|
|
|
|
|
|
involves running down what's in the queue and resetting the chip.
- remove a DELAY() from reset and just wait for the proc unit to come out of
reset.
- never set the LAST bit in a JUMP descriptor
- use lengths from each map (not just source map) for total_*_length in command
[This does not fix problems with net4501, but may address problems with CA810]
|
|
|
|
|
|
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.
|
|
just maintain a counter.
|
|
7751 seems to generate these alot and restarting the DMA unit seems
to get things going again. 7951, however, never generates these aborts
in the same machine/slot.
|
|
|
|
- Handle ram detection errors more gracefully
- If things go awry after enabling DMA, turn off polling
- Follow hifn's specs for readram and writeram commands more closely
- Add bus_dmamap_sync()'s during ram probing as well
|
|
the tree. Hi/fn, Hi/Fn and HiFn -> Hifn.
--
Ok'd by deraadt@
|
|
bignum engine.
|
|
descriptors passed in instead.
|
|
|
|
- make sure reserved fields are zero'd
|
|
|
|
|
|
|
|
|
|
require reworking interrupt enable and status checking as well as
a bit of initialization
|
|
inside OpenSSL codebase
|
|
- 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
|