cvs commit: src/sys/dev/bge if_bge.c
Scott Long
scottl at samsco.org
Wed Dec 13 21:38:30 PST 2006
Bruce Evans wrote:
> On Wed, 13 Dec 2006, Jung-uk Kim wrote:
>
>> On Wednesday 13 December 2006 03:51 pm, Scott Long wrote:
>>> scottl 2006-12-13 20:51:51 UTC
>>>
>>> FreeBSD src repository
>>>
>>> Modified files:
>>> sys/dev/bge if_bge.c
>>> Log:
>>> Remove a redundant write of the firmware reset magic number. It
>>> ...
>> I am still getting firmware handshake timeouts and/or watchdog
>> timeouts. Most importantly it panics or get witness warnings (lots
>> of 'memory modified after free'). Panic goes like this (while
>> kldunload if_bge with dhclient enabled):
>>
>> brgphy0: detached
>> miibus0: detached
>> bge0: firmware handshake timed out, found 0x4b657654
>> bge0: firmware handshake timed out, found 0x4b657654
>
> I have seen these for debugging the redundant-write problem (not for
> detach but for bringing up the interface for the first time). My 5701
> just hangs if there is any redundant write (2 where the first one was
> in bge_reset(), or 2 separate, or 2 where the second one was). My
> 5705 survives two separate sets of 256 repeated writes; however, then
> the firmware handshake times out; however2, everything works normally
> after ignoring the the timeout except for printing the message. I
> just noticed that this error wasn't ignored until recently -- I noticed
> the return statement being removed but not that it was in a critical
> area.
>
> I also tested waiting for the handshake immediately after the write
> in some cases (only for 2 separate writes on the 5701). This didn't
> help. I didn't check exactly where the hang occurred or if some of
> the handshakes completed successfully.
>
> Throughout this, bge_reset()s done before reaching single mode all
> completed successfully. There were 2 per boot. The first 2 seem
> to do just enough initialization to make the link flap.
>
> I just noticed that the code is much clearer and less surprising in old
> versions. In rev.1.84, there is only 1 write and it is immediately
> followed by the handshake loop. Now there is a lot of code in between.
>
> Bruce
I made firmware handshake errors be ignored since Linux also made a
point to ignore them. However, I think that they are just a secondary
problem now.
Just for my reference, what is special to you about rev 1.84?
Scott
More information about the cvs-src
mailing list