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: slow/delaying usb connection to archos/rockbox
From: Paul Suade (paul.suade_at_laposte.net)
Date: 2002-09-21


Just a precision : I'm totally okay with you when you talked about the FAT
caching of clusters which is done just after the jukebox plugging. No doubt
it is the major culprit.

----- Original Message -----
From: "Björn Stenberg" <bjorn_at_haxx.se>
To: <rockbox_at_cool.haxx.se>
Sent: Saturday, September 21, 2002 2:10 PM
Subject: Re: slow/delaying usb connection to archos/rockbox

> I'm not talking about the READ MULTIPLE SECTORS ata command. I'm talking
about the fat file system driver, which requests one sector, examines it,
requests another etc. The ATA multisector transfer feature is not relevant
to this.

Okay, the use of multisector was disturbing here since I never heard about
it else as an IDE feature. By the way, you use this name as a variable in
ata.c for this feature, which is much more disturbing. I will have a better
look upon linux FAT code, but I'm pretty sure there is no reason that FAT
code cannot read n sectors at once to have cluster.

So let us consider the term multisector for transfering several sectors at
once per call. I don't see why FAT code would read one sector per call to
get a cluster (ususally 8 sectors or above) instead of reading 8 sectors or
above per call : so we are okay to say the fat code uses multisector call to
read a cluster according to the definition you give to "multisector".

> Also USB disks don't involve ide-disk.c at all, they are all handled as
SCSI disks.
>
> > FAT drivers doesn't know about multisector feature or DMA feature
>
> No, but they do know how to read and write more than one sector at a time.
Otherwise normal file copying would be horribly slow too.

According to your definition, yes FAT driver must surely use multisector at
least for file copying. But nothing say that ISD200/300 really use the ATA
MULTIPLE SECTOR READ/WRITE to speedup much more.

> > Another important point : the ISD200 or ISD300 might not handle
multisector
> > transfers.
>
> Of course they do. Read the driver code or the data sheets.

Driver code ? you mean yours ? okay, if I remember well, ISD200 is just, to
be short, a USB packet <-> IDE taskfile/transfer (in & out ATA registers to
write or read) converter, so theorically ISD200/300 can execute any ATA
commands, including DMA operations. In reality, USB 1.1 or USB 2.2 cannot
use mode PIO or DMA which demand a higher byterate transfer than can USB
handle. So I'm not sure UDMA could be used. I'm not sure DMA can be used
too. For "ATA" multiple sector mode, I don't know if ISD has an internal
buffer to read or write a sector in harddisk. If so, having a multiple
sector of 16 sectors means we need a buffer of 16 sectors in ISD chipset.
Does this buffer exist ? maybe not and so "ATA" multiple sector mode might
not be used because ISD cannot would not handle them properly.

Supposedly ISD can use "ATA" multiple sector mode and handle it. We know it
is a SCSI driver which communicate with ISD, so we are not sure that sending
a multisector transfer to SCSI driver would be transformed in a ATA MULTIPLE
READ command embbeded in a USB packet sent to ISD. I would be gladful if you
can answer this question to me because I don't know the SCSI details.

Now I hope you undestand why I think it is not only a FAT problem for me.

Of course, according to your definition, ISD must needs be able to handle
"multisector" transfers.

> Please do at least a little bit of research before throwing out wild
speculations and accusing others of being wrong.

I was not stating you're wrong but incompletely right (half wrong) due to a
misunderstanding of a word.



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