summaryrefslogtreecommitdiffstats
path: root/sys/dev/ed
Commit message (Collapse)AuthorAgeFilesLines
...
* o Minor tweaks to the AX88x90 probe routine, mostly related to comments.imp2009-03-311-48/+17
| | | | | | | 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.
* Go back to filtering all PHY addresses above 16 since at least twoimp2009-03-311-8/+9
| | | | | 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.
* Hmmmm... This can't be right... But it looks like the DL100xx chipsimp2009-03-311-1/+3
| | | | | | | | | | 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.
* Two fixes:imp2009-03-301-7/+11
| | | | | | (1) Delete all children when detaching to keep from adding a phy each driver reload. (2) All AX88x90 chips have the RST issue.
* This is a major reworking of the AX88x90 support.imp2009-03-304-125/+230
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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...
* When reading via memory, read in (amount + 1) / 2 (to properly roundimp2009-03-281-1/+1
| | | | | | | 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.
* It turns out that the Toshiba LANCT00A PC Card is really like theimp2009-03-283-8/+27
| | | | | | | | | | | | | | | | | | 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...
* Add bromax axnet based cards to the mix. This was harvested from the linuximp2009-03-271-0/+3
| | | | | | | | | | | | | | | 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.
* Allow the attach routine to fail gracefully and not panic the system.imp2009-03-261-1/+2
|
* Tweak comments.imp2009-03-251-15/+16
|
* Add RIOS PCCARD 3.imp2009-03-251-0/+1
|
* o writereg needs to return a vlue.imp2009-03-121-2/+4
| | | | | o Add TJ PTJ-LAN_T card. Some more work may be needed to make this actually function correctly.
* When the miibus for the AX88x90 or TC5299J cards fails to attach, weimp2008-08-062-8/+10
| | | | | | | | | | | | | 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...
* Add two corega cards from NetBSD: FETEHR II PCC TXD and LAPCCTXD.imp2008-07-061-0/+2
|
* Add Winbond W89C940F to the list. Also, stub in some entries for twoimp2007-12-311-5/+11
| | | | | | | 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
* Add missing 'sc->chip_type ==' to an ugly switch statement expressionimp2007-12-311-1/+1
| | | | so that for RealTek 8019 cards, we consider AUI as well as BNC bits.
* Add Micro Research PCMCIA LAN Adapter MR10TPC support. Patch slightlyimp2007-07-111-0/+1
| | | | | | | | reworked by me. Submitted by: Osamu Hasegawa-san PR: 93393 Approved by: re (hrs)
* Tell a statistic checker that not checking the return value of the probingnetchild2007-04-011-1/+1
| | | | | | | of the mii phy is intended for this chip. Found by: Coverity Prevent (tm) CID: 43
* Don't call bus_deactivate_resource() explicitly before callingnyan2007-03-211-6/+0
| | | | | bus_release_resource(). This is needed for pc98 by upcoming nexus related change.
* o break newbus api: add a new argument of type driver_filter_t topiso2007-02-234-4/+4
| | | | | | | | | | | | | 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@
* MFp4:imp2006-06-123-3/+26
| | | | | | | | | | | | 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.
* Since DELAY() was moved, most <machine/clock.h> #includes have beenphk2006-05-161-1/+0
| | | | unnecessary.
* Add (back) the D-Link DE-650. Not sure why it was deleted.imp2006-05-081-0/+1
|
* Initialize the port_bst and port_bsh variables.nyan2006-02-211-0/+2
| | | | | | | | 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
* Have a function pointer to the routine to call for writing an mbufimp2006-01-279-100/+109
| | | | | | | | | | 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.
* Create mediachg functions for the 3c503 and hpp cards. This is usedimp2006-01-274-33/+28
| | | | | | | | | | | | 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%.
* Style(9) issue: return (foo);imp2006-01-271-7/+7
|
* Transition from ALTPHYS to LINK2. We already document in the ed(4)imp2006-01-272-10/+14
| | | | | | | | | | | | | | | | | 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...
* minor nit in comment about what kind of flags these areimp2006-01-271-1/+1
|
* Add support for the Compaq LTE docking station. It includes a plugimp2006-01-151-5/+6
| | | | | | | 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
* - Store pointer to the link-level address right in "struct ifnet"ru2005-11-111-1/+1
| | | | | | | | | | 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.
* Add Billionton LNA-100B variation that Alan reported in arch. [1]imp2005-10-291-1/+3
| | | | | | Also add Global Village lan modem, even though I'm unsure if it works. Reported by: Alan newsletter at acsoftware dot org
* Add missing softcimp2005-10-221-0/+1
|
* Turns out that we're asking for the MAC address at a bad time in theimp2005-10-221-4/+3
| | | | | | | | 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.
* In the ISA case, we call ed_probe_WD80x3 before we callimp2005-10-221-3/+3
| | | | | | | | | | 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.
* Check against 8019 rather than 8029 for reading in the MAC addr sinceimp2005-10-171-1/+1
| | | | | | | 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)
* If we can't probe the RTL80x9 for some reason, fall back to probing itimp2005-10-131-3/+10
| | | | | | | | | 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.
* o Fix probing of rtl80x9 parts. We shouldn't be callingimp2005-10-131-5/+6
| | | | | | | | | | | | 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.
* Buffalo LPC4/CLX IDimp2005-10-111-0/+1
|
* New OEM generic card. "10/100 Fast Ethernet PC Card". It has aimp2005-10-111-0/+1
| | | | | | 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.
* Remove debug that crept in..imp2005-10-051-4/+0
|
* MFp4:imp2005-10-0510-67/+591
| | | | | | | | | | 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
* Emit a warning when a card matches multiple entries in our table. Aimp2005-09-261-2/+35
| | | | | | | | | | | | | 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.
* Go ahead and detach our children in our detach routine. I'm undecidedimp2005-09-261-0/+1
| | | | | if we should delete them also or not, but have decided not to do so for the moment.
* I have confirmed with my Epson EEN10B that it needs to look at theimp2005-09-241-2/+1
| | | | | | | 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.
* The DLink DE650 has the same ID as Linksys EthernetCard, so we don'timp2005-09-241-1/+0
| | | | need a sperate entry for it.
* Remove obsolete includeimp2005-09-231-2/+0
|
* Remove duplicate if_free().imp2005-09-191-1/+0
| | | | Submitted by: ru@
* Make sure that we call if_free(ifp) after bus_teardown_intr. Since weimp2005-09-191-1/+1
| | | | | | | 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.
* MFp4:imp2005-09-183-125/+149
| | | | | | | | | | | | | | | | | | 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.
OpenPOWER on IntegriCloud