Add qemu 2.4.0
[kvmfornfv.git] / qemu / roms / openbios / drivers / hdreg.h
1 /*
2  * this header holds data structures as dictated by spec
3  */
4 #ifndef HDREG_H
5 #define HDREG_H
6
7 struct hd_driveid {
8         unsigned short  config;         /* lots of obsolete bit flags */
9         unsigned short  cyls;           /* Obsolete, "physical" cyls */
10         unsigned short  reserved2;      /* reserved (word 2) */
11         unsigned short  heads;          /* Obsolete, "physical" heads */
12         unsigned short  track_bytes;    /* unformatted bytes per track */
13         unsigned short  sector_bytes;   /* unformatted bytes per sector */
14         unsigned short  sectors;        /* Obsolete, "physical" sectors per track */
15         unsigned short  vendor0;        /* vendor unique */
16         unsigned short  vendor1;        /* vendor unique */
17         unsigned short  vendor2;        /* Retired vendor unique */
18         unsigned char   serial_no[20];  /* 0 = not_specified */
19         unsigned short  buf_type;       /* Retired */
20         unsigned short  buf_size;       /* Retired, 512 byte increments
21                                          * 0 = not_specified
22                                          */
23         unsigned short  ecc_bytes;      /* for r/w long cmds; 0 = not_specified */
24         unsigned char   fw_rev[8];      /* 0 = not_specified */
25         unsigned char   model[40];      /* 0 = not_specified */
26         unsigned char   max_multsect;   /* 0=not_implemented */
27         unsigned char   vendor3;        /* vendor unique */
28         unsigned short  dword_io;       /* 0=not_implemented; 1=implemented */
29         unsigned char   vendor4;        /* vendor unique */
30         unsigned char   capability;     /* (upper byte of word 49)
31                                          *  3:  IORDYsup
32                                          *  2:  IORDYsw
33                                          *  1:  LBA
34                                          *  0:  DMA
35                                          */
36         unsigned short  reserved50;     /* reserved (word 50) */
37         unsigned char   vendor5;        /* Obsolete, vendor unique */
38         unsigned char   tPIO;           /* Obsolete, 0=slow, 1=medium, 2=fast */
39         unsigned char   vendor6;        /* Obsolete, vendor unique */
40         unsigned char   tDMA;           /* Obsolete, 0=slow, 1=medium, 2=fast */
41         unsigned short  field_valid;    /* (word 53)
42                                          *  2:  ultra_ok        word  88
43                                          *  1:  eide_ok         words 64-70
44                                          *  0:  cur_ok          words 54-58
45                                          */
46         unsigned short  cur_cyls;       /* Obsolete, logical cylinders */
47         unsigned short  cur_heads;      /* Obsolete, l heads */
48         unsigned short  cur_sectors;    /* Obsolete, l sectors per track */
49         unsigned short  cur_capacity0;  /* Obsolete, l total sectors on drive */
50         unsigned short  cur_capacity1;  /* Obsolete, (2 words, misaligned int)     */
51         unsigned char   multsect;       /* current multiple sector count */
52         unsigned char   multsect_valid; /* when (bit0==1) multsect is ok */
53         unsigned int    lba_capacity;   /* Obsolete, total number of sectors */
54         unsigned short  dma_1word;      /* Obsolete, single-word dma info */
55         unsigned short  dma_mword;      /* multiple-word dma info */
56         unsigned short  eide_pio_modes; /* bits 0:mode3 1:mode4 */
57         unsigned short  eide_dma_min;   /* min mword dma cycle time (ns) */
58         unsigned short  eide_dma_time;  /* recommended mword dma cycle time (ns) */
59         unsigned short  eide_pio;       /* min cycle time (ns), no IORDY  */
60         unsigned short  eide_pio_iordy; /* min cycle time (ns), with IORDY */
61         unsigned short  words69_70[2];  /* reserved words 69-70
62                                          * future command overlap and queuing
63                                          */
64         /* HDIO_GET_IDENTITY currently returns only words 0 through 70 */
65         unsigned short  words71_74[4];  /* reserved words 71-74
66                                          * for IDENTIFY PACKET DEVICE command
67                                          */
68         unsigned short  queue_depth;    /* (word 75)
69                                          * 15:5 reserved
70                                          *  4:0 Maximum queue depth -1
71                                          */
72         unsigned short  words76_79[4];  /* reserved words 76-79 */
73         unsigned short  major_rev_num;  /* (word 80) */
74         unsigned short  minor_rev_num;  /* (word 81) */
75         unsigned short  command_set_1;  /* (word 82) supported
76                                          * 15:  Obsolete
77                                          * 14:  NOP command
78                                          * 13:  READ_BUFFER
79                                          * 12:  WRITE_BUFFER
80                                          * 11:  Obsolete
81                                          * 10:  Host Protected Area
82                                          *  9:  DEVICE Reset
83                                          *  8:  SERVICE Interrupt
84                                          *  7:  Release Interrupt
85                                          *  6:  look-ahead
86                                          *  5:  write cache
87                                          *  4:  PACKET Command
88                                          *  3:  Power Management Feature Set
89                                          *  2:  Removable Feature Set
90                                          *  1:  Security Feature Set
91                                          *  0:  SMART Feature Set
92                                          */
93         unsigned short  command_set_2;  /* (word 83)
94                                          * 15:  Shall be ZERO
95                                          * 14:  Shall be ONE
96                                          * 13:  FLUSH CACHE EXT
97                                          * 12:  FLUSH CACHE
98                                          * 11:  Device Configuration Overlay
99                                          * 10:  48-bit Address Feature Set
100                                          *  9:  Automatic Acoustic Management
101                                          *  8:  SET MAX security
102                                          *  7:  reserved 1407DT PARTIES
103                                          *  6:  SetF sub-command Power-Up
104                                          *  5:  Power-Up in Standby Feature Set
105                                          *  4:  Removable Media Notification
106                                          *  3:  APM Feature Set
107                                          *  2:  CFA Feature Set
108                                          *  1:  READ/WRITE DMA QUEUED
109                                          *  0:  Download MicroCode
110                                          */
111         unsigned short  cfsse;          /* (word 84)
112                                          * cmd set-feature supported extensions
113                                          * 15:  Shall be ZERO
114                                          * 14:  Shall be ONE
115                                          * 13:6 reserved
116                                          *  5:  General Purpose Logging
117                                          *  4:  Streaming Feature Set
118                                          *  3:  Media Card Pass Through
119                                          *  2:  Media Serial Number Valid
120                                          *  1:  SMART selt-test supported
121                                          *  0:  SMART error logging
122                                          */
123         unsigned short  cfs_enable_1;   /* (word 85)
124                                          * command set-feature enabled
125                                          * 15:  Obsolete
126                                          * 14:  NOP command
127                                          * 13:  READ_BUFFER
128                                          * 12:  WRITE_BUFFER
129                                          * 11:  Obsolete
130                                          * 10:  Host Protected Area
131                                          *  9:  DEVICE Reset
132                                          *  8:  SERVICE Interrupt
133                                          *  7:  Release Interrupt
134                                          *  6:  look-ahead
135                                          *  5:  write cache
136                                          *  4:  PACKET Command
137                                          *  3:  Power Management Feature Set
138                                          *  2:  Removable Feature Set
139                                          *  1:  Security Feature Set
140                                          *  0:  SMART Feature Set
141                                          */
142         unsigned short  cfs_enable_2;   /* (word 86)
143                                          * command set-feature enabled
144                                          * 15:  Shall be ZERO
145                                          * 14:  Shall be ONE
146                                          * 13:  FLUSH CACHE EXT
147                                          * 12:  FLUSH CACHE
148                                          * 11:  Device Configuration Overlay
149                                          * 10:  48-bit Address Feature Set
150                                          *  9:  Automatic Acoustic Management
151                                          *  8:  SET MAX security
152                                          *  7:  reserved 1407DT PARTIES
153                                          *  6:  SetF sub-command Power-Up
154                                          *  5:  Power-Up in Standby Feature Set
155                                          *  4:  Removable Media Notification
156                                          *  3:  APM Feature Set
157                                          *  2:  CFA Feature Set
158                                          *  1:  READ/WRITE DMA QUEUED
159                                          *  0:  Download MicroCode
160                                          */
161         unsigned short  csf_default;    /* (word 87)
162                                          * command set-feature default
163                                          * 15:  Shall be ZERO
164                                          * 14:  Shall be ONE
165                                          * 13:6 reserved
166                                          *  5:  General Purpose Logging enabled
167                                          *  4:  Valid CONFIGURE STREAM executed
168                                          *  3:  Media Card Pass Through enabled
169                                          *  2:  Media Serial Number Valid
170                                          *  1:  SMART selt-test supported
171                                          *  0:  SMART error logging
172                                          */
173         unsigned short  dma_ultra;      /* (word 88) */
174         unsigned short  trseuc;         /* time required for security erase */
175         unsigned short  trsEuc;         /* time required for enhanced erase */
176         unsigned short  CurAPMvalues;   /* current APM values */
177         unsigned short  mprc;           /* master password revision code */
178         unsigned short  hw_config;      /* hardware config (word 93)
179                                          * 15:  Shall be ZERO
180                                          * 14:  Shall be ONE
181                                          * 13:
182                                          * 12:
183                                          * 11:
184                                          * 10:
185                                          *  9:
186                                          *  8:
187                                          *  7:
188                                          *  6:
189                                          *  5:
190                                          *  4:
191                                          *  3:
192                                          *  2:
193                                          *  1:
194                                          *  0:  Shall be ONE
195                                          */
196         unsigned short  acoustic;       /* (word 94)
197                                          * 15:8 Vendor's recommended value
198                                          *  7:0 current value
199                                          */
200         unsigned short  msrqs;          /* min stream request size */
201         unsigned short  sxfert;         /* stream transfer time */
202         unsigned short  sal;            /* stream access latency */
203         unsigned int    spg;            /* stream performance granularity */
204         unsigned long long lba_capacity_2;/* 48-bit total number of sectors */
205         unsigned short  words104_125[22];/* reserved words 104-125 */
206         unsigned short  last_lun;       /* (word 126) */
207         unsigned short  word127;        /* (word 127) Feature Set
208                                          * Removable Media Notification
209                                          * 15:2 reserved
210                                          *  1:0 00 = not supported
211                                          *      01 = supported
212                                          *      10 = reserved
213                                          *      11 = reserved
214                                          */
215         unsigned short  dlf;            /* (word 128)
216                                          * device lock function
217                                          * 15:9 reserved
218                                          *  8   security level 1:max 0:high
219                                          *  7:6 reserved
220                                          *  5   enhanced erase
221                                          *  4   expire
222                                          *  3   frozen
223                                          *  2   locked
224                                          *  1   en/disabled
225                                          *  0   capability
226                                          */
227         unsigned short  csfo;           /*  (word 129)
228                                          * current set features options
229                                          * 15:4 reserved
230                                          *  3:  auto reassign
231                                          *  2:  reverting
232                                          *  1:  read-look-ahead
233                                          *  0:  write cache
234                                          */
235         unsigned short  words130_155[26];/* reserved vendor words 130-155 */
236         unsigned short  word156;        /* reserved vendor word 156 */
237         unsigned short  words157_159[3];/* reserved vendor words 157-159 */
238         unsigned short  cfa_power;      /* (word 160) CFA Power Mode
239                                          * 15 word 160 supported
240                                          * 14 reserved
241                                          * 13
242                                          * 12
243                                          * 11:0
244                                          */
245         unsigned short  words161_175[15];/* Reserved for CFA */
246         unsigned short  words176_205[30];/* Current Media Serial Number */
247         unsigned short  words206_254[49];/* reserved words 206-254 */
248         unsigned short  integrity_word; /* (word 255)
249                                          * 15:8 Checksum
250                                          *  7:0 Signature
251                                          */
252 };
253
254 struct request_sense {
255 #if defined(CONFIG_BIG_ENDIAN)
256         u8 valid                : 1;
257         u8 error_code           : 7;
258 #elif defined(CONFIG_LITTLE_ENDIAN)
259         u8 error_code           : 7;
260         u8 valid                : 1;
261 #endif
262         u8 segment_number;
263 #if defined(CONFIG_BIG_ENDIAN)
264         u8 reserved1            : 2;
265         u8 ili                  : 1;
266         u8 reserved2            : 1;
267         u8 sense_key            : 4;
268 #elif defined(CONFIG_LITTLE_ENDIAN)
269         u8 sense_key            : 4;
270         u8 reserved2            : 1;
271         u8 ili                  : 1;
272         u8 reserved1            : 2;
273 #endif
274         u8 information[4];
275         u8 add_sense_len;
276         u8 command_info[4];
277         u8 asc;
278         u8 ascq;
279         u8 fruc;
280         u8 sks[3];
281         u8 asb[46];
282 };
283
284 struct atapi_capacity {
285         u32 lba;
286         u32 block_size;
287 };
288
289 #endif