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
This commit is contained in:
parent
a721007e39
commit
2a93cee8e2
3 changed files with 16 additions and 0 deletions
|
@ -881,6 +881,7 @@ target/arm/tms320dm320/uart-dm320.c
|
||||||
|
|
||||||
#ifdef MROBE_500
|
#ifdef MROBE_500
|
||||||
#ifndef SIMULATOR
|
#ifndef SIMULATOR
|
||||||
|
target/arm/ata-as-arm.S
|
||||||
target/arm/lcd-as-memframe.S
|
target/arm/lcd-as-memframe.S
|
||||||
target/arm/mmu-arm.S
|
target/arm/mmu-arm.S
|
||||||
target/arm/tms320dm320/mrobe-500/adc-mr500.c
|
target/arm/tms320dm320/mrobe-500/adc-mr500.c
|
||||||
|
|
|
@ -38,6 +38,12 @@
|
||||||
#elif defined(CREATIVE_ZVx) /* Zen Vision could have an other address */
|
#elif defined(CREATIVE_ZVx) /* Zen Vision could have an other address */
|
||||||
.text
|
.text
|
||||||
.equ .ata_port, 0x50FEE000
|
.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
|
#endif
|
||||||
|
|
||||||
.align 2
|
.align 2
|
||||||
|
|
|
@ -22,9 +22,18 @@
|
||||||
#ifndef ATA_TARGET_H
|
#ifndef ATA_TARGET_H
|
||||||
#define ATA_TARGET_H
|
#define ATA_TARGET_H
|
||||||
|
|
||||||
|
#if 0
|
||||||
/* Plain C read & write loops */
|
/* Plain C read & write loops */
|
||||||
#define PREFER_C_READING
|
#define PREFER_C_READING
|
||||||
#define PREFER_C_WRITING
|
#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 ATA_IOBASE 0x50000000
|
||||||
#define REGISTER_OFFSET (ATA_IOBASE+0x00400000) /* A21 = High */
|
#define REGISTER_OFFSET (ATA_IOBASE+0x00400000) /* A21 = High */
|
||||||
|
|
Loading…
Reference in a new issue