History log of /freebsd-9.3-release/sys/dev/ed/
Revision Date Author Comments
267654 20-Jun-2014 gjb

Copy stable/9 to releng/9.3 as part of the 9.3-RELEASE cycle.

Approved by: re (implicit)
Sponsored by: The FreeBSD Foundation


264943 25-Apr-2014 marius

MFC: r260050, r261528

- Switch to using the common MII bitbang'ing code instead of duplicating it.
- Based on lessons learnt with dc(4) (see r185750), add bus space barriers to
the MII bitbang read and write functions as well as to instances of page
switching.
- Add missing locking to ed_ifmedia_{upd,sts}().
- Canonicalize some messages.
- Based on actual functionality, ED_TC5299J_MII_DIROUT should be rather named
ED_TC5299J_MII_DIRIN.
- Remove unused headers.
- Use DEVMETHOD_END.
- Use NULL instead of 0 for pointers.


248078 09-Mar-2013 marius

MFC: r243857 (partial)

Mechanically substitute flags from historic mbuf allocator with
malloc(9) flags in sys/dev.


235743 21-May-2012 jhb

Toss bogus mergeinfo.


235738 21-May-2012 sbruno

MFC r235634

Fix and update battery status bits according to linux driver


229648 05-Jan-2012 yongari

MFC r228286:
Fix off by one error in mbuf access. Previously it caused panic.
While I'm here use NULL to compare mbuf pointer and add additional
check for zero length mbuf before accessing the mbuf.

PR: kern/162932


225736 23-Sep-2011 kensmith

Copy head to stable/9 as part of 9.0-RELEASE release cycle.

Approved by: re (implicit)


221407 03-May-2011 marius

