]> git.proxmox.com Git - mirror_edk2.git/blame - Vlv2DeviceRefCodePkg/ValleyView2Soc/SouthCluster/Include/IndustryStandard/CeAta.h
Upload BSD-licensed Vlv2TbltDevicePkg and Vlv2DeviceRefCodePkg to
[mirror_edk2.git] / Vlv2DeviceRefCodePkg / ValleyView2Soc / SouthCluster / Include / IndustryStandard / CeAta.h
CommitLineData
3cbfba02
DW
1/*++\r
2\r
3Copyright (c) 1999 - 2014, Intel Corporation. All rights reserved\r
4\r
5 This program and the accompanying materials are licensed and made available under\r
6 the terms and conditions of the BSD License that accompanies this distribution.\r
7 The full text of the license may be found at\r
8 http://opensource.org/licenses/bsd-license.php.\r
9\r
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
12\r
13\r
14--*/\r
15\r
16\r
17/*++\r
18\r
19Module Name:\r
20\r
21 CEATA.h\r
22\r
23Abstract:\r
24\r
25 Header file for chipset CE-AT spec.\r
26\r
27--*/\r
28\r
29#ifndef _CE_ATA_H\r
30#define _CE_ATA_H\r
31\r
32#pragma pack(1)\r
33\r
34\r
35#define DATA_UNIT_SIZE 512\r
36\r
37\r
38#define CMD60 60\r
39#define CMD61 61\r
40\r
41\r
42#define RW_MULTIPLE_REGISTER CMD60\r
43#define RW_MULTIPLE_BLOCK CMD61\r
44\r
45\r
46#define CE_ATA_SIG_CE 0xCE\r
47#define CE_ATA_SIG_AA 0xAA\r
48\r
49\r
50#define Reg_Features_Exp 01\r
51#define Reg_SectorCount_Exp 02\r
52#define Reg_LBALow_Exp 03\r
53#define Reg_LBAMid_Exp 04\r
54#define Reg_LBAHigh_Exp 05\r
55#define Reg_Control 06\r
56#define Reg_Features_Error 09\r
57#define Reg_SectorCount 10\r
58#define Reg_LBALow 11\r
59#define Reg_LBAMid 12\r
60#define Reg_LBAHigh 13\r
61#define Reg_Device_Head 14\r
62#define Reg_Command_Status 15\r
63\r
64#define Reg_scrTempC 0x80\r
65#define Reg_scrTempMaxP 0x84\r
66#define Reg_scrTempMinP 0x88\r
67#define Reg_scrStatus 0x8C\r
68#define Reg_scrReallocsA 0x90\r
69#define Reg_scrERetractsA 0x94\r
70#define Reg_scrCapabilities 0x98\r
71#define Reg_scrControl 0xC0\r
72\r
73\r
74\r
75typedef struct {\r
76 UINT8 Reserved0;\r
77 UINT8 Features_Exp;\r
78 UINT8 SectorCount_Exp;\r
79 UINT8 LBALow_Exp;\r
80 UINT8 LBAMid_Exp;\r
81 UINT8 LBAHigh_Exp;\r
82 UINT8 Control;\r
83 UINT8 Reserved1[2];\r
84 UINT8 Features_Error;\r
85 UINT8 SectorCount;\r
86 UINT8 LBALow;\r
87 UINT8 LBAMid;\r
88 UINT8 LBAHigh;\r
89 UINT8 Device_Head;\r
90 UINT8 Command_Status;\r
91} TASK_FILE;\r
92\r
93\r
94//\r
95//Reduced ATA command set\r
96//\r
97#define IDENTIFY_DEVICE 0xEC\r
98#define READ_DMA_EXT 0x25\r
99#define WRITE_DMA_EXT 0x35\r
100#define STANDBY_IMMEDIATE 0xE0\r
101#define FLUSH_CACHE_EXT 0xEA\r
102\r
103\r
104\r
105typedef struct {\r
106 UINT16 Reserved0[10];\r
107 UINT16 SerialNumber[10];\r
108 UINT16 Reserved1[3];\r
109 UINT16 FirmwareRevision[4];\r
110 UINT16 ModelNumber[20];\r
111 UINT16 Reserved2[33];\r
112 UINT16 MajorVersion;\r
113 UINT16 Reserved3[19];\r
114 UINT16 MaximumLBA[4];\r
115 UINT16 Reserved4[2];\r
116 UINT16 Sectorsize;\r
117 UINT16 Reserved5;\r
118 UINT16 DeviceGUID[4];\r
119 UINT16 Reserved6[94];\r
120 UINT16 Features;\r
121 UINT16 MaxWritesPerAddress;\r
122 UINT16 Reserved7[47];\r
123 UINT16 IntegrityWord;\r
124} IDENTIFY_DEVICE_DATA;\r
125\r
126\r
127\r
128\r
129\r
130#pragma pack()\r
131\r
132#endif\r