Commit Graph

1239 Commits

Author SHA1 Message Date
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
c61e95f1f5 Add Tulip ISV-format SROM media block types. 1999-09-24 18:27:22 +00:00
enami
67e874d814 Allow to detach wdc, atapibus, wd and cd. 1999-09-23 11:04:29 +00:00
mhitch
636de81487 Define config register 3 values for NCR53C9x/FAS216.
Add sc_cfg3_fscsi to the softc and use it to set the chip into Fast SCSI
mode for the chips that use it.
1999-09-22 03:31:23 +00:00
ragge
3455a353f9 Fix minphys() on vax. While here, convert to bus.h. 1999-09-21 18:07:54 +00:00
danw
6775e175ca Add a brief delay after resetting the card before checking to see if
it's done resetting. Trying to read registers off the card while it's
unresponsive can cause a machine check on some platforms/busses.
1999-09-21 01:04:44 +00:00
thorpej
30651e46b3 A couple more hacks for the Lite-On PNIC:
- Only use 16 longword bursts.
- Reset the interface for receive filter setups that don't come from
  the reset path.

Hi, Jason is getting really tired of broken clone chips, and really wishes
real 21140 boards were still available, because the DEC chips seem to work
Just Dandy.
1999-09-21 00:14:54 +00:00
thorpej
5ada26d247 Remove the has-mii-doesn't-have-mii OPMODE block from tlp_init(), and
let the pre-init hook and media switch routines handle it all.
1999-09-20 19:52:31 +00:00
thorpej
28b026bee1 Remove special-case 2114x-set-OPMODE_MBO; it's done in the pre-init hook
now.
1999-09-20 19:34:08 +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
ad
598dcad691 When moving the software cursor on an inactive screen, save character and
attribute from backing store, not display adapter.
1999-09-19 23:00:04 +00:00
matt
a6d751c35c One more change for bigendian machines. 1999-09-19 22:58:31 +00:00
ad
97253f4537 Software cursor is not enabled at boot time. Hardware cursor is. 1999-09-19 22:57:24 +00:00
matt
9ac5036f93 Make the DEFPA run under the macppc port (tested on a B&W G3). Add it to
the GENERIC config file.
1999-09-19 22:02:37 +00:00
ad
f96e055d70 - mc6845's cursor is disabled by punching bit 6 of cursor start register.
- Add new option (PCDISPLAY_SOFTCURSOR) that provides a large, non-blinking
  cursor in software.
1999-09-19 21:48:08 +00:00
thorpej
5485bcb973 Fix a buglet in tlp_reset(): don't touch the Tulip for at least 50
PCI cycles after starting the reset; it won't respond.  This will
cause a machine check on some Alpha core logic chipsets (e.g. 21071 APECS).
1999-09-19 20:51:09 +00:00
scw
d1c5384e9a Minor optimisation. 1999-09-18 09:45:05 +00:00
thorpej
9002796d07 If the interface is not marked as running, abort tlp_intr() early. 1999-09-17 21:57:36 +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
2def4fdb50 Apparently can't really look at excessive collitions and late collisions
in completed transmit descriptors.  These seem to be set even on successful
packet transmissions on my AlphaStation 500's 21040.
1999-09-14 23:23:32 +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
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
itojun
65363da25e Merge in NetBSD/sh3 from cvs.kame.net repository.
Tree structure:
- sys/arch/sh3: sh3 generic code
	As commented, in-chip device drivers are put into sys/arch/sh3/dev.
- sys/arch/evbsh3: sh3 evaluation boards (pure sh3 CPU, no fancy external HW)
- sys/arch/mmeye: Brains mmEye, www.brains.co.jp
MI source code includes couple of #ifdef for sh3-coff support.
(sh3 uses coff or elf)

Needs some more improvements, especialy in sys/arch/sh3/conf/files.sh3,
to compile the tree (due to last minute tree structure change).
1999-09-13 10:30:21 +00:00
itojun
e0042cf412 drop wrongly looped back multicast packet before we put it into BPF. 1999-09-12 18:26:58 +00:00
dante
afa103cfb4 Rewrote error handlers. Now they are solid.
Increesed considerably the speed of the driver removing superfluous splbio/splx functions.
1999-09-11 15:34:45 +00:00
itojun
ebcd1b7a41 Make sure to behave as IFF_SIMPLEX in all cases.
Drop multicast/broadcast packet looped back from myself.

This is to cope with SMC91C92 (Megahertz XJ10BT), which
loops back multicast packet to itself on promiscuous mode.
(should be ensured by chipset configuration)

