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