Commit Graph

36 Commits

Author SHA1 Message Date
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