vte(4)

vte4

Vortex86 rdc r6040 fast ethernet driver

Usage

device miibus device vte

In loader.conf(5): hw.vte.tx_deep_copy if_vte_load="YES"

In loader.conf(5) or sysctl.conf(5): dev.vte.%d.rx_mod dev.vte.%d.tx_mod dev.vte.%d.stats

Overview

The vte device driver provides support for RDC R6040 Fast Ethernet controller which is commonly found on Vortex86 System On a Chip (SoC).

The RDC R6040 has integrated 10/100 PHY for 10/100Mbps support in full or half-duplex. The controller supports interrupt moderation mechanism, a 64-bit multicast hash filter, VLAN over-size frame and four station addresses. The vte device driver uses three station addresses out of four as perfect multicast filter.

The vte driver supports the following media types:

autoselect

Enable autoselection of the media type and options. The user can manually override the autoselected mode by adding media options to rc.conf(5).

10baseT/UTP

Set 10Mbps operation.

100baseTX

Set 100Mbps (Fast Ethernet) operation.

The vte driver supports the following media options:

full-duplex

Force full duplex operation.

half-duplex

Force half duplex operation.

For more information on configuring this device, see ifconfig(8).

Hardware

The vte device driver provides support for the following Ethernet controllers:

  • DM&P Vortex86 RDC R6040 Fast Ethernet controller

Loader tunables

Tunables can be set at the loader(8) prompt before booting the kernel or stored in loader.conf(5).

hw.vte.tx_deep_copy

The RDC R6040 controller has no auto-padding support for short frames and the controller's DMA engine does not have capability to handle multiple buffers for a TX frame such that driver has to create a single contiguous TX buffer. This hardware limitation leads to poor TX performance since most of CPU cycles are wasted on both de-fragmenting mbuf chains and padding. This tunable enables deep copy operation for TX frames such that driver will spend less CPU cycles in de-fragmentation with the cost of extra TX buffer memory. The default value is 1 to use deep copy.

Sysctl variables

The following variables are available as both sysctl(8) variables and loader(8) tunables:

dev.vte.%d.rx_mod

Maximum number of packets to fire RX completion interrupt. The accepted range is 0 to 15, the default is 15.

dev.vte.%d.tx_mod

Maximum number of packets to fire TX completion interrupt. The accepted range is 0 to 15, the default is 15.

dev.vte.%d.stats

Show hardware MAC statistics maintained in driver.

Releases

36 releases since FreeBSD 8.3-RELEASE; the text changed 23 times.

  1. 8.3
  2. 8.4
  3. 9.0
  4. 9.1
  5. 9.2
  6. 9.3
  7. 10.0
  8. 10.1
  9. 10.2
  10. 10.3
  11. 10.4
  12. 11.0
  13. 11.1
  14. 11.2
  15. 11.3
  16. 11.4
  17. 12.0
  18. 12.1
  19. 12.2
  20. 12.3
  21. 12.4
  22. 13.0–13.2
  23. 13.3–15.1
  24. 16.0

History

The vte driver was written by Pyun YongHyeon ⟨[email protected]⟩. It first appeared in FreeBSD 8.3.

From base 16.0-CURRENT-20261027-61c70dc16a79 in FreeBSD 16.0-CURRENT (2026-10-27). Parsed by carta from the page's mdoc source.