Home | History | Annotate | Download | only in ic
History log of /src/sys/dev/ic/am7990.c
RevisionDateAuthorComments
 1.84  25-Sep-2022  thorpej Remove unnecessary include of <sys/malloc.h>.
 1.83  20-Oct-2020  roy le(4): add link status change reporting to drivers which support it

Reviewed by thorpej@
Tested by martin@
 1.82  19-Mar-2020  thorpej Don't bother with IFF_OACTIVE. Just keep processing so long as
sc->sc_no_td is less than sc->sc_ntbuf.
 1.81  29-Jan-2020  thorpej Adopt <net/if_stats.h>.
 1.80  28-Nov-2019  isaki branches: 1.80.2;
Use NULL for pointer.
 1.79  26-Jun-2018  msaitoh branches: 1.79.2;
Implement the BPF direction filter (BIOC[GS]DIRECTION). It provides backward
compatibility with BIOC[GS]SEESENT ioctl. The userland interface is the same
as FreeBSD.

This change also fixes a bug that the direction is misunderstand on some
environment by passing the direction to bpf_mtap*() instead of checking
m->m_pkthdr.rcvif.
 1.78  22-Jun-2018  msaitoh It's not required to include net/bpfdesc.h. Remove it.
 1.77  23-May-2017  ozaki-r branches: 1.77.2; 1.77.8;
Fix builds
 1.76  23-May-2017  ozaki-r Apply deferred if_start to more drivers

And annotate some XXX_start as it runs in softint to clarify that
it doesn't need deferred if_start.
 1.75  13-Apr-2015  riastradh Convert sys/dev to use <sys/rndsource.h>.
 1.74  02-Feb-2012  tls branches: 1.74.6; 1.74.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.73  05-Apr-2010  joerg branches: 1.73.8; 1.73.12;
Push the bpf_ops usage back into bpf.h. Push the common ifp->if_bpf
check into the inline functions as well the fourth argument for
bpf_attach.
 1.72  19-Jan-2010  pooka branches: 1.72.2; 1.72.4;
Redefine bpf linkage through an always present op vector, i.e.
#if NBPFILTER is no longer required in the client. This change
doesn't yet add support for loading bpf as a module, since drivers
can register before bpf is attached. However, callers of bpf can
now be modularized.

Dynamically loadable bpf could probably be done fairly easily with
coordination from the stub driver and the real driver by registering
attachments in the stub before the real driver is loaded and doing
a handoff. ... and I'm not going to ponder the depths of unload
here.

Tested with i386/MONOLITHIC, modified MONOLITHIC without bpf and rump.
 1.71  28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.70  04-Apr-2008  tsutsui branches: 1.70.2; 1.70.4;
Split device_t/softc for le(4) and variants and misc cosmetic changes.
 1.69  26-Aug-2007  dyoung branches: 1.69.22;
Constify.
 1.68  11-Dec-2005  christos branches: 1.68.30; 1.68.40; 1.68.44;
merge ktrace-lwp.
 1.67  27-Feb-2005  perry branches: 1.67.4;
nuke trailing whitespace
 1.66  24-Aug-2004  thorpej branches: 1.66.4; 1.66.6;
Use ANSI function decls and more use of static.
 1.65  07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22364, verified by myself.
 1.64  13-Nov-2001  lukem branches: 1.64.16;
add/cleanup RCSID
 1.63  07-Jul-2001  thorpej branches: 1.63.2;
bcopy -> memcpy
 1.62  30-May-2001  mrg use _KERNEL_OPT
 1.61  14-Dec-2000  thorpej branches: 1.61.2;
ALTQ'ify.
 1.60  28-Sep-2000  tsutsui 6 -> ETHER_ADDR_LEN
 1.59  24-Sep-2000  jdolecek am7990[0]_intr(): only print the "entering with isr=XX" debug message
if compiled with LEDEBUG > 1
 1.58  16-Apr-2000  matt only print packets if debug > 1
 1.57  30-Mar-2000  augustss Remove register declarations.
 1.56  01-Dec-1999  thorpej Quiet down the "excessive collision" messages w/ LEDEBUG. None of the other
