Rockbox.org home
release
dev builds
extras
themes manual
wiki
device status forums
mailing lists
IRC bugs
patches
dev guide



Rockbox mail archive

Subject: Re: Assembly optimization taken out (was Re: File system corruption)
From: Linus Nielsen Feltzing (linus_at_haxx.se)
Date: 2004-02-16


[IDC]Dragon wrote:
> The tests have shown that the assembler code doesn't reliably work on his
> disk, even with maximum waitstates. As I said before, this is most strange. It
> should be impossible to read the data "too fast". But reality has shown
> different for some users.

I have double-checked the memory configuration for the ATA CS, and I
can't find anything wrong. The speed should not matter at all, and there
shouldn't be any need for extra wait states, since the CS6 is supposed
to wait for the WAIT signal, which is connected to IORDY on the ATA
interface.

However, it seems like we have to explicitly select the faster PIO mode
(3 or 4) with the SET FEATURES command. The ATA spec says that devices
supporting PIO mode 3 and 4 shall power up in mode 0, 1 or 2. That *may*
mean that the IORDY pin isn't used, since the IORDY isn't mandatory in
those modes.

I have added some extra info in the Disk Debug screen, so we can see
which PIO modes the disk supports, and also the required timings. Based
on this info, we should be able to dynamically select which
optimizations to use. If we are lucky, all it takes is to set mode 4
with the SET FEATURES command and always use the aggressive
optimizations (provided that the HD support mode 4).

Linus
_______________________________________________
http://cool.haxx.se/mailman/listinfo/rockbox



Page was last modified "Jan 10 2012" The Rockbox Crew
aaa