Home | History | Annotate | Download | only in ic
History log of /src/sys/dev/ic/mb86960var.h
RevisionDateAuthorComments
 1.41  31-Jul-2021  andvar fix more typos in style found one in file - check/fix them all.
 1.40  13-Apr-2015  riastradh branches: 1.40.36;
Convert sys/dev to use <sys/rndsource.h>.
 1.39  02-Feb-2012  tls branches: 1.39.6; 1.39.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.38  19-Nov-2011  tls branches: 1.38.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.37  12-May-2009  cegger branches: 1.37.12;
struct device * -> device_t, no functional changes intended.
 1.36  12-Apr-2008  tsutsui branches: 1.36.4; 1.36.18;
Split device_t/softc for MI mb86960, with misc cosmetics.
 1.35  11-Dec-2005  christos branches: 1.35.70;
merge ktrace-lwp.
 1.34  02-Jan-2005  tsutsui - use ANSI function decls
- remove __P()
- u_intNN_t -> uintNN_t
 1.33  05-Feb-2003  tsutsui branches: 1.33.2;
It seems the LAN Adapter on dreamcast actually uses slow 150ns SRAM,
so handle it properly by an additional quirk flag in sc_flags.

The problem was reported by Pat Wendorf on port-dreamcast, and
the fix was suggested and confirmed by Christian Groessler.
 1.32  30-Nov-2002  tsutsui More cleanup of MI mb86960 driver:
- Add support for byte system bus mode. Based on patch in kern/17193 by
Christian Groessler, with some improvements by me.
- Rename sc_flags in mb86960_softc to sc_stat, rename "type" to sc_flags
to specify controller quirks and remove enum mb86960_type.
- Pass controller type via new sc_flags in mb86960_softc rather than
via an mb86960_attach() arg.
- Handle unaligned mbufs properly in mb86960_write_mbufs(). (from ne2000.c)
- Fix a signed/unsigned comparision warning.
- Add definitions of status bits in the RX packed header.
- Change types of some members in mb86960_softc.
 1.31  05-Oct-2002  tsutsui Overhaul of fmv(4) driver:
- Split if_fmv.c into MI/MD part and add ISA-PnP attachment for FMV-183.
(XXX FMV-184 is not tested. It would require extra media-select functions..)
- Fix probe functions of fmv_isa so that FMV-181A/182A will also match.
Fixes port-i386/9476.
 1.30  04-Oct-2002  tsutsui Allied-Telesyn AT-1700xT and Allied-Telesis RE200x are actually identical,
