summaryrefslogtreecommitdiff
path: root/firmware/target/arm/ata-target.h
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/ata-target.h
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/ata-target.h')
-rw-r--r--firmware/target/arm/ata-target.h31
1 files changed, 2 insertions, 29 deletions
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 @@
32#define ATA_COMMAND (*((volatile unsigned char*)(IDE_BASE + 0x1fc))) 32#define ATA_COMMAND (*((volatile unsigned char*)(IDE_BASE + 0x1fc)))
33#define ATA_CONTROL (*((volatile unsigned char*)(IDE_BASE + 0x3f8))) 33#define ATA_CONTROL (*((volatile unsigned char*)(IDE_BASE + 0x3f8)))
34 34
35#define STATUS_BSY 0x80
36#define STATUS_RDY 0x40
37#define STATUS_DF 0x20
38#define STATUS_DRQ 0x08
39#define STATUS_ERR 0x01
40#define ERROR_ABRT 0x04
41#define ERROR_IDNF 0x10
42
43#define WRITE_PATTERN1 0xa5
44#define WRITE_PATTERN2 0x5a
45#define WRITE_PATTERN3 0xaa
46#define WRITE_PATTERN4 0x55
47
48#define READ_PATTERN1 0xa5
49#define READ_PATTERN2 0x5a
50#define READ_PATTERN3 0xaa
51#define READ_PATTERN4 0x55
52
53#define READ_PATTERN1_MASK 0xff
54#define READ_PATTERN2_MASK 0xff
55#define READ_PATTERN3_MASK 0xff
56#define READ_PATTERN4_MASK 0xff
57
58#if (CONFIG_CPU == PP5002) 35#if (CONFIG_CPU == PP5002)
59 36
60#define SET_REG(reg,val) do { reg = (val); \ 37#define ATA_OUT8(reg,val) do { reg = (val); \
61 while (!(IDE_CFG_STATUS & 0x40)); \ 38 while (!(IDE_CFG_STATUS & 0x40)); \
62 } while (0) 39 } while (0)
63#define SET_16BITREG(reg,val) reg = (val)
64 40
65/* Plain C reading and writing. See comment in ata-as-arm.S */ 41/* Plain C reading and writing. See comment in ata-as-arm.S */
66 42
67#elif defined CPU_PP502x 43#elif defined CPU_PP502x
68 44
69#define SET_REG(reg,val) reg = (val)
70#define SET_16BITREG(reg,val) reg = (val)
71
72/* asm optimized reading and writing */ 45/* asm optimized reading and writing */
73#define ATA_OPTIMIZED_READING 46#define ATA_OPTIMIZED_READING
74#define ATA_OPTIMIZED_WRITING 47#define ATA_OPTIMIZED_WRITING