Re: Lenovo X60 em workaround

2007-04-17 Thread Henrik Brix Andersen
Hi Jack,

On Sat, Jan 20, 2007 at 02:35:17PM -0800, Jack Vogel wrote:
  saying its known to be a problem doesnt mean its cause is known :)
  They discovered that setting this eliminated the problem, but we
  immediately pointed out that this is, as you pointed out, a Bad
  Thing on other hardware, so the investigation continues, there is
  always a communication lag on these kind of things, so I dont know
  if it has been resolved yet or not.

I can confirm this patch solves the latency problem with em(4) on my
IBM/Lenovo ThinkPad X60s.

Any news about a proper solution to this issue?

Regards,
Brix
-- 
Henrik Brix Andersen [EMAIL PROTECTED]


pgpycVejfgBuZ.pgp
Description: PGP signature


Re: Lenovo X60 em workaround

2007-04-17 Thread Henrik Brix Andersen
Hi,

On Mon, Jan 22, 2007 at 10:30:48AM -0800, Jack Vogel wrote:
  Acknowledge... I can do better than that, I have a fix for this problem, and
  its not temporary. Here is the code change (not a patch, I'm very busy),
  its in hardware_init, should be obvious how to patch:
 
/* Make sure we have a good EEPROM before we read from it */
 if (e1000_validate_nvm_checksum(adapter-hw)  0) {
 /*
 ** Some PCI-E parts fail the first check due to
 ** the link being in sleep state, call it again,
 ** if it fails a second time its a real issue.
 */
 if (e1000_validate_nvm_checksum(adapter-hw)  0) {
 device_printf(dev,
 The EEPROM Checksum Is Not Valid\n);
 return (EIO);
 }
 }
 
  This is already checked into my code base at Intel, I've just been too
  busy to do anything with it, be my guest if you wish to check it in after
  testing...

I can confirm that the above patch fixes the frequent initialization
problems with em(4) on my IBM/Lenovo ThinkPad X60s. Without the patch,
I often see the following on boot when there is no link on the em(4)
interface:

Apr 17 22:05:12 lothlorien kernel: em0: The EEPROM Checksum Is Not Valid
Apr 17 22:05:12 lothlorien kernel: em0: Unable to initialize the hardware

With the patch, I can not reproduce the invalid checksum errors - the
second call to e1000_validate_nvm_checksum() succeeds.

Any chance of this patch hitting CURRENT anytime soon? :)

Regards,
Brix
-- 
Henrik Brix Andersen [EMAIL PROTECTED]


pgp4LeHzR3WOj.pgp
Description: PGP signature


Re: Lenovo X60 em workaround

2007-04-17 Thread Jack Vogel

On 4/17/07, Henrik Brix Andersen [EMAIL PROTECTED] wrote:

Hi,

On Mon, Jan 22, 2007 at 10:30:48AM -0800, Jack Vogel wrote:
  Acknowledge... I can do better than that, I have a fix for this problem, and
  its not temporary. Here is the code change (not a patch, I'm very busy),
  its in hardware_init, should be obvious how to patch:

/* Make sure we have a good EEPROM before we read from it */
 if (e1000_validate_nvm_checksum(adapter-hw)  0) {
 /*
 ** Some PCI-E parts fail the first check due to
 ** the link being in sleep state, call it again,
 ** if it fails a second time its a real issue.
 */
 if (e1000_validate_nvm_checksum(adapter-hw)  0) {
 device_printf(dev,
 The EEPROM Checksum Is Not Valid\n);
 return (EIO);
 }
 }

  This is already checked into my code base at Intel, I've just been too
  busy to do anything with it, be my guest if you wish to check it in after
  testing...

I can confirm that the above patch fixes the frequent initialization
problems with em(4) on my IBM/Lenovo ThinkPad X60s. Without the patch,
I often see the following on boot when there is no link on the em(4)
interface:

Apr 17 22:05:12 lothlorien kernel: em0: The EEPROM Checksum Is Not Valid
Apr 17 22:05:12 lothlorien kernel: em0: Unable to initialize the hardware

With the patch, I can not reproduce the invalid checksum errors - the
second call to e1000_validate_nvm_checksum() succeeds.

Any chance of this patch hitting CURRENT anytime soon? :)