so show both names in attachment. (From FreeBSD's if_fe_isa.c)
 1.29  04-Oct-2002  tsutsui - Merge dev/ic/ate_subr.c into dev/ic/mb86960.c since it only has EEPROM
read function which can also be used for other MB86965 based boards.
- Rewrite EEPROM read function as per 93C06 EEPROM datasheet.
- Misc cleanup.
 1.28  28-Sep-2002  tsutsui Remove unused FE_VERSION.
 1.27  01-May-2001  lukem branches: 1.27.2;
delint
 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  02-Feb-2000  enami branches: 1.25.2;
Add detach support.
 1.24  25-Mar-1999  thorpej branches: 1.24.8;
Use ETHER_*_LEN constants from <net/if_ether.h> instead of defining them
ourselves. Subtract ETHER_CRC_LEN as necessary to get the same values
for these constants as were previously defined locally.
 1.23  18-Nov-1998  thorpej Now that the *_activate() functions don't do things which are attachment
specific, move them into the chipset drivers.
 1.22  17-Nov-1998  thorpej Expose the "enable" and "disable" functions so that the front-ends can
access them.
 1.21  22-Mar-1998  enami Split Fujitsu MB9696x based ethernet card driver into bus
dependent/independent code and bus.h'fied.
 1.20  12-Jan-1998  thorpej Update for config changes.
 1.19  05-Jan-1998  perry RCSID Police.
 1.18  15-Oct-1997  explorer Add and/or update rnd_*() hooks
 1.17  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.16  17-Oct-1996  thorpej branches: 1.16.4;
Appease the compiler: get rid of some unused variables, add some
prototypes, and suppress a bogus "might be used uninitialized" warning.
It's clear from reading the logic of the function that produces the
warning that the variable will not be used uninitialized, but the
compiler just isn't smart enough, I guess. Marked XXX for future reference.
 1.15  13-Oct-1996  christos backout kprintf changes
 1.14  10-Oct-1996  christos printf -> kprintf, sprintf -> ksprintf
 1.13  12-May-1996  mycroft Use intr.h.
 1.12  07-May-1996  thorpej Changed struct ifnet to have a pointer to the softc of the underlying
device and a printable "external name" (name + unit number), thus eliminating
if_name and if_unit. Updated interface to (*if_watchdog)() and (*if_reset)()
to take a struct ifnet *, rather than a unit number.
 1.11  11-Apr-1996  cgd update for addition of a machine-dependent cookie as the first argument
to isa_intr_{,dis}establish().
 1.10  08-Apr-1996  mycroft If we dequeue a packet due to excessive collisions, make sure we check
to see if the queue length has dropped to 0.
 1.9  17-Mar-1996  thorpej New device attachment scheme:

- split softc size and match/attach out from cfdriver into
a new struct cfattach.

- new "attach" directive for files.*. May specify the name of
the cfattach structure, so that devices may be easily attached
to parents with different autoconfiguration semantics.
 1.8  24-Dec-1995  mycroft The IST_* and IPL_* constants are not bus-specific; don't treat them as such.
Change splimp -> splnet in Ethernet, ARCnet, and FDDI drivers.
 1.7  07-Aug-1995  mycroft Fix another comment.
 1.6  07-Aug-1995  mycroft Make this interface simplex. It's more efficient, and sidesteps the
problem of receiving our own multicasts in promiscuous mode. Also, fix
some outdated comments.
 1.5  23-Jul-1995  mycroft Init functions are always called at splimp().
 1.4  23-Jul-1995  mycroft Always use m_pkthdr.len on output. Panic if M_PKTHDR is not set.
 1.3  28-Jun-1995  cgd note that most of dev/ic's contents have changed names
 1.2  12-Jun-1995  mycroft Remove check for if_addrlist == 0; if_attach() always puts one address on
the list, so this is a noop.
 1.1  01-May-1995  mycroft Add Masahiro SEKIGUCHI's MB8696[05] driver, ported, with some additional
changes by me:
* Make autoconfiguration work correctly for more models of AT1700.
* Make the debugging code more robust and complete.
* Tweak the output routine for better performance, and to eliminate an ugly
kluge.
Various other style cleanup. Needs more work.
 1.16.4.3  10-Mar-1997  is netinet/if_ether.h => netinet/if_inarp.h
 1.16.4.2  27-Feb-1997  is Removed #include <route.h> and #include <netisr.h>. They're not needed, and
the latter will go away soon.
 1.16.4.1  25-Feb-1997  is Convert to the new world order.
 1.24.8.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.25.2.1  22-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.26.4.3  11-Dec-2002  thorpej Sync with HEAD.
 1.26.4.2  18-Oct-2002  nathanw Catch up to -current.
 1.26.4.1  21-Jun-2001  nathanw Catch up to -current.
 1.27.2.1  10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.33.2.1  17-Jan-2005  skrll Sync with HEAD.
 1.35.70.1  02-Jun-2008  mjf Sync with HEAD.
 1.36.18.1  13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.36.4.1  16-May-2009  yamt sync with head
 1.37.12.1  17-Apr-2012  yamt sync with head
 1.38.2.1  18-Feb-2012  mrg merge to -current.
 1.39.24.1  06-Jun-2015  skrll Sync with HEAD
 1.39.6.1  03-Dec-2017  jdolecek update from HEAD
 1.40.36.1  01-Aug-2021  thorpej Sync with HEAD.

RSS XML Feed