Commit Graph

102 Commits

Author SHA1 Message Date
thorpej ebf9e47c26 Add quirks for the Algorithmics P-5064 on-board 21143, and a way to
get the Ethernet address from it (they don't have an SROM).

XXX The latter should be replaced with devprops when they exist.
2001-05-27 21:00:33 +00:00
cgd 023e9f0649 C requires that labels be followed by statements. 2001-02-24 00:01:22 +00:00
thorpej d101f6f462 Add Accton EN2242 10/100 MiniPCI Ethernet. 2001-01-08 21:50:47 +00:00
thorpej 666e82a4e9 Use the AN985 media switch on the AN985. 2001-01-08 21:45:42 +00:00
sommerfeld 851de295eb Change pci_intr_map to get interrupt source information from a "struct
pci_attach_args *" instead of from four separate parameters which in
all cases were extracted from the same "struct pci_attach_args".

This both simplifies the driver api, and allows for alternate PCI
interrupt mapping schemes, such as one using the tables described in
the Intel Multiprocessor Spec which describe interrupt wirings for
devices behind pci-pci bridges based on the device's location rather
the bridge's location.

Tested on alpha and i386; welcome to 1.5Q
2000-12-28 22:59:06 +00:00
thorpej 7edd5d54bc Add support for the ADMtek AN983 and AN985. 2000-10-03 04:32:00 +00:00
castor b6dd28b4ce Support some differences in the Macronix 98715AEC-C and E chips from the other
98715* series.

The MX98715AEC-[C,E] use a different location in the serial eerom for
LED control, and programming it with the original location's values
caused unpredictable behavior.

Also, start integrating fixes where media changes on an adapter
under load may fail.  There's more work to be done here, but I need
to sort out our internal changes a little more carefully.
2000-08-03 03:07:30 +00:00
tron 5446d3c92e Don't make assumptions of the actual value of PCI_PMCSR_STATE_D0.
Problem noted by John Hawkinson.
2000-07-17 18:12:00 +00:00
tron cfae3184d8 Don't clobber bits from 2 to 31 when trying to change the power state.
Problem noted by John Hawkinson.
2000-07-17 17:53:44 +00:00
tron 114bb7f9d9 If card is in power state D3 put it into power state D0 so that it will
at least work after the next reboot.
2000-07-16 20:18:48 +00:00
tron 9feae259a4 Avoid printing duplicate colon when card is waked up. 2000-07-15 20:57:24 +00:00
tron 61c607b9fe Improve kernel message when card is in power state D3. Instead of...
epic0 at pci0 dev 11 function 0 epic0: unable to wake up from ...

... print this:

epic0 at pci0 dev 11 function 0: unable to wake up from power state D3
2000-07-15 10:32:36 +00:00
sommerfeld fda426af2c Defopt TLP_MATCH_* 2000-06-25 18:49:22 +00:00
thorpej 3a4393ff92 While DM9102A boards tend to have ISV-format SROMs (likely to describe
the HomePNA PHY typically connected to the external MII interface),
DM9102 implementations (often found on motherboards) do not.  Handle
this.
2000-05-27 19:42:06 +00:00
thorpej 8a3725612d Add support for the Davicom DM9102 and DM9102A 10/100 Ethernet chips.
Partially based on diffs submitted by Matthew Orgass <darkstar@pgh.net>
and IWAMOTO Toshihiro <iwamoto@sat.t.u-tokyo.ac.jp>.
2000-05-26 16:38:13 +00:00
thorpej 5a41b5bf56 - if_tlp_cardbus.c: Use the `pmreg' pointer passed by by
cardbus_get_capability() [mirror change already made to if_tlp_pci.c]
- if_tlp_cardbus.c: If we don't find an ISV SROM, try to grab the
  Ethernet address from the CIS.
- if_tlp_cardbus.c: set CardBus cards to store-and-forward mode from
  the get-go.
- Put the TxThresh tables in tulipvar.h, and use them in the CardBus
  and PCI front-ends to go to store-and-forward mode.
- Document the Xircom X3201-3 clone a little more.
2000-04-04 19:22:50 +00:00
soren 7b737d77b3 For Cobalt Networks 21143's, always use store-and-forward and toggle
a GPIO line to fully reset the PHY.
2000-03-26 10:53:39 +00:00
mycroft d07e505604 Rather than guessing at the location of the PMCSR, use the pointer returned by
pci_get_capability().  (This is, after all, a standardized interface...)
2000-03-23 22:23:03 +00:00
thorpej c38405d33d Add power management support to the `tlp' driver. The battery on my
laptop lasts a whole lot longer now.
2000-03-15 18:39:50 +00:00
mycroft 5eee9ca94c Determine the size of the SROM by probing the chip using the standard Microwire
protocol.  Eliminates the need for srom_quirks and some other trash.
2000-03-07 00:39:17 +00:00
thorpej b1ec3fa901 Give the ISV filter a chance to verify 21143 pass 4.1 SROMs before running
them through the quirk table.
2000-01-26 16:51:11 +00:00
thorpej 063cb5e5dc Additional hackery for the Cobalt interfaces. Even though these are
pass 4.1 21143s, they have a 128-byte SROM, and thus use a different
SROM address size than all other pass 4.1 21143s.

A plea to hardware designers -- *please* read application notes for
the components you're using before putting your hardware together.  Thanks.
2000-01-26 15:50:52 +00:00
thorpej 02af3f45b6 Clean up the SROM addrbits code a little. 2000-01-25 19:53:34 +00:00
thorpej 6aca67041c Add a chip type for the Xircom X3201-3, and centralize the declaration
of the chip names array.
2000-01-25 19:29:17 +00:00
thorpej c4d8a60bac Handle Cobalt Networks interfaces, which are 21143 pass 4.1 devices
with a simple (MAC address only) SROM format.

From Soren S. Jorvang <soren@wheel.dk>
2000-01-25 03:23:56 +00:00
thorpej caae0e1aa1 - Don't try to run the chip in big-endian mode. Not all chips support
this consistently, and it doesn't always work even when the chip
  supports it.
- Make sure things DMA'd to the chip that the chip interprets are in
  little-endian mode.
1999-12-11 00:32:59 +00:00
thorpej 546480874c After reading the 21143 manual again, make sure SNOOZE is cleared in
the CFDA register, too.
1999-12-07 07:36:19 +00:00
thorpej 747d454ffe Add the PMCSR offset for the 21143, and make sure to bring the 21142
and 21143 out of sleep mode.  From Masanori Kanaoka.
1999-12-07 07:32:58 +00:00
thorpej f773270d0d If, on the 21143, we find that we don't have an ISV SROM, try reading
it again, with 8 address bits.  21143 Pass 4.1 has a larger SROM,
for storing the CIS when used in a CardBus application.
1999-12-07 07:20:17 +00:00
thorpej 9ed17102f4 - Use the common MII bit-bang module.
- Add support other than 128-byte SROMs.
- Add support for the 21142/21143 MII.
1999-11-19 18:22:42 +00:00
thorpej e3f20e8ff1 Use Memory Read Line and Memory Read Multiple on the 21140, 21140A,
21142, and 21143, if the PCI bus says its okay.
1999-11-04 01:20:55 +00:00
thorpej 9d820e6fab Add some 21142/21143 goo. 1999-10-28 23:32:37 +00:00
thorpej 2492ffef4c Changes to get the Lite-On/Macronix 82C115 working:
- 82C115 has a 128-bit multicast hash table, not 512-bit.
- Correct the way the MAC address is read from the SROM, after re-reading
  the MX98715A Application Note.

Other semi-related changes:
- Differentiate between MX98715 and MX98715A.
- Improve the Macronix link-up/link-down detection.
1999-09-30 17:48:24 +00:00
thorpej e3398d3647 - Get a little closer on the Macronix chips. Still some more work to do.
- Add some basic support for the ADMtek AL981 clone (which, unfortunately,
  I can't test until my sample boards arrive).
1999-09-29 18:52:19 +00:00
thorpej df12499646 Add code to take a device out of Power-Down state if it's in such a state,
and attempt to attach Macronix chips.
1999-09-28 23:12:23 +00:00
thorpej 2bc8340297 Add a quirk entry for the Asante 21140[A] boards that don't use the
ISV SROM format.  For these boards, we provide the GPIO pin direction
info, a separate reset hook, and hard-wire them to MII-on-SIO.

Based on a patch submitted by Luoqi Chen <luoqi@chekov.watermarkgroup.com>.
1999-09-26 05:03:58 +00:00
thorpej 4d4ddf363f Some 21140[A] boards don't use the ISV SROM format (e.g. Asante boards),
but instead use the older DEC Address ROM format.

From a patch supplied by Luoqi Chen <luoqi@chekov.watermarkgroup.com>.
1999-09-26 04:43:45 +00:00
thorpej b76293b895 Add quirk entry support for the 21041 and 21140 chips. Initial quirks
for these: extract the spiffy DEC board names (e.g. DE500-AA).
1999-09-26 04:37:29 +00:00
thorpej 4fa51ba8bd Make tlp_read_srom() work on big-endian systems.
From a patch supplied by Luoqi Chen <luoqi@chekov.watermarkgroup.com>.
1999-09-26 03:39:01 +00:00
thorpej c999e3ca1a Add support for the DECchip 21140[A]. This currently only works with
boards which use MII for media attachment.

ISV SROM format information lifted from Matt Thomas's `de' driver.

Thanks to Dave Sainty for experimenting w/ his 21140A MII boards, and
for supplying a fix to the MII bit-bang code (PR #8382).
1999-09-25 00:27:00 +00:00
thorpej 664d8da4f5 Add support for the DECchip 21041. This also adds some preliminary
support for the ISV SROM format used in the 2114{1,1A,2,3}.  Note, like
the 21040, auto-sense is not yet supported for the 21041.

Add a "pre-init" hook, which will be used for the 2114x and PNIC (currently)
which allows chip-specific code to set up and write OPMODE before the
chip is reset.  This is necessary in order for the chip's internal
pathways to get initialized properly for MII/SYM/PCS/SIA media attachments.

Thanks to Dave Sainty for the hint from the `de' driver that inspired the
pre-init hook.
1999-09-20 19:26:54 +00:00
thorpej 79f938f5f8 Fix a few buglets in the multi-port 21040 code. ZNYX ZX314 confirmed
working now.
1999-09-17 21:55:01 +00:00
thorpej f23c7a31b4 Make sure 21040 chips are at least pass 2.0 and that 21140 chips are at
least pass 1.1.
1999-09-14 23:43:10 +00:00
thorpej 70997fd3d5 Move the PCI device number to the base Tulip softc; it will be needed to
decode the SROM on 21041 and 2114x multi-port boards.
1999-09-14 23:33:04 +00:00
thorpej 5c34356d4c First crack at shared ROM/shared interrupts on 21040 multi-port boards,
plus quirk identification for non-multiple-port boards.
1999-09-14 22:25:48 +00:00
thorpej e2a320f925 Oops, fix Winbond regshift. 1999-09-14 05:59:53 +00:00
thorpej 12c167b5ca Change the semantics of `sc_regshift'; it is now the shift required to
make a CSR index number into a CSR offset.  Introduce a couple of macros
to handle CSR name -> offset conversion.
1999-09-14 05:52:21 +00:00
thorpej a03bd733ca - More PNIC NWAY stuff. Still more work to do, here.
- Fix the SROM checksum routine.
- Add code to parse the old DEC Address ROM SROM format.
- Rearrange the statchg routines a bit, to make them consistent with one
  another.
- Add support for the DECchip 21040.  XXX No support for media autosense
  yet, and no support for any of the multi-port boards yet.
1999-09-14 00:55:38 +00:00
thorpej a10045109d Add chip types for several more Tulip clones (ASIX, ADMtex, PNIC II, Davicom),
and match the Compex RL100-ATX; it uses the Winbond 89C840F (RL100-TX is
a Macronix 98713).
1999-09-08 22:29:46 +00:00
thorpej ab08b6b863 Update for Lite-On product ID change. 1999-09-08 21:42:44 +00:00
thorpej 6a2319b969 Byte swap the EEPROM words on the PNIC. From Stephen Ma. 1999-09-03 00:24:56 +00:00
thorpej e293024ffa This is the long-awaited "new Tulip driver", a complete, from-scratch
rewrite of the driver for the DECchip 21x4x Ethernet chips, and a variety
of clones.

Currently, the driver supports the Winbond 89C840F (this works pretty
well), and the Lite-On PNIC (e.g. NetGear PCI boards), however Lite-On
support may be broken [I may simply have a busted test board].

Eventually, support for the Macronix and ASIX chips will filter into
this driver, and then, slowly, support for the genuine DEC chips,
and maybe even the DE-425 EISA model.
1999-09-01 00:32:41 +00:00