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