Reviewed by: thorpej
1999-09-10 00:23:34 +00:00
tron
b9627d002f Add support for Cyclade boards with new Risc II serial controller.
Patches supplies by C Kane in PR kern/7175.
1999-09-09 21:52:11 +00:00
thorpej
057798e505 Snapshot of work-in-progress to support the internal NWay block on
the Lite-On PNIC chips.  Not finished yet; some other infrastructure
work left to do.
1999-09-09 21:48:18 +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
mjacob
6913f83874 A useful discussion with Jason convinced me that I had selected the
wrong tag as the default tag to use- we should use ORDERED, no SIMPLE.
1999-09-07 22:54:45 +00:00
rh
ff962e992b Add mode 3 support for newer CS423X chips. Modify probe to correctly
distinguish between CS4236, CS4236B, and CS4237B.
1999-09-06 17:07:04 +00:00
thorpej
8386184524 Deal with some more Winbond differences, after a more-thorough-than-before
reading of its manual.
1999-09-02 23:25:28 +00:00
fvdl
5c875f66d0 Select the right transceiver type when configuring the driver. Change the
timing for the mii code a bit. From Robert Elz / the FreeBSD xl driver.
1999-09-01 21:03:02 +00:00
thorpej
cfbc8a82fb Make Tulip-style filter setup interrupt-driven. 1999-09-01 20:56:15 +00:00
thorpej
e75ce8c0df Don't attempt to do transmit threshold tuning on the Lite-On PNCI; just
put it in Store-and-Forward mode right from the get-go.  This eliminates
the DMA underrun errors that prevented the receive filter setup from working
and caused smashed packets to go out onto the wire.

My NetGear FA310-TX board now works.

There are still "filter setup failed to complete" messages, however they
don't appear to indicate that the filter setup actually failed, since
unicast and multicast packet reception work fine.  I will address this
problem shortly.

Reading the log for the FreeBSD `pn' driver suggests that these chips are,
in fact, pretty crappy, riddled with hardware bugs (for which more workarounds
are coming).
1999-09-01 20:11:19 +00:00
thorpej
5d7f25011b Some of the Tulip clone chips (like the Winbond and ASIX) want the
IC bit set in the *first* descriptor of the outgoing packet.  Appease
them.
1999-09-01 05:07:03 +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
bouyer
7c1c212662 If we are using UDMA mode > 2 and get a DMA error, downgrade to UDMA mode 2
first: maybe we incorrectly guessed the cable type.
1999-08-30 12:58:58 +00:00
is
d8c7407afe Factor out arc_storelladdr(), and use that instead of arc_ifattach() in
the bah_reset() function.
This makes the last change work without deconnecting all the other interfaces
from the interface list.
1999-08-27 19:23:19 +00:00
thorpej
456af6d558 Reduce the number of transmit fragments to 16. 1999-08-27 19:21:32 +00:00
thorpej
513feda9ab - Include the RXE (receive error) interrupt in the interrupt enable mask,
and consider it to be like an RCC (receive copy complete).  The RCC
  code path has always checked for bad received packets.
- Trim the CRC length off the recived packet length; the EPIC/100 always
  includes the CRC in the packet.
- Improve fatal error reporting.
1999-08-27 19:13:00 +00:00
is
8679b79192 Only use ifp->if_addrlen after initializing it.\
Problem detected by Andreas Johansson.
1999-08-26 20:44:50 +00:00
thorpej
90b9deda72 When padding short packets on transmit, don't include the CRC length
in the computation.  kern/8194.
1999-08-25 22:41:42 +00:00
bouyer
d6c3ef56b4 Guard pool_get()/pool_put() with splbio()/splx(). Fix kern/8245. 1999-08-25 17:08:20 +00:00
pk
65cfdf2877 Disable inclusion of debugging code by default.
Turn compile-time flag I82586_DEBUG into a boolean switch.
1999-08-23 12:12:42 +00:00
pk
9fceb1947d Do not report "spurious interrupts"; this is a relic of the PC-only
days of this driver.
1999-08-23 12:00:11 +00:00
drochner
a47874ac23 correct a comment 1999-08-17 16:15:05 +00:00
thorpej
e71ad5a0ac The CCB already contains its DMA address, so no need to recompute it
over and over.
1999-08-17 02:09:47 +00:00
thorpej
a01d72e890 Fix several LP64 problems, and clear up kernel pointer vs. physical
address confusion.  This driver now works on the Alpha.
1999-08-16 02:01:11 +00:00