sky2: re-enable 88E8056 for most motherboards
Subsystems (2)
PATCH 1/1 sky2: re-enable 88E8056 for most motherboards
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.
--- drivers/net/sky2.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-)
drivers/net/sky2.c +13 -4
@@ -123,10 +123,7 @@ static const struct pci_device_id sky2_i { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4361) }, /* 88E8050 */ { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4362) }, /* 88E8053 */ { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4363) }, /* 88E8055 */ -#ifdef broken - /* This device causes data corruption problems that are not resolved */ { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4364) }, /* 88E8056 */ -#endif { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4366) }, /* 88EC036 */ { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4367) }, /* 88EC032 */ { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4368) }, /* 88EC034 */
@@ -3580,10 +3577,21 @@ static int __devinit sky2_probe(struct p goto err_out; } +/* 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" ); + goto err_out_disable; + } + err =pci_request_regions (pdev,DRV_NAME );if (err) {dev_err (&pdev->dev,"cannot obtain PCI resources\n" ); - goto err_out; + goto err_out_disable; }pci_set_master (pdev);
@@ -3720,6 +3728,7 @@ err_out_free_hw:kfree (hw); err_out_free_regions:pci_release_regions (pdev); +err_out_disable:pci_disable_device (pdev); err_out:return err;
Hi Stephen,
drivers/net/sky2.c static int __devinit sky2_probe(struct p · line 3587
Quoted 11 lines · Stephen Hemminger
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.
drivers/net/sky2.c +8
-0+/* 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=0mAPME(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=0mAPME(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
Quoted 99 lines · On Tue, 01 May 2007 09:58:28 -0400 Daniel Drake <[email protected]> wrote:
Hi Stephen,
drivers/net/sky2.c static int __devinit sky2_probe(struct p · line 3587
Quoted 11 lines · Stephen Hemminger
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.
drivers/net/sky2.c +8
-0+/* 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=176219Can 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 atf7000000(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=0mAPME(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:00000000fee0300cData: 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 00Gigabyte 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 atf8000000(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=0mAPME(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
Quoted 8 lines
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?
Signature · 1 line
Stephen Hemminger <[email protected]>
Quoted 3 lines · Stephen Hemminger
The PCI info is basically the same between working/non working Gigabyte boards. Is there any other difference? Kernel config? chip revision?
I've never seen any reports of the corruption which you describe, so I can't make the comparison myself. Here's the chip info from a working Gigabyte DS3:
sky2 0000:04:00.0: v1.14 addr 0xf8000000 irq 16 Yukon-EC Ultra (0xb4) rev 2
Daniel
Quoted 19 lines · On Tue, 01 May 2007 09:58:28 -0400 Daniel Drake <[email protected]> wrote:
Hi Stephen,
drivers/net/sky2.c static int __devinit sky2_probe(struct p · line 3587
Quoted 11 lines · Stephen Hemminger
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.
drivers/net/sky2.c +8
-0+/* 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
Quoted 1 line
Can the patch be refined further?
I can use DMI to narrow down to one motherboard.
Or just let everything through and let user's discover what's unstable, it fails relatively quickly.
Could you please get full PCI info lspci -vvxxx for working/non-working 88e8056 (Yukon EC-U) systems? It might be some PCI Express setup by the BIOS, but so far haven't found any difference that mattered.
Have tried newer BIOS and qualified memory as obvious first steps.
Signature · 1 line
Stephen Hemminger <[email protected]>
Quoted 6 lines · Stephen Hemminger
I can use DMI to narrow down to one motherboard. Or just let everything through and let user's discover what's unstable, it fails relatively quickly.
Could you please get full PCI info lspci -vvxxx for working/non-working 88e8056 (Yukon EC-U) systems? It might be some PCI Express setup by the BIOS, but so far haven't found any difference that mattered.
I haven't seen any reports of systems affected by the corruption issue so I can't provide any data there.
Here is the full lspci output for a few systems with 88E8056 devices that work fine:
Gigabyte P965-S3
http://bugs.gentoo.org/attachment.cgi?id=118827&action=view
Gigabyte P965-S3 (from another user)
http://bugs.gentoo.org/attachment.cgi?id=118848&action=view
Asus P5B deluxe
http://bugs.gentoo.org/attachment.cgi?id=119038&action=view
Daniel
Quoted 18 lines · On Sun, 13 May 2007 11:55:29 -0400 Daniel Drake <[email protected]> wrote:
Quoted 7 lines · Stephen Hemminger
I can use DMI to narrow down to one motherboard.
Or just let everything through and let user's discover what's unstable, it fails relatively quickly.Could you please get full PCI info lspci -vvxxx for working/non-working 88e8056 (Yukon EC-U) systems? It might be some PCI Express setup by the BIOS, but so far haven't found any difference that mattered.
I haven't seen any reports of systems affected by the corruption issue so I can't provide any data there.
Here is the full lspci output for a few systems with 88E8056 devices that work fine:
Gigabyte P965-S3
http://bugs.gentoo.org/attachment.cgi?id=118827&action=view
Quoted 8 lines
Gigabyte P965-S3 (from another user)
http://bugs.gentoo.org/attachment.cgi?id=118848&action=viewAsus P5B deluxe
http://bugs.gentoo.org/attachment.cgi?id=119038&action=viewDaniel
It looks like these users aren't using MSI?
Also, there maybe some correlation of the problem with IDE AHCI mode. I am using WD Raptor 10K driver with AHCI, that does Native Command Queuing, could be some weird IDE interaction. If I turn off AHCI, it works better (still fails but differently).
Signature · 1 line
Stephen Hemminger <[email protected]>
Quoted 1 line · Stephen Hemminger
It looks like these users aren't using MSI?
Possible. Want me to find out?
I just ask as I note yesterday's -stable patch where you remove the #ifdef completely. Is that going to go upstream into 2.6.22 or do you want to continue pursuing the DMI matching path?
Thanks,
Daniel
Quoted 6 lines · Daniel Drake
Quoted 1 line · Stephen Hemminger
It looks like these users aren't using MSI?
Possible. Want me to find out?
I just ask as I note yesterday's -stable patch where you remove the #ifdef completely. Is that going to go upstream into 2.6.22 or do you want to continue pursuing the DMI matching path?
Stephen has some sky2 patches I need to push. I accidentally filed them until 'Pending: SATA', and they got missed in my most recent net driver push.
Jeff
Quoted 1 line · Jeff Garzik
Stephen has some sky2 patches I need to push. I accidentally filed them until 'Pending: SATA', and they got missed in my most recent net driver push.
Thanks, that clears it up, forgot to check netdev before asking. Looks like the 2.6.22 plans are to drop the machine detection, and enable 88E8056 everywhere.
Daniel
Jeff Garzik
AppliedQuoted 8 lines · Stephen Hemminger
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.
Signed-off-by Stephen Hemminger <[email protected]>--- drivers/net/sky2.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-)
applied