Home | History | Annotate | Download | only in isapnp
History log of /src/sys/dev/isapnp/if_ne_isapnp.c
RevisionDateAuthorComments
 1.27  03-Mar-2010  tsutsui Put several fixes to ne(4) driver for better 8 bit mode support,
especially on RTL8019AS which is also used for non-ISA local bus of
embedded controllers and some m68k machines like atari and x68k.

* move RTL8019 probe and attach code from each bus attachment
to MI ne2000_detect() and ne2000_attach()
* change a method for backend and attachment to specify 8 bit mode
to use a new sc->sc_quirk member, instead of sc->sc_dmawidth
* handle more NE2000 8 bit mode specific settings, including
bus_space(9) access width and available size of buffer memory
* add a function to detect NE2000 8 bit mode
(disabled by default, but enalbed by options NE2000_DETECT_8BIT
to avoid possible regression on various ISA clones)
* fix ipkdb attachment accordingly (untested)

Tested on two NE2000 ISA variants (RTL8019AS and another clone named UL0001)
in both 8 bit and 16 bit mode on i386. "Looks good" from nonaka@.

See my post on tech-kern for details:
http://mail-index.NetBSD.org/tech-kern/2010/02/26/msg007423.html
 1.26  28-Apr-2008  martin branches: 1.26.10; 1.26.20;
Remove clause 3 and 4 from TNF licenses
 1.25  12-Mar-2008  cube branches: 1.25.2; 1.25.4;
Split device_t and softc for the NE2000 Ethernet chip and all its variants
and attachments. Use device_t accessors, correct types, and ANSIfy when
appropriate.
 1.24  19-Oct-2007  ad branches: 1.24.12; 1.24.16;
machine/{bus,cpu,intr}.h -> sys/{bus,cpu,intr}.h
 1.23  16-Nov-2006  christos branches: 1.23.8; 1.23.22; 1.23.24; 1.23.28;
__unused removal on arguments; approved by core.
 1.22  12-Oct-2006  christos - sprinkle __unused on function decls.
- fix a couple of unused bugs
- no more -Wno-unused for i386
 1.21  29-Mar-2006  thorpej branches: 1.21.8; 1.21.10;
Use device_private().
 1.20  11-Dec-2005  christos branches: 1.20.4; 1.20.6; 1.20.8; 1.20.10; 1.20.12;
merge ktrace-lwp.
 1.19  04-Feb-2005  perry branches: 1.19.6;
de-__P
 1.18  13-Feb-2004  wiz branches: 1.18.8; 1.18.10;
RealTek -> Realtek.
 1.17  02-Oct-2002  thorpej branches: 1.17.6;
Add trailing ; to CFATTACH_DECL.
 1.16  30-Sep-2002  thorpej Use CFATTACH_DECL().
 1.15  27-Sep-2002  thorpej Declare all cfattach structures const.
 1.14  13-Nov-2001  lukem add RCSID
 1.13  08-Jul-2001  thorpej branches: 1.13.2;
Remove unnecessary include files. From Onno van der Linden.
 1.12  12-Feb-2001  thorpej branches: 1.12.2;
Adjust the way that media is initialized on DP8390-compatible
chips. The dp8390_softc now has media_init and media_fini
function pointers that do the work.
 1.11  22-Mar-1999  mycroft branches: 1.11.8;
Reject variant numbers which are too large (so that a new version of isapnpdevs
with an old driver will not lose mysteriously).
 1.10  22-Mar-1999  mycroft Update callers of isapnp_devmatch().
 1.9  31-Oct-1998  thorpej Add code to detect a RealTek 8019 chip, and use the media selection
support if present.
 1.8  28-Oct-1998  thorpej Add media list, media list count, and default media arguments to
ne2000_attach().
 1.7  23-Jul-1998  christos Create a master list of pnp logical and compatibility device codes instead
of hard-coding it into each driver and use a centralized probe function.
 1.6  05-Jul-1998  jonathan defopt NS, NSIP.
 1.5  05-Jul-1998  jonathan defopt INET, NETATALK.
 1.4  09-Jun-1998  thorpej Nuke __BROKEN_INDIRECT_CONFIG.
 1.3  17-Dec-1997  thorpej Don't initialize softc's space tags/handles until isapnp_config() has
