History log of /openbsd-current/sys/dev/pci/if_vrreg.h
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: OPENBSD_5_9_BASE OPENBSD_6_0_BASE OPENBSD_6_1_BASE OPENBSD_6_2_BASE
# 1.37 20-Oct-2015 chrisz

Fix 802.1p VLAN priority code points for VLAN_HWTAGGING.
Our in-kernel ether-vtag has a different layout to the vr TXSTAT register.

ok sthen@


Revision tags: OPENBSD_5_6_BASE OPENBSD_5_7_BASE OPENBSD_5_8_BASE
# 1.36 08-Jul-2014 dlg

cut things that relied on mclgeti for rx ring accounting/restriction over
to using if_rxr.

cut the reporting systat did over to the rxr ioctl.

tested as much as i can on alpha, amd64, and sparc64.
mpi@ has run it on macppc.
ok mpi@


Revision tags: OPENBSD_5_3_BASE OPENBSD_5_4_BASE OPENBSD_5_5_BASE
# 1.35 09-Feb-2013 sthen

Programme the VT6105M, VT6105 and RhineII-2 to permit frames of up to
1758 bytes (MTU 1740) and raise hardmtu to allow the user to set them.
Tests by Mark Patruck, Michal Markowski, mikeb, beck, dtucker. ok mikeb@


# 1.34 28-Jan-2013 dtucker

Add TX interrupt mitigation for vr(4) chips, loosely based on FreeBSD,
but with tweaks so it works on 6105Ms like those found in pcengines alix
and soekris 5501s. ok sthen@, help brad chris mikeb dlg jsing

There may be other 610x chips that would benefit from the VR_Q_INTDISABLE
quirk, please send me a dmesg if you can confirm it works.


# 1.33 16-Jan-2013 dtucker

Add hardware VLAN tag/untag support for VT6105M chips. Help/feedback/ok
brad@ chris@ jsing@ kettenis@ mikeb@ sthen@


# 1.32 20-Oct-2012 chris

Implement transmit DMA segments. The descriptor usage is from FreeBSD,
which contradicts the datasheet (but actually works).

Also, use a segment (instead of a new mbuf and data copy) to zero-pad
small packets, modeled after if_myx.

ok sthen@, gerhard@, henning@


# 1.31 18-Oct-2012 deraadt

Convert a number of old private copies of code which predates
pci_set_powerstate() to using it instead. Many of these chunks of code had
bugs in them, especially missing delay() calls. Some of them were doing
things our PCI subsystem is now responsible for handling. If you have
any of the affected devices, please keep an eye out for regressions.
ok kettenis


Revision tags: OPENBSD_5_1_BASE OPENBSD_5_2_BASE
# 1.30 05-Jan-2012 deraadt

suspend/resume support for vr(4); from brynet@gmail.com


# 1.29 08-Dec-2011 markus

add timeout to fill rx-ring in case of mbuf shortage while in vr_intr();
fixes hanging interfaces similar to in myx(4); ok dlg@, claudio@, henning@


Revision tags: OPENBSD_5_0_BASE
# 1.28 13-Mar-2011 stsp

Wake On LAN support for vr(4).
ok deraadt


Revision tags: OPENBSD_4_6_BASE OPENBSD_4_7_BASE OPENBSD_4_8_BASE OPENBSD_4_9_BASE
# 1.27 18-Jun-2009 claudio

MCLGETI support for vr(4) interfaces. This will make the newer soekris and
Alix boards suck a little bit less because it will be harder to live lock them
with traffic. Diff mostly adapted from sis(4).
OK kettenis@, dlg@, sthen@


# 1.26 12-May-2009 sthen

cleanup and simplify promiscuous/multicast setup (setmulti -> iff).
from Brad; ok dlg.


# 1.25 11-May-2009 sthen

remove local copy of vendor id/device id, there's nothing wrong with
the data from pcidevs. suggested by chris@.


# 1.24 10-May-2009 sthen

Remove config register gpio definitions for older chips, gpio mii
access disappeared years ago and replace them with config register
definitions for newer chips. From chris@.


# 1.23 10-May-2009 sthen

- change device matching to use a quirks table.

- avoid the need for unnecessary mbuf copies on modern vr(4) devices
(ancient ones required longword-alignment, but this has not been the case
for several generations now). reduces cpu time, particularly for forwarded
traffic.

from chris@. tested by chris@, myself, Emilio Perea on various devices
including original VIA EPIA, Soekris net5501, pcengines.ch ALIX.

ok mpf. deraadt and dlg agree with committing at this stage.


# 1.22 28-Apr-2009 mpf

The TX engine can get stuck if the interface went through a link
state change. Workaround by resetting the chip if necessary.
Also do not try to send packets if our link is down, as this triggers
watchdog timeouts. While there correct the VR_RXSTAT_RX_OK define
(not used yet). Changes inspired from FreeBSDs overhauled vr(4).
Testing, input and OK sthen@


