Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 27 Sep 2006 12:07:57 -0400
From:      Chuck Swiger <cswiger@mac.com>
To:        Marty Landman <martster@gmail.com>
Cc:        freebsd-questions@freebsd.org
Subject:   Re: intermittent boot problem
Message-ID:  <451AA1DD.8030000@mac.com>
In-Reply-To: <70063950609270820p4f104d71gae306bdf3de98ddb@mail.gmail.com>
References:  <70063950609270820p4f104d71gae306bdf3de98ddb@mail.gmail.com>

Next in thread | Previous in thread | Raw E-Mail | Index | Archive | Help
Marty Landman wrote:
> I've got a new FBSD 5.3 release install on an old Compaq pII-233 w/ 128M
> ram. What I get when the boot fails is
> 
> "tx underrun -- using store and forward mode"
> 
> repeating infinitely.
> 
> Now that a reboot has succeeded here's what dmesg shows for dc0:
> 
> dc0: <82c169 PNIC 10/100BaseTX> port 0x1400-0x14ff mem 

You've got an Asante/Kingston/Linksys PNIC clone of the DEC 21x4x "Tulip" 
chipset.  I've had four out of five of those cards die within two years.  If 
upgrading to 5-STABLE or 6.2 BETA doesn't fix it, consider replacing the NIC 
with something else:

      The dc driver programs 82c168 and 82c169 PNIC chips to use the store and
      forward setting for the transmit start threshold by default.  This is to
      work around problems with some NIC/PCI bus combinations where the PNIC
      can transmit corrupt frames when operating at 100Mbps, probably due to
      PCI DMA burst transfer errors.

      The 82c168 and 82c169 PNIC chips also have a receiver bug that sometimes
      manifests during periods of heavy receive and transmit activity, where
      the chip will improperly DMA received frames to the host.  The chips
      appear to upload several kilobytes of garbage data along with the
      received frame data, dirtying several RX buffers instead of just the
      expected one.  The dc driver detects this condition and will salvage the
      frame; however, it incurs a serious performance penalty in the process.

      The PNIC chips also sometimes generate a transmit underrun error when the
      driver attempts to download the receiver filter setup frame, which can
      result in the receive filter being incorrectly programmed.  The dc driver
      will watch for this condition and requeue the setup frame until it is
      transfered successfully.

-- 
-Chuck



Want to link to this message? Use this URL: <http://docs.FreeBSD.org/cgi/mid.cgi?451AA1DD.8030000>