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,
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
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,