Ticket #13819: highpoint_ata.h

File highpoint_ata.h, 1006 bytes (added by Alexco, 6 years ago)
Line 
1/*
2 * Copyright 2017, Alexander Coers. All rights reserved.
3 * Distributed under the terms of the MIT License.
4 */
5
6
7enum {
8 ATA_MWORD_DMA0 = 0x00,
9 ATA_MWORD_DMA1 = 0x01,
10 ATA_MWORD_DMA2 = 0x02,
11 ATA_ULTRA_DMA0 = 0x10,
12 ATA_ULTRA_DMA1 = 0x11,
13 ATA_ULTRA_DMA2 = 0x12,
14 ATA_ULTRA_DMA3 = 0x13,
15 ATA_ULTRA_DMA4 = 0x14,
16 ATA_ULTRA_DMA5 = 0x15,
17 ATA_ULTRA_DMA6 = 0x16
18 };
19
20enum {
21 CFG_HPT366_OLD,
22 CFG_HPT366,
23 CFG_HPT370,
24 CFG_HPT372,
25 CFG_HPT374,
26 CFG_HPTUnkown // no supported option found
27};
28
29#define ATA_HIGHPOINT_ID 0x1103
30
31#define ATA_HPT366 0x0004
32#define ATA_HPT372 0x0005
33#define ATA_HPT302 0x0006
34#define ATA_HPT371 0x0007
35#define ATA_HPT374 0x0008
36
37struct HPT_controller_info{
38 uint16 deviceID;
39 uint8 revisionID;
40 uint8 function;
41 bool configuredDMA; // is DMA already configured
42 int configOption; // some HPT devices need different settings
43 uint8 maxDMA; // see enum
44} ;