Home | History | Annotate | Download | only in ic
History log of /src/sys/dev/ic/elink3var.h
RevisionDateAuthorComments
 1.39  13-Apr-2015  riastradh Convert sys/dev to use <sys/rndsource.h>.
 1.38  02-Feb-2012  tls branches: 1.38.6; 1.38.24;
Entropy-pool implementation move and cleanup.

1) Move core entropy-pool code and source/sink/sample management code
to sys/kern from sys/dev.

2) Remove use of NRND as test for presence of entropy-pool code throughout
source tree.

3) Remove use of RND_ENABLED in device drivers as microoptimization to
avoid expensive operations on disabled entropy sources; make the
rnd_add calls do this directly so all callers benefit.

4) Fix bug in recent rnd_add_data()/rnd_add_uint32() changes that might
have lead to slight entropy overestimation for some sources.

5) Add new source types for environmental sensors, power sensors, VM
system events, and skew between clocks, with a sample implementation
for each.

ok releng to go in before the branch due to the difficulty of later
pullup (widespread #ifdef removal and moved files). Tested with release
builds on amd64 and evbarm and live testing on amd64.
 1.37  19-Nov-2011  tls branches: 1.37.2;
First step of random number subsystem rework described in
<20111022023242.BA26F14A158@mail.netbsd.org>. This change includes
the following:

An initial cleanup and minor reorganization of the entropy pool
code in sys/dev/rnd.c and sys/dev/rndpool.c. Several bugs are
fixed. Some effort is made to accumulate entropy more quickly at
boot time.

A generic interface, "rndsink", is added, for stream generators to
request that they be re-keyed with good quality entropy from the pool
as soon as it is available.

The arc4random()/arc4randbytes() implementation in libkern is
adjusted to use the rndsink interface for rekeying, which helps
address the problem of low-quality keys at boot time.

An implementation of the FIPS 140-2 statistical tests for random
number generator quality is provided (libkern/rngtest.c). This
is based on Greg Rose's implementation from Qualcomm.

A new random stream generator, nist_ctr_drbg, is provided. It is
based on an implementation of the NIST SP800-90 CTR_DRBG by
Henric Jungheim. This generator users AES in a modified counter
mode to generate a backtracking-resistant random stream.

An abstraction layer, "cprng", is provided for in-kernel consumers
of randomness. The arc4random/arc4randbytes API is deprecated for
in-kernel use. It is replaced by "cprng_strong". The current
cprng_fast implementation wraps the existing arc4random
implementation. The current cprng_strong implementation wraps the
new CTR_DRBG implementation. Both interfaces are rekeyed from
the entropy pool automatically at intervals justifiable from best
current cryptographic practice.

In some quick tests, cprng_fast() is about the same speed as
the old arc4randbytes(), and cprng_strong() is about 20% faster
than rnd_extract_data(). Performance is expected to improve.

The AES code in src/crypto/rijndael is no longer an optional
kernel component, as it is required by cprng_strong, which is
not an optional kernel component.

The entropy pool output is subjected to the rngtest tests at
startup time; if it fails, the system will reboot. There is
approximately a 3/10000 chance of a false positive from these
tests. Entropy pool _input_ from hardware random numbers is
subjected to the rngtest tests at attach time, as well as the
FIPS continuous-output test, to detect bad or stuck hardware
RNGs; if any are detected, they are detached, but the system
continues to run.

A problem with rndctl(8) is fixed -- datastructures with
pointers in arrays are no longer passed to userspace (this
was not a security problem, but rather a major issue for
compat32). A new kernel will require a new rndctl.

The sysctl kern.arandom() and kern.urandom() nodes are hooked
up to the new generators, but the /dev/*random pseudodevices
are not, yet.

Manual pages for the new kernel interfaces are forthcoming.
 1.36  05-Sep-2009  tsutsui branches: 1.36.12;
Replace shutdownhook_establish(9) with pmf_device_register1(9) in
MI epconfig() and ep_detach(), and remove pmf(9) calls in pcmcia attachment.
Tested on ep0 at pci, but pcmcia attachment is untested.
 1.35  27-Aug-2008  christos device_t changes, pmf, minor knf.
 1.34  11-Jul-2006  peter branches: 1.34.54; 1.34.58; 1.34.60; 1.34.64;
Add power hooks for "ep* at pcmcia?".

ok christos@
 1.33  11-Dec-2005  christos branches: 1.33.4; 1.33.8; 1.33.16;
merge ktrace-lwp.
 1.32  04-Feb-2005  perry branches: 1.32.6;
de-__P
 1.31  08-Jul-2003  itojun branches: 1.31.8; 1.31.10;
function prototype must not have variable name
 1.30  03-May-2003  wiz branches: 1.30.2;
DMA, not dma nor Dma.
 1.29  23-Jul-2001  thorpej Some whitespace cleanup.
 1.28  22-Mar-2001  jdolecek branches: 1.28.2;
Add MCA ep(4) attachment, for 3Com 3c529-type cards. Tested with 3c529-TP,
provided to me by David Brownlee (thanks!).

Performance of this card is quite poor on my PS/2 with 386DX, like 100KB/s
at best, but as low as 5KB/s when transferring bigger files due to
packet overruns. It would be good to revisit this later, probably by
teaching the ic code to use RX Early.
 1.27  22-Mar-2001  jdolecek convert to use ether_ioctl()
fix bunch of typos
 1.26  29-May-2000  jhawk branches: 1.26.4;
For all network drivers that call ether_ifattach(), and also
have _detach() functions:
Ensure that softc keeps state about whether the attach succeeded,
and make the detach function return immediately if the attach did
not complete.
 1.25  23-Mar-2000  thorpej branches: 1.25.2;
New callout mechanism with two major improvements over the old
timeout()/untimeout() API:
- Clients supply callout handle storage, thus eliminating problems of
resource allocation.
- Insertion and removal of callouts is constant time, important as
this facility is used quite a lot in the kernel.

The old timeout()/untimeout() API has been removed from the kernel.
 1.24  08-Feb-2000  enami - Bail out from attach stage if failed to enable card, number of iospace
or memspace is unexpected, failed to map iospace or failed to configure
the controller properly.
- Disestablish an interrupt handler if failed to enable card.
 1.23  02-Feb-2000  augustss Make sure to untimeout() things on detach.
 1.22  02-Feb-2000  augustss Make sure to get rid of shutdown hook and ttach media on detach.
 1.21  18-Nov-1998  thorpej branches: 1.21.2; 1.21.10;
Now that the *_activate() functions don't do things which are attachment
specific, move them into the chipset drivers.
 1.20  17-Nov-1998  thorpej Expose the "enable" and "disable" functions so that the front-ends can
access them.
 1.19  04-Nov-1998  fvdl Add the 'ex' driver, a DMA driver for 3Com 90x and 90xB cards. Rename
constants from EP_ to ELINK_ since they're now used in the ex driver as well.
 1.18  17-Aug-1998  thorpej First-crack at RoadRunner (3c574-TX 10/100Mbps PCMCIA). Doens't yet use
any of the RoadRunner speed hacks.
 1.17  15-Aug-1998  thorpej Define the Corkscrew chipset - used by the 3c515 ISA 10/100mbps cards.
 1.16  15-Aug-1998  thorpej Define the 3Com "RoadRunner" chipset; like the Boomerang, but for PCMCIA.
No DMA is wired up, it has a shared memory interface, and a FIFO buffer
which can be used to speed up PIO transfers. (The latter two are
PCMCIA-specific speed hacks to deal hide the performance lossage from
using a PCMCIA->PCI bridge internally.)
 1.15  12-Aug-1998  thorpej Completely rewrite media selection. Add support for the MII/PHY on
the 3Com 3c905-TX and 3c905-T4. Fix handling of the MII on the
3c595-MII and 3c597-MII (can't talk to the PHYs on these cards; just
use "manual" for the external MII port).

Fixes kern/4782 (Chris Demetriou).
 1.14  15-Oct-1997  explorer Add and/or update rnd_*() hooks
 1.13  14-Oct-1997  thorpej Pull down from marc-pcmcia branch:

Minor tweaks to deal with PCMCIA differences, and support for power
management.
 1.12  30-Mar-1997  jonathan branches: 1.12.4;
Add ifmedia hooks: include <ifmedia.h> and add sc_media to softc.
 1.11  15-Mar-1997  is New ARP system, supports IPv4 over any hardware link.

Some of the stuff (e.g., rarpd, bootpd, dhcpd etc., libsa) still will
only support Ethernet. Tcpdump itself should be ok, but libpcap needs
lot of work.

For the detailed change history, look at the commit log entries for
the is-newarp branch.
 1.10  18-Feb-1997  jonathan Move if_ep media-sense code from front ends to inside back end,
to prepare for if_media, and to support EISA 3c59x cards:

* change epconfig() to take a short that encodes the chipset
type (3c509, or Demon/Vortex/Boomerang).
* add distinct 3c509 and Demon/Vortex/Boomerang media-sense
functions to back end.
* Add EISA match/attach support for the 3c592 and 3c597
(Demon) cards as well as the 3c509-comatibl EISA 3c509/3c579.

* Assume that ISA and ISA PnP cards are 3c509-style, until
proof to the contrary (e.g. large packet support).

Tested on 3c595, 3c590, and 3c509b. Not tested on 3c515 or Demon.
 1.9  30-Dec-1996  jonathan branches: 1.9.4;
* make sure 100mbit media-present bits don't collied with 3c509
CONFIG_CNTRL bits by making the "conn" argument to epconfig()
a u_int, not a u_int16_t, and by defining 100mbit media
bits in the upper 16 bits.

A redesigned interface that fixes this properly is in the pipeline.
 1.8  29-Dec-1996  jonathan * Expand softc sc_connectors field to 16 bits.
For now, we really only need 8 bits of media type.

* Add bogus definitions for 100mbit transcievers, to be set in the
"conn" argument to ep_config(). Should really use the same bits
as in EP_W0_CONFIG_CTRL bits, but I don't know what bits the 3c515
&c use for 100mbit media.

* Define bitflags for 100Mbit transceiver options in ep_connectors.

* Add definitions of powerup/powerdown commands. for interfaces with
power management. Should send a powerup after APM resume?

* Add definition of fragment-busmaster (vortex) START_DMA command.

* Add definition of PCI configuration-space media-present bits.
(really just EP_W3_RESET_OPTIONS remapped into pci config space.)

* Add comments describing what the #define's above are used for.
 1.7  17-Nov-1996  jonathan Fix for hanging 3com ``large packet'' (100Mbit) Etherlink-III devices:
* Add a slot in the softc, ep_pktlenshift, to indicate that
a board implements ``large packets'' (FDDI-sized frames) and
therefore implicitly shifts the argument to packet-length commands
by two bits to fit a 13-bit length in an 11-bit command argument field.

* Change the reset of station-mask filterto be independent of bus-type
(e.g.,. for 3c515)

* Replace the "2044" constant used to disable TX threshold interrupts
on 3c509-generation cards with a #define. Use 2047 instead,
since that works on the large-packet cards (Vortex, Demon, Boomerang)
and 2044 doesn't.

* Add code to epconfing to probe for large-packet support,
set the softc appropriately, and shift packet sizes in commands
by ep_pktlenshift to compensate for the implicit shift.

* Tweak the epconfig() code to avoid hanging on startup.
Set the Tx threshold to interrupt when there's space for
a maximal-sized ether frame, then do epinit() then epstop(),
instead of just the Tx and Rx reset. Required on at least a 3c595.

Tested on a 3c595, but not on 3c509-generation hardware.
 1.6  21-Oct-1996  thorpej New bus.h implementation/interface:
- No more distinction between i/o-mapped and memory-mapped
devices. It's all "bus space" now, and space tags
differentiate the space with finer grain than the
bus chipset tag.
- Add memory barrier methods.
- Implement space alloc/free methods.
- Implement region read/write methods (like memcpy to/from
bus space).
This interface provides a better abstraction for dealing with
machine-independent chipset drivers.
 1.5  14-May-1996  thorpej branches: 1.5.4;
Be more careful with types, and pull in <machine/intr.h>
 1.4  10-May-1996  thorpej Update Herb's e-mail address; beer.org feels a lot more friendly.
 1.3  03-May-1996  christos Move epstop prototype to the header file.
 1.2  30-Apr-1996  thorpej Convert the Etherlink III (ep) driver to use <machine/bus.h>.
 1.1  25-Apr-1996  thorpej Break up the ep driver into isa, eisa, and pci front-ends and a
bus-independent core driver. Tested on all three bus types, including
an isa 3c509 masquerading as an eisa device (use ep* at eisa? slot ? in
your kernel config file to catch this one).
XXX Driver still needs to be converted to <machine/bus.h>
 1.5.4.1  04-Mar-1997  mycroft Recognize 3c900 and 3c905 cards.
 1.9.4.2  20-Feb-1997  is Merged in recent changes from Trunk.
 1.9.4.1  07-Feb-1997  is Snapshot of new ARP code.

Our old ARP code was hardwired for 6-byte length medium
addresses, while the protocol is designed for any size.

This snapshot contains a first hack at getting rid of
Ethernet specific data structures. The ep driver is updated
(and tested on the PCI bus), the iy and fpa drivers have been
updated, but not real life tested yet.

If you want to test this with other drivers, you have to update
them first yourself, and probably tag the relevant directories.
Better contact me if you want to do this.
 1.12.4.4  29-Sep-1997  thorpej Make the "enable" and "disable" hooks take pointers to the softc, rather
than void * and a separately specified argument.
 1.12.4.3  27-Sep-1997  marc add __P where needed
 1.12.4.2  27-Sep-1997  marc add enable/disable hooks to the ep softc
 1.12.4.1  30-Jul-1997  marc added pcmcia infrastructure and a few devices
 1.21.10.2  27-Mar-2001  bouyer Sync with HEAD.
 1.21.10.1  20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.21.2.1  11-Dec-1998  kenh The beginnings of interface detach support. Still some bugs, but mostly
works for me.

This work was originally by Bill Studenmund, and cleaned up by me.
 1.25.2.1  22-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.26.4.2  24-Aug-2001  nathanw Catch up with -current.
 1.26.4.1  09-Apr-2001  nathanw Catch up with -current.
 1.28.2.1  03-Aug-2001  lukem update to -current
 1.30.2.4  04-Feb-2005  skrll Sync with HEAD.
 1.30.2.3  21-Sep-2004  skrll Fix the sync with head I botched.
 1.30.2.2  18-Sep-2004  skrll Sync with HEAD.
 1.30.2.1  03-Aug-2004  skrll Sync with HEAD
 1.31.10.1  12-Feb-2005  yamt sync with head.
 1.31.8.1  29-Apr-2005  kent sync with -current
 1.32.6.1  30-Dec-2006  yamt sync with head.
 1.33.16.1  13-Jul-2006  gdamore Merge from HEAD.
 1.33.8.1  11-Aug-2006  yamt sync with head
 1.33.4.1  09-Sep-2006  rpaulo sync with head
 1.34.64.1  19-Oct-2008  haad Sync with HEAD.
 1.34.60.1  18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.34.58.2  16-Sep-2009  yamt sync with head
 1.34.58.1  04-May-2009  yamt sync with head.
 1.34.54.1  28-Sep-2008  mjf Sync with HEAD.
 1.36.12.1  17-Apr-2012  yamt sync with head
 1.37.2.1  18-Feb-2012  mrg merge to -current.
 1.38.24.1  06-Jun-2015  skrll Sync with HEAD
 1.38.6.1  03-Dec-2017  jdolecek update from HEAD

RSS XML Feed