Add et(4), which supports Agere ET1310 based Ethernet chips (PCIe only)
authorSepherosa Ziehau <sephe@dragonflybsd.org>
Fri, 12 Oct 2007 14:12:42 +0000 (14:12 +0000)
committerSepherosa Ziehau <sephe@dragonflybsd.org>
Fri, 12 Oct 2007 14:12:42 +0000 (14:12 +0000)
commitd217d4d98ac6fbea8bdd467edead6388cfe1a1c0
treead4258097dc4a48dbf4d09f253ad441ad3cb3cce
parent9a5b66176ac0b85a035e18123f6a48d82ab38b45
Add et(4), which supports Agere ET1310 based Ethernet chips (PCIe only)

  This chips supports two RX rings, one is currently used for packets
  whose size are smaller than 110 bytes, the other one is used for the
  rest packets sizes.

  Its RX interrupt moderation is quite similar to what bge(4) does:
  Two control variables, one is used to control how many packet should be
  received the other is used to control RX interrupt delay, RX interrupt
  moderation is achieved through the interaction of these two variables.

  Its TX interrupt moderation is more straightforward than RX's ;), you
  can tell hardware which TX segment should trigger interrupt.  It also
  has a hardware timer, which is set to 1Hz currently to prevent
  if_watchdog() from (mis)firing.

  I didn't figure out how to add polling(4) support for this chip, its
  RX state ring simply stops working if interrupts are disabled.  However,
  its hardware timer may be used to mimic polling(4) support.

  The missing features of the driver as of this commit:
  - Hardware checksum
  - Hardware vlan tagging
  - Jumbo buffer support
  Hopefully, they will be added later.

Add TruePHY (will any vendors name their PHY as FalsePHY one day?) support
into miibus(4) for Agere ET1011C PHY, which is used by et(4).  The data
sheet says model is 1 for ET1011C, while my testing card's model is 4; it
may be just a variant.
15 files changed:
share/man/man4/Makefile
share/man/man4/et.4 [new file with mode: 0644]
share/man/man4/miibus.4
sys/conf/files
sys/config/GENERIC
sys/config/LINT
sys/dev/netif/Makefile
sys/dev/netif/et/Makefile [new file with mode: 0644]
sys/dev/netif/et/bitops.h [new file with mode: 0644]
sys/dev/netif/et/if_et.c [new file with mode: 0644]
sys/dev/netif/et/if_etreg.h [new file with mode: 0644]
sys/dev/netif/et/if_etvar.h [new file with mode: 0644]
sys/dev/netif/mii_layer/Makefile
sys/dev/netif/mii_layer/truephy.c [new file with mode: 0644]
sys/dev/netif/mii_layer/truephyreg.h [new file with mode: 0644]