Yes, the reason I have been delaying is that I need to merge the
latest driver I've released from Intel into CURRENT, and this is going
to be a sizeable task, we have a new shared code base that is more
modular than before, it means each family of NIC now gets a seperate
file and functions, with function pointers that are set up at runtime.

All new drivers, Windows, Linux, and FreeBSD are using this code,
its going to be a bit of work to make sure that CURRENT loses no
fixes in this merge, I also had another project internally that needed
my cycles, but starting tomorrow I will begin the task, I would hope
to get something checked in by the weekend.

Anyone that wishes to see the new driver structure can download
it now from the Intel site, downloadfinder.intel.com, its driver version
6.3.9.

Cheers,

Jack
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: Lenovo X60 em workaround

2007-03-15 Thread Rong-en Fan

On 1/23/07, Jack Vogel [EMAIL PROTECTED] wrote:


Hey Gleb,

Acknowledge... I can do better than that, I have a fix for this problem, and
its not temporary. Here is the code change (not a patch, I'm very busy),
its in hardware_init, should be obvious how to patch:

   /* Make sure we have a good EEPROM before we read from it */
if (e1000_validate_nvm_checksum(adapter-hw)  0) {
/*
** Some PCI-E parts fail the first check due to
** the link being in sleep state, call it again,
** if it fails a second time its a real issue.
*/
if (e1000_validate_nvm_checksum(adapter-hw)  0) {
device_printf(dev,
The EEPROM Checksum Is Not Valid\n);
return (EIO);
}
}

This is already checked into my code base at Intel, I've just been too
busy to do anything with it, be my guest if you wish to check it in after
testing...


I accidentally found this :

http://www-307.ibm.com/pc/support/site.wss/document.do?sitestyle=lenovolndocid=MIGR-67166

which patches the eeprom. And it solves by problem.

Regards,
Rong-En Fan
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: Lenovo X60 em workaround

2007-01-24 Thread Gavin Atkinson
On Mon, 2007-01-22 at 10:30 -0800, Jack Vogel wrote:
 On 1/22/07, Gleb Smirnoff [EMAIL PROTECTED] wrote:
Jack,
 
  On Sat, Jan 20, 2007 at 02:35:17PM -0800, Jack Vogel wrote:
  J  Since this was just seen, and the patch below validated as working I
  J wanted
  J  to send general email to capture this:
  J 
  J  The Lenovo X60 can have issues with long ping times, this is a KNOWN
  J  hardware problem, and Intel is working with IBM/Lenovo, a final 'fix' 
  has
  J  not been decided on yet. Nevertheless, the patch below will work, but
  J  I do not want to check it in as its still temporary.
  J 
  J  Address questions to me,
  J 
  J Okay, I have a question. Could you elaborate on just what the problem 
  is?
  J (I mean, since it's KNOWN and all...) I'm just having a hard time 
  figuring
  J out what problem could possibly be fixed by setting the RX interrupt
  J delay timer to a non-zero value (especially since elsewhere in the em(4)
  J source it says that doing so is a Bad Thing (tm)).
  J
  J saying its known to be a problem doesnt mean its cause is known :)
  J They discovered that setting this eliminated the problem, but we
  J immediately pointed out that this is, as you pointed out, a Bad
  J Thing on other hardware, so the investigation continues, there is
  J always a communication lag on these kind of things, so I dont know
  J if it has been resolved yet or not.
  J
  J I just dont think this patch will become the final way to solve this,
  J but we shall see :)
 
  Good to know that there is progress on this. Thanks! I will try the patch
  on my Lenovo T60 notebook, where the problem is also present. AFAIK, it
  is present on any Lenovo notebook with 82573 NIC.
 
  Can you please acknowledge that another bug with Lenovo + em(4) is known? I
  mean the problem, that em(4) isn't initialized properly on kernel boot, if
  the link is down. I have already reported this to you, and you said that
  I probably have bad hardware. Since that time, I've found several similar
  reports about Lenovo notebooks and em(4) driver in FreeBSD.
 
 Hey Gleb,
 
 Acknowledge... I can do better than that, I have a fix for this problem, and
 its not temporary. Here is the code change (not a patch, I'm very busy),
 its in hardware_init, should be obvious how to patch:
 
/* Make sure we have a good EEPROM before we read from it */
 if (e1000_validate_nvm_checksum(adapter-hw)  0) {
 /*
 ** Some PCI-E parts fail the first check due to
 ** the link being in sleep state, call it again,
 ** if it fails a second time its a real issue.
 */
 if (e1000_validate_nvm_checksum(adapter-hw)  0) {
 device_printf(dev,
 The EEPROM Checksum Is Not Valid\n);
 return (EIO);
 }
 }
 
 This is already checked into my code base at Intel, I've just been too
 busy to do anything with it, be my guest if you wish to check it in after
 testing...

Just to add another datapoint - and for the archives - this also appears
to fix an issue with the Toshiba Tecra M5L.  The EEPROM Checksum Is Not
Valid message would appear on boot if there was no link on the
interface, although the interface would appear to work fine from then
on.  With this patch, the message no longer appears.

I also have problems with connections to networks (only seen when
connected to 10 meg half duplex hubs) with long delays on some packets
(which I'm assuming is the issue that started this thread) - I haven't
been able to verify yet that either patch fixes that, though.

Gavin
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: Lenovo X60 em workaround

2007-01-24 Thread Jack Vogel

On 1/24/07, Gavin Atkinson [EMAIL PROTECTED] wrote:

On Mon, 2007-01-22 at 10:30 -0800, Jack Vogel wrote:
 On 1/22/07, Gleb Smirnoff [EMAIL PROTECTED] wrote:
Jack,
 
  On Sat, Jan 20, 2007 at 02:35:17PM -0800, Jack Vogel wrote:
  J  Since this was just seen, and the patch below validated as working I
  J wanted
  J  to send general email to capture this:
  J 
  J  The Lenovo X60 can have issues with long ping times, this is a KNOWN
  J  hardware problem, and Intel is working with IBM/Lenovo, a final 'fix' 
has
  J  not been decided on yet. Nevertheless, the patch below will work, but
  J  I do not want to check it in as its still temporary.
  J 
  J  Address questions to me,
  J 
  J Okay, I have a question. Could you elaborate on just what the problem 
is?
  J (I mean, since it's KNOWN and all...) I'm just having a hard time 
figuring
  J out what problem could possibly be fixed by setting the RX interrupt
  J delay timer to a non-zero value (especially since elsewhere in the em(4)
  J source it says that doing so is a Bad Thing (tm)).
  J
  J saying its known to be a problem doesnt mean its cause is known :)
  J They discovered that setting this eliminated the problem, but we
  J immediately pointed out that this is, as you pointed out, a Bad
  J Thing on other hardware, so the investigation continues, there is
  J always a communication lag on these kind of things, so I dont know
  J if it has been resolved yet or not.
  J
  J I just dont think this patch will become the final way to solve this,
  J but we shall see :)
 
  Good to know that there is progress on this. Thanks! I will try the patch
  on my Lenovo T60 notebook, where the problem is also present. AFAIK, it
  is present on any Lenovo notebook with 82573 NIC.
 
  Can you please acknowledge that another bug with Lenovo + em(4) is known? I
  mean the problem, that em(4) isn't initialized properly on kernel boot, if
  the link is down. I have already reported this to you, and you said that
  I probably have bad hardware. Since that time, I've found several similar
  reports about Lenovo notebooks and em(4) driver in FreeBSD.

 Hey Gleb,

 Acknowledge... I can do better than that, I have a fix for this problem, and
 its not temporary. Here is the code change (not a patch, I'm very busy),
 its in hardware_init, should be obvious how to patch:

/* Make sure we have a good EEPROM before we read from it */
 if (e1000_validate_nvm_checksum(adapter-hw)  0) {
 /*
 ** Some PCI-E parts fail the first check due to
 ** the link being in sleep state, call it again,
 ** if it fails a second time its a real issue.
 */
 if (e1000_validate_nvm_checksum(adapter-hw)  0) {
 device_printf(dev,
 The EEPROM Checksum Is Not Valid\n);
 return (EIO);
 }
 }

 This is already checked into my code base at Intel, I've just been too
 busy to do anything with it, be my guest if you wish to check it in after
 testing...

Just to add another datapoint - and for the archives - this also appears
to fix an issue with the Toshiba Tecra M5L.  The EEPROM Checksum Is Not
Valid message would appear on boot if there was no link on the
interface, although the interface would appear to work fine from then
on.  With this patch, the message no longer appears.

I also have problems with connections to networks (only seen when
connected to 10 meg half duplex hubs) with long delays on some packets
(which I'm assuming is the issue that started this thread) - I haven't
been able to verify yet that either patch fixes that, though.


Nice to know its fixing more than expected.

Let me know about the last issue when you verify it.

Crises have me consumed at work right now, will try to get time to
commit by this weekend.

Jack
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: Lenovo X60 em workaround

2007-01-23 Thread Louis Kowolowski
On Mon, Jan 22, 2007 at 10:34:48AM -0800, Jack Vogel wrote:
 On 1/22/07, Jack Vogel [EMAIL PROTECTED] wrote:
 On 1/22/07, Gleb Smirnoff [EMAIL PROTECTED] wrote:
Jack,
 
  On Sat, Jan 20, 2007 at 02:35:17PM -0800, Jack Vogel wrote:
  J  Since this was just seen, and the patch below validated as working 
 I
  J wanted
  J  to send general email to capture this:
  J 
  J  The Lenovo X60 can have issues with long ping times, this is a 
 KNOWN
  J  hardware problem, and Intel is working with IBM/Lenovo, a final 
 'fix' has
  J  not been decided on yet. Nevertheless, the patch below will work, 
 but
  J  I do not want to check it in as its still temporary.
  J 
  J  Address questions to me,
  J 
  J Okay, I have a question. Could you elaborate on just what the 
 problem is?
  J (I mean, since it's KNOWN and all...) I'm just having a hard time 
 figuring
  J out what problem could possibly be fixed by setting the RX interrupt
  J delay timer to a non-zero value (especially since elsewhere in the 
 em(4)
  J source it says that doing so is a Bad Thing (tm)).
  J
  J saying its known to be a problem doesnt mean its cause is known :)
  J They discovered that setting this eliminated the problem, but we
  J immediately pointed out that this is, as you pointed out, a Bad
  J Thing on other hardware, so the investigation continues, there is
  J always a communication lag on these kind of things, so I dont know
  J if it has been resolved yet or not.
  J
  J I just dont think this patch will become the final way to solve this,
  J but we shall see :)
 
  Good to know that there is progress on this. Thanks! I will try the patch
  on my Lenovo T60 notebook, where the problem is also present. AFAIK, it
  is present on any Lenovo notebook with 82573 NIC.
 
  Can you please acknowledge that another bug with Lenovo + em(4) is 
 known? I
  mean the problem, that em(4) isn't initialized properly on kernel boot, 
 if
  the link is down. I have already reported this to you, and you said that
  I probably have bad hardware. Since that time, I've found several similar
  reports about Lenovo notebooks and em(4) driver in FreeBSD.
 
 Hey Gleb,
 
 Acknowledge... I can do better than that, I have a fix for this problem, 
 and
 its not temporary. Here is the code change (not a patch, I'm very busy),
 its in hardware_init, should be obvious how to patch:
 
/* Make sure we have a good EEPROM before we read from it */
 if (e1000_validate_nvm_checksum(adapter-hw)  0) {
 /*
 ** Some PCI-E parts fail the first check due to
 ** the link being in sleep state, call it again,
 ** if it fails a second time its a real issue.
 */
 if (e1000_validate_nvm_checksum(adapter-hw)  0) {
 device_printf(dev,
 The EEPROM Checksum Is Not Valid\n);
 return (EIO);
 }
 }
 
 This is already checked into my code base at Intel, I've just been too
 busy to do anything with it, be my guest if you wish to check it in after
 testing...
 
 Cheers,
 
 Jack
 
 
 LOL, opps, I just realized, this code reflects the new shared code
 that I am in the process of releasing, in order for this to work in
 6.2 change 'e1000_validate_nvm_checksum' to
 'em_validate_eeprom_checksum' and all should be clear :)
 
This worked for me.

(hoping it will get committed to -STABLE soonish)
-- 
Louis KowolowskiKE7BAX  [EMAIL PROTECTED]
Cryptomonkeys:  http://www.cryptomonkeys.com/~louisk

Warning:  Do not point laser at remaining eye!


pgpZryTGMMOyC.pgp
Description: PGP signature


Re: Lenovo X60 em workaround

2007-01-23 Thread Jack Vogel

On 1/23/07, Louis Kowolowski [EMAIL PROTECTED] wrote:

On Mon, Jan 22, 2007 at 10:34:48AM -0800, Jack Vogel wrote:
 On 1/22/07, Jack Vogel [EMAIL PROTECTED] wrote:
 On 1/22/07, Gleb Smirnoff [EMAIL PROTECTED] wrote:
Jack,
 
  On Sat, Jan 20, 2007 at 02:35:17PM -0800, Jack Vogel wrote:
  J  Since this was just seen, and the patch below validated as working
 I
  J wanted
  J  to send general email to capture this:
  J 
  J  The Lenovo X60 can have issues with long ping times, this is a
 KNOWN
  J  hardware problem, and Intel is working with IBM/Lenovo, a final
 'fix' has
  J  not been decided on yet. Nevertheless, the patch below will work,
 but
  J  I do not want to check it in as its still temporary.
  J 
  J  Address questions to me,
  J 
  J Okay, I have a question. Could you elaborate on just what the
 problem is?
  J (I mean, since it's KNOWN and all...) I'm just having a hard time
 figuring
  J out what problem could possibly be fixed by setting the RX interrupt
  J delay timer to a non-zero value (especially since elsewhere in the
 em(4)
  J source it says that doing so is a Bad Thing (tm)).
  J
  J saying its known to be a problem doesnt mean its cause is known :)
  J They discovered that setting this eliminated the problem, but we
  J immediately pointed out that this is, as you pointed out, a Bad
  J Thing on other hardware, so the investigation continues, there is
  J always a communication lag on these kind of things, so I dont know
  J if it has been resolved yet or not.
  J
  J I just dont think this patch will become the final way to solve this,
  J but we shall see :)
 
  Good to know that there is progress on this. Thanks! I will try the patch
  on my Lenovo T60 notebook, where the problem is also present. AFAIK, it
  is present on any Lenovo notebook with 82573 NIC.
 
  Can you please acknowledge that another bug with Lenovo + em(4) is
 known? I
  mean the problem, that em(4) isn't initialized properly on kernel boot,
 if
  the link is down. I have already reported this to you, and you said that
  I probably have bad hardware. Since that time, I've found several similar
  reports about Lenovo notebooks and em(4) driver in FreeBSD.
 
 Hey Gleb,
 
 Acknowledge... I can do better than that, I have a fix for this problem,
 and
 its not temporary. Here is the code change (not a patch, I'm very busy),
 its in hardware_init, should be obvious how to patch:
 
/* Make sure we have a good EEPROM before we read from it */
 if (e1000_validate_nvm_checksum(adapter-hw)  0) {
 /*
 ** Some PCI-E parts fail the first check due to
 ** the link being in sleep state, call it again,
 ** if it fails a second time its a real issue.
 */
 if (e1000_validate_nvm_checksum(adapter-hw)  0) {
 device_printf(dev,
 The EEPROM Checksum Is Not Valid\n);
 return (EIO);
 }
 }
 
 This is already checked into my code base at Intel, I've just been too
 busy to do anything with it, be my guest if you wish to check it in after
 testing...
 
 Cheers,
 
 Jack
 

 LOL, opps, I just realized, this code reflects the new shared code
 that I am in the process of releasing, in order for this to work in
 6.2 change 'e1000_validate_nvm_checksum' to
 'em_validate_eeprom_checksum' and all should be clear :)

This worked for me.

(hoping it will get committed to -STABLE soonish)


OK, hint taken, I'll try and get that committed asap.

Jack
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: Lenovo X60 em workaround

2007-01-22 Thread Gleb Smirnoff
  Jack,

On Sat, Jan 20, 2007 at 02:35:17PM -0800, Jack Vogel wrote:
J  Since this was just seen, and the patch below validated as working I 
J wanted
J  to send general email to capture this:
J 
J  The Lenovo X60 can have issues with long ping times, this is a KNOWN
J  hardware problem, and Intel is working with IBM/Lenovo, a final 'fix' has
J  not been decided on yet. Nevertheless, the patch below will work, but
J  I do not want to check it in as its still temporary.
J 
J  Address questions to me,
J 
J Okay, I have a question. Could you elaborate on just what the problem is?
J (I mean, since it's KNOWN and all...) I'm just having a hard time figuring
J out what problem could possibly be fixed by setting the RX interrupt
J delay timer to a non-zero value (especially since elsewhere in the em(4)
J source it says that doing so is a Bad Thing (tm)).
J 
J saying its known to be a problem doesnt mean its cause is known :)
J They discovered that setting this eliminated the problem, but we
J immediately pointed out that this is, as you pointed out, a Bad
J Thing on other hardware, so the investigation continues, there is
J always a communication lag on these kind of things, so I dont know
J if it has been resolved yet or not.
J 
J I just dont think this patch will become the final way to solve this,
J but we shall see :)

