diff options
author | Michael Sparmann <theseven@rockbox.org> | 2011-01-02 22:51:47 +0000 |
---|---|---|
committer | Michael Sparmann <theseven@rockbox.org> | 2011-01-02 22:51:47 +0000 |
commit | 9339be1279eb2b64a268e3a7a039ef8031dae4b3 (patch) | |
tree | 651a91b8fa884630fd1cb5684fbc5787136ac98e /firmware/target/arm/ata-target.h | |
parent | 0ce42df073468ab3b9f714350f8a745ea178f020 (diff) | |
download | rockbox-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.h | 31 |
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 |