diff options
| author | Karl Kurbjun <kkurbjun@gmail.com> | 2009-11-09 00:38:10 +0000 |
|---|---|---|
| committer | Karl Kurbjun <kkurbjun@gmail.com> | 2009-11-09 00:38:10 +0000 |
| commit | 2a93cee8e28ad88c848b378fb10551cf5597bb81 (patch) | |
| tree | 1e6d242496692c92bd23fcd4802dc05b6ac68e23 | |
| parent | a721007e3956af8ac872237b5371466caf5a75e2 (diff) | |
| download | rockbox-2a93cee8e28ad88c848b378fb10551cf5597bb81.zip rockbox-2a93cee8e28ad88c848b378fb10551cf5597bb81.tar.gz rockbox-2a93cee8e28ad88c848b378fb10551cf5597bb81.tar.bz2 rockbox-2a93cee8e28ad88c848b378fb10551cf5597bb81.tar.xz | |
M:Robe 500 - Enable ASM optimized ATA interface improving disk access speed.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23572 a1c6a512-1295-4272-9138-f99709370657
| -rw-r--r-- | firmware/SOURCES | 1 | ||||
| -rw-r--r-- | firmware/target/arm/ata-as-arm.S | 6 | ||||
| -rw-r--r-- | firmware/target/arm/tms320dm320/mrobe-500/ata-target.h | 9 |
3 files changed, 16 insertions, 0 deletions
diff --git a/firmware/SOURCES b/firmware/SOURCES index adb54c7..18106df 100644 --- a/firmware/SOURCES +++ b/firmware/SOURCES @@ -881,6 +881,7 @@ target/arm/tms320dm320/uart-dm320.c #ifdef MROBE_500 #ifndef SIMULATOR +target/arm/ata-as-arm.S target/arm/lcd-as-memframe.S target/arm/mmu-arm.S target/arm/tms320dm320/mrobe-500/adc-mr500.c diff --git a/firmware/target/arm/ata-as-arm.S b/firmware/target/arm/ata-as-arm.S index c1475c0..b1cafc2 100644 --- a/firmware/target/arm/ata-as-arm.S +++ b/firmware/target/arm/ata-as-arm.S @@ -38,6 +38,12 @@ #elif defined(CREATIVE_ZVx) /* Zen Vision could have an other address */ .text .equ .ata_port, 0x50FEE000 +#elif defined(MROBE_500) + .text + .equ .ata_port, 0x50400000 +#else + /* This isn't vaild, but it does it's job, not sure what this should be */ + #error ata_port undefined! #endif .align 2 diff --git a/firmware/target/arm/tms320dm320/mrobe-500/ata-target.h b/firmware/target/arm/tms320dm320/mrobe-500/ata-target.h index 4d0e043..2a9d3e8 100644 --- a/firmware/target/arm/tms320dm320/mrobe-500/ata-target.h +++ b/firmware/target/arm/tms320dm320/mrobe-500/ata-target.h @@ -22,9 +22,18 @@ #ifndef ATA_TARGET_H #define ATA_TARGET_H +#if 0 /* Plain C read & write loops */ #define PREFER_C_READING #define PREFER_C_WRITING +#else +/* ASM optimized reading and writing */ +#define ATA_OPTIMIZED_READING +#define ATA_OPTIMIZED_WRITING + +void copy_read_sectors(const unsigned char* buf, int wordcount); +void copy_write_sectors(const unsigned char* buf, int wordcount); +#endif #define ATA_IOBASE 0x50000000 #define REGISTER_OFFSET (ATA_IOBASE+0x00400000) /* A21 = High */ |