dev builds
themes manual
device status forums
mailing lists
IRC bugs
dev guide

Rockbox mail archive

Subject: Re: Assembly optimization taken out (was Re: File system corruption)

Re: Assembly optimization taken out (was Re: File system corruption)

From: Linus Nielsen Feltzing <>
Date: Mon, 16 Feb 2004 13:07:44 +0100

[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

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).

Received on 2004-02-16

Page template was last modified "Tue Sep 7 00:00:02 2021" The Rockbox Crew -- Privacy Policy