1 | /*
|
---|
2 | * Copyright 2017, Alexander Coers. All rights reserved.
|
---|
3 | * Distributed under the terms of the MIT License.
|
---|
4 | */
|
---|
5 |
|
---|
6 |
|
---|
7 | enum {
|
---|
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 |
|
---|
20 | enum {
|
---|
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 |
|
---|
37 | struct 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 | } ;
|
---|