Ethernet drivers really report this quite as loudly as this did.
 1.55  29-Oct-1999  ragge DEC specifies that dealing with CSR0 in the interrupt routine must be
done in a special order. Do that here also, but for now inside #ifdef vax
because of the (possible) impact on other arch's.
Now vaxen without IOMMU can use the MI LANCE driver.
 1.54  15-Aug-1998  mycroft branches: 1.54.4; 1.54.12; 1.54.14; 1.54.16;
Assign my copyrights to TNF.
 1.53  08-Aug-1998  mycroft Use splnet, not splimp.
 1.52  24-Jul-1998  drochner remove unneeded typecast
 1.51  21-Jul-1998  drochner Split the LANCE driver into a part specific to the classic chip with
24-bit DMA addresses, and an independant part.
Implement support for the 32-bit mode in the newer (79c9xx) chips.
 1.50  07-Jul-1998  drochner from OpenBSD:
date: 1998/06/24 20:05:03; author: deraadt; state: Exp; lines: +4 -4
initialization error; joel@wmi.com

(affects debug printout only)
 1.49  05-Jul-1998  jonathan defopt NS, NSIP.
 1.48  05-Jul-1998  jonathan defopt LLC
 1.47  05-Jul-1998  jonathan defopt CCITT.
 1.46  05-Jul-1998  jonathan defopt INET, NETATALK.
 1.45  04-Jul-1998  jonathan defopt DDB.
 1.44  07-Jun-1998  fair the AM7990 is a controller, not a "card"; repair a misleading diagnostic.
 1.43  29-Mar-1998  mycroft Oops; make the table const.
 1.42  29-Mar-1998  mycroft Use a 4-bit table to speed up the CRC even further, without increasing the
code size too much.
 1.41  29-Mar-1998  mycroft Optimize the address CRC routines a bit.
 1.40  12-Jan-1998  thorpej Adjust for config changes.
 1.39  15-Oct-1997  gwr Bring back the optimized ether_cmp() that was lost when the
LLADDR() changes went in. Mainly relevant on the Sun3/50,
where LANCE_REVC_BUG has to be defined. Tested on sparc.
 1.38  13-Oct-1997  explorer o Make usage of /dev/random dependant on
pseudo-device rnd # /dev/random and in-kernel generator
in config files.

o Add declaration to all architectures.

o Clean up copyright message in rnd.c, rnd.h, and rndpool.c to include
that this code is derived in part from Ted Tyso's linux code.
 1.37  10-Oct-1997  explorer Add hooks to insert timing info into the random system
 1.36  05-Oct-1997  thorpej Copyright assigned to The NetBSD Foundation.
 1.35  28-Apr-1997  mycroft branches: 1.35.4;
Oops; forgot to GC the last mbuf allocated when out of clusters.
 1.34  25-Apr-1997  jonathan Pad of first mbuf in chain, even if it's a cluster (pr 3536).
Garbage-collect padding of header mbuf.
 1.33  24-Apr-1997  mycroft Fix typo in previous.
 1.32  24-Apr-1997  mycroft Do not force the initial part of a packet into a separate mbuf.
 1.31  24-Apr-1997  mycroft If we fail to allocate a cluster to hold a large packet, simply
drop it rather than using a chain of tiny mbufs.
 1.30  04-Apr-1997  pk Remove alignment requirement of ether_cmp(): turn it into a series of
byte comparisons. Compare the ethernet addresses backwards on the
assumption that address number byte 6 has the most random distribution,
so packets not for us spend the least time in here.
 1.29  27-Mar-1997  veego - new hardware reset hook, mainly for PCnet-ISA cards (79c960)
- new MD variable: sc_initmodemedia, 79c960 cards can select
between two ports, but this needs to be done in the MI init mode page
- new defines for PCnet-ISA cards (79c960)
 1.28  17-Mar-1997  is Signed shifts are evil.
