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