netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 15/17] sky2: only disable 88e8056 on some boards
  2007-05-09  3:49 [PATCH 00/17] sky2 update for 2.6.22 Stephen Hemminger
@ 2007-05-09  3:50 ` Stephen Hemminger
  0 siblings, 0 replies; 5+ messages in thread
From: Stephen Hemminger @ 2007-05-09  3:50 UTC (permalink / raw)
  To: Jeff Garzik; +Cc: netdev, Greg KH

[-- Attachment #1: sky2-dmi-gigabyte.patch --]
[-- Type: text/plain, Size: 2885 bytes --]

Use DMI to add a blacklist of broken board. For now only one is known
bad. Gentoo users report driver works on other motherboards (strange).

Hopefully, the problems will be solved later, and the the whole
blacklist can disappear.

Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org>

---
 drivers/net/sky2.c |   41 ++++++++++++++++++++++++++++++-----------
 1 file changed, 30 insertions(+), 11 deletions(-)

--- sky2-2.6.21.orig/drivers/net/sky2.c	2007-05-08 15:58:11.000000000 -0700
+++ sky2-2.6.21/drivers/net/sky2.c	2007-05-08 16:09:03.000000000 -0700
@@ -41,6 +41,7 @@
 #include <linux/if_vlan.h>
 #include <linux/prefetch.h>
 #include <linux/mii.h>
+#include <linux/dmi.h>
 
 #include <asm/irq.h>
 
@@ -151,6 +152,8 @@ static const char *yukon2_name[] = {
 	"FE",		/* 0xb7 */
 };
 
+static int broken_ec_u;			/* blacklist */
+
 /* Access to external PHY */
 static int gm_phy_write(struct sky2_hw *hw, unsigned port, u16 reg, u16 val)
 {
@@ -2519,10 +2522,21 @@ static int __devinit sky2_init(struct sk
 		return -EOPNOTSUPP;
 	}
 
+
 	if (hw->chip_id == CHIP_ID_YUKON_EX)
 		dev_warn(&hw->pdev->dev, "this driver not yet tested on this chip type\n"
 			 "Please report success or failure to <netdev@vger.kernel.org>\n");
 
+
+	/* Some Gigabyte motherboards have 88e8056 but cause problems
+	 * There is some unresolved hardware related problem that causes
+	 * descriptor errors and receive data corruption.
+	 */
+	if (hw->chip_id == CHIP_ID_YUKON_EC_U && broken_ec_u) {
+		dev_err(&hw->pdev->dev, "broken 88e8056 detected.\n");
+		return -EOPNOTSUPP;
+	}
+
 	/* Make sure and enable all clocks */
 	if (hw->chip_id == CHIP_ID_YUKON_EX || hw->chip_id == CHIP_ID_YUKON_EC_U)
 		pci_write_config_dword(hw->pdev, PCI_DEV_REG3, 0);
@@ -3572,17 +3586,6 @@ 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");
@@ -3895,8 +3898,24 @@ static struct pci_driver sky2_driver = {
 	.shutdown = sky2_shutdown,
 };
 
+
+static struct dmi_system_id __initdata gigabyte_dmi_table[] = {
+	{
+		.ident = "Gigabyte 965P-S3",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Gigabyte Technology Co., Ltd."),
+			DMI_MATCH(DMI_PRODUCT_NAME, "965P-S3"),
+
+		},
+	},
+	{ }
+};
+
 static int __init sky2_init_module(void)
 {
+	if (dmi_check_system(gigabyte_dmi_table))
+		broken_ec_u = 1;
+
 	return pci_register_driver(&sky2_driver);
 }
 

--


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH 15/17] sky2: only disable 88e8056 on some boards
@ 2007-05-14  4:53 Florin Malita
  2007-05-14 19:55 ` Stephen Hemminger
  0 siblings, 1 reply; 5+ messages in thread
From: Florin Malita @ 2007-05-14  4:53 UTC (permalink / raw)
  To: shemminger; +Cc: netdev

Hi Stephen,