Thanks to Michael Smith for reporting, Jason Thorpe for pointing to the
report, doing a quick workaround which pointed me to the right code part and
for testing the final fix.
 1.27  17-Mar-1997  thorpej - Add support for media selection via if_media. If the front-end
does not supply media types, default to the "manual" type.
- Clean up the ETHER_CMP stuff slightly.
- Keep track of our carrier status, for media status requests.
 1.26  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.25  09-Mar-1997  leo - Turn the sc_[tr]bufaddr fields into arrays of addresses instead of just
the base address. This allows for a more flexible layout of buffers
in the Lance's memory.
- Add a new element 'sc_saved_csr0' to am7990_softc. It's value is or-ed
with the current csr0 value in the am7990_intr() function. This allowes
for a 'deferred' interrupt sceme.
 1.24  06-Dec-1996  pk branches: 1.24.4;
Deal with Lance memory size 132KB (sparc `lebuffer' devices use this size).
 1.23  19-Nov-1996  gwr Use ether_cmp() on the sun3 (for the "le" driver - 3/50, 3/60)
because those have to assume LANCE_REVC_BUG, which causes the
driver to compare Ethernet addresses on every received frame.
 1.22  13-Oct-1996  christos backout kprintf changes
 1.21  10-Oct-1996  christos - printf -> kprintf, sprintf -> ksprintf
 1.20  05-Jul-1996  abrown Add a new function hook sc_nocarrier() to am7990_softc. If non-null, this
function is called when carrier is lost in lieu of a console message.
This is used by the sparc port to switch media types on Sun4m machines
if the appropriate link flags are set by ifconfig (see following commit
message). Should not affect ports that do not use sc_nocarrier().
 1.19  07-May-1996  thorpej Make the MI LANCE driver standalone, and use cfattach to resolve
naming conflicts between bus attachments on ports that can have
multiple instances of the LANCE.

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_start)()
to take a struct ifnet *, rather than a unit number.
 1.18  22-Apr-1996  christos Add a hardware dependent initialization function lehwinit()
 1.17  18-Apr-1996  cgd change LANCE copy & zero functions' names to start with amd7990_, and
remove their 'integrate' (usually defined to be 'static') keywords.
when lance drivers are split up by attachment, more than one file will
reference the copy/zero functions (i.e. not just the file that pulls in
am7990.c... and eventually inclusion of am7990.c should go away entirely).
 1.16  09-Apr-1996  pk Make this compile if LEDEBUG id defined.
 1.15  08-Apr-1996  jonathan Fixes for -Wall -Wmissing-prototypes:
remove unused variable "xfer" from the copy{to,from}buf_gap2() functions.
 1.14  26-Mar-1996  mycroft Format police.
 1.13  26-Mar-1996  gwr Allow the machine-dependent code to define a fast comparsion function
for ethernet addresses via the macro ETHER_CMP. (see sun3/dev/if_le.c)
Add a comment explaining the LANCE_REVC_BUG work-around section.
 1.12  16-Mar-1996  christos Make operator precedence explicit by parethesizing.
 1.11  14-Mar-1996  christos Bring prototypes into scope.
 1.10  02-Jan-1996  thorpej Back out the rint/tint hook stuff, and remove need to LEINTR_UNIT. The
hp300 was the last to use it.
 1.9  30-Dec-1995  thorpej Add hooks at the top of the tint and rint functions, conditionally called
if the CPP symbols LE_TINT_HOOK and LE_RINT_HOOK are defined, respectively.
The hooks are called by jumping though the sc_tint_hook and sc_rint_hook
members of the softc, and take the softc as an argument. Only ports which
need these hooks need to declare them in the softc.
 1.8  11-Dec-1995  mycroft Make lewatchdog() take an int, not a short.
 1.7  11-Dec-1995  mycroft Fix typo, and eliminate some unneeded local variables.
 1.6  11-Dec-1995  mycroft Make several informational messages #ifdef LEDEBUG.
 1.5  10-Dec-1995  mycroft Change format of probe messages slightly.
Add work-around for LANCE rev. C bug, iff LANCE_REVC_BUG is defined.
 1.4  25-Nov-1995  cgd allow bus-specific lance drivers to use machine-independent buffer/descriptor
copy functions, and convert isa and pmax drivers to do so.
 1.3  24-Jul-1995  mycroft Fix pasto.
 1.2  24-Jul-1995  mycroft Copy changes from ISA version.
 1.1  28-Jun-1995  cgd add charles's mostly-machine-independent lance driver, which is used
by the Alpha port.
 1.24.4.4  12-Mar-1997  is Merge in changes from Trunk
 1.24.4.3  10-Mar-1997  is netinet/if_ether.h => netinet/if_inarp.h
 1.24.4.2  27-Feb-1997  is Clean up a bit. No need to set sc_enaddr from SIOCSIFADDR; nothing reads this
after ether_ifattach().
 1.24.4.1  21-Feb-1997  is Transform to the new world order.
 1.35.4.1  14-Oct-1997  thorpej Update marc-pcmcia branch from trunk.
 1.54.16.1  27-Dec-1999  wrstuden Pull up to last week's -current.
 1.54.14.1  15-Nov-1999  fvdl Sync with -current
 1.54.12.2  05-Jan-2001  bouyer Sync with HEAD
 1.54.12.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.54.4.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.61.2.3  14-Nov-2001  nathanw Catch up to -current.
 1.61.2.2  24-Aug-2001  nathanw Catch up with -current.
 1.61.2.1  21-Jun-2001  nathanw Catch up to -current.
 1.63.2.1  10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.64.16.5  04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.64.16.4  21-Sep-2004  skrll Fix the sync with head I botched.
 1.64.16.3  18-Sep-2004  skrll Sync with HEAD.
 1.64.16.2  25-Aug-2004  skrll Sync with HEAD.
 1.64.16.1  03-Aug-2004  skrll Sync with HEAD
 1.66.6.1  19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.66.4.1  29-Apr-2005  kent sync with -current
 1.67.4.1  03-Sep-2007  yamt sync with head.
 1.68.44.1  03-Sep-2007  jmcneill Sync with HEAD.
 1.68.40.1  03-Sep-2007  skrll Sync with HEAD.
 1.68.30.1  09-Oct-2007  ad Sync with head.
 1.69.22.1  02-Jun-2008  mjf Sync with HEAD.
 1.70.4.3  11-Aug-2010  yamt sync with head.
 1.70.4.2  11-Mar-2010  yamt sync with head
 1.70.4.1  16-May-2008  yamt sync with head.
 1.70.2.1  18-May-2008  yamt sync with head.
 1.72.4.1  30-May-2010  rmind sync with head
 1.72.2.1  30-Apr-2010  uebayasi Sync with HEAD.
 1.73.12.1  18-Feb-2012  mrg merge to -current.
 1.73.8.1  17-Apr-2012  yamt sync with head
 1.74.24.2  28-Aug-2017  skrll Sync with HEAD
 1.74.24.1  06-Jun-2015  skrll Sync with HEAD
 1.74.6.1  03-Dec-2017  jdolecek update from HEAD
 1.77.8.2  28-Jul-2018  pgoyette Sync with HEAD
 1.77.8.1  25-Jun-2018  pgoyette Sync with HEAD
 1.77.2.1  26-Jul-2018  snj Pull up following revision(s) (requested by msaitoh in ticket #938):
sys/arch/acorn32/podulebus/if_ie.c: revision 1.41
sys/arch/amiga/dev/if_es.c: revision 1.58
sys/arch/amiga/dev/if_qn.c: revision 1.45
sys/arch/arm/at91/at91emac.c: revision 1.20
sys/arch/arm/ep93xx/epe.c: revision 1.37
sys/arch/emips/ebus/if_le_ebus.c: revision 1.14
sys/arch/emips/ebus/if_le_ebus.c: revision 1.15
sys/arch/mac68k/dev/if_mc.c: revision 1.46
sys/arch/macppc/dev/am79c950.c: revision 1.39
sys/arch/newsmips/apbus/if_sn.c: revision 1.40
sys/arch/next68k/dev/mb8795.c: revision 1.59
sys/arch/playstation2/dev/if_smap.c: revision 1.25
sys/arch/playstation2/dev/if_smap.c: revision 1.26
sys/arch/sun2/dev/if_ec.c: revision 1.28
sys/arch/sun3/dev/if_ie.c: revision 1.63
sys/arch/x68k/dev/if_ne_intio.c: revision 1.19
sys/arch/xen/xen/if_xennet_xenbus.c: revision 1.75
sys/arch/xen/xen/xennetback_xenbus.c: revision 1.63
sys/dev/bi/if_ni.c: revision 1.45
sys/dev/cadence/if_cemac.c: revision 1.12
sys/dev/ic/am7990.c: revision 1.78
sys/dev/ic/am79900.c: revision 1.27
sys/dev/ic/an.c: revision 1.67
sys/dev/ic/cs89x0.c: revision 1.40
sys/dev/ic/dm9000.c: revision 1.13
sys/dev/ic/dm9000.c: revision 1.14
sys/dev/ic/dp8390.c: revision 1.88
sys/dev/ic/elink3.c: revision 1.141
sys/dev/ic/elinkxl.c: revision 1.122
sys/dev/ic/hme.c: revision 1.98
sys/dev/ic/i82586.c: revision 1.77
sys/dev/ic/lance.c: revision 1.53
sys/dev/ic/mb86950.c: revision 1.27
sys/dev/ic/mb86960.c: revision 1.86
sys/dev/ic/mtd803.c: revision 1.34
sys/dev/ic/pdq_ifsubr.c: revision 1.59
sys/dev/ic/rrunner.c: revision 1.86
sys/dev/ic/seeq8005.c: revision 1.58
sys/dev/ic/sgec.c: revision 1.47
sys/dev/ic/smc90cx6.c: revision 1.72
sys/dev/ic/smc91cxx.c: revision 1.96
sys/dev/ic/tropic.c: revision 1.49
sys/dev/ic/wi.c: revision 1.245
sys/dev/isa/if_eg.c: revision 1.93
sys/dev/isa/if_el.c: revision 1.95
sys/dev/isa/if_iy.c: revision 1.101
sys/dev/ofw/ofnet.c: revision 1.58
sys/dev/pci/if_alc.c: revision 1.27
sys/dev/pci/if_de.c: revision 1.152
sys/dev/pci/if_fpa.c: revision 1.61
sys/dev/pci/if_jme.c: revision 1.34
sys/dev/pci/if_tl.c: revision 1.108
sys/dev/pci/if_vte.c: revision 1.19
sys/dev/pci/ixgbe/ixgbe.h: revision 1.50
sys/dev/pcmcia/if_cnw.c: revision 1.62
sys/dev/pcmcia/if_malo_pcmcia.c: revision 1.17
sys/dev/pcmcia/if_ray.c: revision 1.89
sys/dev/pcmcia/if_xi.c: revision 1.81
sys/dev/pcmcia/mhzc.c: revision 1.51
sys/dev/pcmcia/xirc.c: revision 1.34
sys/dev/qbus/if_de.c: revision 1.33
sys/dev/qbus/if_qe.c: revision 1.78
sys/dev/qbus/if_qt.c: revision 1.22
sys/dev/sbus/be.c: revision 1.87
sys/dev/sbus/qe.c: revision 1.68
sys/dev/scsipi/if_se.c: revision 1.96
sys/dev/usb/if_atu.c: revision 1.59
sys/net/if_l2tp.c: revision 1.28 via patch
sys/net/if_ppp.c: revision 1.160
It's not required to include net/bpfdesc.h. Remove it.
--
Simplify like other drivers. NULL check of ifp->if_bpf is done in
bpf_mtap(), so it's not required to do it here.
--
Remove duplicated inclusion of net/bpf.h.
--
Remove duplicated inclusion of net/bpf.h.
--
Simplify bpf_mtap() call. No functional change.
 1.79.2.1  08-Apr-2020  martin Merge changes from current as of 20200406
 1.80.2.1  29-Feb-2020  ad Sync with head.

RSS XML Feed