1
2
3
4
5
6
7
8
9
10
11 #ifndef IDE_PROMISE_H
12 #define IDE_PROMISE_H
13
14 #define PROMISE_EXTENDED_COMMAND 0xF0
15 #define PROMISE_READ 0xF2
16 #define PROMISE_WRITE 0xF3
17
18 #define PROMISE_GET_CONFIG 0x10
19 #define PROMISE_IDENTIFY 0x20
20
21 struct translation_mode {
22 u16 cyl;
23 u8 head;
24 u8 sect;
25 };
26
27 struct dc_ident {
28 u8 type;
29 u8 unknown1;
30 u8 hw_revision;
31 u8 firmware_major;
32 u8 firmware_minor;
33 u8 bios_address;
34 u8 irq;
35 u8 unknown2;
36 u16 cache_mem;
37 u16 unknown3;
38 u8 id[2];
39 u16 info;
40 struct translation_mode current_tm[4];
41 u8 pad[SECTOR_WORDS*4 - 32];
42 };
43
44
45
46
47 void do_promise_io (ide_drive_t *, struct request *);
48 int promise_cmd(ide_drive_t *, byte);
49 void setup_dc4030 (ide_hwif_t *);
50 int init_dc4030 (void);
51
52 #endif IDE_PROMISE_H