diff options
Diffstat (limited to 'firmware/target/arm/olympus/mrobe-500/ata-target.h')
-rw-r--r-- | firmware/target/arm/olympus/mrobe-500/ata-target.h | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/firmware/target/arm/olympus/mrobe-500/ata-target.h b/firmware/target/arm/olympus/mrobe-500/ata-target.h index f6b1a23b72..8b7dadf5e9 100644 --- a/firmware/target/arm/olympus/mrobe-500/ata-target.h +++ b/firmware/target/arm/olympus/mrobe-500/ata-target.h | |||
@@ -16,7 +16,7 @@ | |||
16 | * KIND, either express or implied. | 16 | * KIND, either express or implied. |
17 | * | 17 | * |
18 | ****************************************************************************/ | 18 | ****************************************************************************/ |
19 | 19 | ||
20 | #ifndef ATA_TARGET_H | 20 | #ifndef ATA_TARGET_H |
21 | #define ATA_TARGET_H | 21 | #define ATA_TARGET_H |
22 | 22 | ||
@@ -29,15 +29,18 @@ | |||
29 | #endif | 29 | #endif |
30 | 30 | ||
31 | #define ATA_IOBASE 0x50000000 | 31 | #define ATA_IOBASE 0x50000000 |
32 | #define ATA_DATA (*((volatile unsigned short*)(ATA_IOBASE+0xa0))) | 32 | #define REGISTER_OFFSET 0x00400000 /* A21 = High */ |
33 | #define ATA_ERROR (*((volatile unsigned char*)(ATA_IOBASE + 0xa2))) | 33 | #define CONTROL_OFFSET 0x00800000 /* A22 = High */ |
34 | #define ATA_NSECTOR (*((volatile unsigned char*)(ATA_IOBASE + 0x24))) | 34 | #define IDE_SHIFT 17 |
35 | #define ATA_SECTOR (*((volatile unsigned char*)(ATA_IOBASE + 0x26))) | 35 | #define ATA_DATA (*((volatile unsigned short*)(REGISTER_OFFSET + (0x00 << IDE_SHIFT)))) |
36 | #define ATA_LCYL (*((volatile unsigned char*)(ATA_IOBASE + 0x28))) | 36 | #define ATA_ERROR (*((volatile unsigned char*)(REGISTER_OFFSET + (0x01 << IDE_SHIFT)))) |
37 | #define ATA_HCYL (*((volatile unsigned char*)(ATA_IOBASE + 0x2A))) | 37 | #define ATA_NSECTOR (*((volatile unsigned char*)(REGISTER_OFFSET + (0x02 << IDE_SHIFT)))) |
38 | #define ATA_SELECT (*((volatile unsigned char*)(ATA_IOBASE + 0x2C))) | 38 | #define ATA_SECTOR (*((volatile unsigned char*)(REGISTER_OFFSET + (0x03 << IDE_SHIFT)))) |
39 | #define ATA_COMMAND (*((volatile unsigned char*)(ATA_IOBASE + 0x2E))) | 39 | #define ATA_LCYL (*((volatile unsigned char*)(REGISTER_OFFSET + (0x04 << IDE_SHIFT)))) |
40 | #define ATA_CONTROL (*((volatile unsigned char*)(ATA_IOBASE + 0x9C))) | 40 | #define ATA_HCYL (*((volatile unsigned char*)(REGISTER_OFFSET + (0x05 << IDE_SHIFT)))) |
41 | #define ATA_SELECT (*((volatile unsigned char*)(REGISTER_OFFSET + (0x06 << IDE_SHIFT)))) | ||
42 | #define ATA_COMMAND (*((volatile unsigned char*)(REGISTER_OFFSET + (0x07 << IDE_SHIFT)))) | ||
43 | #define ATA_CONTROL (*((volatile unsigned char*)(CONTROL_OFFSET + (0x06 << IDE_SHIFT)))) | ||
41 | 44 | ||
42 | #define STATUS_BSY 0x80 | 45 | #define STATUS_BSY 0x80 |
43 | #define STATUS_RDY 0x40 | 46 | #define STATUS_RDY 0x40 |