Commit Graph

59 Commits

Author SHA1 Message Date
lha 615a1ff234 From freebsd if_vr.c:1.43,1.56 and if_vrreg.h:1.11,1.14
- Windows put the chip in suspended mode, make sure we unsuspend
  it. 1.43, by Takefumi SAYO <stake@po.shiojiri.ne.jp>

- Detect the revision of the Rhine chip we're using, and force reset
  when the chip supports it. 1.65, by silby@freebsd.org
2003-01-03 19:01:09 +00:00
fair 2104199dc3 Change the "dontcare bits" argument to ifmedia_init() to IFM_IMASK
so that it is possible select PHY instances other than the first
one (instance zero), if there is more than one PHY attached.
2002-10-21 23:38:10 +00:00
thorpej b75a007d9f Add trailing ; to CFATTACH_DECL. 2002-10-02 16:51:16 +00:00
thorpej 387fc6dc87 Use CFATTACH_DECL(). 2002-09-30 20:37:04 +00:00
thorpej f818766afe Declare all cfattach structures const. 2002-09-27 20:31:45 +00:00
christos 08ea4bc534 my card prints transmit aborted and then hangs. Let's try to reset it. 2002-07-28 15:41:00 +00:00
lukem 9048aaae21 add RCSID 2001-11-13 07:48:40 +00:00
mrg 4f3eac8332 mtod() with uintptr_t, not bus_addr_t. 2001-08-14 11:57:26 +00:00
thorpej bd35a1b7ed Make sure to initialize the all Rx descriptors properly in *_init()
even if mbufs for them are already allocated.
2001-07-23 17:26:50 +00:00
thorpej 44e529fecc Use BUS_DMA_READ and BUS_DMA_WRITE in some obvious places. 2001-07-19 16:36:14 +00:00
thorpej 80f54c0005 bcopy -> memcpy, strcpy 2001-07-07 16:40:23 +00:00
thorpej 9988acd41e Don't need INET or NS includes here. 2001-06-12 22:28:15 +00:00
wiz 0a600be867 receive, not recieve 2001-06-12 15:17:10 +00:00
tsutsui 013511e442 Use ether_crc32_be() for multicast hash calculation. 2001-01-29 12:04:10 +00:00
enami 2c218a4926 Handle allmulti case correctly as a NetBSD network driver;
if we are requested range of multicast address or too many multicast address,
program multicast filter to receive all multicast address.   And set/clear
IFF_ALLMULTI flag properly.
2001-01-29 01:24: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 ba4b6847df Fix a problem with the ALTQ changes that can cause bogus memory
refernces.  Problem reported by Luke Mewburn.
2000-12-19 00:06:01 +00:00
thorpej 1646284c95 ALTQ'ify. 2000-12-14 06:42:57 +00:00
thorpej b84f740be0 Move bpfattach()/bpfdetach() calls into ether_ifattach()/ether_ifdetach(). 2000-11-15 01:02:11 +00:00
thorpej 4318834442 Don't trim off the FCS, pass it up. 2000-10-15 19:56:31 +00:00
thorpej 2198741306 Use ether_ioctl(). 2000-10-11 16:57:45 +00:00
thorpej 7ca3fb9ef0 Move the check for "promisc + unicast + not for us" into ether_input(),
and change Ethernet drivers to always pass all received frames to
ether_input() (with a few exceptions, which are documented in the
code).
2000-10-01 23:32:39 +00:00
tron dd9df6ffdf Use correct product id for VIA VT6102 chip. Problem pointed out by
Jaromir Doleeek in private e-mail.
2000-09-13 16:40:15 +00:00
tron d4a2e19802 Add support VIA VT6102 chip found e.g on the D-Link DFE530TX NIC.
Fixes PR kern/11001 by Petter Lindquist.
2000-09-13 14:00:48 +00:00
mrg 7c15053eed remove include of <vm/vm.h>. <vm/vm.h> -> <uvm/uvm_extern.h> 2000-06-28 16:08:42 +00:00
thorpej fc96443d15 New callout mechanism with two major improvements over the old
timeout()/untimeout() API:
- Clients supply callout handle storage, thus eliminating problems of
  resource allocation.
- Insertion and removal of callouts is constant time, important as
  this facility is used quite a lot in the kernel.

