Home | History | Annotate | Download | only in isa
History log of /src/sys/dev/isa/if_ne_isa.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  11-Dec-2005  christos branches: 1.21.20; 1.21.22;
merge ktrace-lwp.
 1.20  27-Feb-2005  perry branches: 1.20.4;
nuke trailing whitespace
 1.19  04-Feb-2005  perry de-__P
 1.18  14-Sep-2004  drochner branches: 1.18.4; 1.18.6;
Separate the namespace for default (ie unspecified) locators used
by the isa.c bus driver and the "address/whatever not specified"
argument passed to leaf device drivers.
The former is "ISACF_XXX_DEFAULT" as generaterd by config(8), the latter
"ISA_UNKNOWN_XXX", defined in isavar.h.
This way we save a dependency of every ISA device driver on "locators.h".
 1.17  13-Feb-2004  wiz RealTek -> Realtek.
 1.16  02-Oct-2002  thorpej branches: 1.16.6;
Fix sizeof and whitespace bug from the script I'm using to do the
CFATTACH_DECL conversion. (Grumble.)
 1.15  02-Oct-2002  thorpej Use CFATTACH_DECL().
 1.14  27-Sep-2002  thorpej Declare all cfattach structures const.
 1.13  07-Jan-2002  thorpej Overhaul of the ISA autoconfiguration code to support direct
configuration of devices logically attached to the ISA bus:

* Change the isa_attach_args to have arrays of io, mem, irq, drq
resources.
* Add a "pnpnames" and a linked list of "pnpcompatnames" to the
isa_attach_args. If either of these members are non-NULL,
direct configuration of the bus is being performed. Add an
ISA_DIRECT_CONFIG() macro to test for this.
* Drivers are not allowed to modify the isa_attach_args unless
direct configuration is not being performed and the probe fucntion
is returning success.
* Adapt device drivers -- currently, all driver probe routines return
"no match" if ISA_DIRECT_CONFIG() evaluates to true.
 1.12  13-Nov-2001  lukem add RCSID
 1.11  08-Jul-2001  thorpej branches: 1.11.2;
Remove unnecessary include files. From Onno van der Linden.
 1.10  12-Feb-2001  thorpej branches: 1.10.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.9  01-Nov-1998  christos branches: 1.9.12;
make this compile again (missing semi-colon)
 1.8  31-Oct-1998  thorpej Add code to detect a RealTek 8019 chip, and use the media selection
support if present.
 1.7  28-Oct-1998  thorpej Add media list, media list count, and default media arguments to
ne2000_attach().
 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  19-Oct-1997  thorpej Use symbolic names for default locator values.
 1.2  14-Oct-1997  thorpej Pulldown from marc-pcmcia branch: ISA front-end for "ne" driver.
 1.1  14-Oct-1997  thorpej branches: 1.1.2;
file if_ne_isa.c was initially added on branch marc-pcmcia.
 1.1.2.2  14-Oct-1997  thorpej Mark this interface as enabled right from the get-go.
 1.1.2.1  14-Oct-1997  thorpej Split off NE2000 support from the ISA "ed" driver, and create a new "ne"
driver that deals with NE2000s and compatibles on ISA, PCI, and PCMCIA
busses.

This driver uses the generic DP8390 core chipset back-end.
 1.9.12.1  12-Mar-2001  bouyer Sync with HEAD.
 1.10.2.5  18-Oct-2002  nathanw Catch up to -current.
 1.10.2.4  28-Feb-2002  nathanw Catch up to -current.
 1.10.2.3  11-Jan-2002  nathanw More catchup.
 1.10.2.2  14-Nov-2001  nathanw Catch up to -current.
 1.10.2.1  24-Aug-2001  nathanw Catch up with -current.
 1.11.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.11.2.1  10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.16.6.5  04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.16.6.4  04-Feb-2005  skrll Sync with HEAD.
 1.16.6.3  21-Sep-2004  skrll Fix the sync with head I botched.
 1.16.6.2  18-Sep-2004  skrll Sync with HEAD.
 1.16.6.1  03-Aug-2004  skrll Sync with HEAD
 1.18.6.2  19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.18.6.1  12-Feb-2005  yamt sync with head.
 1.18.4.1  29-Apr-2005  kent sync with -current
 1.20.4.3  17-Mar-2008  yamt sync with head.
 1.20.4.2  27-Oct-2007  yamt sync with head.
 1.20.4.1  30-Dec-2006  yamt sync with head.
 1.21.22.2  10-Dec-2006  yamt sync with head.
 1.21.22.1  22-Oct-2006  yamt sync with head
 1.21.20.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