Subject: Re: [PATCH] sky2: re-enable 88E8056 for most motherboards

From: Stephen Hemminger <[email-masked]>
Date: Wed, 2 May 2007 15:42:25 -0700

On Tue, 01 May 2007 09:58:28 -0400
Daniel Drake <[email-masked]> wrote:

> Hi Stephen,
> 
> Stephen Hemminger wrote:
> > This fixes the regression in 2.6.21 for users with 88e8056 on motherboard.
> > Allow all but the Gigabyte motherboard has some unresolved bus problems.
> 
> > +	/* Some Gigabyte motherboards have 88e8056 but cause problems
> > +	 * There is some unresolved hardware related problem that causes
> > +	 * descriptor errors and receive data corruption.
> > +	 */
> > +	if (pdev->vendor == PCI_VENDOR_ID_MARVELL &&
> > +	    pdev->device == 0x4364 && pdev->subsystem_vendor == 0x1458) {
> > +		dev_err(&pdev->dev,
> > +			"88E8056 on Gigabyte motherboards not supported\n");
> 
> Gentoo have reports of sky2 working fine on Gigabyte boards which have 
> 88E8056 devices:
> https://bugs.gentoo.org/show_bug.cgi?id=176219
> 
> Can the patch be refined further?
> 
> Specifically:
> 
> Gigabyte DQ6
> 03:00.0 0200: 11ab:4364 (rev 12)
>          Subsystem: 1458:e000
>          Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
> Stepping- SERR- FastB2B-
>          Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- 
> <TAbort-
> <MAbort- >SERR- <PERR-
>          Latency: 0, Cache Line Size: 32 bytes
>          Interrupt: pin A routed to IRQ 219
>          Region 0: Memory at f7000000 (64-bit, non-prefetchable) [size=16K]
>          Region 2: I/O ports at 7000 [size=256]
>          [virtual] Expansion ROM at 40000000 [disabled] [size=128K]
>          Capabilities: [48] Power Management version 3
>                  Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA
> PME(D0+,D1+,D2+,D3hot+,D3cold+)
>                  Status: D0 PME-Enable- DSel=0 DScale=1 PME-
>          Capabilities: [50] Vital Product Data
>          Capabilities: [5c] Message Signalled Interrupts: 64bit+ Queue=0/0
> Enable+
>                  Address: 00000000fee0300c  Data: 413a
>          Capabilities: [e0] Express Legacy Endpoint IRQ 0
>                  Device: Supported: MaxPayload 128 bytes, PhantFunc 0, 
> ExtTag-
>                  Device: Latency L0s unlimited, L1 unlimited
>                  Device: AtnBtn- AtnInd- PwrInd-
>                  Device: Errors: Correctable- Non-Fatal- Fatal- Unsupported-
>                  Device: RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
>                  Device: MaxPayload 128 bytes, MaxReadReq 512 bytes
>                  Link: Supported Speed 2.5Gb/s, Width x1, ASPM L0s L1, 
> Port 0
>                  Link: Latency L0s <256ns, L1 unlimited
>                  Link: ASPM Disabled RCB 128 bytes CommClk- ExtSynch-
>                  Link: Speed 2.5Gb/s, Width x1
>          Capabilities: [100] Advanced Error Reporting
> 00: ab 11 64 43 07 04 10 00 12 00 00 02 08 00 00 00
> 10: 04 00 00 f7 00 00 00 00 01 70 00 00 00 00 00 00
> 20: 00 00 00 00 00 00 00 00 00 00 00 00 58 14 00 e0
> 30: 00 00 00 00 48 00 00 00 00 00 00 00 0a 01 00 00
> 
> 
> Gigabyte S3: sorry, no lspci dump available yet
> 
> Gigabyte DS3:
> 04:00.0 Ethernet controller [0200]: Marvell Technology Group Ltd. Unknown
> device [11ab:4364] (rev 12)
>          Subsystem: Giga-byte Technology Unknown device [1458:e000]
>          Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
> Stepping- SERR- FastB2B-
>          Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- 
> <TAbort-
> <MAbort- >SERR- <PERR-
>          Latency: 0, Cache Line Size: 32 bytes
>          Interrupt: pin A routed to IRQ 16
>          Region 0: Memory at f8000000 (64-bit, non-prefetchable) [size=16K]
>          Region 2: I/O ports at 8000 [size=256]
>          [virtual] Expansion ROM at 40000000 [disabled] [size=128K]
>          Capabilities: [48] Power Management version 3
>                  Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA
> PME(D0+,D1+,D2+,D3hot+,D3cold+)
>                  Status: D0 PME-Enable- DSel=0 DScale=1 PME-
>          Capabilities: [50] Vital Product Data
>          Capabilities: [5c] Message Signalled Interrupts: Mask- 64bit+ 
> Queue=0/0
> Enable-
>                  Address: 0000000000000000  Data: 0000
>          Capabilities: [e0] Express Legacy Endpoint IRQ 0
>                  Device: Supported: MaxPayload 128 bytes, PhantFunc 0, 
> ExtTag-
>                  Device: Latency L0s unlimited, L1 unlimited
>                  Device: AtnBtn- AtnInd- PwrInd-
>                  Device: Errors: Correctable- Non-Fatal- Fatal- Unsupported-
>                  Device: RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
>                  Device: MaxPayload 128 bytes, MaxReadReq 512 bytes
>                  Link: Supported Speed 2.5Gb/s, Width x1, ASPM L0s L1, 
> Port 0
>                  Link: Latency L0s <256ns, L1 unlimited
>                  Link: ASPM Disabled RCB 128 bytes CommClk- ExtSynch-
>                  Link: Speed 2.5Gb/s, Width x1
>          Capabilities: [100] Advanced Error Reporting
> 00: ab 11 64 43 07 00 10 00 12 00 00 02 08 00 00 00
> 10: 04 00 00 f8 00 00 00 00 01 80 00 00 00 00 00 00
> 20: 00 00 00 00 00 00 00 00 00 00 00 00 58 14 00 e0
> 30: 00 00 00 00 48 00 00 00 00 00 00 00 0b 01 00 00

The PCI info is basically the same between working/non working
Gigabyte boards. Is there any other difference?  Kernel config?
chip revision?
-- 
Stephen Hemminger <[email-masked]>