1 /*++
2 
3 Copyright (c)  1999  - 2014, Intel Corporation. All rights reserved
Exception()4 
5   SPDX-License-Identifier: BSD-2-Clause-Patent
6 
7 
8 --*/
9 
10 
11 /*++
12 
13 Module Name:
14 
15   CEATA.h
16 
17 Abstract:
18 
19   Header file for chipset CE-AT spec.
20 
21 --*/
22 
23 #ifndef _CE_ATA_H
24 #define _CE_ATA_H
25 
26 #pragma pack(1)
27 
28 
29 #define  DATA_UNIT_SIZE       512
30 
31 
32 #define  CMD60                60
33 #define  CMD61                61
34 
35 
36 #define RW_MULTIPLE_REGISTER  CMD60
37 #define RW_MULTIPLE_BLOCK     CMD61
38 
39 
40 #define CE_ATA_SIG_CE         0xCE
41 #define CE_ATA_SIG_AA         0xAA
42 
43 
44 #define Reg_Features_Exp      01
45 #define Reg_SectorCount_Exp   02
46 #define Reg_LBALow_Exp        03
47 #define Reg_LBAMid_Exp        04
48 #define Reg_LBAHigh_Exp       05
49 #define Reg_Control           06
50 #define Reg_Features_Error    09
51 #define Reg_SectorCount       10
52 #define Reg_LBALow            11
53 #define Reg_LBAMid            12
54 #define Reg_LBAHigh           13
55 #define Reg_Device_Head       14
56 #define Reg_Command_Status    15
57 
58 #define Reg_scrTempC          0x80
59 #define Reg_scrTempMaxP       0x84
60 #define Reg_scrTempMinP       0x88
61 #define Reg_scrStatus         0x8C
62 #define Reg_scrReallocsA      0x90
63 #define Reg_scrERetractsA     0x94
64 #define Reg_scrCapabilities   0x98
65 #define Reg_scrControl        0xC0
66 
67 
68 
69 typedef struct {
70   UINT8  Reserved0;
71   UINT8  Features_Exp;
72   UINT8  SectorCount_Exp;
73   UINT8  LBALow_Exp;
74   UINT8  LBAMid_Exp;
75   UINT8  LBAHigh_Exp;
76   UINT8  Control;
77   UINT8  Reserved1[2];
78   UINT8  Features_Error;
79   UINT8  SectorCount;
80   UINT8  LBALow;
81   UINT8  LBAMid;
82   UINT8  LBAHigh;
83   UINT8  Device_Head;
84   UINT8  Command_Status;
85 } TASK_FILE;
86 
87 
88 //
89 //Reduced ATA command set
90 //
91 #define IDENTIFY_DEVICE       0xEC
92 #define READ_DMA_EXT          0x25
93 #define WRITE_DMA_EXT         0x35
94 #define STANDBY_IMMEDIATE     0xE0
95 #define FLUSH_CACHE_EXT       0xEA
96 
97 
98 
99 typedef struct {
100   UINT16  Reserved0[10];
101   UINT16  SerialNumber[10];
102   UINT16  Reserved1[3];
103   UINT16  FirmwareRevision[4];
104   UINT16  ModelNumber[20];
105   UINT16  Reserved2[33];
106   UINT16  MajorVersion;
107   UINT16  Reserved3[19];
108   UINT16  MaximumLBA[4];
109   UINT16  Reserved4[2];
110   UINT16  Sectorsize;
111   UINT16  Reserved5;
112   UINT16  DeviceGUID[4];
113   UINT16  Reserved6[94];
114   UINT16  Features;
115   UINT16  MaxWritesPerAddress;
116   UINT16  Reserved7[47];
117   UINT16  IntegrityWord;
118 } IDENTIFY_DEVICE_DATA;
119 
120 
121 
122 
123 
124 #pragma pack()
125 
126 #endif
127