Good to know that there is progress on this. Thanks! I will try the patch
on my Lenovo T60 notebook, where the problem is also present. AFAIK, it
is present on any Lenovo notebook with 82573 NIC.

Can you please acknowledge that another bug with Lenovo + em(4) is known? I
mean the problem, that em(4) isn't initialized properly on kernel boot, if
the link is down. I have already reported this to you, and you said that
I probably have bad hardware. Since that time, I've found several similar
reports about Lenovo notebooks and em(4) driver in FreeBSD.

-- 
Totus tuus, Glebius.
GLEBIUS-RIPN GLEB-RIPE
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: Lenovo X60 em workaround

2007-01-22 Thread Jack Vogel

On 1/22/07, Gleb Smirnoff [EMAIL PROTECTED] wrote:

  Jack,

On Sat, Jan 20, 2007 at 02:35:17PM -0800, Jack Vogel wrote:
J  Since this was just seen, and the patch below validated as working I
J wanted
J  to send general email to capture this:
J 
J  The Lenovo X60 can have issues with long ping times, this is a KNOWN
J  hardware problem, and Intel is working with IBM/Lenovo, a final 'fix' has
J  not been decided on yet. Nevertheless, the patch below will work, but
J  I do not want to check it in as its still temporary.
J 
J  Address questions to me,
J 
J Okay, I have a question. Could you elaborate on just what the problem is?
J (I mean, since it's KNOWN and all...) I'm just having a hard time figuring
J out what problem could possibly be fixed by setting the RX interrupt
J delay timer to a non-zero value (especially since elsewhere in the em(4)
J source it says that doing so is a Bad Thing (tm)).
J
J saying its known to be a problem doesnt mean its cause is known :)
J They discovered that setting this eliminated the problem, but we
J immediately pointed out that this is, as you pointed out, a Bad
J Thing on other hardware, so the investigation continues, there is
J always a communication lag on these kind of things, so I dont know
J if it has been resolved yet or not.
J
J I just dont think this patch will become the final way to solve this,
J but we shall see :)