Stephen Hemminger wrote:
> Use DMI to add a blacklist of broken board. For now only one is known
> bad. Gentoo users report driver works on other motherboards (strange). 
[snip]
> +               .ident = "Gigabyte 965P-S3",
> +               .matches = {
> +                       DMI_MATCH(DMI_SYS_VENDOR, "Gigabyte Technology Co., 
> Ltd."),
> +                       DMI_MATCH(DMI_PRODUCT_NAME, "965P-S3"),

Actually, I've been using sky2 with a 965P-S3 for a couple of months 
(x86_64 kernel) and as far as I can tell it works like a charm. Recently 
I had to hack around the blacklisting but other than that I haven't 
noticed anything strange.

What failures are you trying to prevent? Would a warning (instead of 
blacklisting) be acceptable?

Thanks,
Florin

04:00.0 Ethernet controller: Marvell Technology Group Ltd. 88E8056 PCI-E Gigabit Ethernet Controller (rev 12)
	Subsystem: Giga-byte Technology Unknown device 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 315
	Region 0: Memory at f5000000 (64-bit, non-prefetchable) [size=16K]
	Region 2: I/O ports at 9000 [size=256]
	[virtual] Expansion ROM at 80000000 [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: 00000000fee00000  Data: 40d9
	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 f5 00 00 00 00 01 90 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

# dmidecode 2.7
SMBIOS 2.4 present.
39 structures occupying 1192 bytes.
Table at 0x000F0100.

Handle 0x0000, DMI type 0, 24 bytes.
BIOS Information
	Vendor: Award Software International, Inc.
	Version: F8
	Release Date: 01/11/2007
	Address: 0xE0000
	Runtime Size: 128 kB
	ROM Size: 1024 kB
	Characteristics:
		PCI is supported
		PNP is supported
		APM is supported
		BIOS is upgradeable
		BIOS shadowing is allowed
		Boot from CD is supported
		Selectable boot is supported
		EDD is supported
		5.25"/360 KB floppy services are supported (int 13h)
		5.25"/1.2 MB floppy services are supported (int 13h)
		3.5"/720 KB floppy services are supported (int 13h)
		3.5"/2.88 MB floppy services are supported (int 13h)
		Print screen service is supported (int 5h)
		8042 keyboard services are supported (int 9h)
		Serial services are supported (int 14h)
		Printer services are supported (int 17h)
		CGA/mono video services are supported (int 10h)
		ACPI is supported
		USB legacy is supported
		LS-120 boot is supported
		ATAPI Zip drive boot is supported
		BIOS boot specification is supported
		Targeted content distribution is supported

Handle 0x0001, DMI type 1, 27 bytes.
System Information
	Manufacturer: Gigabyte Technology Co., Ltd.
	Product Name: 965P-S3
	Version:  
	Serial Number:  
	UUID: 00000000-0000-0000-0000-0016E6D4022E
	Wake-up Type: Power Switch
	SKU Number:  
	Family:  

Handle 0x0002, DMI type 2, 8 bytes.
Base Board Information
	Manufacturer: Gigabyte Technology Co., Ltd.
	Product Name: 965P-S3
	Version:  
	Serial Number:  

Handle 0x0003, DMI type 3, 17 bytes.
Chassis Information
	Manufacturer: Gigabyte Technology Co., Ltd.
	Type: Desktop
	Lock: Not Present
	Version:  
	Serial Number:  
	Asset Tag:  
	Boot-up State: Unknown
	Power Supply State: Unknown
	Thermal State: Unknown
	Security Status: Unknown
	OEM Information: 0x00000000

Handle 0x0004, DMI type 4, 35 bytes.
Processor Information
	Socket Designation: Socket 775
	Type: Central Processor
	Family: Other
	Manufacturer: Intel
	ID: F2 06 00 00 FF FB EB BF
	Version: Intel(R) Core(TM)2 CPU 640
	Voltage: 1.3 V
	External Clock: 384 MHz
	Max Speed: 4000 MHz
	Current Speed: 3072 MHz
	Status: Populated, Enabled
	Upgrade: Socket 478
	L1 Cache Handle: 0x000A
	L2 Cache Handle: 0x000B
	L3 Cache Handle: Not Provided
	Serial Number:  
	Asset Tag:  
	Part Number:  




^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 15/17] sky2: only disable 88e8056 on some boards
  2007-05-14  4:53 [PATCH 15/17] sky2: only disable 88e8056 on some boards Florin Malita
@ 2007-05-14 19:55 ` Stephen Hemminger
  2007-05-15 19:43   ` kernel
  0 siblings, 1 reply; 5+ messages in thread
From: Stephen Hemminger @ 2007-05-14 19:55 UTC (permalink / raw)
  To: Florin Malita; +Cc: netdev

On Mon, 14 May 2007 00:53:42 -0400
Florin Malita <fmalita@gmail.com> wrote:

> Hi Stephen,
> 
> Stephen Hemminger wrote:
> > Use DMI to add a blacklist of broken board. For now only one is known
> > bad. Gentoo users report driver works on other motherboards (strange). 
> [snip]
> > +               .ident = "Gigabyte 965P-S3",
> > +               .matches = {
> > +                       DMI_MATCH(DMI_SYS_VENDOR, "Gigabyte Technology Co., 
> > Ltd."),
> > +                       DMI_MATCH(DMI_PRODUCT_NAME, "965P-S3"),
> 
> Actually, I've been using sky2 with a 965P-S3 for a couple of months 
> (x86_64 kernel) and as far as I can tell it works like a charm. Recently 
> I had to hack around the blacklisting but other than that I haven't 
> noticed anything strange.
> 
> What failures are you trying to prevent? Would a warning (instead of 
> blacklisting) be acceptable?
> 
> Thanks,
> Florin

What happens on my system is that the chip is accessing some unknown
memory location when it reads the descriptors. This leads to:
  * Transmit descriptor errors because the transmit descriptor doesn't
    have the "Owner" bit set. The list is fine, and all the barriers
    are there it seems like the chip read of memory is getting crap.
  * TSO errors (probably same problem as before)
  * Receive packets with no data. The stack ends up ignoring the 
    garbage; but since we reuse the memory the DMA can/will happen
    later and cause random memory corruption.

Overall it looks like a PCI synchronization problem. Possible differences
between working/non-working are:
  * BIOS, tried up to the latest beta version with no change
  * Memory, switched to name brand DDR2 800 (2G)
  * MSI
  * AHCI/SATA, I am using Raptor with AHCI when booted with i386 on old
    IDE drive saw no problems
 


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 15/17] sky2: only disable 88e8056 on some boards
  2007-05-14 19:55 ` Stephen Hemminger
@ 2007-05-15 19:43   ` kernel
  2007-05-15 21:41     ` Stephen Hemminger
  0 siblings, 1 reply; 5+ messages in thread
From: kernel @ 2007-05-15 19:43 UTC (permalink / raw)
  To: netdev

Hello, Stephen,

> RE: sky2 88e8056 Gigabyte GA-965GM-S2 uATX motherboard

A couple days ago I posted my observations that this was a hardware problem. My boards are now working!

I used the GIGABYTE MOTHERBOARD webpage for SUPPORT. They replied with a EEPROM program for the Marvell Yukon ethernet chip.
Once the EEPROM was reprogrammed the diskless system on my bench started working and has for the past 24 hours taken a beating on the NFS mount as well as receiving a ping flood from another node.

I am not using the sky2 driver, rather the sk98lin from Marvell's website. It was a last grasp before buying PCI ethernet cards. Marvell's sk98lin was no better than sky2 before the EEPROM reprogramming. My observation is that sky2/v1.10 still does not work after the reprogramming.
I will grab your latest sky2 patches and report results.

Here are the details:
---------------------
Suse 10.0 
2.6.21 i386
sk98lin: Network Device Driver v10.0.5.3
(download from Marvell's webpage)

Marvell Yukon chip 88E8056 reprogrammed with files provided by GIGABYTE MOTHERBOARD manufacturer:
    1024 Feb  9 08:51 GBT5614n.raw
      24 May 16 00:23 VPD.BAT
      93 Mar  2 13:08 eep.bat
  155729 Oct 19  2006 mac.exe
  224533 Oct 31  2006 yukonvpd.exe

Contents of the eep.bat file:
-----------------------------
@echo off
@del vpd.bat
mac
yukonvpd -P GBT5614n.raw 
yukonvpd -u 1458E000
call vpd.bat

Contents of the VPD.BAT file:
-----------------------------
YUKONVPD -M 0016E6FFFFFF
(I replace the full MAC with FF FF FF)

More as it happens,
-Rob



> RE: sky2 88e8056 Gigabyte GA-965GM-S2 uATX motherboard

> I have now too many of these Gigabyte mobos, GA-965GM-S2 with the Marvell 88e8056
> www.gigabyte.com.tw / Products / Motherboard / Products_Overview.aspx?ProductID=2388
> 
> Observations.
> -------------
> The problem may not be sky2 specific. I have diskless nodes where too many can NOT 
> 1) reliably DHCP an IP number from the server 
> 2) and if the pxelinux.cfg/default loads, it is not certain if the kernel or the initrd would tftp transfer.
> 
> There are two of 12 diskless nodes that work, ... always work.
> All mobos are the same, all CMOS is set identically
> 



On Mon, May 14, 2007 at 12:55:38PM -0700, Stephen Hemminger wrote:
> On Mon, 14 May 2007 00:53:42 -0400
> Florin Malita <fmalita@gmail.com> wrote:
> 
> > Hi Stephen,
> > 
> > Stephen Hemminger wrote:
> > > Use DMI to add a blacklist of broken board. For now only one is known
> > > bad. Gentoo users report driver works on other motherboards (strange). 
> > [snip]
> > > +               .ident = "Gigabyte 965P-S3",
> > > +               .matches = {
> > > +                       DMI_MATCH(DMI_SYS_VENDOR, "Gigabyte Technology Co., 
> > > Ltd."),
> > > +                       DMI_MATCH(DMI_PRODUCT_NAME, "965P-S3"),
> > 
> > Actually, I've been using sky2 with a 965P-S3 for a couple of months 
> > (x86_64 kernel) and as far as I can tell it works like a charm. Recently 
> > I had to hack around the blacklisting but other than that I haven't 
> > noticed anything strange.
> > 
> > What failures are you trying to prevent? Would a warning (instead of 
> > blacklisting) be acceptable?
> > 
> > Thanks,
> > Florin
> 
> What happens on my system is that the chip is accessing some unknown
> memory location when it reads the descriptors. This leads to:
>   * Transmit descriptor errors because the transmit descriptor doesn't
>     have the "Owner" bit set. The list is fine, and all the barriers
>     are there it seems like the chip read of memory is getting crap.
>   * TSO errors (probably same problem as before)
>   * Receive packets with no data. The stack ends up ignoring the 
>     garbage; but since we reuse the memory the DMA can/will happen
>     later and cause random memory corruption.
> 
> Overall it looks like a PCI synchronization problem. Possible differences
> between working/non-working are:
>   * BIOS, tried up to the latest beta version with no change
>   * Memory, switched to name brand DDR2 800 (2G)
>   * MSI
>   * AHCI/SATA, I am using Raptor with AHCI when booted with i386 on old
>     IDE drive saw no problems
>  
> 
> -
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 15/17] sky2: only disable 88e8056 on some boards
  2007-05-15 19:43   ` kernel
@ 2007-05-15 21:41     ` Stephen Hemminger
  0 siblings, 0 replies; 5+ messages in thread
From: Stephen Hemminger @ 2007-05-15 21:41 UTC (permalink / raw)
  To: Rob Ogden; +Cc: netdev

On Tue, 15 May 2007 15:43:39 -0400
kernel@zeppo.hm.uc.edu wrote:

> Hello, Stephen,
> 
> > RE: sky2 88e8056 Gigabyte GA-965GM-S2 uATX motherboard
> 
> A couple days ago I posted my observations that this was a hardware problem. My boards are now working!
> 
> I used the GIGABYTE MOTHERBOARD webpage for SUPPORT. They replied with a EEPROM program for the Marvell Yukon ethernet chip.
> Once the EEPROM was reprogrammed the diskless system on my bench started working and has for the past 24 hours taken a beating on the NFS mount as well as receiving a ping flood from another node.
>

Any chance of sending me the stuff to verify if it fixes my system.

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2007-05-15 21:41 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-05-14  4:53 [PATCH 15/17] sky2: only disable 88e8056 on some boards Florin Malita
2007-05-14 19:55 ` Stephen Hemminger
2007-05-15 19:43   ` kernel
2007-05-15 21:41     ` Stephen Hemminger
  -- strict thread matches above, loose matches on Subject: below --
2007-05-09  3:49 [PATCH 00/17] sky2 update for 2.6.22 Stephen Hemminger
2007-05-09  3:50 ` [PATCH 15/17] sky2: only disable 88e8056 on some boards Stephen Hemminger

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).