summaryrefslogtreecommitdiffstats
path: root/firmware/target/arm
diff options
context:
space:
mode:
authorMichael Sparmann <theseven@rockbox.org>2011-01-02 22:51:47 +0000
committerMichael Sparmann <theseven@rockbox.org>2011-01-02 22:51:47 +0000
commit9339be1279eb2b64a268e3a7a039ef8031dae4b3 (patch)
tree651a91b8fa884630fd1cb5684fbc5787136ac98e /firmware/target/arm
parent0ce42df073468ab3b9f714350f8a745ea178f020 (diff)
downloadrockbox-9339be1279eb2b64a268e3a7a039ef8031dae4b3.tar.gz
rockbox-9339be1279eb2b64a268e3a7a039ef8031dae4b3.zip
Rework ATA driver to get rid of lots of target-specific constants and allow for non-memory-mapped task file registers.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28950 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target/arm')
-rw-r--r--firmware/target/arm/archos/av300/ata-target.h26
-rw-r--r--firmware/target/arm/ata-target.h31
-rw-r--r--firmware/target/arm/imx31/ata-target.h26
-rw-r--r--firmware/target/arm/s3c2440/gigabeat-fx/ata-target.h26
-rw-r--r--firmware/target/arm/tms320dm320/creative-zvm/ata-target.h26
-rw-r--r--firmware/target/arm/tms320dm320/creative-zvm/dma-creativezvm.c6
-rw-r--r--firmware/target/arm/tms320dm320/mrobe-500/ata-target.h26
7 files changed, 5 insertions, 162 deletions
diff --git a/firmware/target/arm/archos/av300/ata-target.h b/firmware/target/arm/archos/av300/ata-target.h
index 9c59acc460..bc3a19a6b4 100644
--- a/firmware/target/arm/archos/av300/ata-target.h
+++ b/firmware/target/arm/archos/av300/ata-target.h
@@ -33,32 +33,6 @@
#define ATA_CONTROL (*((volatile unsigned char*)(ATA_IOBASE + 0x340)))
#define ATA_COMMAND (*((volatile unsigned char*)(ATA_IOBASE + 0x380)))
-#define STATUS_BSY 0x80
-#define STATUS_RDY 0x40
-#define STATUS_DF 0x20
-#define STATUS_DRQ 0x08
-#define STATUS_ERR 0x01
-#define ERROR_ABRT 0x04
-#define ERROR_IDNF 0x10
-
-#define WRITE_PATTERN1 0xa5
-#define WRITE_PATTERN2 0x5a
-#define WRITE_PATTERN3 0xaa
-#define WRITE_PATTERN4 0x55
-
-#define READ_PATTERN1 0xa5
-#define READ_PATTERN2 0x5a
-#define READ_PATTERN3 0xaa
-#define READ_PATTERN4 0x55
-
-#define READ_PATTERN1_MASK 0xff
-#define READ_PATTERN2_MASK 0xff
-#define READ_PATTERN3_MASK 0xff
-#define READ_PATTERN4_MASK 0xff
-
-#define SET_REG(reg,val) reg = (val)
-#define SET_16BITREG(reg,val) reg = (val)
-
void ata_reset(void);
void ata_enable(bool on);
bool ata_is_coldstart(void);
diff --git a/firmware/target/arm/ata-target.h b/firmware/target/arm/ata-target.h
index c9d789d092..12415c33e8 100644
--- a/firmware/target/arm/ata-target.h
+++ b/firmware/target/arm/ata-target.h
@@ -32,43 +32,16 @@
#define ATA_COMMAND (*((volatile unsigned char*)(IDE_BASE + 0x1fc)))
#define ATA_CONTROL (*((volatile unsigned char*)(IDE_BASE + 0x3f8)))
-#define STATUS_BSY 0x80
-#define STATUS_RDY 0x40
-#define STATUS_DF 0x20
-#define STATUS_DRQ 0x08
-#define STATUS_ERR 0x01
-#define ERROR_ABRT 0x04
-#define ERROR_IDNF 0x10
-
-#define WRITE_PATTERN1 0xa5
-#define WRITE_PATTERN2 0x5a
-#define WRITE_PATTERN3 0xaa
-#define WRITE_PATTERN4 0x55
-
-#define READ_PATTERN1 0xa5
-#define READ_PATTERN2 0x5a
-#define READ_PATTERN3 0xaa
-#define READ_PATTERN4 0x55
-
-#define READ_PATTERN1_MASK 0xff
-#define READ_PATTERN2_MASK 0xff
-#define READ_PATTERN3_MASK 0xff
-#define READ_PATTERN4_MASK 0xff
-
#if (CONFIG_CPU == PP5002)
-#define SET_REG(reg,val) do { reg = (val); \
+#define ATA_OUT8(reg,val) do { reg = (val); \
while (!(IDE_CFG_STATUS & 0x40)); \
- } while (0)
-#define SET_16BITREG(reg,val) reg = (val)
+ } while (0)
/* Plain C reading and writing. See comment in ata-as-arm.S */
#elif defined CPU_PP502x
-#define SET_REG(reg,val) reg = (val)
-#define SET_16BITREG(reg,val) reg = (val)
-
/* asm optimized reading and writing */
#define ATA_OPTIMIZED_READING
#define ATA_OPTIMIZED_WRITING
diff --git a/firmware/target/arm/imx31/ata-target.h b/firmware/target/arm/imx31/ata-target.h
index f7f84f82e9..da1902acea 100644
--- a/firmware/target/arm/imx31/ata-target.h
+++ b/firmware/target/arm/imx31/ata-target.h
@@ -46,32 +46,6 @@
#define ATA_COMMAND ATA_DRIVE_COMMAND
#define ATA_CONTROL ATA_DRIVE_CONTROL
-#define STATUS_BSY 0x80
-#define STATUS_RDY 0x40
-#define STATUS_DF 0x20
-#define STATUS_DRQ 0x08
-#define STATUS_ERR 0x01
-#define ERROR_ABRT 0x04
-#define ERROR_IDNF 0x10
-
-#define WRITE_PATTERN1 0xa5
-#define WRITE_PATTERN2 0x5a
-#define WRITE_PATTERN3 0xaa
-#define WRITE_PATTERN4 0x55
-
-#define READ_PATTERN1 0xa5
-#define READ_PATTERN2 0x5a
-#define READ_PATTERN3 0xaa
-#define READ_PATTERN4 0x55
-
-#define READ_PATTERN1_MASK 0xff
-#define READ_PATTERN2_MASK 0xff
-#define READ_PATTERN3_MASK 0xff
-#define READ_PATTERN4_MASK 0xff
-
-#define SET_REG(reg,val) reg = (val)
-#define SET_16BITREG(reg,val) reg = (val)
-
void ata_reset(void);
void ata_device_init(void);
bool ata_is_coldstart(void);
diff --git a/firmware/target/arm/s3c2440/gigabeat-fx/ata-target.h b/firmware/target/arm/s3c2440/gigabeat-fx/ata-target.h
index 01cdbb9ddb..95cbaa11cf 100644
--- a/firmware/target/arm/s3c2440/gigabeat-fx/ata-target.h
+++ b/firmware/target/arm/s3c2440/gigabeat-fx/ata-target.h
@@ -44,32 +44,6 @@ void copy_read_sectors(unsigned char* buf, int wordcount);
#define ATA_COMMAND (*((volatile unsigned char*)(ATA_IOBASE + 0x0E)))
#define ATA_CONTROL (*((volatile unsigned char*)(0x20000000 + 0x1C)))
-#define STATUS_BSY 0x80
-#define STATUS_RDY 0x40
-#define STATUS_DF 0x20
-#define STATUS_DRQ 0x08
-#define STATUS_ERR 0x01
-#define ERROR_ABRT 0x04
-#define ERROR_IDNF 0x10
-
-#define WRITE_PATTERN1 0xa5
-#define WRITE_PATTERN2 0x5a
-#define WRITE_PATTERN3 0xaa
-#define WRITE_PATTERN4 0x55
-
-#define READ_PATTERN1 0xa5
-#define READ_PATTERN2 0x5a
-#define READ_PATTERN3 0xaa
-#define READ_PATTERN4 0x55
-
-#define READ_PATTERN1_MASK 0xff
-#define READ_PATTERN2_MASK 0xff
-#define READ_PATTERN3_MASK 0xff
-#define READ_PATTERN4_MASK 0xff
-
-#define SET_REG(reg,val) reg = (val)
-#define SET_16BITREG(reg,val) reg = (val)
-
void ata_reset(void);
void ata_device_init(void);
bool ata_is_coldstart(void);
diff --git a/firmware/target/arm/tms320dm320/creative-zvm/ata-target.h b/firmware/target/arm/tms320dm320/creative-zvm/ata-target.h
index 46713e70c5..1a1648983d 100644
--- a/firmware/target/arm/tms320dm320/creative-zvm/ata-target.h
+++ b/firmware/target/arm/tms320dm320/creative-zvm/ata-target.h
@@ -53,32 +53,6 @@ extern int _ata_write_sectors(IF_MD2(int drive,) unsigned long start, int count,
#define ATA_COMMAND (*((volatile unsigned char*)(ATA_IOBASE+0xE)))
#define ATA_CONTROL (*((volatile unsigned char*)(ATA_IOBASE+0x800C)))
-#define STATUS_BSY 0x80
-#define STATUS_RDY 0x40
-#define STATUS_DF 0x20
-#define STATUS_DRQ 0x08
-#define STATUS_ERR 0x01
-#define ERROR_ABRT 0x04
-#define ERROR_IDNF 0x10
-
-#define WRITE_PATTERN1 0xa5
-#define WRITE_PATTERN2 0x5a
-#define WRITE_PATTERN3 0xaa
-#define WRITE_PATTERN4 0x55
-
-#define READ_PATTERN1 0xa5
-#define READ_PATTERN2 0x5a
-#define READ_PATTERN3 0xaa
-#define READ_PATTERN4 0x55
-
-#define READ_PATTERN1_MASK 0xff
-#define READ_PATTERN2_MASK 0xff
-#define READ_PATTERN3_MASK 0xff
-#define READ_PATTERN4_MASK 0xff
-
-#define SET_REG(reg,val) reg = (val)
-#define SET_16BITREG(reg,val) reg = (val)
-
void ata_reset(void);
void ata_device_init(void);
bool ata_is_coldstart(void);
diff --git a/firmware/target/arm/tms320dm320/creative-zvm/dma-creativezvm.c b/firmware/target/arm/tms320dm320/creative-zvm/dma-creativezvm.c
index c229b9957a..514fdd5bd9 100644
--- a/firmware/target/arm/tms320dm320/creative-zvm/dma-creativezvm.c
+++ b/firmware/target/arm/tms320dm320/creative-zvm/dma-creativezvm.c
@@ -62,7 +62,7 @@ void dma_ata_read(unsigned char* buf, int shortcount)
while((unsigned long)buf & 0x1F)
{
unsigned short tmp;
- tmp = ATA_DATA;
+ tmp = ATA_IN16(ATA_DATA);
*buf++ = tmp & 0xFF;
*buf++ = tmp >> 8;
shortcount--;
@@ -86,7 +86,7 @@ void dma_ata_read(unsigned char* buf, int shortcount)
if(shortcount % 2)
{
unsigned short tmp;
- tmp = ATA_DATA;
+ tmp = ATA_IN16(ATA_DATA);
*buf++ = tmp & 0xFF;
*buf++ = tmp >> 8;
}
@@ -102,7 +102,7 @@ void dma_ata_write(unsigned char* buf, int wordcount)
unsigned short tmp;
tmp = (unsigned short) *buf++;
tmp |= (unsigned short) *buf++ << 8;
- SET_16BITREG(ATA_DATA, tmp);
+ ATA_OUT16(ATA_DATA, tmp);
wordcount--;
}
diff --git a/firmware/target/arm/tms320dm320/mrobe-500/ata-target.h b/firmware/target/arm/tms320dm320/mrobe-500/ata-target.h
index 0abeb2e9e7..ca75876259 100644
--- a/firmware/target/arm/tms320dm320/mrobe-500/ata-target.h
+++ b/firmware/target/arm/tms320dm320/mrobe-500/ata-target.h
@@ -49,32 +49,6 @@ void copy_write_sectors(const unsigned char* buf, int wordcount);
#define ATA_COMMAND (*((volatile unsigned char*)(REGISTER_OFFSET + (0x07 << IDE_SHIFT))))
#define ATA_CONTROL (*((volatile unsigned char*)(CONTROL_OFFSET + (0x06 << IDE_SHIFT))))
-#define STATUS_BSY 0x80
-#define STATUS_RDY 0x40
-#define STATUS_DF 0x20
-#define STATUS_DRQ 0x08
-#define STATUS_ERR 0x01
-#define ERROR_ABRT 0x04
-#define ERROR_IDNF 0x10
-
-#define WRITE_PATTERN1 0xa5
-#define WRITE_PATTERN2 0x5a
-#define WRITE_PATTERN3 0xaa
-#define WRITE_PATTERN4 0x55
-
-#define READ_PATTERN1 0xa5
-#define READ_PATTERN2 0x5a
-#define READ_PATTERN3 0xaa
-#define READ_PATTERN4 0x55
-
-#define READ_PATTERN1_MASK 0xff
-#define READ_PATTERN2_MASK 0xff
-#define READ_PATTERN3_MASK 0xff
-#define READ_PATTERN4_MASK 0xff
-
-#define SET_REG(reg,val) reg = (val)
-#define SET_16BITREG(reg,val) reg = (val)
-
void ata_reset(void);
void ata_device_init(void);
bool ata_is_coldstart(void);