Scott Long wrote:
Bruce Evans wrote:
On Wed, 13 Dec 2006, Bjoern A. Zeeb wrote:
On Tue, 12 Dec 2006, Scott Long wrote:
[..]
I'll try to run some tests with the third write disabled, but I
don't have much time left to devote to this particular project. If
others would be willing to test with the third write removed, I'd
appreciate it. It might be interesting to test with the second
write removed as
well (i.e. both writes in bge_reset). I'll post patches if anyone
wants
to test but can't grok what I'm saying here.
ok, I only tried with the two writes removed from bge_reset and it
started to work again. At least the machine no longer hangs on boot
and the first bge port works. Cannot easily test more atm.
I'm getting closer to testing with various numbers of writes together
with optionally waiting for the firmware to indicate sync by
complementing
the value. Maybe the problem is just that the firmware doesn't like
the value being set without syncing with the previous setting.
While editing, I noticed that the first write (in bge_sig_pre_reset())
is already avoided except in asf mode because "Some chips don't like
it". Someone named scottl may have already been bitten by this. He
added a tunable to kill the default of asf mode being enabled, since
leaving it enabled gave a complete system freeze for the same operation
that now freezes on the third write.
Bruce
Ah, you're right, I missed that silly little if statement in the
bge_sig_pre_reset function. So I think a reasonable guess here is that
the chip doesn't like back-to-back writes of the magic number, and that
it was only working for the ASF case because that case was forcing an
intervening write. The right solution would be to un-conditionalize
the write in bge_sig_pre_reset and remove both writes from bge_reset.
This would also match Linux.
Again, my ability to test is limited. I also no longer posses the
system that had the ASF problem. Any help here is appreciated.
Scott
I came up with a patch that I hoped would start solving this problem,
but then discovered that the ASF feature needs a good deal of work at
the same time to keep from getting broken. For now, the best solution
is probably to just remove the third register write. I'll talk with
Doug Ambrisko about the ASF stuff and try to get this sorted out over
the next few weeks.
Scott
_______________________________________________
cvs-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/cvs-all
To unsubscribe, send any mail to "[EMAIL PROTECTED]"