Skip to contentSkip to conversation

skge: Add DMA mask quirk for Marvell 88E8001 on ASUS P5NSLI motherboard.

PATCH Superseded Graham Gower 4 participants 10 messages Oct 7, 2012 – Oct 8, 2012

Subsystems (3)

v2 of 4 Superseded Latest is v4 →

lore
Share & tools
lore
#0 lore raw

Marvell 88E8001 on an ASUS P5NSLI motherboard is unable to send/receive packets on a system with >4gb ram unless a 32bit DMA mask is used.

This issue has been around for years and a fix was sent 3.5 years ago, but there was some debate as to whether it should instead be fixed as a PCI quirk.
http://www.spinics.net/lists/netdev/msg88670.html

However, 18 months later a similar workaround was introduced for another chipset exhibiting the same problem.
http://www.spinics.net/lists/netdev/msg142287.html

skge.c renamed from skge.c.bak +7 -0
@@ -4143,6 +4143,13 @@
 			DMI_MATCH(DMI_BOARD_NAME, "nForce"),
 		},
 	},
+	{
+		.ident = "ASUS P5NSLI",
+		.matches = {
+			DMI_MATCH(DMI_BOARD_VENDOR, "ASUSTeK Computer INC."),
+			DMI_MATCH(DMI_BOARD_NAME, "P5NSLI")
+		},
+	},
 	{}
 };
 
#1 lore raw

skge.c 2012-10-07 13:26:03.000000000 +1030

Quoted 5 lines · Graham Gower
skge.c 2012-10-07 13:26:03.000000000 +1030 renamed from skge.c.bak 2012-10-07 13:00:56.000000000 +1030 +0 -0
@@ -4143,6 +4143,13 @@

Graham,

Your patch should include the path to the file being patched relative to the base directory. So in this case something like

--- a/drivers/net/ethernet/marvell/skge.c ...
+++ b/drivers/net/ethernet/marvell/skge.c ...

HTH, Jan

#2 lore raw
Quoted 15 lines · Jan Ceuleers

skge.c 2012-10-07 13:26:03.000000000 +1030

Quoted 5 lines · Graham Gower
skge.c 2012-10-07 13:26:03.000000000 +1030 renamed from skge.c.bak 2012-10-07 13:00:56.000000000 +1030 +0 -0
@@ -4143,6 +4143,13 @@

Graham,

Your patch should include the path to the file being patched relative to the base directory. So in this case something like

drivers/net/ethernet/marvell/skge.c ... +0 -0
Quoted 2 lines

HTH, Jan

Thanks, I should know this stuff. Just an oversight because I was too lazy to clone a repository and diffed against the single file.

-Graham

#3 lore raw

PATCH v2 1/1 skge: Add DMA mask quirk for Marvell 88E8001 on ASUS P5NSLI motherboard.

In reply to Graham Gower

Marvell 88E8001 on an ASUS P5NSLI motherboard is unable to send/receive packets on a system with >4gb ram unless a 32bit DMA mask is used.

This issue has been around for years and a fix was sent 3.5 years ago, but there was some debate as to whether it should instead be fixed as a PCI quirk.
http://www.spinics.net/lists/netdev/msg88670.html

However, 18 months later a similar workaround was introduced for another chipset exhibiting the same problem.
http://www.spinics.net/lists/netdev/msg142287.html

drivers/net/ethernet/marvell/skge.c +7 -0
@@ -4143,6 +4143,13 @@
 			DMI_MATCH(DMI_BOARD_NAME, "nForce"),
 		},
 	},
+	{
+		.ident = "ASUS P5NSLI",
+		.matches = {
+			DMI_MATCH(DMI_BOARD_VENDOR, "ASUSTeK Computer INC."),
+			DMI_MATCH(DMI_BOARD_NAME, "P5NSLI")
+		},
+	},
 	{}
 };
 
maintainer
#4 lore raw

From: Graham Gower <[email protected]>
Date: Mon, 08 Oct 2012 16:03:44 +1030

drivers/net/ethernet/marvell/skge.c line 4150

Quoted 4 lines
drivers/net/ethernet/marvell/skge.c +4 -0
+		.ident = "ASUS P5NSLI",
+		.matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "ASUSTeK Computer INC."),
+			DMI_MATCH(DMI_BOARD_NAME, "P5NSLI")

This is poorly formatted, and your commit message has newlines in very abrupt places as if you formatted it in your email client GUI rather than in a text editor.

#5 lore raw

PATCH v3 1/1 skge: Add DMA mask quirk for Marvell 88E8001 on ASUS P5NSLI motherboard.

