Le 01/07/2010 22:49, Kenneth R Westerback a icrit : > On Thu, Jul 01, 2010 at 09:45:48PM +0200, Fr?d?ric URBAN wrote: > >> My bad !!! It was the bug #6408 - Initialization of "Intel PRO/1000ET >> (82576)" failed sometimes. >> >> And this mail address is prefered for reply ! >> >> Sad FWD is taboo :( >> >> Fred... >> >> -------- Message original -------- >> Sujet: About the bug #6409 -got some informations >> Date : Thu, 01 Jul 2010 21:40:14 +0200 >> De : Fridiric URBAN<frederic.ur...@gmail.com> >> Pour : b...@openbsd.org >> >> >> >> Hello, >> >> I've some informations about the bug #6409, I fixed a part of it and i >> think what i did could be helpfull for thoses who'll try to fix it. Who >> can I contact ? Where can I put those informations ? >> >> Fred... >> >> > Send your diff to tech@openbsd.org > > .... Ken > I've no diff to send, i made to much change in the code to get enough debug verbosity but i've the analysis of the problem from the post i made on misc:
Form misc ML: -------- Message original -------- Sujet: Re: Intel PRO/1000 QP on Dell R610 and OpenBSD 4.7 Date : Thu, 01 Jul 2010 22:18:42 +0200 De : Fridiric URBAN <frederic.ur...@ircad.u-strasbg.fr> Pour : m...@openbsd.org > Le 29/06/2010 20:46, Fridiric URBAN a icrit : > ... Useless blabla from meh... > > PS: I'll have fiber card soon, we'll see they have the same problem. > > Fred > Ok it's confirmed, the PHY used on the card has a strange behavior. Each time that the function em_read_phy_reg() is used there is a risk of failure, The PHY is more often busy than useall. I added some debug information in the code which show the return code of em_read_phy_reg() and sometimes E1000_ERR_PHY is returned. This function is called very very often (which is obvious). When it happends the interface won't work. I partially fixed the hardware initialization by adding a timed retry when the PHY is busy (in em_setup_copper_link()), but there is still lots of occurrence of em_read_phy_reg() that need to be modified (ie: I already had error in em_copper_link_autoneg()) and it's the first time I put my finger inside a device driver :E So maybe there is a better way to fix it ! We need a kernel guru !!! :D Fred Btw, I took the idea of the timed retry of em_read_phy_reg() from FreeBSD igb driver, in their equivalent of em_setup_copper_link(), they use it.