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 /firmware | |
parent | a721007e3956af8ac872237b5371466caf5a75e2 (diff) | |
download | rockbox-2a93cee8e28ad88c848b378fb10551cf5597bb81.tar.gz rockbox-2a93cee8e28ad88c848b378fb10551cf5597bb81.zip |
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
Diffstat (limited to 'firmware')
-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 adb54c7a35..18106df2cf 100644 --- a/firmware/SOURCES +++ b/firmware/SOURCES | |||
@@ -881,6 +881,7 @@ target/arm/tms320dm320/uart-dm320.c | |||
881 | 881 | ||
882 | #ifdef MROBE_500 | 882 | #ifdef MROBE_500 |
883 | #ifndef SIMULATOR | 883 | #ifndef SIMULATOR |
884 | target/arm/ata-as-arm.S | ||
884 | target/arm/lcd-as-memframe.S | 885 | target/arm/lcd-as-memframe.S |
885 | target/arm/mmu-arm.S | 886 | target/arm/mmu-arm.S |
886 | target/arm/tms320dm320/mrobe-500/adc-mr500.c | 887 | 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 c1475c0a5a..b1cafc2221 100644 --- a/firmware/target/arm/ata-as-arm.S +++ b/firmware/target/arm/ata-as-arm.S | |||
@@ -38,6 +38,12 @@ | |||
38 | #elif defined(CREATIVE_ZVx) /* Zen Vision could have an other address */ | 38 | #elif defined(CREATIVE_ZVx) /* Zen Vision could have an other address */ |
39 | .text | 39 | .text |
40 | .equ .ata_port, 0x50FEE000 | 40 | .equ .ata_port, 0x50FEE000 |
41 | #elif defined(MROBE_500) | ||
42 | .text | ||
43 | .equ .ata_port, 0x50400000 | ||
44 | #else | ||
45 | /* This isn't vaild, but it does it's job, not sure what this should be */ | ||
46 | #error ata_port undefined! | ||
41 | #endif | 47 | #endif |
42 | 48 | ||
43 | .align 2 | 49 | .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 4d0e0433c5..2a9d3e8010 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 @@ | |||
22 | #ifndef ATA_TARGET_H | 22 | #ifndef ATA_TARGET_H |
23 | #define ATA_TARGET_H | 23 | #define ATA_TARGET_H |
24 | 24 | ||
25 | #if 0 | ||
25 | /* Plain C read & write loops */ | 26 | /* Plain C read & write loops */ |
26 | #define PREFER_C_READING | 27 | #define PREFER_C_READING |
27 | #define PREFER_C_WRITING | 28 | #define PREFER_C_WRITING |
29 | #else | ||
30 | /* ASM optimized reading and writing */ | ||
31 | #define ATA_OPTIMIZED_READING | ||
32 | #define ATA_OPTIMIZED_WRITING | ||
33 | |||
34 | void copy_read_sectors(const unsigned char* buf, int wordcount); | ||
35 | void copy_write_sectors(const unsigned char* buf, int wordcount); | ||
36 | #endif | ||
28 | 37 | ||
29 | #define ATA_IOBASE 0x50000000 | 38 | #define ATA_IOBASE 0x50000000 |
30 | #define REGISTER_OFFSET (ATA_IOBASE+0x00400000) /* A21 = High */ | 39 | #define REGISTER_OFFSET (ATA_IOBASE+0x00400000) /* A21 = High */ |