Marvell 88E8001 on an ASUS P5NSLI motherboard is unable to send/receive packets on a system with >4gb ram unless a 32bit DMA mask is used.

This issue has been around for years and a fix was sent 3.5 years ago, but there was some debate as to whether it should instead be fixed as a PCI quirk.
http://www.spinics.net/lists/netdev/msg88670.html

However, 18 months later a similar workaround was introduced for another chipset exhibiting the same problem.
http://www.spinics.net/lists/netdev/msg142287.html

drivers/net/ethernet/marvell/skge.c +7 -0
@@ -4143,6 +4143,13 @@
 			DMI_MATCH(DMI_BOARD_NAME, "nForce"),
 		},
 	},
+	{
+		.ident = "ASUS P5NSLI",
+		.matches = {
+			DMI_MATCH(DMI_BOARD_VENDOR, "ASUSTeK Computer INC."),
+			DMI_MATCH(DMI_BOARD_NAME, "P5NSLI")
+		},
+	},
 	{}
 };
 
maintainer
#6 lore raw

From: Graham Gower <[email protected]>
Date: Mon, 08 Oct 2012 16:24:44 +1030

Quoted 3 lines

Marvell 88E8001 on an ASUS P5NSLI motherboard is unable to send/receive
packets on a system with >4gb ram unless a 32bit DMA mask is used.

This is still oddly formatted.

drivers/net/ethernet/marvell/skge.c line 4149

Quoted 4 lines
drivers/net/ethernet/marvell/skge.c +4 -0
+	{
+		.ident = "ASUS P5NSLI",
+		.matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "ASUSTeK Computer INC."),

And this is even worse than before.

#7 lore raw

Thunderbird must be screwing it. I hate mail clients. If I just pipe the message to 'mail',
with a correct 'From:' line is that ok, or do I have to figure something else out?

Quoted 15 lines · David Miller

From: Graham Gower <[email protected]>
Date: Mon, 08 Oct 2012 16:24:44 +1030

Quoted 3 lines

Marvell 88E8001 on an ASUS P5NSLI motherboard is unable to send/receive
packets on a system with >4gb ram unless a 32bit DMA mask is used.

This is still oddly formatted.

drivers/net/ethernet/marvell/skge.c line 4149

Quoted 4 lines
drivers/net/ethernet/marvell/skge.c +4 -0
+     {
+             .ident = "ASUS P5NSLI",
+             .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "ASUSTeK Computer INC."),

And this is even worse than before.

maintainer
#8 lore raw

From: Graham Gower <[email protected]>
Date: Mon, 8 Oct 2012 16:45:33 +1030

Quoted 4 lines

Thunderbird must be screwing it. I hate mail clients. If I just pipe the message to 'mail',
with a correct 'From:' line is that ok, or do I have to figure something else out?

Documentation/email-clients.txt

#9 lore raw
In reply to Graham Gower
Quoted 19 lines · On Sun, 07 Oct 2012 16:25:45 +1030 Graham Gower <[email protected]> wrote:

Marvell 88E8001 on an ASUS P5NSLI motherboard is unable to send/receive packets on a system with >4gb ram unless a 32bit DMA mask is used.

This issue has been around for years and a fix was sent 3.5 years ago, but there was some debate as to whether it should instead be fixed as a PCI quirk.
http://www.spinics.net/lists/netdev/msg88670.html

However, 18 months later a similar workaround was introduced for another chipset exhibiting the same problem.
http://www.spinics.net/lists/netdev/msg142287.html

skge.c renamed from skge.c.bak +0 -0
@@ -4143,6 +4143,13 @@
  			DMI_MATCH(DMI_BOARD_NAME, "nForce"),
  		},
  	},

skge.c line 4155

Quoted 10 lines
skge.c renamed from skge.c.bak +7 -0
+	{
+		.ident = "ASUS P5NSLI",
+		.matches = {
+			DMI_MATCH(DMI_BOARD_VENDOR, "ASUSTeK Computer INC."),
+			DMI_MATCH(DMI_BOARD_NAME, "P5NSLI")
+		},
+	},
  	{}
  };
 

This fix is fine, but like Jan said it needs to be based at the right place in the filesystem tree for inclusion.

I wonder if it would be a good idea to add a way to automatically check for this quirk using the debug registers on the chip which allow peeking. Using the test registers B3_RAM_DATA_LO/B3_RAM_DATA_HI.

The problem is that might introduce worse problems if it causes DMA access to non-existent memory and trying to recover from the fault.