been called. Pointed out by Lennart Augustsson.
 1.2  28-Oct-1997  christos DTRT with level and edge interrupts:
- add a type field to the isapnp_pin struct and set to IST_EDGE or
IST_LEVEL depending on the card configuration data.
- use the irq type field in all the drivers instead of hardcoding it.
 1.1  16-Oct-1997  matt branches: 1.1.2;
An ISA Plug-and-Pray attachment for NE2000-compatible cards.
 1.1.2.2  17-Dec-1997  mellon Pull rev 1.3 up from trunk (thorpej)
 1.1.2.1  29-Oct-1997  thorpej Pull up from trunk: DTRT with level and edge interrupts.
 1.11.8.1  12-Mar-2001  bouyer Sync with HEAD.
 1.12.2.3  18-Oct-2002  nathanw Catch up to -current.
 1.12.2.2  14-Nov-2001  nathanw Catch up to -current.
 1.12.2.1  24-Aug-2001  nathanw Catch up with -current.
 1.13.2.2  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.13.2.1  10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.17.6.4  04-Feb-2005  skrll Sync with HEAD.
 1.17.6.3  21-Sep-2004  skrll Fix the sync with head I botched.
 1.17.6.2  18-Sep-2004  skrll Sync with HEAD.
 1.17.6.1  03-Aug-2004  skrll Sync with HEAD
 1.18.10.1  12-Feb-2005  yamt sync with head.
 1.18.8.1  29-Apr-2005  kent sync with -current
 1.19.6.4  17-Mar-2008  yamt sync with head.
 1.19.6.3  27-Oct-2007  yamt sync with head.
 1.19.6.2  30-Dec-2006  yamt sync with head.
 1.19.6.1  21-Jun-2006  yamt sync with head.
 1.20.12.1  31-Mar-2006  tron Merge 2006-03-31 NetBSD-current into the "peter-altq" branch.
 1.20.10.1  19-Apr-2006  elad sync with head.
 1.20.8.1  01-Apr-2006  yamt sync with head.
 1.20.6.1  22-Apr-2006  simonb Sync with head.
 1.20.4.1  09-Sep-2006  rpaulo sync with head
 1.21.10.2  10-Dec-2006  yamt sync with head.
 1.21.10.1  22-Oct-2006  yamt sync with head
 1.21.8.1  18-Nov-2006  ad Sync with head.
 1.23.28.1  25-Oct-2007  bouyer Sync with HEAD.
 1.23.24.2  23-Mar-2008  matt sync with HEAD
 1.23.24.1  06-Nov-2007  matt sync with HEAD
 1.23.22.1  26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.23.8.1  23-Oct-2007  ad Sync with head.
 1.24.16.2  02-Jun-2008  mjf Sync with HEAD.
 1.24.16.1  03-Apr-2008  mjf Sync with HEAD.
 1.24.12.1  24-Mar-2008  keiichi sync with head.
 1.25.4.2  11-Mar-2010  yamt sync with head
 1.25.4.1  16-May-2008  yamt sync with head.
 1.25.2.1  18-May-2008  yamt sync with head.
 1.26.20.1  30-Apr-2010  uebayasi Sync with HEAD.
 1.26.10.1  20-Nov-2010  riz Pull up following revision(s) (requested by tsutsui in ticket #1367):
sys/dev/ic/ne2000var.h: revision 1.25
sys/arch/atari/conf/MILAN.in: revision 1.24
sys/arch/atari/conf/MILAN.in: revision 1.25
sys/dev/ic/ne2000.c: revision 1.71
sys/dev/ic/ne2000.c: revision 1.72
sys/arch/atari/dev/if_ne_mb.c: revision 1.1
sys/arch/atari/dev/if_ne_mb.c: revision 1.2
sys/arch/atari/conf/MILAN-PCIIDE: revision 1.69
sys/arch/atari/conf/HADES.in: revision 1.10
sys/arch/atari/conf/HADES.in: revision 1.11
sys/arch/x68k/dev/if_ne_neptune.c: revision 1.20
sys/dev/isa/if_ne_isa.c: revision 1.27
sys/arch/atari/atari/autoconf.c: revision 1.57
sys/dev/ic/ne2000.c: revision 1.62
sys/dev/isapnp/if_ne_isapnp.c: revision 1.27
sys/arch/atari/conf/files.atari: revision 1.117
sys/arch/atari/conf/HADES: revision 1.88
sys/arch/atari/conf/GENERIC.in: revision 1.85
sys/dev/ic/ne2000.c: revision 1.65
sys/dev/ic/ne2000.c: revision 1.66
sys/dev/ic/ne2000.c: revision 1.68
sys/arch/atari/conf/MILAN-ISAIDE: revision 1.65
distrib/notes/atari/hardware: revision 1.24
sys/conf/files: revision 1.980
sys/dev/ic/ne2000var.h: revision 1.21
sys/arch/x68k/dev/if_ne_intio.c: revision 1.16
sys/dev/ic/dp8390.c: revision 1.74
sys/dev/ic/dp8390.c: revision 1.75
Added NE2000 with 8bit bus width support.
reviewd by tsutsui@ at tech-kern ML.
Fix a wrong calculation bug around RX ring buffer memory address
slipped in about sixteen years ago. Fortunately, it had been working
for ages because some devices used address zero and other devices
ignored wrong higher bits.
Tested on we(4) (SMC Elite Ultra) and ne(4) (NE2000 compatible
named UL0001) on ISA.
Note FreeBSD also uses the same correct value in their ed(4) driver.
Now dp8390_config() calculates mem_ring correctly so
no longer need to override it in ne2000_attach().
Use roundup2() in <sys/param.h> rather than a conditional.
Also fix a wrong mem_ring calculation in dp8390_ipkdb_attach().
Put several fixes to ne(4) driver for better 8 bit mode support,
especially on RTL8019AS which is also used for non-ISA local bus of
embedded controllers and some m68k machines like atari and x68k.
* move RTL8019 probe and attach code from each bus attachment
to MI ne2000_detect() and ne2000_attach()
* change a method for backend and attachment to specify 8 bit mode
to use a new sc->sc_quirk member, instead of sc->sc_dmawidth
* handle more NE2000 8 bit mode specific settings, including
bus_space(9) access width and available size of buffer memory
* add a function to detect NE2000 8 bit mode
(disabled by default, but enalbed by options NE2000_DETECT_8BIT
to avoid possible regression on various ISA clones)
* fix ipkdb attachment accordingly (untested)
Tested on two NE2000 ISA variants (RTL8019AS and another clone named UL0001)
in both 8 bit and 16 bit mode on i386. "Looks good" from nonaka@.
See my post on tech-kern for details:
http://mail-index.NetBSD.org/tech-kern/2010/02/26/msg007423.html
No need to override mem_ring value in ne2000_ipkdb_attach()
since a wrong calculation in dp8390_ipkdb_attach() was fixed.
Don't warn about DMA timeout during probe.
Add support for the EtherNEC.
The EtherNEC is yet another user designed device for Atari machines,
an NE2000 based ISA board connected to Atari's ROM cartridge slot with
simple but ingenious interface and cartridge port adapter, and
it's the most available network solution for the old Atari machines.
See following pages for more details about EtherNEC:
http://hardware.atari.org/ether/
http://home.arcor.de/thomas.redelberger/prj/atari/etherne/
http://www.freemint.org/ethernec/ethernec.html
Also note EtherNEC.
Use callout_schedule(9) rather than callout_reset(9) on polling
as callout(9) man says.
Remove EtherNEC from HADES and MILAN.
They have ISA so no one will bother to connect ISA NE2000 via EtherNEC.
Regen from HADES.in rev 1.11 and MILAN.in rev 1.25:
Remove EtherNEC from HADES and MILAN.
They have ISA so no one will bother to connect ISA NE2000 via EtherNEC.

RSS XML Feed