cvs commit: src/sys/pci if_xl.c if_xlreg.h

Bill Paul wpaul at FreeBSD.org
Wed Jul 9 22:24:34 PDT 2003


wpaul       2003/07/09 22:24:33 PDT

  FreeBSD src repository

  Modified files:
    sys/pci              if_xl.c if_xlreg.h 
  Log:
  Support for large frames for VLANs was added by tweaking the packet size
  register, present only on 3c90xB and later NICs. This meant that you could
  not use a 1500 byte MTU with VLANs on original 3c905/3c900 cards (boomerang
  chipset). The boomerang chip does support large frames though, just not
  in the same way: you can set the 'allow large frames' bit in the MAC
  control register to receive frames up to 4K in size.
  
  Changes:
  
  - Set the 'allow large frames' bit for boomerang chips and increase
    the packet size register for cyclone and later chips. This allows
    us to use IFCAP_VLAN_MTU on all supported xl(4) NICs.
  - Actually set the IFCAP_VLAN_MTU flag in the capabilities word
    in xl_attach().
  - Change the method used to detect older boomerang chips. My 3c575C
    cardbus NIC was being incorrectly identified as 3c90x chip instead
    of 3c90xB because the capabilities word in its EEPROM reports
    a bizzare value. In addition to checking for the supportsNoTxLength
    bit, also check for the absence of the supportsLargePackets bit.
    Both of these cases denote a 3c90xB chip.
  - Make RX and TX checksums configurable via the SIOCSIFCAP ioctl.
  - Avoid an unecessary le32toh() in xl_rxeof(): we already have the
    received frame size in the lower 16 bits of rxstat, no need to
    read it again.
  
  Tested with 3c905-TX, 3c900-TPO, 3c980C and 3c575C NICs.
  
  Revision  Changes    Path
  1.149     +45 -7     src/sys/pci/if_xl.c
  1.46      +2 -1      src/sys/pci/if_xlreg.h


More information about the cvs-all mailing list