- Remove attempts to implement setting of BMCR_LOOP/MIIF_NOLOOP
(reporting IFM_LOOP based on BMCR_LOOP is left in place though as
it might provide useful for debugging). For most mii(4) drivers it
was unclear whether the PHYs driven by them actually support
loopback or not. Moreover, typically loopback mode also needs to
be activated on the MAC, which none of the Ethernet drivers using
mii(4) implements. Given that loopback media has no real use (and
obviously hardly had a chance to actually work) besides for driver
development (which just loopback mode should be sufficient for
though, i.e one doesn't necessary need support for loopback media)
support for it is just dropped as both NetBSD and OpenBSD already
did quite some time ago.
- Let mii_phy_add_media() also announce the support of IFM_NONE.
- Restructure the PHY entry points to use a structure of entry points
instead of discrete function pointers, and extend this to include
a "reset" entry point. Make sure any PHY-specific reset routine is
always used, and provide one for lxtphy(4) which disables MII
interrupts (as is done for a few other PHYs we have drivers for).
This includes changing NIC drivers which previously just called the
generic mii_phy_reset() to now actually call the PHY-specific reset
routine, which might be crucial in some cases. While at it, the
redundant checks in these NIC drivers for mii->mii_instance not being
zero before calling the reset routines were removed because as soon
as one PHY driver attaches mii->mii_instance is incremented and we
hardly can end up in their media change callbacks etc if no PHY driver
has attached as mii_attach() would have failed in that case and not
attach a miibus(4) instance.
Consequently, NIC drivers now no longer should call mii_phy_reset()
directly, so it was removed from EXPORT_SYMS.
- Add a mii_phy_dev_attach() as a companion helper to mii_phy_dev_probe().
The purpose of that function is to perform the common steps to attach
a PHY driver instance and to hook it up to the miibus(4) instance and to
optionally also handle the probing, addition and initialization of the
supported media. So all a PHY driver without any special requirements
has to do in its bus attach method is to call mii_phy_dev_attach()
along with PHY-specific MIIF_* flags, a pointer to its PHY functions
and the add_media set to one. All PHY drivers were updated to take
advantage of mii_phy_dev_attach() as appropriate. Along with these
changes the capability mask was added to the mii_softc structure so
PHY drivers taking advantage of mii_phy_dev_attach() but still
handling media on their own do not need to fiddle with the MII attach
arguments anyway.
- Keep track of the PHY offset in the mii_softc structure. This is done
for compatibility with NetBSD/OpenBSD.
- Keep track of the PHY's OUI, model and revision in the mii_softc
structure. Several PHY drivers require this information also after
attaching and previously had to wrap their own softc around mii_softc.
NetBSD/OpenBSD also keep track of the model and revision on their
mii_softc structure. All PHY drivers were updated to take advantage
as appropriate.
- Convert the mebers of the MII data structure to unsigned where
appropriate. This is partly inspired by NetBSD/OpenBSD.
- According to IEEE 802.3-2002 the bits actually have to be reversed
when mapping an OUI to the MII ID registers. All PHY drivers and
miidevs where changed as necessary. Actually this now again allows to
largely share miidevs with NetBSD, which fixed this problem already
9 years ago. Consequently miidevs was synced as far as possible.
- Add MIIF_NOMANPAUSE and mii_phy_flowstatus() calls to drivers that
weren't explicitly converted to support flow control before. It's
unclear whether flow control actually works with these but typically
it should and their net behavior should be more correct with these
changes in place than without if the MAC driver sets MIIF_DOPAUSE.

Obtained from: NetBSD (partially)
Reviewed by: yongari (earlier version), silence on arch@ and net@


217323 12-Jan-2011 mdf

sysctl(9) cleanup checkpoint: amd64 GENERIC builds cleanly.

Commit the rest of the devices.


213894 15-Oct-2010 marius

Converted the remainder of the NIC drivers to use the mii_attach()
introduced in r213878 instead of mii_phy_probe(). Unlike r213893 these
are only straight forward conversions though.

Reviewed by: yongari


211793 25-Aug-2010 imp

On second thought, we need to force 16-bit mode


211792 25-Aug-2010 imp

Prodded by Yongari, add support for Holtek HT80232. Add the device
ID, plus the ability to force '16-bit mode' which really means NE-2000
mode. Other open source drivers suggest that the Holtek misbehaves if
you allow the 8-bit probe. Also, all of the PCI chips emulate
NE-2000ish cards, so always force 16-bit mode for memory transfers.

PR: 84202 (patch not used)


211764 24-Aug-2010 yongari

Add PNP id for Compex RL2000.
I'm not sure whether adding this logical id is correct or not
because Compex RL2000 is in the list of supported hardware list.
I guess the Compex RL2000 could be PCI variant while the controller
in question is ISA controller. It seems PNP compat id didn't match
or it had multiple compat ids so isa_pnp_probe() seemed to return
ENOENT.

PR: kern/80853


211721 23-Aug-2010 yongari

Fix a possible unaligned access to savebyte array.

PR: kern/122195


207554 03-May-2010 sobomax

Add new tunable 'net.link.ifqmaxlen' to set default send interface
queue length. The default value for this parameter is 50, which is
quite low for many of today's uses and the only way to modify this
parameter right now is to edit if_var.h file. Also add read-only
sysctl with the same name, so that it's possible to retrieve the
current value.

MFC after: 1 month


199380 17-Nov-2009 jhb

Use a private callout timer to drive the transmit watchdog instead of using
if_watchdog and if_timer. The driver already contained an optional stats
timer that individual attachments could use to provide a 'tick' event. The
stats timer only ran if the tick function pointer was non-NULL and the
attachment's tick routine had to call callout_reset(), etc. Now the driver
always schedules a stat timer and manages the callout_reset() internally.
This timer is used to drive the watchdog and will also call the attachment's
'tick' handler if one is provided.

Tested by: WATANABE Kazuhiro


195049 26-Jun-2009 rwatson

Use if_maddr_rlock()/if_maddr_runlock() rather than IF_ADDR_LOCK()/
IF_ADDR_UNLOCK() across network device drivers when accessing the
per-interface multicast address list, if_multiaddrs. This will
allow us to change the locking strategy without affecting our driver
programming interface or binary interface.

For two wireless drivers, remove unnecessary locking, since they
don't actually access the multicast address list.

Approved by: re (kib)
MFC after: 6 weeks


192043 13-May-2009 imp

ifp->if_softc is managed entirely by the driver. We never set it to
NULL or change it. We initialize it before we set if_ioctl. It can
therefore never be NULL, and most other drivers don't bother with this
sanity check.


191469 24-Apr-2009 imp

Add Surecom EP-427X.


191394 22-Apr-2009 imp

A couple of older Melco cards that missed the transition to newcard


191391 22-Apr-2009 imp

Add Billionton LNT10TB


191386 22-Apr-2009 imp

Add a few more models of AMBICOM cards from data from linux driver and
pccard.conf.


191384 22-Apr-2009 imp

These were a placeholder and don't belong here. Remove them.


191371 22-Apr-2009 imp

Kill stray bootverbose debug tool.

Submitted by: juli@


191370 22-Apr-2009 imp

Turns out the code improvements I did for the TC5299J support were
anti-improvements and broke support for this part. Revert the part of
the improvement at fault.


191321 20-Apr-2009 imp

Sometimes we can call ed_detach() before the mtx has been initialized.
Avoid it if it hasn't been initialized.


191299 20-Apr-2009 imp

Cleanup resource allocation code a bit. Store the rids on the
resources rather than on the softc. When we allocate resources for PC
Card, if we only get 16 ports, try again to get the others.


191238 18-Apr-2009 imp

Make sure that the data in the ROM with a valid signature isn't all
0's. At least one PC Card ASIC does this...


191237 18-Apr-2009 imp

Add GVP NIC 2000P and New Media Livewire. Also New Media LanSurfer
doesn't have a function type of network, so add a quirk for that...


191234 18-Apr-2009 imp

Establish the interrupt handler AFTER we successfully attach. We need
to do this in case we have a shared interrupt that fires during the
attach process....


191233 18-Apr-2009 imp

Remove debug write accidentally left in.


190902 10-Apr-2009 imp

Don't specify a hint, since it isn't needed.


190901 10-Apr-2009 imp

Fix comment

Submitted by: danfe@


190900 10-Apr-2009 imp

Improvements for TC5299J MII support.


190899 10-Apr-2009 imp

The D-Link DE-650 isn't tagged as a network card, so allow it to
attach anyway.
Add a comment about a 'common' mfg/prod pair that's used in a very
large array of different cards.


190898 10-Apr-2009 imp

Fix some comments.


190897 10-Apr-2009 imp

No need to check for chip type here.


190811 07-Apr-2009 imp

More chip types, and fix a comment.


190807 07-Apr-2009 imp

Fix a comment to match the code.


190805 07-Apr-2009 imp

Remove DL10019 workaround, since the code it calls isn't quite ready.


190804 07-Apr-2009 imp

Move tick to end of file for better code references.


190803 07-Apr-2009 imp

The DL100xx cards have 24k of packet memory, not 16k. Use it for them
and update comments about original patches doing this and it not
working. It works for both the DL10019 and DL10022 based cards that I
have. It really helps the DL10019 cards, since they were using 8k
instead of the normal 16k that regular NE-2000 cards help.

# Note to self: need to provide a common routine to setup memory
# parameters.


190802 07-Apr-2009 imp

Apply generic media stuff to pccard case too, when we aren't using miibus
for this.


190801 07-Apr-2009 imp

Minor fixes to comments about media autoselect.


190794 07-Apr-2009 imp

Provide a generic ifmedia set of routines as a fallback. The
DP8390-based cards have no generic way of reporting status of the link
or setting the media type. Some specific versions of these cards do,
however, allow for this, and we already support some of them. Make
the 'ed' experience more uniform by providing "autoselect" as the
meida and status "active" always. This won't affect the chips that
provide more specific details.


190664 03-Apr-2009 imp

Remove more debug...


190654 02-Apr-2009 imp

Retire two flags that haven't been used since OLDCARD was retired
(well, since before OLDCARD was retired, since I removed their use
somewhat before that).


190651 02-Apr-2009 imp

Kill debug that crept in.


190650 02-Apr-2009 imp

Minor tweaks in the names to match the chips more closely.


190645 02-Apr-2009 imp

Minor DLINK DL100xx support tweaks:

The DIROUT bit difference between the 19 and 22 is annoying. We can
set both bits on both parts without ill effect. Use this trick to
simplify the code.

The DELAYS in the MII bus bit-bang code for the DL100xx parts aren't
needed. Eliminate them.


190644 02-Apr-2009 imp

The AX88190 has 64k of external SRAM, of which 62k can be used for
packet data. However, the AX88190A moves this on-chip and reduces it
to the more traditional 16k from 16k-32k. The AX88790 follows the
'190A. Probe memory above 32k to see which flavor of the '190 we have
and use the extra memory if we have it.

Eliminate the kludgy read eeprom for the ID code. It really is just a
memory read at location 0x400, so just use that instead. Makes the
code easier to understand as well as eliminates some magic numbers.


190643 02-Apr-2009 imp

Force an autonegotiation at attach time for all the attached PHYs for
ed cards. There's a number of minor nits in a lot of the PHYs on the
PC Cards that use the Axis AX88190 or DLink DL10019 and DL10022 chips.
Forcing the autonegotiation doesn't seem to cause problems on the
cards that have sane PHYs, but makes several cards I have work without
further workarounds.

I'm not 100% sure that kicking the PHY and resetting them is the right
thing to do on the media change callback. Other NICs seem to need
this and do similar things.


190598 31-Mar-2009 imp

Add additional data on the MIIBUS WTF that I committed earlier.


190597 31-Mar-2009 imp

It turns out that the initialization is required since it sets up the
readout of the MAC address.
The 10ms delay was really needed. Ooops.


190596 31-Mar-2009 imp

o Minor tweaks to the AX88x90 probe routine, mostly related to comments.
o Don't run through the register initialization in the read mac routine
for the AX88x90. It duplicates other stuff that we do.
o Eliminate the 10ms delay after we reset the AX88x90. We already wait for
the appropriate bits to indicate reset is done.


190586 31-Mar-2009 imp

Go back to filtering all PHY addresses above 16 since at least two
cards still have issues with them. Maybe this is a silicon rev? In
any case, doing the filtering only for the AX88790 for the moment.


190583 31-Mar-2009 imp

Hmmmm... This can't be right... But it looks like the DL100xx chips
don't have one of the clock cycles (the turn cycle) that the AX88x90
chips have. Make this conditional. But this seems totally crazy and
can't possibly be right. Commit the fix for the moment until I can
explore this mystery more deeply.

On the plus side, the DL10022-based cards I have (D-Link DEF-670TXD
and SMC8040TX) work after this fix.


190562 30-Mar-2009 imp

Two fixes:
(1) Delete all children when detaching to keep from adding a phy each
driver reload.
(2) All AX88x90 chips have the RST issue.


190559 30-Mar-2009 imp

This is a major reworking of the AX88x90 support.

o Introduce new chip_type AX88790. There's a few places we need to know the
exact chip for workaronds.
o Explain the AX88190 workaround for the ISR bits being stuck, and don't
apply them to the AX88790. The datasheet says the bits are fixed, and
experience confirms.
o Fix mii bit-bang read code to read and discard the 'floating' bit.
o Remove empty ed_pccard_ax88x90_mii_reset routine
o Report error from mii_phy_probe
o Don't use ed_probe_Novel_generic for ax88x90 chips. It puts them into
an odd state sometimes. Instead, use a more stream-lined version that
avoids the trouble spots. This was copied and tweaked from the original.
o Move chip reset into its own routine.
o Minor code optimiation on getting MAC address
o Add code for coping with AX88790 cards that are in power down state and
need to be kicked before the PHY registers for the internal phy read right.
o Remove ugly cap of PHYs at 17.
o For AX88790, we need to set a special bit for accessig phy 16 (the internal
phy) and clear it for all others according to a chip erratum.
o streamline the bit-bang code for AX88x90: the delays aren't needed according
to the datasheet timing diagrams and also the Linux driver
o Fix minor bit definition for direction bit.
o Generally: Some comments reformatted
o Only try the toshiba probe on cards labelled as toshiba

# From another Akihabara card (this one from a few years ago from a
# friend in Japan). Fix the Corega FEther II PCC-TXD. This one is
# still on sale new, as of a few weeks ago. should fix all other AX88x90
# based cards, but I have some testing left to finish on my collection...


190488 28-Mar-2009 imp

When reading via memory, read in (amount + 1) / 2 (to properly round
up) rather than amount + 1 / 2, which is the same as amount, or 2x too
many words which leads to data corruption.

# This fixes the sbdrop panics I was seeing with the Toshiba LANCT00A.


190483 28-Mar-2009 imp

It turns out that the Toshiba LANCT00A PC Card is really like the
Toshiba PCETC ISA card, and even has the same board type code in the
card ID (0x14). So, for this card, call ed_probe_WD80x3_generic after
setting things up apropriately. This makes the card attach and kinda
work (I'm seeing panics in sbdrop). Since history has shown that the
WD80x3 probe routine is dangerous, only do it for this card. Also,
disable the memory range check to make sure it is an valid ISA memory.
I think that it is bogus, but I'm not 100% sure, for these cards.

I removed probing for the WD80x3 in 2005 when I added support for the
AX88x90 and DL100xx cards since none of my cards had ever matched it
and PAO3 removed it and none of the cards in their database died.

It is possible there are other quirks about this card too, since no
other open source OS supports it, or even claims to support it. But
it was a fun half hour hack...


190475 27-Mar-2009 imp

Add bromax axnet based cards to the mix. This was harvested from the linux
driver. Not sure who sold it/rebadged it.

Add stub entries for Mitsubishi B8895 and Toshiba LANCT00A to the
driver with a comment that they don't work /* NG */.[*] These are
DP83902A based cards, which should work, but don't seem to. Likely
they are from the days before the ne2000 roamed the earth and use a
non-standard hookup (see if_ed_isa or if_ed_cbus for some examples).
Unless I happen to stumble into the right one, these may never work,
but I'm tired of omitting them from commits.

[*] The Japanese adopted OK from English, but also use NG for its
opposite.


190446 26-Mar-2009 imp

Allow the attach routine to fail gracefully and not panic the system.


190431 25-Mar-2009 imp

Tweak comments.


190430 25-Mar-2009 imp

Add RIOS PCCARD 3.


189726 12-Mar-2009 imp

o writereg needs to return a vlue.
o Add TJ PTJ-LAN_T card. Some more work may be needed to make this
actually function correctly.


181351 06-Aug-2008 imp

When the miibus for the AX88x90 or TC5299J cards fails to attach, we
would call ed_release_resources() when we should have called
ed_detach() to properly undo the effects of prior calls to
ed_attach(). This would leave a stray ed interface ifnet alive in the
system, which was, well, bad, since we called if_free() on the
underlying memory... Fix the ed_detach routine to cope being called
in this context now.

This should never come up because the miibus is always there. Except
for now when it seems to be failing for reasons unknown... That's a
different bug that hits at least ed, xl, dc and fxp...


180315 06-Jul-2008 imp

Add two corega cards from NetBSD: FETEHR II PCC TXD and LAPCCTXD.


175007 31-Dec-2007 imp

Add Winbond W89C940F to the list. Also, stub in some entries for two
Holtek cards that will need some special support later, but leave them
commented out for now.

These ID's are transcribed from the Linux ne2k-pci.c


175006 31-Dec-2007 imp

Add missing 'sc->chip_type ==' to an ugly switch statement expression
so that for RealTek 8019 cards, we consider AUI as well as BNC bits.


171352 11-Jul-2007 imp

Add Micro Research PCMCIA LAN Adapter MR10TPC support. Patch slightly
reworked by me.

Submitted by: Osamu Hasegawa-san
PR: 93393
Approved by: re (hrs)


168214 01-Apr-2007 netchild

Tell a statistic checker that not checking the return value of the probing
of the mii phy is intended for this chip.

Found by: Coverity Prevent (tm)
CID: 43


167753 21-Mar-2007 nyan

Don't call bus_deactivate_resource() explicitly before calling
bus_release_resource(). This is needed for pc98 by upcoming nexus related
change.


166901 23-Feb-2007 piso

o break newbus api: add a new argument of type driver_filter_t to
bus_setup_intr()

o add an int return code to all fast handlers

o retire INTR_FAST/IH_FAST

For more info: http://docs.freebsd.org/cgi/getmsg.cgi?fetch=465712+0+current/freebsd-current

Reviewed by: many
Approved by: re@


159538 12-Jun-2006 imp

MFp4:
o Implement a bunch of sysctl's to report the information
that's now always reported. Mvoe reporting of that info
to bootverbose, but maybe it can go away entirely.
dev.ed.X.type: string name
dev.ed.X.TxMem: amount of memory used for tx side of the card
dev.ed.X.RxMem: amount of memory used for rx side of the card
dev.ed.X.Mem: Total amount of mem on card.
o Better comments about where NE-2000 (and clones) gets their MAC
address from.


158651 16-May-2006 phk

Since DELAY() was moved, most <machine/clock.h> #includes have been
unnecessary.


158369 08-May-2006 imp

Add (back) the D-Link DE-650. Not sure why it was deleted.


155874 21-Feb-2006 nyan

Initialize the port_bst and port_bsh variables.
The ed driver on pc98 was broken by if_edvar.h rev1.31.

Reported by: Kaho Toshikazu (kaho at elam kais kyoto-u ac jp)
Tested by: Eiji Kato (ekato at a1 mbn or jp)
MFC after: 3 days


154924 27-Jan-2006 imp

Have a function pointer to the routine to call for writing an mbuf
into the card's memory.

# this eliminates a more of the ifdef soup in if_ed and if_edvar

# I've fixed the cbus drivers, but can't test them all easily.

If I've broken anything, please let me know.


154895 27-Jan-2006 imp

Create mediachg functions for the 3c503 and hpp cards. This is used
to properly configure the right interface to use.

Also call the mediachg function when we set flags UP and are already
running. If this were a pure ifmedia driver, we'd not need to do this
since we'd be ignoring the linkX flags.

This reduces the number of ifdefs to support sub-devices a little as a
nice side effect. It also reduces the number of hpp interfaces
exposed by 33%.


154894 27-Jan-2006 imp

Style(9) issue: return (foo);


154892 27-Jan-2006 imp

Transition from ALTPHYS to LINK2. We already document in the ed(4)
man page that the ifconfig option link2 is used to disable the AUI
transceiver on the 3com boards (should also say HP PC Lan+). This
makes the connection clearer.

Add a note about why we set this flag prior to attaching the device.
We never set or clear the flag later, only test it. There can be no
races here, but this might be asthetically displeasing to some. Also
note that we may no longer need to have this knob at all as we may be
able to do it with the more sophisticated rc.d scripts we have today I
think the only reason it is there is because we didn't used to allow
its proper setting when configured to get the IP address via DHCP.

I'll note that this would be better handled by using ifmedia for all
ed cards, not just those with a miibus...


154891 27-Jan-2006 imp

minor nit in comment about what kind of flags these are


154391 15-Jan-2006 imp

Add support for the Compaq LTE docking station. It includes a plug
and play device with the ID of PNP8160. Sotr them while I'm here.

Submitted by: Sean Shapira sds at jazzie dotty com
MFC After: 1 week


152315 11-Nov-2005 ru

- Store pointer to the link-level address right in "struct ifnet"
rather than in ifindex_table[]; all (except one) accesses are
through ifp anyway. IF_LLADDR() works faster, and all (except
one) ifaddr_byindex() users were converted to use ifp->if_addr.

- Stop storing a (pointer to) Ethernet address in "struct arpcom",
and drop the IFP2ENADDR() macro; all users have been converted
to use IF_LLADDR() instead.


151840 29-Oct-2005 imp

Add Billionton LNA-100B variation that Alan reported in arch. [1]
Also add Global Village lan modem, even though I'm unsure if it works.

Reported by: Alan newsletter at acsoftware dot org


151551 22-Oct-2005 imp

Add missing softc


151550 22-Oct-2005 imp

Turns out that we're asking for the MAC address at a bad time in the
attach routine. Go ahead and ask for it in the probe routine and be
just as wrong as all the other cards that ask for it there...

# this gets the RTL8019 on a SBC at work fully functional. 6.0 still treats
# the 8019 as a generic NE-2000, so these changes aren't relevant there.


151547 22-Oct-2005 imp

In the ISA case, we call ed_probe_WD80x3 before we call
ed_probe_rtl80x9. In the pci case we call ed_probe_rtl80x9 first. In
the PCI case we were using the correct nic_offset by accident because
softc is initialized to zero. In the isa case we were using the wrong
value by accident, since ed_probe_WD80x3 sets the offset value to
0x10. This lead to the identification routines failing. Fix this
problem by always initalizing the nic_offset and asic_offset before
making ed_{asic,nic}_{in,out}* calls.


151404 17-Oct-2005 imp

Check against 8019 rather than 8029 for reading in the MAC addr since
the former is the ISA part, not the latter.

MFC After 6.0 is unfrozen (this bug doesn't exist in 6.0 because I didn't
MFC the rtl80x9 changes for ISA due to an error on my part)


151300 13-Oct-2005 imp

If we can't probe the RTL80x9 for some reason, fall back to probing it
as a Novell NE-2000. This is necessary for unpatched qemu working
correctly. qemu claims to be a RTL8029, but doesn't implement the
RTL8029 specific registers at this time. I've created patches for
that, but there's no reason we can't use qemu's emulation w/o these
patches. This should make life easier for those folks that boot
FreeBSD via qemu.


151299 13-Oct-2005 imp

o Fix probing of rtl80x9 parts. We shouldn't be calling
ed_probe_generic8390 where we're calling it. It will be done as part
of ed_probe_Novel_generic after things are setup in a way that
ed_probe_generic8390 will grok.
o Fix operator precedence botch that causes a panic when setting the media
type for 10baseT connections.
o Save the type of device so that it prints with the rest of the probe.

# this should make it work with qemu again, but only if it has my patches
# to actually implement the RTL8029 specific registers.


151225 11-Oct-2005 imp

Buffalo LPC4/CLX ID


151224 11-Oct-2005 imp

New OEM generic card. "10/100 Fast Ethernet PC Card". It has a
generic sounding CIS "PCMCIA", "FAST ETHERENT CARD" and a bogus MANFID
code (0xffff and 0x1090). However, since I'm not aware of 'generic'
cards that aren't NE-2000oids, go with that and hope for the best.


150959 05-Oct-2005 imp

Remove debug that crept in..


150957 05-Oct-2005 imp

MFp4:
o Add support for Tamarack TC5299J + MII found on SMC 8041TX V.2
and corega PCCCCTXD
o Add support for ISA/PCI RTL80[12]9 chips
o Improve support for the ax88790 based
o minor code movement

Submitted by: (#2) David Madole


150581 26-Sep-2005 imp

Emit a warning when a card matches multiple entries in our table. A
number of cards have been discovered to be matching on the strings of
the cis rather than manufacturer/product id for cards we already had a
prod id for. This is a result of getting the list from the NetBSD
driver which also includes the OID for the cards where such a
distinction mattered (since it was tested against the MAC address we
got from the card). Since we do not try to match OIDs, we do not need
the extra entries and they just waste space.

I'm guessing that some of the dlink entires (DE-660, DE-660+) and many
of the corega cards may fall into this boat and can safely be removed.


150580 26-Sep-2005 imp

Go ahead and detach our children in our detach routine. I'm undecided
if we should delete them also or not, but have decided not to do so
for the moment.


150520 24-Sep-2005 imp

I have confirmed with my Epson EEN10B that it needs to look at the
attribute memory at 0xff0 to find its MAC address. This is another
instance of the IBM ethercard II from all apperances (short of popping
the lid). Update the entry to document which cards we support
actually need this functionality.


150518 24-Sep-2005 imp

The DLink DE650 has the same ID as Linksys EthernetCard, so we don't
need a sperate entry for it.


150493 23-Sep-2005 imp

Remove obsolete include


150326 19-Sep-2005 imp

Remove duplicate if_free().

Submitted by: ru@


150306 19-Sep-2005 imp

Make sure that we call if_free(ifp) after bus_teardown_intr. Since we
could get an interrupt after we free the ifp, and the interrupt
handler depended on the ifp being still alive, this could, in theory,
cause a crash. Eliminate this possibility by moving the if_free to
after the bus_teardown_intr() call.


150300 18-Sep-2005 imp

MFp4:
o eliminate the ED_NO_MIIBUS option. Now, you need miibus to use ed with
pccard. If you have an old ISA or PCI card w/o a miibus, then you'll still
be able to use the ed driver w/o miibus in the kernel. If you have pccard
you'll need mii now. Most pccards these days have miibus, and many
cards have ISSUES if you don't attach miibus. issues I don't want to
constantly rediagnose.
- Add new media_ioctl, mediachg and tick function pointers. The core
driver will call these if they aren't NULL, or return an error if they
are.
- migrate remaining mii code into if_ed_pccard.
o include some notes from my datasheet fishing. this may allow us to
get media status from some pccards.
o Fix one bug that's common to many drivers. call if_free(ifp) after
we tear down the interrupt. ed_intr() depends on ifp being there and
freeing it while interrupts can still happen is, ummm, bad.


150215 16-Sep-2005 ru

Fix "struct ifnet" leaks when attach() fails in the middle.


150145 15-Sep-2005 imp

When stopping the card, and returning to page 0, it is best if you do
that with the NIC set of registers rather than the ASIC registers. I
believe this was a harmless oversight, since we set ED_P0_CR to the
same value 5ms later, but just to be safe...


150136 14-Sep-2005 ru

Make device_detach methods really work.


150108 13-Sep-2005 imp

MFp4: Omnibus ed changes

o Attach AX88x90's MII bus to system, and require its presence.
o Reorg the mii code a little, and move more of it into pccard attachment.
o Eliminate ed_pccard_{read,write}_attrmem in favor of a more appropriate
function in the pccard layer.
o Update comments to reflect knowledge gained.
o Update how re recognize a NE-2000 ROM. I found a couple of different
datasheets that define the structure of the PROM data, so the code's
old heuristics have been removed, and comments updated to reflect the
structure.
o Eliminate work around for EC2T. It is no longer needed, and was wrong
headed since the EC2T has a Winbound 82C926C in it, not a AX88x90.
o Add copyright to if_ed_pccard.c, since I believe I've re-written more than
3/4 of it.

# With these changes, all of my 20-odd ed based cards work, except for the
# NetGear FA-410, and I'm pretty sure that's a MII/PHY problem.


150104 13-Sep-2005 imp

MFp4: Minor formatting nits in pccard table.


150102 13-Sep-2005 imp

Use smaller names. The "NE2000 PCI Ethernet" is largerly redundant
with edX at pciY. This removes 8*22 bytes from the strings. Not a
huge win, but a cheap one.


149922 10-Sep-2005 imp

MFp4:

Reduce the size of ed a little by removing some CIS based entries (others
likely can be removed too):
o The D-Link DFE-670TXD doesn't need its own entry based on strings.
o The Xircom CompactCard appears to be a TDK design, so list it there by ID
and remove the strings.

Increase the size of ed a little:
o Add support for the Addtron AE-660CT and Addtron AE-660. This is a very
generic NE-2000 clone (so generic that its CIS tags say NE-2000 generic
card!).


149891 08-Sep-2005 imp

The ed driver lock is already held in the mii frobbing routines. Remove
locking from these routines.


149890 08-Sep-2005 imp

Add note about what ED_DEFAULT_MAC_OFFSET applies to


149842 07-Sep-2005 imp

Consistancy is the hobgoblin of small minds:
o DLINK -> DL100XX


149841 07-Sep-2005 imp

Minor reorg of pccard attach code to fix ax88x90 case broken after fixing
dl100xx case.
o We no longer acquire and release resources during attach many times. We now
do it once at the beginning.
o Move setting the resource offsets to just after acquiring the ports in
attach.
o Move ax88x90 code to the end of the file, just after the dl100xx specific
code.
o Rename ed_pccard_Linksys to ed_pccard_dl100xx to reflect the underlying
chipset.
o Pass the ed_product structure into ed_pccard_{dl100xx,ax88x90} and have
those routines test the flags to see if this card should be probed in that
way.
o transition from ed_probe_Novell to ed_probe_Novell_generic since we already
have the resources setup.
o Move use of ed_probe_Novell_generic into ed_pccard_dl100xx to be more
consistant with ax88x90 case.
o simplify the code where we probe for the chipsets


149840 07-Sep-2005 imp

o Expose ed_probe_Novel_generic, it is useful for pccard case.
o Fix a now stale comment. There are likely many others like them, but this
one definitely hasn't been true since DELAY was introduced into the tree.


149837 07-Sep-2005 imp

Fix DL100xx based cards. Don't drop resources. It was approrpiate in
the probe code that this used to be part of, but as part of the
attach, we shouldn't be dropping the resources here.

Also, allocate the proper rid in the ax88x90 setup.


149835 06-Sep-2005 imp

move away from K&R function definitions


149834 06-Sep-2005 imp

Work around a bug I've seen on Linksys EC2T cards. For some reason,
as yet unknown, those cards report their MAC address a byte at a time.
However, other AX88x90 cards report the MAC address a word at a time.
Add a heuristic which looks at the high order bytes of the first 6
words. If they are all '0', assume the card is behaving like the
Linksys EC2T card. Since the default prefix for these cards appears
to be 00:e0:98, this appears to be a safe heuristic. While some cards
have been observed with different prefixes, they all work with this
heuristic.

I'm unsure if this is a bug in the EC2T card, or if it is a bug in the
initialization of the card. No other OS has this heuristic (although
w/o it, the MAC address that is used works).


149833 06-Sep-2005 imp

Go ahead and | in ED_CR_PAGE_0, even though this doesn't change things
at all. It makes the code clearer.

fix a comment comments about why we need to write i/o address to certain
registers.


149832 06-Sep-2005 imp

It turns out that many of the ambicom cards have their CIS resources
listed in different orders. Since it is easy to identify the Modem
resources vs the Ethernet resources by looking at the size, use that
rather than hard coded rids. For such parts, go ahead and guess which
rid we should use based on the size. This guess appears reliable for
the two example cards that I have with different CIS info.


149702 02-Sep-2005 imp

MFp4: kill bogus comment


149696 01-Sep-2005 imp

At some point in the past, we read the PROM by words. Now we read
PROM by bytes. Adjust the extraction of the MAC address from this data
to reflect this change.

This gets the AX88x90 based PC Cards MAC address working again (my
UMAX Ethernet and Linksys EC2T cards now work).

MFC After: 3 days


149609 30-Aug-2005 imp

Add back dropped if_media.h include


149558 28-Aug-2005 imp

Finish conversion to bus space and make ed MP safe.

o Lock ed
o Fix extra newline in probe messages
o Eliminate gone.
o Make detach less-racy.
o Eliminate spl*
o Switch from timeout/untimeout to callout interface.
o Read/write card memory using bus_space calls.
o generalize readmem so that we don't need ifs in the code.
o Fix memory stuff to be consistant.
o Remove OLDCARD compat stuff.
o Mark interrupt as MPSAFE.

# sic, hpp not tested at all
# ISA and PCI attachments lightly tested


148887 09-Aug-2005 rwatson

Propagate rename of IFF_OACTIVE and IFF_RUNNING to IFF_DRV_OACTIVE and
IFF_DRV_RUNNING, as well as the move from ifnet.if_flags to
ifnet.if_drv_flags. Device drivers are now responsible for
synchronizing access to these flags, as they are in if_drv_flags. This
helps prevent races between the network stack and device driver in
maintaining the interface flags field.

Many __FreeBSD__ and __FreeBSD_version checks maintained and continued;
some less so.

Reviewed by: pjd, bz
MFC after: 7 days


148654 03-Aug-2005 rwatson

Modify device drivers supporting multicast addresses to lock if_addr_mtx
over iteration of their multicast address lists when synchronizing the
hardware address filter with the network stack-maintained list.

Problem reported by: Ed Maste (emaste at phaedrus dot sandvine dot ca>
MFC after: 1 week


148022 15-Jul-2005 imp

Add support for the DLink DMF650TX Ethernet+56k modem PC Card. This
gets the ethernet part of the card working, while putting appropriate
hooks in place for the modem code. Other ed based lan/modem combo
cards should be easy to add. Please send me info on any you'd like to
see support added.

Note: The 650 isn't a strictly conforming multi-function card, so
special support is needed. :-(


147872 10-Jul-2005 imp

Add a boatload of new device ids, gleaned from the pcmcia-cs-3.2.8
distribution. Add the appropriate devices to the man pages.

Obtained from: pcmcia-cs
Approved by: re (scottl)


147580 24-Jun-2005 imp

Eliminate unused argument in PCMCIA_CARD macro.

Provide a backwards compatible way to have the extra macro by defining
PCCARD_API_LEVEL 5 before including pccarddevs for driver writers that
want/need to have the same driver on 5 and 6 with pccard attachments.

Approved by: re (dwhite)


147405 15-Jun-2005 brooks

Fix four casts of the softc to a struct ifnet.

Hopefully this fixes ed(4) under qemu. I'm shocked that real hardware
is apparently working with these bugs.

Approved by: re (ifnet blanket)
Pointy hat: brooks


147256 10-Jun-2005 brooks

Stop embedding struct ifnet at the top of driver softcs. Instead the
struct ifnet or the layer 2 common structure it was embedded in have
been replaced with a struct ifnet pointer to be filled by a call to the
new function, if_alloc(). The layer 2 common structure is also allocated
via if_alloc() based on the interface type. It is hung off the new
struct ifnet member, if_l2com.

This change removes the size of these structures from the kernel ABI and
will allow us to better manage them as interfaces come and go.

Other changes of note:
- Struct arpcom is no longer referenced in normal interface code.
Instead the Ethernet address is accessed via the IFP2ENADDR() macro.
To enforce this ac_enaddr has been renamed to _ac_enaddr.
- The second argument to ether_ifattach is now always the mac address
from driver private storage rather than sometimes being ac_enaddr.

Reviewed by: sobomax, sam


147184 09-Jun-2005 imp

Use tabs instead of spaces to indent, per style(9)

Noticed by: njl


147149 08-Jun-2005 imp

My abstracting out the MAC reading code to fix pccard broke pci. Add
back the reading of the MAC address in the 'standard' way.

Reported by: Jeremie Le Hen ( jeremie at le-hen dot org )


145009 13-Apr-2005 nyan

Remove ifdef PC98.


143161 05-Mar-2005 imp

Use BUS_PROBE_DEFAULT for pci probe return value


142260 22-Feb-2005 imp

Belkin F5D5020 is an OEM'd card from RACORE based on the AX88190
chipset. Add support for this card. Office Max has them on sale and
I was surprised that we didn't have it in our supported list when I
plugged it in...


142259 22-Feb-2005 imp

Add a stratigic newline


142254 22-Feb-2005 imp

Minor style nits missed in earlier passes


142202 22-Feb-2005 imp

MFp4: Optimize in/out macros. Cache the handle and tag in softc and
use them in the macros. Since the rman_get_bus{tag,handle} transitioned
from macros to function calls, this unpessimizes that conversion.


142200 22-Feb-2005 imp

Minor optimization of calling enable_16bit. We always have to call it
and error is going to be right for both forks of the if, so just
return that.


142162 21-Feb-2005 imp

Minor style(9)isms.


142138 20-Feb-2005 imp

Fix merging botch I made in last version.


142134 20-Feb-2005 imp

Minor optimizations to compile out bits that aren't necessary when
certain options aren't enabled.

Submitted by: Chiharu Shibata-san (chi at bd mbn or jp)


142133 20-Feb-2005 imp

Minor style(9) tweaks.


142132 20-Feb-2005 imp

Correct typo in comment.

Submitted by: Chiharu Shibata-san (chi at bd mbn or jp)


142023 17-Feb-2005 imp

Fix the support for the ax88[17]90 to print the right type, rather
than the generic ne-2000 string. This should have no effect on the
actual support of the parts, just reporting what the part was.

Also, rename a few functins and symbols to reflect a more generic
part support that grew out of the early specific support.


141932 14-Feb-2005 imp

Move the harvesting of the MAC address out of the generic novell probe
and into the bus front ends. For ISA and C-BUS cards, we always need
to grab it. For PC Card, already committed, we need to do some sanity
checking on the data that's in the ROMs before we decide that they are
OK to use. The PC Card code has already been committed and is
independent of this code (which also has to work on NE-1000 cards,
assuming that those cards still work :-).


141931 14-Feb-2005 imp

Move the #defines from edreg to edvar which don't have anything to do
with talking to the hardware.


141930 14-Feb-2005 imp

o It turns out that most of the ne-2000 cards that I have got real unhappy
with the latest changes. They actually have valid ROM data at location
0 of memory, just like a real NE-2000 ISA card. Use this data, if
the ROM passes a few basic tests, as an additional source for the MAC
address. Prefer the CIS over this source, but have it take precidence
over falling back to reading the attribtue memory.
o Minor cleanup of a few devices that we match on based on CIS string.


141881 14-Feb-2005 imp

Rework DL10019/DL10022 support. This tries to reset things in a more
proper way, or at least the same way that NetBSD and Linux do things
(I've been unable to obtain datasheets for these parts to know for
sure). This has some marginal improvement in the DL10022 and DL10019
cards that I have. Also, report which type, exactly.

# There's one or two ed cards that I have which still don't work, but I think
# that's due to MII losage on the card that's not presently compensated
# for in the MII drivers.


141880 14-Feb-2005 imp

MFp4: Merge in AX88790 support from my p4 tree. I've had this in my
tree since 2003/02/20, and I recently cleaned it up. I'd even closed
the PR that I obtained this from Fri Jul 18 23:25:08 MDT 2003 since
I looked at my p4 tree.

PR: 46889
Submitted by: HASEGAWA Tomoki


141879 14-Feb-2005 imp

Add some comments in preparation for converting bcopy/bzero to busspace.
Minor style nits.


141877 14-Feb-2005 imp

MFP4: Optimize the layout of softc somewhat. This groups the u_chars
into larger sections. I'd like to move to having a flags word, but I
need to make sure that there's no adverse locking problems.


141744 12-Feb-2005 imp

Improve the mining of MAC address from the card:
o Add a fallback location for the MAC address. Most of the early ne2000
PC Cards were built from the same parts, so most of them have the same
address in the CIS to grab the MAC from. Use this address as our
fallback if we don't find anything better.
o Add printf, in bootverbose, noting the MAC addresses that we find along
the way.

# Better sanity checking of the MAC address is needed. Will have to
# investigate using/creating a centralized function to do this as a number
# of other PC Card drivers each have their own ad-hoc tests.


141715 12-Feb-2005 imp

Add comment about MAC mining


141708 12-Feb-2005 imp

Really old PCMCIA cards stored the MAC address in the attribute memory
at some offset. Unlike newer cards, the MAC address wasn't part of
the CIS as a specific FUNCE. These older cards were having their MAC
address show up as 0:2:4:6:8:a because that's what's in the ROM
locations that would be there in a real ne2000.

This patch allows one to specify the offset for the MAC address for
these cards. Specify one for the IBM Ethernet II card, as it is one
that has this problem. One shouldn't specify this unless the MAC
address really isn't in the CIS at all.

Side note: The novell probe likely shouldn't read the MAC address, and
that should be moved to the bus specific attach routine(s), maybe as a
convenience function in if_ed_novell.c.

My IBM Ethernet II (aka Info Mover) now has a believable MAC address.


141684 11-Feb-2005 imp

Diff reduction with p4.


141681 11-Feb-2005 imp

Eliminate the ED_VENDOR_{PCCARD,LINKSYS} types. These cards really
are NOVELL NE2000 with just a tiny quirk that's non vendor specific.
Instead, use the chip_type of DL100XX instead. This is more inline
with how the AX88190 support was added, and seems a little cleaner.


141673 10-Feb-2005 imp

Move enable/disable 16bit access routines into if_ed. Slightly
pessmize the error recover path through edintr by calling these
functions, rather than expanding it inline. This error path already
does a lot in it, so an extra function call will be lost in the noise.
It also happens rarely.


141672 10-Feb-2005 imp

use
while (complicated-expr)
continune;
in preference to
while (complicated-expr);

since the code generated is identical, and the former is easier to read,
especially for complicated-expr that reach to the end of the line...


141600 10-Feb-2005 imp

Extricate probing of the gwether card (Gateway AT) from the middle of
probing the novell ne[12]000 cards. It should be its own thing, ala
how we do the dl100xx support doing its own thing at the right time.
For the moment, it is just a function, which makes the mainline of the
generic probe easier to follow.

Also, correct a couple of comments that looked wrong.

# there may be a bug in setting up gwether, in that we set
# sc->rec_page_stop based on memsize, rather than sc->mem_size, so if
# these two are different, then the rec_page_stop will be wrong. I'm
# hesitant to fix it without real hardware to test with. Since
# gwether isn't in the hardware list of the man page nor in the commit
# messages, it is hard to know for sure.


141599 10-Feb-2005 imp

Remove an ifdef that's been here for a long time. So long, in fact,
that it references a function parameter that's not been passed in for
more than 4 years.

This has been if 0'd since 1994.


141586 09-Feb-2005 imp

Break out obscure ISA cards into their own files, as well as ne2000
and wd80x3 support. Make the obscure ISA cards optional, and add
those options to NOTES on i386 (note: the ifdef around the whole code
is for module building). Tweak pc98 ed support to include wd80x3 too.
Add goo for alpha too.

The affected cards are the 3Com 3C503, HP LAN+ and SIC (whatever that
is). I couldn't find any of these for sale on ebay, so they are
untested. If you have one of these cards, and send it to me, I'll
ensure that you have no future problems with it...

Minor cleanups as well by using functions rather than cut and paste
code for some probing operations (where the function call overhead is
lost in the noise).

Remove use of kvtop, since they aren't required anymore. This driver
needs to get its memory mapped act together, however, and use bus
space. It doesn't right now.

This reduces the size of if_ed.ko from about 51k to 33k on my laptop.


141579 09-Feb-2005 imp

Since we no longer use kvtop, we no longer need machine/md_var.h


141577 09-Feb-2005 imp

If either ed_probe_Novell or ed_attach returns an error, release the
resources too.


141558 09-Feb-2005 imp

o Remove duplicate LINKSYS ETHERFAST entry.
o The COMBO_ECARD comes in many flavors, it seems, so probe both the DL10019
and the AX88x90 on it. Since this seems to work with no ill effects, maybe
the probing should happen more generally rather than being table driven.
Need to think more about this.
o Remove PCM100 because it is duplicative (the ETHERFAST is the pcm100 and
apparently has the same IDs). It was here for NetBSD because they match
up an expected MAC address OID, but since we don't bother with that, we
don't need to be so finely discriminating.
o Minor style nit.


141557 09-Feb-2005 imp

Remove reference to softc from probe entirely...


141552 09-Feb-2005 imp

Minor style cleanup. Get rid of extra {}, extra blank lines and some
continued line indentation. Should be no functional changes.


141550 09-Feb-2005 imp

o Remove ifdef PC98, since this file has diverged quite a bit from
if_ed_isa.c, and they seem to not be helpful anymore.
o Fix style issues from de-Pification.
o change from _isa_ to _cbus_ to the largest extent possible to reflect that
this is really for cbus, not isa.
o Use ANSI function definitions.
o Use ed_clear_memory
o eliminate kvtop


141549 08-Feb-2005 imp

No need to bzero softc.


141548 08-Feb-2005 imp

Convenience function to clear memory of the card, and then check to make
sure that it works by reading back as 0.


141496 08-Feb-2005 imp

Use ANSI function definitions, tweak a couple of prototypes to match (since
K&R prototypes needed to mismatch in the way that they were mismatched),
rename ds_getmcaf to ed_ds_getmcaf. Remove a few register keywords.


141495 08-Feb-2005 imp

use fixed types for the calls to ed_pio_readmem, ed_pio_writemem.
Make the special hp versions match the general ones. Also use fixed
types in the WD80x3_generic probe, and change callers' arrays to
match. Fix a couple of minor style issues by using newstyle function
definitions in a couple places.


141494 08-Feb-2005 imp

Make it possible to unload ed. Move the ed_pccard_detach routine to
if_ed and rename it to ed_detach(). Tell other busses to use this
routine for detach.

Since I don't actually have any non-pccard ed hardware I can test
with, I've only tested with my pccards.

More improvements in this area likely are possible.

Prodded by: rwatson


141493 08-Feb-2005 imp

Fix style bugs introduced in the de__Pification of this code.

Style bug generically noted by: bde


140887 27-Jan-2005 imp

Add back support for D-LINK DMR-650TX, and all the other OEMd versions
of this card (evidentally MultiMobile also sold this card as
MT5634ZLXI/E).

Reported by: Bastian Brinkman


140863 26-Jan-2005 rwatson

Remove unused static declaration of ed_pccard_dl100xx(), which probably
accidentally snuck into a prior commit to if_ed, and prevented building
with -Werror.

Pointed out by: csjp


140845 26-Jan-2005 imp

Kill stray debugging line not fully removed


140844 26-Jan-2005 imp

Rework how we deal with the DL10019 and DL10022 cards (as well as the
AX88190 ones, but that one only minorly):
o don't set flags in the match routine. They appear to be cleared
when probe/attach is called. Before this change, they were
always treated as a simple ne2000, which would fail to get the
right NIC address.
o Lookup device again in the probe routine and probe based on the
cards that you see.
o Detect and report the DL10022 seprately from the DL10019 cards.

While I'm here:
o remove a bad printf
o change another bad printf to device_printf.
o minor style(9) formatting tweaks.

# note: a lot of OEM entries are in the ed_pccard_products such that we can
# likely remove, or collapse, many of them.

This makes all of my DL100xx cards at least probe the ethernet address
correctly, which it wasn't doing before. I can't seem to locate my
AX88xxx based cards, so those haven't been tested, but they were
busted before the change so they can't be any worse now...


140843 26-Jan-2005 imp

Repair probe messages a bit. Previously, we'd print the ethernet
address, and additional information. Then the printing of the
ethernet address was moved into ether_attach, and so we were printing
orphaned information about the card. Now the probe message is
prefixed by edX:. Prepare for it to move under bootverbose, but don't
move it there yet (the || 1 trick).


140837 25-Jan-2005 imp

Turns out that Digital's DEPCM-BA and I-O Data PCLATE are both OEM
versions of the Racore PC Card Ethernet card. Rearrange to reflect
this reality. This ejects IODATA from 0x1bf, which belongs to Racore.

Thanks to Wilko for providing me with a dumpcis for the DEPCM card.

Also, added Nextcom Nexthawk card from NetBSD


140830 25-Jan-2005 imp

Use DIGITAL2 for DEPCM card


140789 25-Jan-2005 imp

Remove obsolete comment from head this time. The RELENG_5 commit was
accidental, but harmless and correct so I'll not be reverting it unless
there's some hidden damage I can't see right now...


140786 25-Jan-2005 imp

Add MagicRAM PC Card Ethernet as ne2000 clone


140522 20-Jan-2005 imp

Only attach to network functions.


140468 19-Jan-2005 imp

MFp4: u_intXX_t to uintXX_t.


139749 06-Jan-2005 imp

Start each of the license/copyright comments with /*-, minor shuffle of lines


137958 21-Nov-2004 mlaier

Commit ALTQ-patch for ed(4).

Requested and tested by: pav
MFC after: 1 week


137531 10-Nov-2004 nyan

Fix build error with ED_DEBUG.

PR: kern/72753


136719 20-Oct-2004 imp

Rumor has it that ACCTON EN2216 is also an ne2000 compatible. Make it so.


134871 06-Sep-2004 glebius

Remove layer intermixing. Device driver should pass the frame should
pass frame to ether_input(), and do not play with bridge itself.

Reviewed by: sam, andre
Approved by: julian (mentor)
MFC after: 1 week


133683 13-Aug-2004 rwatson

Since if_ed doesn't contain locking or run with INTR_MPSAFE, mark
the interface as IFF_NEEDSGIANT so if_start is run holding Giant.


132511 21-Jul-2004 imp

It is a little better to return ENXIO from probe/match routine than EIO.


130659 18-Jun-2004 imp

A couple more style(9) nits I should have included in last commit


130657 18-Jun-2004 imp

Style nits in the prototypes


130270 09-Jun-2004 naddy

Replace handrolled CRC calculation with ether_crc32_[lb]e().


129764 27-May-2004 imp

Fix disordering of pccarddevs.h noticed by bde. Also remove a few
redundant includes and fix some of the include disordering.

Submitted by: bde


129740 26-May-2004 imp

Move to generating pccarddevs.h on the fly, both for the kernel and
the modules.

Also generate usbdevs.h automatically now, but a non-kernel file is
stopping that at the moment.


129616 23-May-2004 mux

We don't need to initialize if_output, ether_ifattach() does it
for us.


129046 08-May-2004 imp

It turns out that the module dependency on pccard is in error. Since
there's not dependencies on pccard symboles, such a dependency is not
necessary. This means that drivers that have multiple attachments can
not drag bogus devices into the kernel at load time.

We can't (yet) do this with pci and isa. Drivers written for them
actually do seem to have symbols that depend on these busses'
implementation code.

ndis not touched until other things can be tested.


128304 16-Apr-2004 obrien

Fix building on L64 machines.


128293 15-Apr-2004 luigi

Remove improper use of if_addrhead in device drivers to check
if the link-level address has been initialized already.

The majority of modern drivers never does this and works fine, which
makes me think that the check is totally unnecessary and a residue
of cut&paste from other drivers.

This change is done to simplify locking because now almost none of the
drivers uses this field. The exceptions are "ct" "ctau" and "cx"
where i am not sure if i can remove that part.


127135 17-Mar-2004 njl

Convert callers to the new bus_alloc_resource_any(9) API.

Submitted by: Mark Santcroos <marks@ripe.net>
Reviewed by: imp, dfr, bde


126966 14-Mar-2004 mdodd

Announce ethernet MAC addresss in ether_ifattach().


126526 03-Mar-2004 obrien

Adjust ed(4) for 64-bit platforms should it get newbus'ified.


124017 31-Dec-2003 kato

Added TDK LAK-CD031 (simple NE2000 device).

Reviewed by: imp


123289 08-Dec-2003 obrien

Don't use caddr_t in mchash(). Also use C99 spellings over BSD ones.

Requested by: bde,imp


122678 14-Nov-2003 obrien

Remove duplicate FBSDID's, move others to their right place.


122625 13-Nov-2003 obrien

Try to create some sort of consistency in how the routings to find the
multicast hash are written. There are still two distinct algorithms used,
and there actually isn't any reason each driver should have its own copy
of this function as they could all share one copy of it (if it grew an
additional argument).


121816 31-Oct-2003 brooks

Replace the if_name and if_unit members of struct ifnet with new members
if_xname, if_dname, and if_dunit. if_xname is the name of the interface
and if_dname/unit are the driver name and instance.

This change paves the way for interface renaming and enhanced pseudo
device creation and configuration symantics.

Approved By: re (in principle)
Reviewed By: njl, imp
Tested On: i386, amd64, sparc64
Obtained From: NetBSD (if_xname)


121752 30-Oct-2003 brooks

There is no way to enter the attach routine twice with the same softc
without a detach call in between so don't try to deal with that
possiability.

This is a diff-reduction commit for the upcoming if_xname conversion.


121118 15-Oct-2003 shiba

Add Allied Telesis SIC-AT boards support.
Discussed in from [FreeBSD-tech-jp 3396] to [FreeBSD-tech-jp 3407]
at FreeBSD-tech-jp@jp.freebsd.org.

NOTE: We must put ed_probe_SIC() function into if_ed_isa.c because
this is a bus dependent code. But the ed driver code is not
separated explicitly whether it is bus dependent or independent
now.

Refer to: http://plaza17.mbn.or.jp/~chi/myprog/FreeBSD/sicat.html
Submitted by: chi@bd.mbn.or.jp (Chiharu Shibata)


120292 20-Sep-2003 imp

EXPsys PCMCIA Ethernet Combo

Submitted by: Ludwig Pummer


119690 02-Sep-2003 jhb

Use PCIR_BAR(x) instead of PCIR_MAPS.

Glanced over by: imp, gibbs
Tested by: i386 LINT


119418 24-Aug-2003 obrien

Use __FBSDID().
Also some minor style cleanups.


119277 22-Aug-2003 imp

Prefer new location of pci include files (which have only been in the
tree for two or more years now), except in a few places where there's
code to be compatible with older versions of FreeBSD.


118636 07-Aug-2003 imp

Add MELCO LPC3_CTX. This is the same as Buffalo card of the same name
with different vendor id.

Submitted by: Shizuka Kudo-san


118607 07-Aug-2003 jhb

Consistently use the BSD u_int and u_short instead of the SYSV uint and
ushort. In most of these files, there was a mixture of both styles and
this change just makes them self-consistent.

Requested by: bde (kern_ktrace.c)


118557 06-Aug-2003 bde

Don't use pessimal (u_short) types for i/o ports. This is mainly for
completenss. The pessimization is tiny compared with i/o port slowness
except on very old machines, but code that used signed short types for
i/o ports was unpessimized long ago, and the macro that detected it
recently started working for u_short types too. Use of bus space
should have made this moot long ago.

Not tested at runtime by: bde


118102 28-Jul-2003 imp

The LP_ETH_10_100_CF entry needs to be tagged as a DL100019.

Submitted by: Scott Renfro


118065 26-Jul-2003 imp

Add Socket Communications Low Power 10/100 CF Ethernet card.

Obtained from: NetBSD (information, not code)


117761 19-Jul-2003 imp

Add support for BUFFALO LPC3-CLX 10/100Base-T PC-Card

PR: 47786
Submitted by: IHA, genta -san


113506 15-Apr-2003 mdodd

- Express hard dependencies on bus (pci, isa, pccard) and
network layer (ether).
- Don't abuse module names to facilitate ifconfig module loading;
such abuse isn't really needed. (And if we do need type information
associated with a module then we should make it explicit and not
use hacks.)


113326 10-Apr-2003 imp

SMC 8041 is the same thing as LINKSYS COMBO_ECARD, so no extra entry
is required. NetBSD has one because it checks for the mac address
match as well wanting to give its own string in the description.
Since we do neither, we don't need a separate entry.

# I suspect that a few of the COREGA cards might fall into that category
# as well, but since I don't have access to any of them it is hard to know
# for sure.


113324 10-Apr-2003 imp

Add Billionton CFLT10N and SMC8041 (although I'm not 100% sure the latter is
needed). Remove duplicate kingston kne2 entry.

Info obtained from NetBSD


113320 10-Apr-2003 imp

reorganize the supported card table. We don't need the enet_vendor or
enet_mcast fields, so remove them. Sort. Eliminate now duplicate
entries.

This reorg saves about 500 bytes in the binary. I've tested this only
with a couple of cards, so please let me know if I've broken anything.


113317 10-Apr-2003 imp

Don't set the description if NULL.


113131 05-Apr-2003 cognet

Fix ed compilation with PAE by using %jx instead of %x.


113080 04-Apr-2003 sanpei

Add NE2000DVF_AX88190 flag to Corega FEther PCC-TXD
(see also /etc/defaults/pccard.conf rev.1.172)


112569 25-Mar-2003 jake

- Add vm_paddr_t, a physical address type. This is required for systems
where physical addresses larger than virtual addresses, such as i386s
with PAE.
- Use this to represent physical addresses in the MI vm system and in the
i386 pmap code. This also changes the paddr parameter to d_mmap_t.
- Fix printf formats to handle physical addresses >4G in the i386 memory
detection code, and due to kvtop returning vm_paddr_t instead of u_long.

Note that this is a name change only; vm_paddr_t is still the same as
vm_offset_t on all currently supported platforms.

Sponsored by: DARPA, Network Associates Laboratories
Discussed with: re, phk (cdevsw change)


111427 24-Feb-2003 nyan

Fix printf format error.


111119 19-Feb-2003 imp

Back out M_* changes, per decision of the TRB.

Approved by: trb


109623 21-Jan-2003 alfred

Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0.
Merge M_NOWAIT/M_DONTWAIT into a single flag M_NOWAIT.


109455 18-Jan-2003 shiba

Add BUFFALO LPC-CF-CLT(10Base-T Compact Flash Ether Card).


108533 01-Jan-2003 schweikh

Correct typos, mostly s/ a / an / where appropriate. Some whitespace cleanup,
especially in troff files.


106937 14-Nov-2002 sam

network interface driver changes:

o don't strip the Ethernet header from inbound packets; pass packets
up the stack intact (required significant changes to some drivers)
o reference common definitions in net/ethernet.h (e.g. ETHER_ALIGN)
o track ether_ifattach/ether_ifdetach API changes
o track bpf changes (use BPF_TAP and BPF_MTAP)
o track vlan changes (ifnet capabilities, revised processing scheme, etc.)
o use if_input to pass packets "up"
o call ether_ioctl for default handling of ioctls

Reviewed by: many
Approved by: re


104857 11-Oct-2002 imp

add some devices from NetBSD


104253 01-Oct-2002 brooks

Use if_printf() instead of printf() to print "ed#: blah".


104166 30-Sep-2002 imp

mbuf leak in the error case has been fixed. When we have
an error, go ahead and m_freem the buffer.

PR: 32666
Submitted by: Chi-Fung Fan


104094 28-Sep-2002 phk

Be consistent about "static" functions: if the function is marked
static in its prototype, mark it static at the definition too.

Inspired by: FlexeLint warning #512


100721 26-Jul-2002 takawata

Add ALLIED TELESIS,K.K. LA-ISA V2 ISA PnP ID.

Submitted by: nork
MFC after: 3 days


100531 22-Jul-2002 imp

integrate from p4 repo:
o Honor NE2000DVF_{AX88190,DL10019} flags by setting the ED_FLAGS_xxxx
flag.
o Mark linksys combo_ecard as ax88190
o Set the type_str to AX88190 for the ax88190 cards.

This fixes ax88190 based cards, for the most part, but doesn't seem to fix
the mii based dl10019 cards (aka linksys cards).


93626 02-Apr-2002 imp

More newcard devices:
Netgear FA-410TXC
Netgear FA-411
Lantech Fastnet TX
Linksys pcm100
Hide the total wildcard device for SVEC too :-(

Obtained from: NetBSD/OpenBSD


92739 20-Mar-2002 alfred

Remove __P.


89952 29-Jan-2002 imp

Add EDIMAX ethernet card for NEWCARD from NetBSD


86865 24-Nov-2001 imp

Patch to allow the ed driver interrupt routine to terminate if the
card is ejected while we're in this routine.

yamamoto-san's original patch had a small race window for AX88190
chips, which I corrected by limiting the number of iterations we'd try
to reset the bits to be about 15ms rather than forever. This seems to
work for me, but I don't have a large collections of cards based on
this chipset.

Submitted by: YAMAMOTO Shigeru


86643 20-Nov-2001 imp

Comment out some bogus entries. somehow they match everything, which
is bad. I need to correct pccarddev, but I'm not sure how just at the
moment. So I'm firewalling the damage.


86396 15-Nov-2001 imp

MF NetBSD's if_ne_pcmcia.c rev 1.82's list of devices


86394 15-Nov-2001 imp

Migrate to PCMCIA_CARD() macros


86273 11-Nov-2001 imp

s/PCCARD_/PCMCIA_/g in NEWCARD device tables to enable easier NetBSD sharing


86047 04-Nov-2001 luigi

MFS: sync the ipfw/dummynet/bridge code with the one recently merged
into stable (mostly , but not only, formatting and comments changes).


85838 01-Nov-2001 luigi

Always compile in bridge hooks, or this code will not work (efficiently) with
the loadable bridge module.


85783 31-Oct-2001 asmodai

Fix obvious bug where return from probe was botched.
People with HP PCLAN+ NICs can now happily use the card again

PR: 21087
Submitted by: M. B. Buchanan <buchanan@orbitworld.net>


84601 07-Oct-2001 luigi

Make this compile again after the changes to make bridge kld'able


84151 29-Sep-2001 iedowse

Add an option ED_NO_MIIBUS, which causes the `ed' driver to be
built without support for miibus PHYs. Most ed cards don't need
miibus support, so it's useful to be able to avoid the bloat of
all the mii devices for small fixed-purpose kernels.


80166 22-Jul-2001 iedowse

Add a few missing spl calls in preparation for an MFC of the miibus
support.


80163 22-Jul-2001 iedowse

Remove an old hack that remembered if the card type was Linksys by
storing a flag in the global variable 'linksys' during the probe
routine and reading it during the attach routine. We now have the
ED_VENDOR_LINKSYS vendor code stored in sc->vendor, so check that
instead.


80159 22-Jul-2001 iedowse

Attach the miibus for Linksys/Dlink cards from the attach routine,
not from the probe routine. This was an oversight when I originally
ported the miibus support to -current, though it was mostly harmless.

We now set the vendor code to the new value ED_VENDOR_LINKSYS in
ed_pccard_Linksys() at probe time. Then ed_pccard_attach() checks
the vendor code, and sets up the miibus if appropriate.

Reviewed by: imp


73374 03-Mar-2001 imp

Add support for Dlink DL10022 to the ed driver. This is a mii part
bolted to a ne-2000 chip. This is necessary for the NetGear FA-410TX
and other cards.

This also requires you add mii to your kernel if you have an ed driver
configured.

This code will result in a couple of timeout messages for ed on the
impacted cards. Additional work will be needed, but this does work
right now, and many people need these cards.

Submitted by: Ian Dowse <iedowse@maths.tcd.ie>


72193 08-Feb-2001 luigi

Whoops... forgotten a few pieces in previous patch:
* a ">" is really ">=" ;
* do not try to fetch zero-sized blocks from the card;
* make sure that bpf gets the packets it wants even with
bridging active;


72190 08-Feb-2001 luigi

Make sure that we do not accept packets shorter than a full ethernet
header, or we would have a negative length passed to ether_input().


72084 06-Feb-2001 phk

Convert if_multiaddrs from LIST to TAILQ so that it can be traversed
backwards in the three drivers which want to do that.

Reviewed by: mikeh


72082 06-Feb-2001 asmodai

Fix typo: wierd -> weird.

There is no such thing as wierd in the english language.


72012 04-Feb-2001 phk

Another round of the <sys/queue.h> FOREACH transmogriffer.

Created with: sed(1)
Reviewed by: md5(1)


71999 04-Feb-2001 phk

Mechanical change to use <sys/queue.h> macro API instead of
fondling implementation details.

Created with: sed(1)
Reviewed by: md5(1)


71324 21-Jan-2001 imp

Add a bunch of entries from NetBSD's if_ne_pcmcia.c v1.67. We still
need to verify that all the entries in pccard.conf are present in this
table.


70834 09-Jan-2001 wollman

select() DKI is now in <sys/selinfo.h>.


70355 26-Dec-2000 imp

Minor newbus/style(9) cleanups.
o Move the ax88190 code to its own function.
o Move all device_method_t, driver_t and DRIVER_MODULE definitions to the
end of files.
o Wrap a few lines > 80 characters.
o Use the same devclass for all ed drivers. This allows machines with
multiple types of cards to have their cards numbered correctly. Before,
you could wind up with two ed0's.
o Protect if_edvar.h from multiple includes because I was there.


70234 20-Dec-2000 toshi

Fix my previous commit. Remove ed_get_Linksys() function prototypes.


70154 18-Dec-2000 toshi

Linksys Fast Ethernet PCCARD cards supported by the ed driver now
require the addition of flag 0x80000 to their config line in
pccard.conf(5). This flag is not optional. These Linksys cards will
not be recognized without it.

Reviewed by: imp, iwasaki


70117 17-Dec-2000 imp

Call ed_probe_Novel in the AX88190 case as well.
Remove stary blank line.

Submitted by: Seigo Tanimura <tanimura@r.dl.itc.u-tokyo.ac.jp>


69965 13-Dec-2000 imp

Remove unnecessary includes found by phk's script. I've been building
these locally for ages.


69964 13-Dec-2000 imp

Fix problem with ax88190 based cards trying to probe further after
matching the ax88190.


69150 25-Nov-2000 peter

Argh, I have fixed this cut/paste error twice before. I must have
committed the wrong patch. :-( sn_pccard_products[] should have
been static anyway.


69137 25-Nov-2000 peter

Update the ed driver to probe and attach under a NEWCARD kernel (I was
using a cardbus based system with pccbb providing the pcic interface).
Something isn't quite right.. when the driver allocates and activates
its resources, the IO space that was requested reads as all zeros (versus
the original 0xff's as it normally is when there is no device responding).

Also, deactivate the resources before releasing them. OLDCARD doesn't
seem to care but NEWCARD/CARDBUS get rather unhappy if you release
a resource that hasn't been deactivated yet.

Make pcic_p.c only compile with oldcard kernels.


67172 15-Oct-2000 msmith

Network modules are all "if_foo" not "foo". Avoid the confusing spew that
ensues when ifconfig tries to load if_ed.ko when it's already in the kernel.


67164 15-Oct-2000 phk

Remove unneeded #include <machine/clock.h>


66332 25-Sep-2000 tanimura

Allocate memory resource to access the attribute memory of a card.

Reviewed by: imp


65771 12-Sep-2000 ps

Move the detection of Linksys PCMCIA cards from attach to probe.
This should solve the problems people were seeing with this driver.

Reported by: phk & others.


64777 17-Aug-2000 nyan

- Fixed the conversion to bus_space interface.
- Added PC-98 Cbus devices support.
The original patch is submitted by chi@bd.mbn.or.jp (Chiharu Shibata)
- Removed old ed driver.


64630 14-Aug-2000 tanimura

Newbusify ed driver.

Partly submitted by: alex


63775 23-Jul-2000 tanimura

MFPAO: Add support for AX88190, equipped in MELCO LPC3-TX.


63451 18-Jul-2000 phk

Fix the IRQ9/IRQ2 confusion.

Submitted by: Alan Clegg <abc@bsdi.com>


63090 13-Jul-2000 archie

Make all Ethernet drivers attach using ether_ifattach() and detach using
ether_ifdetach().

The former consolidates the operations of if_attach(), ng_ether_attach(),
and bpfattach(). The latter consolidates the corresponding detach operations.

Reviewed by: julian, freebsd-net


62236 29-Jun-2000 ps

Only try to detect Linksys PCMCIA cards when we are in a pccard
environment. This fixes the breakage to ISA ethernet cards.

Reviewed by: peter


61792 18-Jun-2000 ps

Allow newer Linksys 10/100 PCMCIA cards to work.

Reviewed by: imp


61152 01-Jun-2000 phk

ed_ioctl() can be called from ifpromisc() after the card has been removed,
don't panic on a NULL pointer in that case.


60536 14-May-2000 archie

Move code to handle BPF and bridging for incoming Ethernet packets out
of the individual drivers and into the common routine ether_input().
Also, remove the (incomplete) hack for matching ethernet headers
in the ip_fw code.

The good news: net result of 1016 lines removed, and this should make
bridging now work with *all* Ethernet drivers.

The bad news: it's nearly impossible to test every driver, especially
for bridging, and I was unable to get much testing help on the mailing
lists.

Reviewed by: freebsd-net


59760 29-Apr-2000 phk

Remove unneeded #include <sys/kernel.h>


59720 28-Apr-2000 imp

sanpai-san (sanpai@sanpai.org) suggested that we put the novel probe
first. This will fix a few cards that hang on the WD probe. He tells
me that PAO went one step farther and removed the WD proble completely
and none of the cards in the 2.x database broke in PAO3. Since I'm
more conservative in this code, I'm just swapping the order, which he
said also fixed his problem.

Reviewed by: mdodd, iwasaki
Submitted by: sanpai@sanpai.org


59391 19-Apr-2000 phk

Remove ~25 unneeded #include <sys/conf.h>
Remove ~60 unneeded #include <sys/malloc.h>


59313 17-Apr-2000 imp

Remove unloaded printf. We do this now in the newbus layer.


58409 20-Mar-2000 imp

Bogusly returned zero always. Return 1 if we pass the checksum.


58325 20-Mar-2000 imp

Noriyoshi Kawano-san reported in nomads another OUI for linksys. 4 is
too many, so I removed the checks for the valid OUIs. We already do a
checksum of the entire ethernet address, so extra checking against the
OUI shouldn't be needed.


57969 13-Mar-2000 imp

Add another Linksys OUI.

PR: 16922
Submitted by: takawata@shidahara1.planet.sci.kobe-u.ac.jp


56361 21-Jan-2000 hosokawa

Propagate MAC address in CIS tupple to dev/ed/ driver.
Many ed-based Ethernet PC-cards can't get correct MAC address without
this patch.

Submitted by: Takanori Watanabe <takawata@shidahara1.planet.sci.kobe-u.ac.jp>
Reviewed by: Warner Losh <imp@village.org>


54384 10-Dec-1999 imp

Fix pccard ed driver, I think.
o Expose ed_stop and call it early to shutdown the hardware.
o When releasing the interrupt, pass the cookie for the irq, not
a pointer to the cookie (this is the base problem).
o Release other resources used, just like the ep driver


53978 01-Dec-1999 imp

Fix the hang on card eject problem and maybe the hang on suspend
problem.

o Create new timeout routine so we don't detach the card inside a ISR
but instead drop back to spl0 via a timeout of 0.
o Actually delete the child of the pccard device rather than just faking
it badly.
o Fix sio, ed and ep to have pccard detach routines that are int rather
than void.
o Fix ep and ed pccard detach routines to use if_detach rather than just
if_down. if_detach destroys the device, while if_down just marks it
down. In this incarnation of the pccard things, we map the disable
the slot action to detach the driver, which removes the driver from the
device tree. When that is done, a panic would soon follow as the
ifconfig tried to down the device.

Didn't fix:
o Should cache the pccard dev child's pointer in struct slot
o remove now unused parts of struct slot
o Any driver using softc after detach has been called. sio's softc used
to be statically allocated, so you could check sc->gone, but that is
now gone.
o Didn't remove gone from softc of drivers that use the old pccard method.

Didn't test:
o ed driver changes
o sio driver changes on pccards
o suspend (no laptop or apm support on my desktop)


53450 20-Nov-1999 mdodd

I forgot to remove the "NCARD == 0" hacks that kept this driver
from blowing up on PCMCIA systems. The hack isn't needed anymore.

Reminded by: Blaz Zupan <blaz@gold.amis.net>


53448 20-Nov-1999 imp

Kill unneeded #includes. They were left over from the short period of
time when a strcmp against the device name was required. Sio patches
sent to peter for review.


53378 18-Nov-1999 nyan

Set port_used and mem_used to the resource size instead of 1.

Submitted by: chi@bd.mbn.or.jp (Chiharu Shibata)


52783 02-Nov-1999 jmb

fix misordering of two lines in this file.


52725 01-Nov-1999 jmb

rearrange order of tests for NE1000, NE2000, and Linksys
cards. previous order caused computers with NE2000 cards
to hang during boot.


52714 31-Oct-1999 nyan

Change Linksys registers base/offset.
On NEC PC-98, asic_addr != nic_addr + 0x10.

Submitted by: chi@bd.mbn.or.jp (Chiharu Shibata)


52585 28-Oct-1999 imp

Last change to pccard_nbk now obviates the need to check the name of
the device in question.
Also fix warnings on if_ep_pccard.c


52584 28-Oct-1999 imp

Add comments to Linksys probe code.
Add another OUI to those acceptible to linksys (this check may need to
be removed).
A couple of style(9) nits.


52542 26-Oct-1999 jmb

add support for LinkSys 10/100 cards
new code is conditionalized by the vendor's ethernet OUI

Obtained from: PAO Project


52478 25-Oct-1999 imp

Have only one attach routine, rather than two.
Remove debug printfs.

This should allow the ed driver to work when memory mapping works again.


52473 25-Oct-1999 imp

Add pccard attachment. This won't work with memory mapped ed devices
yet, but that should be resolved shortly. Non memory mapped ed
devices should work, but I cannot test this since my only ed card is
memory mapped.

Submitted by: Matt Dodd <mdodd@freebsd.org>


52464 24-Oct-1999 mdodd

Fix compiling PCCARD kernels.

This is a hack and I don't like it.

Hopefully the new PCCARD stuff should be in working order in a day or so.


52375 18-Oct-1999 mdodd

This fixes the problem with SMC NE2000 cards hanging the box on
bootup. Somehow my backout of an abortaive attempt at shared
memory autoconfiguration included this line:

sc->mem_shared = 1;

Which is fairly important as it turns out.

Since I performed my pre-commit testing on a different box with a generic
NE2000 I didn't catch this. Pointy hat.


52247 15-Oct-1999 mdodd

- Remove the ISA, PCI, and PCCARD specific code from if_ed.c; it
now lives in the respective bus front end files.
- Add various function prototypes to if_edvar.h
- Clean up some debugging code that snuck into if_ed_isa.c
- Turn on the right bits in files.i386


52245 15-Oct-1999 mdodd

Break out the bus front end code into separate files.

Note that these haven't been turned on nor has the old code
been removed from if_ed.c. The next commit will address that.


52174 12-Oct-1999 dfr

* Add struct resource_list* argument to resource_list_alloc and
resource_list_release. This removes the dependancy on the
layout of ivars.

* Move set_resource, get_resource and delete_resource from
isa_if.m to bus_if.m.

* Simplify driver code by providing wrappers to those methods:

bus_set_resource(dev, type, rid, start, count);
bus_get_resource(dev, type, rid, startp, countp);
bus_get_resource_start(dev, type, rid);
bus_get_resource_count(dev, type, rid);
bus_delete_resource(dev, type, rid);

* Delete isa_get_rsrc and use bus_get_resource_start instead.

* Fix a stupid typo in isa_alloc_resource reported by Takahashi
Yoshihiro <nyan@FreeBSD.org>.

* Print a diagnostic message if we can't assign resources to a PnP
device.

* Change device_print_prettyname() so that it doesn't print
"(no driver assigned)-1" for anonymous devices.


51646 25-Sep-1999 phk

Remove NBPF conditionality of bpf calls in most of our network drivers.

This means that we will not have to have a bpf and a non-bpf version
of our driver modules.

This does not open any security hole, because the bpf core isn't loadable

The drivers left unchanged are the "cross platform" drivers where the respective
maintainers are urged to DTRT, whatever that may be.

Add a couple of missing FreeBSD tags.


51442 20-Sep-1999 peter

Make if_ed work again on pci, isa, isapnp. The hack to make it work on
PCCARD is pretty revolting but should buy us time while the pccard driver
angle is sorted out. A commit for the MCA ed attachment will follow
shortly.


51247 13-Sep-1999 peter

The sense of probes has inverted. They return an error, rather than
true/false. Fix ed_probe_HP_pclanp() so that it doesn't "succeed" on
non-existing hardware.

Submitted by: Mark Hittinger <bugs@freebsd.netcom.com>


51052 07-Sep-1999 dfr

Change isa_get/set_flags() to device_get/set_flags().


50959 05-Sep-1999 peter

$Id$ -> $FreeBSD$


50852 03-Sep-1999 peter

Commit a checkpoint of an updated if_ed driver. This is pretty much
Doug Rabson's work, with a few tweaks from Warner Losh and I. There are
still some quirks to resolve, but the old driver is presently breaking
the build.


50808 02-Sep-1999 kato

- Added new macros ED_P1_MAR(i) and ED_P1_PAR(i) that replace
`ED_P1_MAR + i' and `ED_P1_PAR + i', respectively.
- convert ED_PC_RESET and ED_PC_MISC into relative offset from
ED_PC_ASIC_OFFSET (those macros are not used in current source).

Submitted by: chi@bd.mbn.or.jp (Chiharu Shibata)


50807 02-Sep-1999 kato

The ed_probe_Novell should not clear id_maddr when it fails to probe.
This fixes potential panic by kvtop at addr == 0.

Submitted by: chi@bd.mbn.or.jp (Chiharu Shibata)


50770 01-Sep-1999 dfr

This is part of an untested set of changes to the ed driver to support
the new PnP code. Since the bulk of the driver changes are not being
committed at this time, it will not affect the driver. The code is being
committed early to allow others synchronise changes.


50477 28-Aug-1999 peter

$Id$ -> $FreeBSD$


48645 06-Jul-1999 des

Rename bpfilter to bpf.


48528 03-Jul-1999 peter

Eliminate a bunch of #include "pci.h" and #if NPCI > 0 around entire
files. config will leave the whole file out if configured to do so.


46845 09-May-1999 peter

#ifdef BRIDGE around a goto label used by the bridge code to silcence a
warning.


46813 09-May-1999 peter

Simplify the COMPAT_PCI_DRIVER/DATA_SET hack. We can add:
#define COMPAT_PCI_DRIVER(name,data) DATA_SET(pcidevice_set,data)
.. to 2.2.x and 3.x if people think it's worth it. Driver writers can do
this if it's not defined. (The reason for this is that I'm trying to
progressively eliminate use of linker_sets where it hurts modularity and
runtime load capability, and these DATA_SET's keep getting in the way.)


46024 24-Apr-1999 peter

Use COMPAT_PCI_DRIVER() for registration if it exists. This shouldn't
hurt the driver portability to 3.x too much for where drivers are shared.


45720 16-Apr-1999 peter

Bring the 'new-bus' to the i386. This extensively changes the way the
i386 platform boots, it is no longer ISA-centric, and is fully dynamic.
Most old drivers compile and run without modification via 'compatability
shims' to enable a smoother transition. eisa, isapnp and pccard* are
not yet using the new resource manager. Once fully converted, all drivers
will be loadable, including PCI and ISA.

(Some other changes appear to have snuck in, including a port of Soren's
ATA driver to the Alpha. Soren, back this out if you need to.)

This is a checkpoint of work-in-progress, but is quite functional.

The bulk of the work was done over the last few years by Doug Rabson and
Garrett Wollman.

Approved by: core


44829 17-Mar-1999 luigi

MF22... add bridging support to the device drivers. Without this
bridging cannot work on -current/releng3!


43314 28-Jan-1999 dillon

Fix warnings in preparation for adding -Wall -Wcast-qual to the
kernel compile


42820 19-Jan-1999 peter

Update the pccard hooks to use a module style declaration instead.


41766 14-Dec-1998 dillon

pci_device pd_probe function changed from returning char * to returning
const char *. Originally I was going to add casts from const char * to
char * in some of the pci device drivers, but the reality is that the
pci device probes return constant quoted strings.


41738 13-Dec-1998 eivind

Remove warning introduced by the last committer.


40565 22-Oct-1998 bde

Initialize isa_devtab entries for interrupt handlers in individual
device drivers, not in ioconf.c. Use a different hack in isa_device.h
so that a new config(8) is not required yet.

pc98 parts approved by: kato


40072 08-Oct-1998 kato

Discard previous commit.


40068 08-Oct-1998 kato

Add SMC EtherEZ98 support to ed driver (PC-98).

Reviewed by: kato
Submitted by: chi@bd.mbn.or.jp (Chiharu Shibata)


39144 13-Sep-1998 eivind

Support PnP compatibility IDs. This allow e.g. the ed driver to pick
up any PnP NE2000 compatible card, instead of forcing us to always
update ID lists.

Submitted by: Ugo Paternostro <paterno@dsi.unifi.it>


38505 24-Aug-1998 bde

Fixed printf format errors. Only one left in LINT on i386's.


37101 21-Jun-1998 bde

Removed unused includes.


37032 17-Jun-1998 bde

Include <i386/isa/pnp.h> after including its prerequisite
<i386/isa/isa_device.h> - don't depend on pollution in <sys/conf.h>
including the prerequisite earlier.


36735 07-Jun-1998 dfr

This commit fixes various 64bit portability problems required for
FreeBSD/alpha. The most significant item is to change the command
argument to ioctl functions from int to u_long. This change brings us
inline with various other BSD versions. Driver writers may like to
use (__FreeBSD_version == 300003) to detect this change.

The prototype FreeBSD/alpha machdep will follow in a couple of days
time.


35256 17-Apr-1998 des

Seventy-odd "its" / "it's" typos in comments fixed as per kern/6108.


35210 15-Apr-1998 bde

Support compiling with `gcc -ansi'.


34936 29-Mar-1998 eivind

Don't use fast interrupts when initialized through PnP. if_ed does
not support fast interrupts.

Noticed by: bde


34928 28-Mar-1998 bde

Removed unused #includes.


34645 17-Mar-1998 danny

PR: i386/6040
Submitted by: nakagawa@jp.freebsd.org
Add new PCI NE2000 (VIA VT86C926)


33893 27-Feb-1998 se

Add PCI device ID of Surecom NE-34


33873 27-Feb-1998 hosokawa

Support for "MAC address in CIS" type cards.
For example, IBM Creditcard Ethernet's MAC address is ALWAYS
"0:2:4:6:8:a" :-) without this code.


33864 27-Feb-1998 msmith

PCCARD-code related style nits, as requested.
Submitted by: bde


33860 27-Feb-1998 msmith

Fix some style nits and remove an unused header.
Submitted by: bde


33134 06-Feb-1998 eivind

Back out DIAGNOSTIC changes.


33110 05-Feb-1998 eivind

Add PnP support to if_ed.c.


33108 04-Feb-1998 eivind

Turn DIAGNOSTIC into a new-style option.


32350 08-Jan-1998 eivind

Make INET a proper option.

This will not make any of object files that LINT create change; there
might be differences with INET disabled, but hardly anything compiled
before without INET anyway. Now the 'obvious' things will give a
proper error if compiled without inet - ipx_ip, ipfw, tcp_debug. The
only thing that _should_ work (but can't be made to compile reasonably
easily) is sppp :-(

This commit move struct arpcom from <netinet/if_ether.h> to
<net/if_arp.h>.


31347 22-Nov-1997 msmith

Add Winbond W89C940 ID to the list.
Submitted by: Micha Class <michael_class@hpbbse.bbn.hp.com>


31311 20-Nov-1997 nate

- Renamed <pccard/card.h> -> <pccard/cardinfo.h>.

Forgotten by: me
Reminded by: Bruce


31016 07-Nov-1997 phk

Remove a bunch of variables which were unused both in GENERIC and LINT.

Found by: -Wunused


30892 02-Nov-1997 dg

Sigh, kill setting of 0WS...it breaks more machines than it fixes.


30824 29-Oct-1997 jdp

The previous change added a use of the DATA_SET macro, but forgot
to define it by including <sys/kernel.h>. That broke PC-CARD
support for this driver, producing the dreaded "device allocation
failed" message. Surprisingly, the missing include caused only
two compiler warnings. The compilation still "succeeded" anyway.


30747 26-Oct-1997 nate

- Instead of relying on a functional call to register PCARD-capable drivers,
use a Linker Set. Note, if a driver is loaded as an LKM if will have
to use the function call, but since none of the existing drivers
are loadable, this made things cleaner and boot messages nicer.

Obtained from: PAO-970616


30721 26-Oct-1997 nate

- Functional changes to PCCARD support.
* Kill individual drivers 'suspend' routines, since there's no simple/safe
way to suspend/resume a card w/out going through the complete probe
at initialization time.
* Default to using the apm_pccard_resume sysctl code, which basically
pretends the card was removed, and then re-inserted. Suspend/resume
is now 'emulated' with a fake insert/removal. (Hence we no longer
need the driver-specific suspend routines.)


30720 26-Oct-1997 nate

- Do a bunch of gratuitous changes intended to make the code easier to
follow.
* Rename/reorder all of the pccard structures, change many of the member
names to be descriptive, and follow more closely other 'bus' drivers
naming schemes.
* Rename a bunch of parameter and local variable names to be more
consistant in the code.
* Renamed the PCCARD 'crd' device to be the 'card' device
* KNF and make the code consistant where it was obvious.
* ifdef'd out some unused code


30084 03-Oct-1997 dg

Backed out part of a previous change: don't set ZWS on '790 chips; it has
shown to be harmful in that it results in the card not being detected
properly on warmboot due to the station address failing to be read
correctly from the NVRAM.


29261 10-Sep-1997 dg

Change the address for the low end of what we permit from c0000 down
to a0000 so that people can put their cards in the middle of their
video memory if they want. :-)


29226 08-Sep-1997 dg

Added a check for the ISA memory address range being valid. Fixes PR#835.


29221 08-Sep-1997 dg

Turn on the 0WS option for 16bit cards. Newer machines insert enough
delay that without this the performance is unacceptable. The 83C690,
83C790, and 83C795 chips which this affects are all designed to work
with 0 waitstates in 16bit mode.
Also cleaned up the toggling of 16bit access mode that occurs during
normal operation; the previous code may not have done the right thing
in all cases.


29024 02-Sep-1997 bde

Added used #include - don't depend on <sys/mbuf.h> including
<sys/malloc.h> (unless we only use the bogusly shared M*WAIT flags).


28210 14-Aug-1997 danny

Add the NetVin 5000 series NE2000 PCI card vendor and device IDs.


27555 20-Jul-1997 bde

Removed unused #includes.


24995 18-Apr-1997 davidn

Rearrange pci network card identification for easier additions.
Added KTI NE2000 clone.


24204 24-Mar-1997 bde

Don't include <sys/ioctl.h> in the kernel. Stage 2: include
<sys/sockio.h> instead of <sys/ioctl.h> in network files.


22975 22-Feb-1997 peter

Back out part 1 of the MCFH that changed $Id$ to $FreeBSD$. We are not
ready for it yet.


22557 11-Feb-1997 julian

really minor cleanup

sc is set to ifp->if_softc so use it..


21673 14-Jan-1997 jkh

Make the long-awaited change from $Id$ to $FreeBSD$

This will make a number of things easier in the future, as well as (finally!)
avoiding the Id-smashing problem which has plagued developers for so long.

Boy, I'm glad we're not using sup anymore. This update would have been
insane otherwise.


21666 13-Jan-1997 wollman

Use the new if_multiaddrs list for multicast addresses rather than the
previous hackery involving struct in_ifaddr and arpcom. Get rid of the
abominable multi_kludge. Update all network interfaces to use the
new machanism. Distressingly few Ethernet drivers program the multicast
filter properly (assuming the hardware has one, which it usually does).


20723 21-Dec-1996 se

Add PCI IDs of the ProLAN and Compex PCI NE2000 clones.
Based on information sent by Peter Mutsaers <plm@xs4all.nl>.


20407 13-Dec-1996 wollman

Convert the interface address and IP interface address structures
to TAILQs. Fix places which referenced these for no good reason
that I can see (the references remain, but were fixed to compile
again; they are still questionable).


20276 10-Dec-1996 dg

1) Implement SIOCSIFMTU in ether_ioctl(), and change ether_ioctl's return
type to be int so that errors can be returned.
2) Use the new SIOCSIFMTU ether_ioctl support in the few drivers that are
using ether_ioctl().
3) In if_fxp.c: treat if_bpf as a token, not as a pointer. Don't bother
testing for FXP_NTXSEG being reached in fxp_start()...just check for
non-NULL 'm'. Change fxp_ioctl() to use ether_ioctl().


20116 03-Dec-1996 phk

PR kern/2141:

function ed_attach_NE2000_pci() in if_ed.c passes
an uninitialized block of memory (got with malloc())
to ed_attach. This prevents a proper initialization
of the device descriptor and in my case causes a panic
during the probe, while printing out device info.

Reviewed by: phk
Submitted by: Luigi Rizzo <luigi@iet.unipi.it>


19780 15-Nov-1996 wollman

Fix RFC 1650 stats... should have read the doco more carefully.
Fixes PR#2011

Submitted by: seki@sysrap.cs.fujitsu.co.jp


18979 17-Oct-1996 nate

This patch attempts to make the pccard probe in if_ed.c work with
non-memory-mapped cards.

Submitted by: Michael Smith <msmith@atrad.adelaide.edu.au>
Reviewed by: phk,dg


18946 15-Oct-1996 bde

Updated #includes to 4.4lite style.


18869 11-Oct-1996 wollman

Implement the RFC 1650 MIB.


18084 06-Sep-1996 phk

Remove devconf, it never grew up to be of any use.


17877 28-Aug-1996 bde

Use "" instead of <> for a header in the current directory.

Don't #include an unused header from i386/isa. Headers from there
shouldn't be included in "isa-independent" files anyway.


17465 07-Aug-1996 dg

This diff adds support for the HP PC Lan+ cards (model numbers: 27247B
and 27252A) in FreeBSD's `ed' driver.

Submitted by: A JOSEPH KOSHY <koshy@india.hp.com>


17455 06-Aug-1996 phk

Megacommit to straigthen out ETHER_ mess.

I'm pretty convinced after looking at this that the majority of our
drivers are confused about the in/exclusion of ETHER_CRC_LEN :-(


17416 04-Aug-1996 phk

Replace about 60 lines of code with a call to ether_ioctl().
This can be done for most of our ethernet drivers.


16733 25-Jun-1996 bde

Added #include of <machine/md_var.h>. This will be needed when
some declarations are moved from <machine/cpufunc.h> to better
places.


16471 18-Jun-1996 bde

Removed unused #includes of <i386/isa/icu.h> and <i386/isa/icu.h>. icu.h
is only used by the icu support modules and by a few drivers that know
too much about the icu (most only use it to convert `n' to `IRQn'). isa.h
is only used by ioconf.c and by a few drivers that know too much about
isa addresses (a few have to, because config is deficient).


16363 14-Jun-1996 asami

The Great PC98 Merge.

All new code is "#ifdef PC98"ed so this should make no difference to
PC/AT (and its clones) users.

Ok'd by: core
Submitted by: FreeBSD(98) development team


16289 11-Jun-1996 alex

Detach the device at shutdown.

Add a prototype for ed_attach_NE2000_pci (this really belongs somewhere
else, but where?).


15943 27-May-1996 gpalmer

Clean up the warnings produced by the recent PCI code. Requested by
SE since he doesn't have good access right now


15813 18-May-1996 se

Add support for NE2000 compatible PCI Ethernet cards. The PCI probe
is enabled by having an "device ed0 at isa? [...]" config line.
The first PCI card will get a unit number one higher than the highest
defined for any ISA card of the ED type, e.g. if ed0 and ed1 are
configured, then the PCI cards will be ed2, ed3, ...

BEWARE: If you have configured your kernel as ed0 with the port address
as assigned by the PCI BIOS, then your card will be found by both the
PCI and ISA probes, and bad things may happen. Make sure to restore
the original port address form the GENERIC kernel for the ed0 device!

Reviewed by: davidg


15363 23-Apr-1996 nate

Format the already applied PCCARD additions to use KNF form. No
functional changes.


15130 08-Apr-1996 dg

Killed sections 3 and 4 of my copyright as I think it is unnecessarily
restrictive.


14950 31-Mar-1996 joerg

Fix a bogus message:
ed0: Invalid irq configuration (2) must be 2-5 for 3c503
^ ^


13937 06-Feb-1996 wollman

Clean up Ethernet drivers:
- fill in and use ifp->if_softc
- use if_bpf rather than private cookie variables
- change bpf interface to take advantage of this
- call ether_ifattach() directly from Ethernet drivers
- delete kludge in if_attach() that did this indirectly


13765 30-Jan-1996 mpp

Fix a bunch of spelling errors in the comment fields of
a bunch of system include files.


13619 24-Jan-1996 phk

Use new printf features rather than local kludges.


12868 15-Dec-1995 dg

Changed arg type for pio functions.
Cast a few things appropriately to shut up the compiler.


12854 15-Dec-1995 bde

Completed function declarations and/or added prototypes and/or added
#includes to get prototypes.


12724 10-Dec-1995 phk

Staticize and cleanup.


12634 05-Dec-1995 dg

Updated my copyright.
Fixed two cases of "=" that should have been "==" in card type comparison.
Simplified expression that checks for interface up/down.
Moved ed_ring_copy to before its first use so that it's inlined as intended.
Change mbuf allocation policy so that a received packet is stored in just
an mbuf header (no cluster) if it will fit in one.


12628 05-Dec-1995 dg

all:
Removed ifnet.if_init and ifnet.if_reset as they are generally unused.
Change the parameter passed to if_watchdog to be a ifnet * rather than
a unit number. All of this is an attempt to move toward not needing an
array of softc pointers (which is usually static in size) to point to
the driver softc.

if_ed.c:
Changed some of the argument passing to some functions to make a little
more sense.

if_ep.c, if_vx.c:
Killed completely bogus use of if_timer. It was being set in such a way
that the interface was being reset once per second (blech!).


12362 18-Nov-1995 bde

Fixed staticization - use `static' in function headers, not just in
prototypes.


12326 16-Nov-1995 bde

Included <sys/conf.h>. It used to be included as a side effect of
including <sys/devconf.h>.


12309 15-Nov-1995 dg

Correct the bogus probe for 8216/8416 cards...it was broken.

Submitted by: Steve Piette <steve@simon.chi.il.US>


12080 04-Nov-1995 bde

Added `#include "ioconf.h"' to <machine/conf.h> and cleaned up the
misplaced extern declarations (mostly prototypes of interrupt handlers)
that this exposed. The prototypes should be moved back to the driver
sources when the functions are staticalized.

Added idempotency guards to <machine/conf.h>. "ioconf.h" can't be
included when building LKMs so define a wart in bsd.kmod.mk to help
guard against including it.


11961 31-Oct-1995 phk

Cleanup, make things static.


11896 28-Oct-1995 pst

Close out kern/46.

Remove confusing backwards compatibility code that allowed driver to be
used in pre-4.4 releases. The 3COM card's use -link2 to switch tranceivers.
(no functional changes here)


11872 28-Oct-1995 phk

Remove unused functions and variables, make things static, and other cleanups.


11819 26-Oct-1995 julian

Reviewed by: julian and jhay@mikom.csir.co.za
Submitted by: Mike Mitchell, supervisor@alb.asctmd.com

This is a bulk mport of Mike's IPX/SPX protocol stacks and all the
related gunf that goes with it..
it is not guaranteed to work 100% correctly at this time
but as we had several people trying to work on it
I figured it would be better to get it checked in so
they could all get teh same thing to work on..

Mikes been using it for a year or so
but on 2.0

more changes and stuff will be merged in from other developers now that this is in.

Mike Mitchell, Network Engineer
AMTECH Systems Corporation, Technology and Manufacturing
8600 Jefferson Street, Albuquerque, New Mexico 87113 (505) 856-8000
supervisor@alb.asctmd.com


11602 21-Oct-1995 phk

A mixed bag of changes, relating to getting the state in "lsdev" right,
and pccard support to work sensibly. Better by far, but still not good.


11460 13-Oct-1995 wollman

Say goodbye to IFF_NOTRAILERS. Support for trailers was officially
dropped for 4.4, but for some reason this flag lived on. (Until
today, that is.)


11409 10-Oct-1995 phk

PCCARD support.


11016 26-Sep-1995 phk

if_ze.c was derived from if_ed.c about 42 (!) versions ago. It is now
scheduled for demolition. This is a first step: get rid of if_zereg.h,
by adding the five extra definitions to if_edreg.h.
Also add some definitions which will become needed when if_ze.c gets
replaced entirely by pccard and if_ed.c. (this is a 2.1.0 candidate)


10270 25-Aug-1995 bde

Remove extra arg from the call to ds_crc().


9745 28-Jul-1995 dg

Fixed bug where a bogus packet length could cause a panic if the length
was less than sizeof(struct ed_ring).


9717 25-Jul-1995 bde

Change memcmp() to bcmp(). memcmp() isn't declared or implemented
for the kernel, but gcc provides an inline version of it if the
kernel is compiled with -O.


8876 30-May-1995 rgrimes

Remove trailing whitespace.


8511 14-May-1995 dg

After carefully reading three reference documents, and analyzing
the 802.3 frames generated by the DC21040 (which does automatic padding
of less-than-minimum frames) and the frames generated by the 'ed'
driver, I've found that there is indeed a bug in the size of "ETHER_MIN_LEN"
as reported by several people, John Hay being the most recent. The driver
was actually setting the length to 6+6+2+50 (64 bytes), which when adding
in the CRC (which is automatically appended to the frame and not included
in the length), the minimum frame is 4 bytes larger than it is supposed to
be. All of this is confirmed by tcpdump showing 50 bytes of data for
minimum frames from the 'ed' cards and 46 bytes from 'de' cards. This
analysis has also revealed that there is garbage in the un-filled in
portion at the end of the minimum frames from the 'ed' driver; I don't
plan to fix this.


8486 12-May-1995 dg

Only use card's soft-configured irq if no irq was specified in the kernel
config file. This should fix a number of complaints regarding the auto
detection behavior.


8266 04-May-1995 dg

Kill bogus duplicated code that resulted in an editing screwup of mine
that happend about 4 months ago.


7780 12-Apr-1995 wollman

Add a class field to devconf and mst drivers.
For those where it was easy, drivers were also fixed to call
dev_attach() during probe rather than attach (in keeping with the
new design articulated in a mail message five months ago). For
a few that were really easy, correct state tracking was added as well.
The `fd' driver was fixed to correctly fill in the description.
The CPU identify code was fixed to attach a `cpu' device. The code
was also massively reordered to fill in cpu_model with somethingremotely
resembling what identifycpu() prints out. A few bytes saved by using
%b to format the features list rather than lots of ifs.


7090 16-Mar-1995 bde

Add and move declarations to fix all of the warnings from `gcc -Wimplicit'
(except in netccitt, netiso and netns) and most of the warnings from
`gcc -Wnested-externs'. Fix all the bugs found. There were no serious
ones.


6742 26-Feb-1995 dg

Doubled 'maxwait' to 200 (240us).

Submitted by: brian@mediacity.com (Brian Litzinger)


6698 25-Feb-1995 dg

Spell "guaranteed" correctly.

Submitted by: frank@fwi.uva.nl (Frank van der Linden)


5807 23-Jan-1995 dg

Much better fix/support for the 83c795 based cards (the new SMC EtherEZ)
by steve@simon.chi.il.us (Steven E. Piette). Minor changes by me.


5629 15-Jan-1995 wollman

Some fixes to device configuration, now that I've had a chance to do it
properly from the beginning:

1) The `kern_devconf' struct should be a part of the driver's
`softc' structure (now it is).
2) The `description' should say what the device actually is,
rather than just giving a model number (now it does).
3) The device should be registered even if the probe fails, so
that it can be reconfigured later.
4) For netifs, the device state should follow the IFF_UP flag.

Other network interfaces should follow this example. (Please?) Eventually
there should be a rundown routine doing the equivalent of setting IFF_UP
off, and perhaps more if warranted.


5379 04-Jan-1995 dg

Made a few cosmetic changes, and fixed a bug in handling the case of the
remote DMA not completing correctly (the packet was still queued for xmit).


5333 01-Jan-1995 dg

Possible fix for NE2000 problems...the remote byte count wasn't word
aligned even though the transfers are 16bit.


5332 01-Jan-1995 dg

Get rid of unused variable.


5320 31-Dec-1994 jkh

Miscellaneous changes from Bill Paul:

- /sys/i386/isa/if_ed.c doesn't quite know how to deal with SMC EtherEZ
ethernet cards. The EtherEZ looks just like the Elite Ultra, except it
has only 8K of shared memory. The only way to have it properly detected
is to zero and test a few bytes of memory just about the first 8K region.
If it clears properly, it's an Elite Ultra, otherwise it's an EtherEZ.

I've also got an EtherEZ patch for netboot (Makefile, ether.c and ether.h).

- /sys/i386/isa/syscons.c wraps at the next to the last column rather than
the last column, like it should. You don't really notice this unless you
use certain programs that write all the way out to, say, the 80th column,
like VMSmail. Along with a one-line fix for this are some changes to
implement a non-blinking cursor. Put 'options "NOBLINK_CURSOR"' in your
config file and give it a try. :)

Submitted by: wpaul


5195 22-Dec-1994 wollman

Move ARP interface initialization into if_ether.c:arp_ifinit().


4820 26-Nov-1994 dg

Always put received packets in an mbuf cluster. This simplifies the code
considerably and is measurably faster. Various comment fixes.


4796 24-Nov-1994 dg

Moved conversion of ether_type to host byte order out of ethernet drivers
and into ether_input(). It was silly to have bpf want this one way and
ether_input want it another way. Ripped out trailer support from the few
remaining drivers that still had it.


4558 17-Nov-1994 dg

Fixed rather serious bug where the interface wasn't started after it was
stopped in ed_setrcr(). I'm amazed that the driver worked at all. Thanks to
John Hay for pointing this out.


4429 13-Nov-1994 dg

In cases where it is possible, use the card's configured irq rather than
the one compiled into the kernel. Left in some commented-out shared memory
performance test code.


3816 23-Oct-1994 wollman

Finished device configuration database work for all ISA devices (except `ze')
and all SCSI devices (except that it's not done quite the way I want). New
information added includes:

- A text description of the device
- A ``state''---unknown, unconfigured, idle, or busy
- A generic parent device (with support in the m.i. code)
- An interrupt mask type field (which will hopefully go away) so that
. ``doconfig'' can be written

This requires a new version of the `lsdev' program as well (next commit).


3796 22-Oct-1994 phk

While I debugged this, I quenched the compile warnings from if_ed. no other
changes.


3713 19-Oct-1994 wollman

Add support for devconf to a large number of device drivers, and do
the right thing in dev_goawayall() when kdc_goaway is null.


3670 17-Oct-1994 phk

isa_device.h: Added flag for sensitive HW. ed# seems to break if anything
else has been probed. This feature could go away again, if we can curb the
problem another way.

if_ed.c, syscons.c: Set the above flag. ed# because it needs it, syscons
because it looks stupid to "detect" the display you have already filled up
with text :-)

bt742a.c: Check bt_cmd() return-val during probe, thus failing on adaptec's.
Also silenced various printf's during the probe.

isa.c: Probe devices with the above flag set before the rest. Reduce the
number of "conflict" messages per device to one.

***
Please test the GENERIC-kernel now, if nobody can make it fail, GENERICAH
and GENERICBT has a finite and short life-expectancy...
***


3590 14-Oct-1994 dg

The code I wrote to write mbufs out using PIO had a bug in the handling
of mb_offset given the right sequence of 1 and 0 byte mbufs. This bug
was discovered by John Hood who also provided this fix - which is a
rewrite of the routine (and is easier to understand than the code I wrote).

Submitted by: John Hood <cgull@smoke.marlboro.vt.us>


3428 08-Oct-1994 dg

Completely removed trailer support. The only reason I wrote that code in
the first place was so that BPF could grok trailer packets. I've since
decided that this is a job for tcpdump to decipher (if at all). Also
fixed up checks for received packet length to better cope with ancient
starlan boards.


2826 16-Sep-1994 dg

Removed inclusion of pio.h and cpufunc.h (cpufunc.h is included from
systm.h). Merged functionality of pio.h into cpufunc.h. Cleaned up some
related code.


2534 07-Sep-1994 dg

Removed MULTICAST ifdef's; it's no longer optional. Cleaned up code a
little.


2200 22-Aug-1994 dg

Fixed minor typo in diagnostic message.


2112 18-Aug-1994 wollman

Fix up some sloppy coding practices:

- Delete redundant declarations.
- Add -Wredundant-declarations to Makefile.i386 so they don't come back.
- Delete sloppy COMMON-style declarations of uninitialized data in
header files.
- Add a few prototypes.
- Clean up warnings resulting from the above.

NB: ioconf.c will still generate a redundant-declaration warning, which
is unavoidable unless somebody volunteers to make `config' smarter.


2056 13-Aug-1994 wollman

Change all #includes to follow the current Berkeley style. Some of these
``changes'' are actually not changes at all, but CVS sometimes has trouble
telling the difference.

This also includes support for second-directory compiles. This is not
quite complete yet, as `config' doesn't yet do the right thing. You can
still make it work trivially, however, by doing the following:

rm /sys/compile
mkdir /usr/obj/sys/compile
ln -s M-. /sys/compile
cd /sys/i386/conf
config MYKERNEL
cd ../../compile/MYKERNEL
ln -s /sys @
rm machine
ln -s @/i386/include machine
make depend
make


2037 12-Aug-1994 dg

Removed some unnecessary code that sets the link layer address. This should
be removed from the other drivers, too, as it is already done at a higher level
in the kernel.


1954 08-Aug-1994 jkh

Fix a compilation-stopping typo; whoops, David - more sleep! :-)
Submitted by: jkh


1944 08-Aug-1994 dg

Added ioctl support for SIOCSIFMTU.


1831 04-Aug-1994 dg

Updated to include improvements from FreeBSD 1.1.5. Fixed brokeness
with multicast support and BPF.


1817 02-Aug-1994 dg

Added $Id$


1549 25-May-1994 rgrimes

The big 4.4BSD Lite to FreeBSD 2.0.0 (Development) patch.

Reviewed by: Rodney W. Grimes
Submitted by: John Dyson and David Greenman


1358 13-Apr-1994 dg

Add delays after changing from 8/16 - 16/8 bit mode and after enabling/
disabling the shared memory. The 83C790 needs these or it does bad things.


1349 10-Apr-1994 dg

Fixed brokeness in the support of the 83C790/Elite Ultra (now that I
finally have the f**king documentation!):

1) Changed all the numeric register offsets to symbolic ones (it should
have been this way originally).
2) If 16 bit, disable the shared memory when not using it. Apparantly
switching between 8/16bit mode makes the Ultra unhappy unless
this is done (i.e. it trashes the bus).


1230 02-Mar-1994 dg

Minor comment change.


1226 01-Mar-1994 dg

Fix from Christoph Robitschko: the '790 interrupt table was wrong.


1080 03-Feb-1994 dg

if_ep.c: removed netisr.h, fixed unconverted ep_ac, changed <> into ""
for include files.
if_ed, if_ie, if_is: don't include netisr.h.


1075 02-Feb-1994 dg

Added 8003EB board type. Clue from Gerard J van der Grinten (gvdg@cdc.com)


1073 02-Feb-1994 dg

Added type code for 8003W.


1049 31-Jan-1994 dg

Patch from dcjm@cs.ed.ac.uk (Dave Matthews)...
Yes, I know that IFADDR ioctl is supposed to be deprecated... Note
that the patch was modified by me to fit better into the driver. -DG

...

While porting CAP to 386bsd/pk0.2.4 and now to FreeBSD Release 1.0
I found a couple of bugs associated with the packet filter. Here
are the fixes. I'm posting them here because they apply to
FreeBSD and 386bsd/pk0.2.4 and possibly to other *BSD.

The first occurs when using the packet filter to write raw
ethernet packets. The header consisting of the sender and
destination addresses and the protocol is removed and later
added back on, but with the byte order of the protocol reversed.
The fix ensures that the byte order in the protocol field is
swapped when it is removed.

The second fix ensures that SIOCGIFADDR works for BPF as claimed
in the man pages, by adding it to the ed driver. Similar fixes
will be needed for other ethernet drivers.
Dave Matthews.


1015 25-Jan-1994 ats

Put some more info about the toshiba ethernet cards into if_edreg.h.
Changed some numeric constants to defines in if_ed.c for the toshiba
cards.


969 11-Jan-1994 ats

Added the support for the Toshiba ethernet cards. It is only
ifdef and not default, because, i don't know if anyone else
is using this card.


968 11-Jan-1994 ats

Thrown out the obsolete drivers in the TODO list.
Added the Toshiba board-id's into the if_edreg.h file and the different
checksum for the Toshiba ethernet-boards.


927 03-Jan-1994 dg

Yanked out history section as it is unlikely there will be any further
changes for some time. Also changed the indentation style a little.


879 19-Dec-1993 wollman

Make everything compile with -Wtraditional. Make it easier to distribute
a binary link-kit. Make all non-optional options (pagers, procfs) standard,
and update LINT to reflect new symtab requirements.

NB: -Wtraditional will henceforth be forgotten. This editing pass was
primarily intended to detect any constructions where the old code might
have been relying on traditional C semantics or syntax. These were all
fixed, and the result of fixing some of them means that -Wall is now a
realistic possibility within a few weeks.


808 29-Nov-1993 dg

* Revision 2.16 1993/11/29 16:55:56 davidg
* merged in Garrett Wollman's strict prototype changes
*
* Revision 2.15 1993/11/29 16:32:58 davidg
* From Thomas Sandford <t.d.g.sandford@comp.brad.ac.uk>
* Add support for the 8013W board type


798 25-Nov-1993 wollman

Make the LINT kernel compile with -W -Wreturn-type -Wcomment -Werror, and
add same (sans -Werror) to Makefile for future compilations.


791 22-Nov-1993 dg

* Revision 2.14 1993/11/22 10:55:30 davidg
* change all splnet's to splimp's
*
* Revision 2.13 1993/11/22 10:53:52 davidg
* patch to add support for SMC8216 (Elite-Ultra) boards
* from Glen H. Lowe
*
* Revision 2.12 1993/11/07 18:04:13 davidg
* fix from Garrett Wollman:
* add a return(0) at the end of ed_probe so that if the various device
* specific probes fail that we just don't fall of the end of the function.


720 07-Nov-1993 wollman

Made all header files idempotent and moved incorrect common data from
headers into a related source file. Also fixed a bug in ed_probe() where
it was possible to fall off the end of the function


647 23-Oct-1993 dg

* Revision 2.11 1993/10/23 04:21:03 davidg
* Novell probe changed to be invasive because of too many complaints
* about some clone boards not being reset properly and thus not
* found on a warmboot. Yuck.
*
* Revision 2.10 1993/10/23 04:07:12 davidg
* increment output errors if the device times out (done via watchdog)
*
* Revision 2.9 1993/10/23 04:01:45 davidg
* increment input error counter if a packet with a bad length is
* detected.


609 15-Oct-1993 dg

* Revision 2.8 1993/10/15 10:59:56 davidg
* increase maximum time to wait for transmit DMA to complete to 120us.
* call ed_reset() if the time limit is reached instead of trying
* to abort the remote DMA.
*
* Revision 2.7 1993/10/15 10:49:10 davidg
* minor change to way the mbuf pointer temp variable is assigned in
* ed_start (slightly improves code readability)
*
* Revision 2.6 93/10/02 01:12:20 davidg
* use ETHER_ADDR_LEN in NE probe rather than '6'.


532 01-Oct-1993 dg

* Revision 2.5 93/09/30 17:44:14 davidg
* patch from vak@zebub.msk.su (Serge V.Vakulenko) to work around
* a hardware bug in cheap WD clone boards where the PROM checksum
* byte is always zero


522 30-Sep-1993 dg

* Revision 2.4 93/09/29 21:24:30 davidg
* Added software NIC reset in NE probe to work around a problem
* with some NE boards where the 8390 doesn't reset properly on
* power-up. Remove initialization of IMR/ISR in the NE probe
* because this is inherent in the reset.


521 29-Sep-1993 dg

* Revision 2.3 93/09/29 15:10:16 davidg
* credit Charles Hannum


520 29-Sep-1993 dg

* Revision 2.2 93/09/29 13:23:25 davidg
* added no multi-buffer override for 3c503
*
* Revision 2.1 93/09/29 12:32:12 davidg
* changed multi-buffer count for 16bit 3c503's from 5 to 2 after
* noticing that the transmitter becomes idle because of so many
* packets to load.
*
* Revision 2.0 93/09/29 00:00:19 davidg
* many changes, rewrites, additions, etc. Now supports the
* NE1000, NE2000, WD8003, WD8013, 3C503, 16bit 3C503, and
* a variety of similar clones. 16bit 3c503 now does multi
* transmit buffers. Nearly every part of the driver has
* changed in some way since rev 1.30.


506 25-Sep-1993 dg

* Revision 1.30 93/09/24 18:43:31 davidg
* fix bug where Compex boards ident themselves as 8003E's and the
* 16bit override wasn't working


498 22-Sep-1993 dg

rewrote interrupt code to be cleaner, fixed up some other parts
to make it easier to add future board types.


426 09-Sep-1993 dg

As of this revision, all known bugs have been fixed. Some of the fixes include:

1) fixed 3c503 lock-up if the thinwire cable was disconnected at boot time
2) 8013EBT boards now work (quite well!) in 16bit/16k mode
3) ED_NO_DOUBLE_BUFFERING flag now works
4) slightly higer performance (about 3%) with 16bit WD/SMC boards
5) support for WD8013WC (10BaseT) boards

Additionally, the probe code has been reorganized to be much cleaner. This
revision of the driver is 1.25. The release notes have been updated as well.


226 02-Aug-1993 dg

* Fixed problem where some rev 8013EBT boards want the DCR_LS flag
* set in order to work in 16bit mode.

Seems also to improve performance by 15%! (?!) I think there might
be more to this flag than the manual says.


200 27-Jul-1993 dg

* Applied fixes from Bruce Evans to fix COW bugs, >1MB kernel loading,
profiling, and various protection checks that cause security holes
and system crashes.
* Changed min/max/bcmp/ffs/strlen to be static inline functions
- included from cpufunc.h in via systm.h. This change
improves performance in many parts of the kernel - up to 5% in the
networking layer alone. Note that this requires systm.h to be included
in any file that uses these functions otherwise it won't be able to
find them during the load.
* Fixed incorrect call to splx() in if_is.c
* Fixed bogus variable assignment to splx() in if_ed.c


198 27-Jul-1993 dg

* Added include of systm.h to pick up inlined min/max/bcmp if you have
* them in cpufunc.h. Modified wait loop in reset to look a little better.
* Added read for talley counters to prevent an infinite loop on old
* 8003E's if they (the counters) overflow.


189 25-Jul-1993 dg

Fixed logic problem which caused a bogus value to be written to the 3c503
asic register even if the board isn't a 3c503. This caused old 8003E's not
to work because they ignore IO address bits >10bits and the 3c503 asic is
located at +0x400....the offset was ignored by the 8003E and so the
value was written to one of the NIC registers. The bug was discovered by
Wolfgang Solfrank.


172 20-Jul-1993 dg

Added config file override for memory size and added flags to force
8bit or 16bit operation, and a flag to disable transmitter double buffering.
See the updated "ed.relnotes" file for information about how to set
the flags.
This should be considered the first "production" release. It still
needs a manual page, though.


165 20-Jul-1993 jkh

Changed comment relating to memsize to be a little less misleading.


164 20-Jul-1993 jkh

Fixed to allow iosiz config parameter to override what was (for me,
incorrectly) probed. This allows you more flexibility in getting weird
WD 80x3 clones to work.


50 27-Jun-1993 dg

fixed bugs in the probe routine uncovered by the previous fix.


48 26-Jun-1993 dg

fixed bug in probe that causes it to complain about 'Invalid irq configuration'
if the interface isn't present in the system.


43 23-Jun-1993 dg

Second beta release of device driver for SMC/WD 80x3 ethernet boards +
some additional comments.


42 22-Jun-1993 dg

Second beta release of device driver for WD/SMC 80x3 and 3c503 ethernet boards


6 14-Jun-1993 dg

Beta release of device driver for SMC/WD80x3 and 3C503 ethernet boards.