Good to know that there is progress on this. Thanks! I will try the patch
on my Lenovo T60 notebook, where the problem is also present. AFAIK, it
is present on any Lenovo notebook with 82573 NIC.

Can you please acknowledge that another bug with Lenovo + em(4) is known? I
mean the problem, that em(4) isn't initialized properly on kernel boot, if
the link is down. I have already reported this to you, and you said that
I probably have bad hardware. Since that time, I've found several similar
reports about Lenovo notebooks and em(4) driver in FreeBSD.


Hey Gleb,

Acknowledge... I can do better than that, I have a fix for this problem, and
its not temporary. Here is the code change (not a patch, I'm very busy),
its in hardware_init, should be obvious how to patch:

  /* Make sure we have a good EEPROM before we read from it */
   if (e1000_validate_nvm_checksum(adapter-hw)  0) {
   /*
   ** Some PCI-E parts fail the first check due to
   ** the link being in sleep state, call it again,
   ** if it fails a second time its a real issue.
   */
   if (e1000_validate_nvm_checksum(adapter-hw)  0) {
   device_printf(dev,
   The EEPROM Checksum Is Not Valid\n);
   return (EIO);
   }
   }

This is already checked into my code base at Intel, I've just been too
busy to do anything with it, be my guest if you wish to check it in after
testing...

Cheers,

Jack
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: Lenovo X60 em workaround

2007-01-22 Thread Jack Vogel

On 1/22/07, Jack Vogel [EMAIL PROTECTED] wrote:

On 1/22/07, Gleb Smirnoff [EMAIL PROTECTED] wrote:
   Jack,

 On Sat, Jan 20, 2007 at 02:35:17PM -0800, Jack Vogel wrote:
 J  Since this was just seen, and the patch below validated as working I
 J wanted
 J  to send general email to capture this:
 J 
 J  The Lenovo X60 can have issues with long ping times, this is a KNOWN
 J  hardware problem, and Intel is working with IBM/Lenovo, a final 'fix' 
has
 J  not been decided on yet. Nevertheless, the patch below will work, but
 J  I do not want to check it in as its still temporary.
 J 
 J  Address questions to me,
 J 
 J Okay, I have a question. Could you elaborate on just what the problem is?
 J (I mean, since it's KNOWN and all...) I'm just having a hard time figuring
 J out what problem could possibly be fixed by setting the RX interrupt
 J delay timer to a non-zero value (especially since elsewhere in the em(4)
 J source it says that doing so is a Bad Thing (tm)).
 J
 J saying its known to be a problem doesnt mean its cause is known :)
 J They discovered that setting this eliminated the problem, but we
 J immediately pointed out that this is, as you pointed out, a Bad
 J Thing on other hardware, so the investigation continues, there is
 J always a communication lag on these kind of things, so I dont know
 J if it has been resolved yet or not.
 J
 J I just dont think this patch will become the final way to solve this,
 J but we shall see :)

 Good to know that there is progress on this. Thanks! I will try the patch
 on my Lenovo T60 notebook, where the problem is also present. AFAIK, it
 is present on any Lenovo notebook with 82573 NIC.

 Can you please acknowledge that another bug with Lenovo + em(4) is known? I
 mean the problem, that em(4) isn't initialized properly on kernel boot, if
 the link is down. I have already reported this to you, and you said that
 I probably have bad hardware. Since that time, I've found several similar
 reports about Lenovo notebooks and em(4) driver in FreeBSD.

