>From what I've seen on my TS-7400 (2.4.26-ts11)
The ts7xxxx.subr has "insmod -q -f /sdcard.o dmaenable=1" implying
that there is a dma option. The sdcard_sdhc.o driver I tried
indicated about 1.5% speed increase with the =1 option. This is timed
by "time dd if=/mnt/root/bigfile.bin of=/dev/null" The first run is
prior to caching so is the only one that means anything.
It is hard to judge DMA advantage with my test since DMA use primarily
reduces processor load, there is no other load in my test.
The sdcard.c source is in the kernel souce package and does indicate
DMA use. Only a portion (sdcore) does not have source and this looks
to be upper level only.
David.
--- In "janne.kario" <> wrote:
>
> I've modified tssdcard.c from
>
ftp://ftp.embeddedarm.com/ts-arm-sbc/ts-7800-linux/sources/linux-2.6.21-ts-src-latest.tar.gz
> to work on my 2.6.25 kernel and ts7260 and it is working quite well. I
> went on tried to enable dma and hit a wall. DMA transfer appears to be
> working both ways (read and write) and the block device works
> perfectly for read operations. However for write operations sdwrite
> call returns with error code 1.
>
> tssdcard.c sdcore.o
> 1. tssdcard_transfer -> 2. sdwrite
> 3. tssdcard_dmastream <- |
> 3. tssdcard_dmastream -> |
> 4. tssdcard_transfer <---------
>
>
> 1) What is the specific condition which causes sdwrite to return 1?
> Having no access to the source code I have no way to debug this.
>
> 2) Looking at the original code for DMA for MACH_TS72XX I can't
> possibly think that it have never worked. Could someone confirm
> whether SD card DMA is supposed to work on 2.6 or 2.4.
>
> 3) I'm using EABI kernel, rootfs and toolchain. However I had to use
> OABI object file
>
(ftp://ftp.embeddedarm.com/ts-arm-sbc/ts-7800-linux/binaries/ts-modules/sdcore/OABI/tssdcore.o)
> because the EABI version would oops the kernel (illegal instruction)
> with first sdreset function call. Does the EABI object file work only
> on TS7800?
>
> j
>
------------------------------------
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/ts-7000/
<*> Your email settings:
Individual Email | Traditional
<*> To change settings online go to:
http://groups.yahoo.com/group/ts-7000/join
(Yahoo! ID required)
<*> To change settings via email:
<*> To unsubscribe from this group, send an email to:
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
|