Revision tags: OPENBSD_4_4_BASE OPENBSD_4_5_BASE
# 1.21 18-Jul-2008 thib

o Use mbufs, for the RX ring, instead of malloc()'ing an MCLBYTES sized buffer.
o On non-strict alignment archs, dont copy the mbuf, every time, unload it, and send
it up the stack and just get a new one for the rx ring. We still do the copy on
strict alignment archs though...
o create a function to handle mbuf allocation for the rx ring, vr_mbuf_alloc(),
use it to allocate the mbufs and shuffle the bus dma setup around.

ideas/code from vic(4) and sis(4);

ok reyk@, brad@, dlg@
tested by many, been in snapshots for a while.


Revision tags: OPENBSD_4_3_BASE
# 1.20 04-Oct-2007 brad

g/c ETHER_CRC_LEN.

ok dlg@


# 1.19 04-Oct-2007 brad

Remove renaming of fields with #define.

Tested by jmc@

ok dlg@


# 1.18 01-Sep-2007 mglocker

Add VLAN reception support to vr(4). Diff from Brad.

OK claudio@


Revision tags: OPENBSD_3_9_BASE OPENBSD_4_0_BASE OPENBSD_4_1_BASE OPENBSD_4_2_BASE
# 1.17 05-Feb-2006 brad

call vr_setmulti() if adjusting PROMISC or ALLMULTI and do not do a full
re-init if configuring the IP address.

tested by Andrey Matveev


# 1.16 07-Dec-2005 brad

this should fix the VT6103.


Revision tags: OPENBSD_3_8_BASE
# 1.15 06-Jul-2005 brad

- Rewritten TX to use only two pointers to track producer/consumer.
- Bugfix: don't forget to set IFF_OACTIVE when TX list is full.

From FreeBSD

- clear IFF_RUNNING & IFF_OACTIVE in vr_stop() before de-allocating resources.

Thanks to cloder@, millert@ and pedro@ for testing.


# 1.14 27-May-2005 pvalchev

kill another forgotten vtophys since bus_dma conversion


Revision tags: OPENBSD_3_7_BASE
# 1.13 28-Sep-2004 brad

Use ETHER_MAX_DIX_LEN/ETHER_MIN_LEN


Revision tags: OPENBSD_3_6_BASE SMP_SYNC_A SMP_SYNC_B
# 1.12 19-May-2004 brad

remove duplication, use ETHER_ALIGN from if_ether.h


Revision tags: OPENBSD_3_5_BASE
# 1.11 12-Oct-2003 jason

only one vtophys left (tx data)... both the rx and tx descriptors are
fully handled by bus_dma now.


# 1.10 12-Oct-2003 jason

rework rx to use bus_dma and sprinkle with a small amount of htole32.


# 1.9 10-Oct-2003 jason

unsmoke drugs in vr_encap() (simplify it quite alot)
prepare for bus_dma of tx data


# 1.8 10-Oct-2003 jason

don't use vtophys on rx lists any more


Revision tags: OPENBSD_3_3_BASE OPENBSD_3_4_BASE UBC_SYNC_A
# 1.7 19-Feb-2003 miod

Sync if_vr code with FreeBSD. This makes the driver much better when it comes
to trying to recover the hardware going nuts under the load.

Reported to work by various people including krw@and I.


# 1.6 09-Feb-2003 jason

Must set BCR0/BCR1 since they can override the RXCFG/TXCFG registers; from freebsd via openbsd pr 3086 (thom at press dot alt-f4 dot org)


Revision tags: OPENBSD_3_0_BASE OPENBSD_3_1_BASE OPENBSD_3_2_BASE UBC_BASE UBC_SYNC_B
# 1.5 16-May-2001 aaron

branches: 1.5.4;
Bring chip out of suspend mode in case we're booting after a shutdown from
Windows. Needed for the VT6102, but doesn't hurt older chips; from FreeBSD.


Revision tags: OPENBSD_2_9_BASE
# 1.4 20-Feb-2001 jason

add mii support to if_vr (mostly from FreeBSD)
also sync with other FreeBSD changes


# 1.3 17-Feb-2001 jason

sync with freebsd up to switch to mii
also increase the delay for accessing the eeprom (seems it needs a bit
longer to get ether address settled).


Revision tags: OPENBSD_2_5_BASE OPENBSD_2_6_BASE OPENBSD_2_7_BASE OPENBSD_2_8_BASE SMP_BASE kame_19991208
# 1.2 30-Jan-1999 niklas

branches: 1.2.6;
update to latest freebsd code, fixes stalls during heavy traffic


# 1.1 10-Jan-1999 downsj

VIA Rhine driver, ported from FreeBSD; written by wpaul@ctr.columbia.edu.