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