2005-03-02 22:09:33

by Philippe Troin

[permalink] [raw]
Subject: 2.4.29 sk98lin patch for Asus K8W SE Deluxe

The EEPROM (or whatever that is) on Asus K8V SE Deluxe motherboards
contains buggy firmware. This buggy firmware has one flipped bit, and
causes the sk98lin driver refuses to work correctly. Please look at
this thread:

http://www.ussg.iu.edu/hypermail/linux/kernel/0404.0/1439.html

It contains a patch for 2.6 that fixs the problem. Enclosed is a copy
of this patch for 2.4.29. Please consider applying.

Phil.

Signed-Off-By: Philippe Troin <[email protected]>

diff -ruN linux-2.4.29.orig/drivers/net/sk98lin/skvpd.c linux-2.4.29/drivers/net/sk98lin/skvpd.c
--- linux-2.4.29.orig/drivers/net/sk98lin/skvpd.c Wed Apr 14 06:05:30 2004
+++ linux-2.4.29/drivers/net/sk98lin/skvpd.c Mon Feb 21 02:03:00 2005
@@ -466,6 +466,15 @@

pAC->vpd.vpd_size = vpd_size;

+ /* Asus K8V Se Deluxe bugfix. Correct VPD content */
+ /* MBo April 2004 */
+ if( ((unsigned char)pAC->vpd.vpd_buf[0x3f] == 0x38) &&
+ ((unsigned char)pAC->vpd.vpd_buf[0x40] == 0x3c) &&
+ ((unsigned char)pAC->vpd.vpd_buf[0x41] == 0x45) ) {
+ printk("sk98lin : humm... Asus mainboard with buggy VPD ? correcting data.\n");
+ (unsigned char)pAC->vpd.vpd_buf[0x40] = 0x38;
+ }
+
/* find the end tag of the RO area */
if (!(r = vpd_find_para(pAC, VPD_RV, &rp))) {
SK_DBG_MSG(pAC, SK_DBGMOD_VPD, SK_DBGCAT_ERR | SK_DBGCAT_FATAL,


2005-03-03 07:52:52

by Willy Tarreau

[permalink] [raw]
Subject: Re: 2.4.29 sk98lin patch for Asus K8W SE Deluxe

On Wed, Mar 02, 2005 at 02:00:30PM -0800, Philippe Troin wrote:

> + /* Asus K8V Se Deluxe bugfix. Correct VPD content */
> + /* MBo April 2004 */
> + if( ((unsigned char)pAC->vpd.vpd_buf[0x3f] == 0x38) &&
> + ((unsigned char)pAC->vpd.vpd_buf[0x40] == 0x3c) &&
> + ((unsigned char)pAC->vpd.vpd_buf[0x41] == 0x45) ) {
> + printk("sk98lin : humm... Asus mainboard with buggy VPD ? correcting data.\n");
^^^^^
Please, could you put some KERN_XXX here to avoid a buggy message level ?

Willy

2005-03-04 01:13:39

by Philippe Troin

[permalink] [raw]
Subject: Re: 2.4.29 sk98lin patch for Asus K8W SE Deluxe

Willy Tarreau <[email protected]> writes:

> On Wed, Mar 02, 2005 at 02:00:30PM -0800, Philippe Troin wrote:
>
> > + /* Asus K8V Se Deluxe bugfix. Correct VPD content */
> > + /* MBo April 2004 */
> > + if( ((unsigned char)pAC->vpd.vpd_buf[0x3f] == 0x38) &&
> > + ((unsigned char)pAC->vpd.vpd_buf[0x40] == 0x3c) &&
> > + ((unsigned char)pAC->vpd.vpd_buf[0x41] == 0x45) ) {
> > + printk("sk98lin : humm... Asus mainboard with buggy VPD ? correcting data.\n");
> ^^^^^
> Please, could you put some KERN_XXX here to avoid a buggy message level ?

Yes, of course.

Phil.

Signed-Off-By: Philippe Troin <[email protected]>

diff -ruN linux-2.4.29.orig/drivers/net/sk98lin/skvpd.c linux-2.4.29/drivers/net/sk98lin/skvpd.c
--- linux-2.4.29.orig/drivers/net/sk98lin/skvpd.c Wed Apr 14 06:05:30 2004
+++ linux-2.4.29/drivers/net/sk98lin/skvpd.c Mon Feb 21 02:03:00 2005
@@ -466,6 +466,15 @@

pAC->vpd.vpd_size = vpd_size;

+ /* Asus K8V Se Deluxe bugfix. Correct VPD content */
+ /* MBo April 2004 */
+ if( ((unsigned char)pAC->vpd.vpd_buf[0x3f] == 0x38) &&
+ ((unsigned char)pAC->vpd.vpd_buf[0x40] == 0x3c) &&
+ ((unsigned char)pAC->vpd.vpd_buf[0x41] == 0x45) ) {
+ printk(KERN_INFO "sk98lin : humm... Asus mainboard with buggy VPD ? correcting data.\n");
+ (unsigned char)pAC->vpd.vpd_buf[0x40] = 0x38;
+ }
+
/* find the end tag of the RO area */
if (!(r = vpd_find_para(pAC, VPD_RV, &rp))) {
SK_DBG_MSG(pAC, SK_DBGMOD_VPD, SK_DBGCAT_ERR | SK_DBGCAT_FATAL,