Rockbox mail archive
Subject: Re: Red led dead - this is where it goes wrong!!!
From: Greg Haerr (greg_at_censoft.com)
> 1. Change the perform_soft_reset() to ata_hard_reset() at the top of
> 2. Reduce the timeout in wait_for_bsy() and wait_for_rdy() to 2 seconds.
Mike - great job on the debugging!
It seems there are two potential problems here - the first
being that a series of soft errors doesn't report anything different
to the upper level which continues trying with a different track,
without ever performing a hard reset, and the second being
why the ATA is stuck returning busy in the first place. Perhaps
we could log commands going to the controller? On other
systems, a small wait has been required after talking to
the controller for things to stabilize. It might be interesting
to see whether this fixes the overall problem. Could the
thread critical section have an issue?
Page was last modified "Jan 10 2012" The Rockbox Crew