Hey Gleb,

Acknowledge... I can do better than that, I have a fix for this problem, and
its not temporary. Here is the code change (not a patch, I'm very busy),
its in hardware_init, should be obvious how to patch:

   /* Make sure we have a good EEPROM before we read from it */
if (e1000_validate_nvm_checksum(adapter-hw)  0) {
/*
** Some PCI-E parts fail the first check due to
** the link being in sleep state, call it again,
** if it fails a second time its a real issue.
*/
if (e1000_validate_nvm_checksum(adapter-hw)  0) {
device_printf(dev,
The EEPROM Checksum Is Not Valid\n);
return (EIO);
}
}

This is already checked into my code base at Intel, I've just been too
busy to do anything with it, be my guest if you wish to check it in after
testing...

Cheers,

Jack



LOL, opps, I just realized, this code reflects the new shared code
that I am in the process of releasing, in order for this to work in
6.2 change 'e1000_validate_nvm_checksum' to
'em_validate_eeprom_checksum' and all should be clear :)

Jack
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: Lenovo X60 em workaround

2007-01-20 Thread Jack Vogel

On 1/19/07, Bill Paul [EMAIL PROTECTED] wrote:


 Since this was just seen, and the patch below validated as working I wanted
 to send general email to capture this:

 The Lenovo X60 can have issues with long ping times, this is a KNOWN
 hardware problem, and Intel is working with IBM/Lenovo, a final 'fix' has
 not been decided on yet. Nevertheless, the patch below will work, but
 I do not want to check it in as its still temporary.

 Address questions to me,