The old timeout()/untimeout() API has been removed from the kernel.
2000-03-23 07:01:25 +00:00
thorpej a6f861574a No longer necessary to futz with ifp->if_baudrate here. 2000-03-06 21:02:00 +00:00
thorpej eed75dbc26 Don't dry to diving MIIF_NOISOLATE in the PHY drivers. Instead, pass
flags down from the parent to child vi mii_attach().
2000-02-02 17:09:38 +00:00
thorpej 84dc99fdea Bring some order to the chaos which was the MII code function naming
"conventions".
2000-02-02 08:05:26 +00:00
thorpej afbb07a0e5 Use htole32() and le32toh(). 1999-12-12 02:53:56 +00:00
thorpej 7479d29f00 Make the ThunderLAN and VIA Rhine drivers use the common MII bit-bang module. 1999-11-19 18:27:18 +00:00
thorpej 4bdf6bd731 Call mii_down() as appropriate. 1999-11-12 18:14:17 +00:00
thorpej ca9b9a3b2e Adapt to mii_phy_probe() change. 1999-11-04 00:24:00 +00:00
thorpej 6961f081e5 Fix packet reception in promiscuous mode: compare the Ethernet destination
address against our station address if it's not a multicast packet.  Either
the Rhine manual lies about the phys/broadcast/multicast rxstatus bits,
or the Rhine chip is just broken.

Fixes a redirect storm problem reported by Laine Stump on current-users.
1999-09-20 17:40:58 +00:00
hwr 4882320d4b Initialize error variable. Should fix spurious init errors.
From Dave Huang in PR 8205.
1999-08-14 11:23:39 +00:00
hwr af827a1284 Remove dulicate "Ethernet" output. From Dave Huang in PR 8206 1999-08-14 11:09:18 +00:00
thorpej 4bd8f1566c Be a little nicer about memory usage:
* Don't allocate receive buffers until the interface is actually brought
  up, and release all of them if the interface is taken down.
* Add a knob (defaults to off) which will copy an incoming packet to
  a single header mbuf if it is small enough to fit in one, rather than
  burning an entire cluster on it.  Note that this change will be mostly
  moot if/when sbcompress() it changed to handle compressing clusters.
1999-08-03 17:25:51 +00:00
thorpej f98d358a1f Rework layer 2 protocol input routines. Instead of calling e.g. ether_input()
directly, call the function pointer (*if_input)(ifp, m).  The input routine
expects the packet header to be at the head of the packet, and will adjust
as necessary.  Privatize the layer 2 input and output routines, allowing
*_ifattach() to set them up as appropriate.
1999-05-18 23:52:51 +00:00
thorpej 1eb689a712 Make the VIA Rhine driver work on big-endian systems. From Izumi Tsutsui,
PR #7305.
1999-04-26 23:19:10 +00:00
thorpej 207f873ac2 Fix an mbuf leak in the strict alignment case of packet reception. 1999-04-24 22:09:56 +00:00
thorpej 3993ee01e4 Don't enable I/O or memory access here! These bits in the PCI CSR are
set up by the firmware, and indicate which mapping types the system
supports.
1999-03-24 01:07:59 +00:00
thorpej 7b516b31bd Major overhaul of the Rhine/Rhine-II driver, structuring it a little more
like the SMC83C100 EPIC/100 driver:
* Rather than using pointers to the head and tail of the transmit and
receive rings, use wrapping indexes into arrays.  This is a little more
obvious when reading the code.
* More cleanly separate the hardware descriptor from the software descriptor.
* bus_dma it everywhere.
* Implement interrupt pacing and avoid a potential race in the transmit
loop.

Now this looks more or less like the Rhine driver I was working on when
this driver was committed :-)  Update copyright notice to reflect that.
1999-02-12 00:36:48 +00:00
thorpej d95d5b1488 Make this driver work on the Alpha. Apparently the receive DMA mechanism
has the same 4-byte alignment requirement that the transmit side does.  This
causes the packet payload to be misaligned.  So, on systems which require
strict alignment, we must copy the incoming frame to a new packet buffer,
suitably aligned.
1999-02-05 22:09:46 +00:00
thorpej b52d1e44d0 Fix the interrupt handler to actually acknowledge the interupt to the
dispatch code (!!!).  How did this work even on the i386 before?
1999-02-05 21:20:31 +00:00
thorpej dde3694c4c Fix some formatting nits. 1999-02-05 08:42:03 +00:00
thorpej 82a54250be Remove some duplicate softc members, and comment some of the softc
fields.
1999-02-05 08:27:46 +00:00
thorpej 8bf66d3eb2 Remove some unnecessary splnet's. 1999-02-05 08:21:31 +00:00
thorpej 50faf19d7d splimp -> splnet 1999-02-05 07:53:24 +00:00
thorpej adc9c40688 Use the generic MII support code, not our own. 1999-02-05 02:58:38 +00:00
thorpej ebf3a97519 Use MII command opcodes from <sys/dev/mii.h> 1999-02-05 01:17:24 +00:00