sky2/pci issues on Gigabyte

Stephen Hemminger
2007-05-24T22:12:24Z

On Thu, 24 May 2007 14:26:44 -0400
Mike Houston <mikeserv@bmts.com> wrote:

> On Wed, 23 May 2007 10:46:05 -0700 (PDT)
> Linus Torvalds <torvalds@linux-foundation.org> wrote:
>
> >
> >
> > On Wed, 23 May 2007, Mike Houston wrote:
> > >
> > > I still happen to have a Windows Vista install kicking around, so
> > > to make sure we're not flogging a dead horse I booted that and
> > > let it set up the yukon2 chip and I tested it. (more to make sure
> > > that eeprom update didn't break it). I used it for a bit and
> > > successfully transferred some large files from box running Samba.
> > > MS must be using some specific workaround or something.
> >
> > I think there is some lspci-like thing for windows too.
> >
> > Can you do the equivalent of "lspci -vvxxx" on that box under both
> > Linux and Windows? _If_ it's some PCI config space thing (which is
> > not at all guaranteed - it could be about setup in random MMIO
> > ranges) it might give us some clues.
> >
>
> This is the sky2 issue with Gigabyte 88E8056 onboard LAN.
>
> I've had no luck getting pciutils compiled for win32, but I found a
> utility that gives similar output called Craig Hart's PCI bus sniffer
> (pci32.exe).
>
> Here is the output of pci32 with hex dump from within Windows Vista:
> http://www.mikeserv.org/files/pci32_info.txt
>
> Here is the output of lspci -vvxxx from within Linux:
> http://www.mikeserv.org/files/lspci.txt
>
> I hope this is helpful,
>
> Mike Houston

Looking at the 88e8056 PCI config values:

Differences:
1. Linux use MSI (no INTx), Vista does not.

2. Vista use IRQ 16, Linux uses 219 (because of MSI)

3. Vista sets Device Control(E8) 4000h = 2K,
Linux uses 2000h = 1k
This would cause larger max read requests.

4. Vista status (EA) 0010h
Linux is 0019h
Driver doesn't bother clearing the correctable error status on boot.

You can get the same settings on Linux without changing driver by doing:

modprobe sky2 disable_msi=1
setpci -s 04:00 e8.w=4000,19

No luck, I tried it, but it still dies..

--
Stephen Hemminger <shemminger@linux-foundation.org>