Okay, I have a question. Could you elaborate on just what the problem is?
(I mean, since it's KNOWN and all...) I'm just having a hard time figuring
out what problem could possibly be fixed by setting the RX interrupt
delay timer to a non-zero value (especially since elsewhere in the em(4)
source it says that doing so is a Bad Thing (tm)).


saying its known to be a problem doesnt mean its cause is known :)
They discovered that setting this eliminated the problem, but we
immediately pointed out that this is, as you pointed out, a Bad
Thing on other hardware, so the investigation continues, there is
always a communication lag on these kind of things, so I dont know
if it has been resolved yet or not.

I just dont think this patch will become the final way to solve this,
but we shall see :)

Cheers,

Jack
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: Lenovo X60 em workaround

2007-01-19 Thread Bill Paul

 Since this was just seen, and the patch below validated as working I wanted
 to send general email to capture this:
 
 The Lenovo X60 can have issues with long ping times, this is a KNOWN
 hardware problem, and Intel is working with IBM/Lenovo, a final 'fix' has
 not been decided on yet. Nevertheless, the patch below will work, but
 I do not want to check it in as its still temporary.

 Address questions to me,

Okay, I have a question. Could you elaborate on just what the problem is?
(I mean, since it's KNOWN and all...) I'm just having a hard time figuring
out what problem could possibly be fixed by setting the RX interrupt
delay timer to a non-zero value (especially since elsewhere in the em(4)
source it says that doing so is a Bad Thing (tm)).

-Bill

 Jack
 
 PS This is based on 6.2, but is needed for CURRENT as well.
 
 
 --- if_em.dist.cWed Jan 17 17:59:46 2007
 +++ if_em.c Wed Jan 17 18:03:13 2007
 @@ -3348,6 +3348,10 @@
 E1000_WRITE_REG(adapter-hw, RXCSUM, reg_rxcsum);
 }
 
 +   /* TEMPORARY WORKAROUND for X60 */
 +   if (adapter-hw.mac_type == em_82573)
 +   E1000_WRITE_REG(adapter-hw, RDTR, 32);
 +
 /* Enable Receives */
 E1000_WRITE_REG(adapter-hw, RCTL, reg_rctl);
 /*
 

___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to [EMAIL PROTECTED]


Lenovo X60 em workaround

2007-01-17 Thread Jack Vogel

Since this was just seen, and the patch below validated as working I wanted
to send general email to capture this:

The Lenovo X60 can have issues with long ping times, this is a KNOWN
hardware problem, and Intel is working with IBM/Lenovo, a final 'fix' has
not been decided on yet. Nevertheless, the patch below will work, but
I do not want to check it in as its still temporary.

Address questions to me,

Jack

PS This is based on 6.2, but is needed for CURRENT as well.


--- if_em.dist.cWed Jan 17 17:59:46 2007
+++ if_em.c Wed Jan 17 18:03:13 2007
@@ -3348,6 +3348,10 @@
   E1000_WRITE_REG(adapter-hw, RXCSUM, reg_rxcsum);
   }

+   /* TEMPORARY WORKAROUND for X60 */
+   if (adapter-hw.mac_type == em_82573)
+   E1000_WRITE_REG(adapter-hw, RDTR, 32);
+
   /* Enable Receives */
   E1000_WRITE_REG(adapter-hw, RCTL, reg_rctl);
   /*
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to [EMAIL PROTECTED]