[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20070706120208.27ca08b2@freepuppy.rosehill.hemminger.net>
Date: Fri, 6 Jul 2007 12:02:08 -0700
From: Stephen Hemminger <shemminger@...ux-foundation.org>
To: "Daniel J Blueman" <daniel.blueman@...il.com>
Cc: "Linux Netdev" <netdev@...r.kernel.org>
Subject: Re: sky2 silicon bugs and workarounds...
On Mon, 2 Jul 2007 14:37:06 +0100
"Daniel J Blueman" <daniel.blueman@...il.com> wrote:
> Hi Stephen,
>
> When the sky2 driver initialises, it sets the the ISR timer register
> (STAT_ISR_TIMER_INI) to 125 * 20 = 2500, whereas the vendor sk98lin
> driver sets it to 400, irrespective of the clockspeed of the NIC
> processor.
>
> I guess you found more performance/stability from this value...?
>
> I've checked through the errata workarounds common to my rev-1 and 2
> Yukon-EC chips...the HWF_WA_DEV_4167 "oversize receive hang"
> workaround checks and can reset the (as I understand) bus master unit
> of the NIC (in CheckRxPath) in a periodic timer that is fired, where
> is finds no progress is made.
>
My best guess at what that is handling is the chip (bug) that causes
the receiver to hang if a packet larger than the receive DMA buffer is
received. The sky2 driver doesn't need this because it allocates a
slightly larger buffer than necessary, and truncates the oversize packet.
This works because the hardware has a truncation register that was probably
designed for use when packet sniffing.
--
Stephen Hemminger <shemminger@...ux-foundation.org>
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists