xref: /original-bsd/sys/news3400/iodev/sddefs.c (revision 4463b7c2)
1 /*
2  * Copyright (c) 1992 The Regents of the University of California.
3  * All rights reserved.
4  *
5  * This code is derived from software contributed to Berkeley by
6  * Sony Corp. and Kazumasa Utashiro of Software Research Associates, Inc.
7  *
8  * %sccs.include.redist.c%
9  *
10  * from: $Hdr: sddefs.c,v 4.300 91/06/09 06:38:25 root Rel41 $ SONY
11  *
12  *	@(#)sddefs.c	7.1 (Berkeley) 06/04/92
13  */
14 
15 #include "sd.h"
16 #if NSD > 0
17 
18 /*
19  * Copyright (c) 1989- by SONY Corporation.
20  */
21 /*
22  * SD device configuration file
23  */
24 
25 #ifdef KERNEL
26 #include "param.h"
27 #include "../iodev/sdreg.h"
28 #include "../iodev/scsireg.h"
29 #include "../iodev/scu.h"
30 #else
31 #include "/sys/h/param.h"
32 #include "/sys/iodev/sdreg.h"
33 #include "/sys/iodev/scsireg.h"
34 #include "/sys/iodev/scu.h"
35 #endif
36 
37 char	revs_all[] = "????";
38 
39 /*******************************/
40 /* disk partition informations */
41 /*******************************/
42 
43 /* BEGIN sizes */
44 struct size wren3_101_sizes[PNUM] = {
45 	   15884,	     0,		/* A = cyl   0 thru  93 */
46 	   33440,      94*34*5,		/* B = cyl  94 thru 290 */
47 	  169150,	     0,		/* C = cyl   0 thru 994 */
48 	   15884,     291*34*5,		/* D = cyl 291 thru 384 */
49 	   55936,     385*34*5,		/* E = cyl 385 thru 714 */
50 	   47600,     715*34*5,		/* F = cyl 715 thru 994 */
51 	  119680,     291*34*5,		/* G = cyl 291 thru 994 */
52 	       0,	     0,		/* H	Not use		*/
53 	};
54 struct size wren3_101_hh_sizes[PNUM] = {
55 	   15884,	     0,		/* A =  15884 */
56 	   33440,	 15884,		/* B =  33440 */
57 	  178850,	     0,		/* C = 178850 */
58 	   15884,	 49324,		/* D =  15884 */
59 	   55936,	 65208,		/* E =  55936 */
60 	   57706,	121144,		/* F =  57706 */ /* F = C-(A+B+H+D+E) */
61 	  129526,	 49324,		/* G = 129526 */ /* G = D+E+F */
62 	  113642,	 65208,		/* H = 113642 */ /* H = E+F */
63 	};
64 struct size wren3_182_sizes[PNUM] = {
65 	   15884,	     0,		/* A = cyl   0 thru  51 */
66 	   33440,      52*34*9,		/* B = cyl  52 thru 161 */
67 	  304470,	     0,		/* C = cyl   0 thru 994 */
68 	   15884,     162*34*9,		/* D = cyl 162 thru 213 */
69 	   55936,     214*34*9,		/* E = cyl 214 thru 396 */
70 	  182988,     397*34*9,		/* F = cyl 397 thru 994 */
71 	  254898,     162*34*9,		/* G = cyl 162 thru 994 */
72 	       0,	     0,		/* H	Not use		*/
73 	};
74 /* END sizes */
75 
76 /*************************/
77 /* device specifications */
78 /*************************/
79 struct sdst sdst_unknown =
80  /*   ns, nt,  nspc,  ncyl, rps, xxx,	    sizes */
81     {  1,  1,     1,     1, 60,  0,    calc_disk_sizes }; /* UNKNOWN_DISK */
82 struct sdst sdst_wren3_101 =
83     { 34,  5, 34* 5,   995, 60,  0,    wren3_101_sizes }; /* WREN3_101 */
84 struct sdst sdst_wren3_101_hh =
85     { 35,  5, 35* 5,  1022, 60,  0, wren3_101_hh_sizes }; /* WREN3_101_HH */
86 struct sdst sdst_wren3_182 =
87     { 34,  9, 34* 9,   995, 60,  0,    wren3_182_sizes }; /* WREN3_182 */
88 struct sdst sdst_wren3_182_old =
89     { 35,  9, 35* 9,   967, 60,  0,    wren3_182_sizes }; /* WREN3_182_OLD */
90 struct sdst sdst_wren4_286 =
91     { 52,  9, 52* 9,  1365, 60,  0,    calc_disk_sizes }; /* WREN4_286 */
92 struct sdst sdst_wren5_170_hh =
93     { 52,  5, 52* 5,  1544, 60,  0,    calc_disk_sizes }; /* WREN5_170_HH */
94 struct sdst sdst_wren6_415_hh =
95     { 70,  7, 70* 7,  1756, 60,  0,    calc_disk_sizes }; /* WREN6_415_HH */
96 struct sdst sdst_st1480n =
97     { 70,  9, 70* 9,  1476, 74,  0,    calc_disk_sizes }; /* ST1480N */
98 struct sdst sdst_dk515c_78 =
99     { 69, 14, 69*14,  1356, 60,  0,    calc_disk_sizes }; /* DK515C_78 */
100 struct sdst sdst_dk516c_16 =
101     { 81, 15, 81*15,  2165, 60,  0,    calc_disk_sizes }; /* DK516C_16 */
102 struct sdst sdst_dk312c_20 =
103     { 38, 10, 38*10,  1076, 60,  0,    calc_disk_sizes }; /* DK312C_20 */
104 struct sdst sdst_dk312c_25 =
105     { 38, 12, 38*12,  1076, 60,  0,    calc_disk_sizes }; /* DK312C_25 */
106 struct sdst sdst_xt_8760s =
107     { 54, 15, 54*15,  1632, 60,  0,    calc_disk_sizes }; /* XT_8760S */
108 struct sdst sdst_srd2040z =
109     { 33,  4, 33* 4,   608, 60,  0,    calc_disk_sizes }; /* SRD-2040Z */
110 struct sdst sdst_smo_s501 =
111     { 31,  1, 31* 1, 18678, 40,  0,    calc_disk_sizes }; /* SMO_S501 */
112 struct sdst sdst_smo_s501_iso =
113     { 31,  1, 31* 1, 18646, 40,  0,    calc_disk_sizes }; /* SMO_S501_ISO */
114 
115 /***************************************************************/
116 
117 /************************************/
118 /* normal Error Recovery Parameters */
119 /************************************/
120 char erp_wren3_old[] =					/* WREN3 old firmware */
121     { SDM_PG_ERR, 0x06, SDM_DCR, 0, 0x08, 0, 0, 0xff };
122 char erp_wren3[] =					/* WREN3 */
123     { SDM_PG_ERR, 0x06, SDM_AWRE|SDM_DCR, 0x09, 0x08, 0, 0, 0xff };
124 char erp_wren4567[] =					/* WREN4567 */
125     { SDM_PG_ERR, 0x06, SDM_AWRE|SDM_DCR, 0x09, 0x0b, 0, 0, 0xff };
126 char erp_st1480n[] =					/* ST1480N */
127     { SDM_PG_ERR, 0x0a, SDM_AWRE|SDM_DCR, 0x09, 0x0b, 0, 0, 0, 3, 0, 0xff, 0xff };
128 char erp_dk515c_78[] =					/* DK515C_78 */
129     { SDM_PG_ERR, 0x06, SDM_DCR, 0x0a, 0, 0, 0, 0 };
130 char erp_dk516c_16[] =					/* DK516C_16 */
131     { SDM_PG_ERR, 0x0a, SDM_DCR, 0x0a, 0, 0, 0, 0, 0x0a, 0, 0x01, 0xf4 };
132 char erp_dk312c_25[] =					/* DK312C_25 */
133     { SDM_PG_ERR, 0x06, SDM_DCR, 0x0a, 0, 0, 0, 0 };
134 char erp_xt_8760s[] =					/* XT_8760S */
135     { SDM_PG_ERR, 0x06, SDM_DCR, 0x03, 0x0b, 0, 0, 0xff };
136 char erp_srd2040z[] =					/* SRD-2040Z */
137     { SDM_PG_ERR, 0x06, SDM_DCR, 0x03, 0x13, 0, 0, 0 };
138 char erp_smo_s501[] =					/* SMO_S501 */
139     { SDM_PG_ERR, 0x06, SDM_AWRE, 0x02, 0, 0, 0, 0 };
140 
141 /*********************************/
142 /* max Error Recovery Parameters */
143 /*********************************/
144 char max_erp_wren3_old[] =				/* WREN3 old firmware */
145     { SDM_PG_ERR, 0x06, 0, 0x1b, 0x08, 0, 0, 0xff };
146 char max_erp_wren3[] =					/* WREN3 */
147     { SDM_PG_ERR, 0x06, 0, 0x1b, 0x08, 0, 0, 0xff };
148 char max_erp_wren4567[] =				/* WREN4567 */
149     { SDM_PG_ERR, 0x06, SDM_AWRE, 0x1b, 0x0b, 0, 0, 0xff };
150 char max_erp_st1480n[] =				/* ST1480N */
151     { SDM_PG_ERR, 0x0a, SDM_AWRE, 0x1b, 0x0b, 0, 0, 0, 3, 0, 0xff, 0xff };
152 char max_erp_dk515c_78[] =				/* DK515C_78 */
153     { SDM_PG_ERR, 0x06, 0, 0x10, 0, 0, 0, 0 };
154 char max_erp_dk516c_16[] =				/* DK516C_16 */
155     { SDM_PG_ERR, 0x0a, 0, 0x10, 0, 0, 0, 0, 0x10, 0, 0xff, 0xff };
156 char max_erp_dk312c_25[] =				/* DK312C_25 */
157     { SDM_PG_ERR, 0x06, 0, 0x10, 0, 0, 0, 0 };
158 char max_erp_xt_8760s[] =				/* XT_8760S */
159     { SDM_PG_ERR, 0x06, 0, 0x1b, 0x0b, 0, 0, 0xff };
160 char max_erp_srd2040z[] =				/* SRD-2040Z */
161     { SDM_PG_ERR, 0x06, SDM_ARRE|SDM_AWRE, 0x1b, 0x13, 0, 0, 0 };
162 char max_erp_smo_s501[] =				/* SMO_S501 */
163     { SDM_PG_ERR, 0x06, SDM_AWRE, 0x10, 0, 0, 0, 0 };
164 
165 /********************/
166 /* Other Parameters */
167 /********************/
168 char cache_off_wren4old[] =	/* WREN4 old */
169     { SDM_PG_CACHE2, 0x0e, 0x01, 0xff, 0x34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
170 char cache_on_wren4567[] =	/* WREN4567 */
171     { SDM_PG_CACHE2, 0x0e, 0x11, 0xff, 0x34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
172 char cache1_on_st1480n[] =	/* ST1480N */
173     { SDM_PG_CACHE1, 0x0a, 0, 0, 0, 0, 0, 0, 0, 0x78, 0, 0 };
174 char cache2_on_st1480n[] =	/* ST1480N */
175     { SDM_PG_CACHE2, 0x0e, 0x51, 0x00, 0x00, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
176 char cache_on_dk515c_78[] =	/* DK515C_78 */
177     { SDM_PG_CACHE1, 0x0a, 0, 0, 0x02, 0, 0, 0, 0, 0x60, 0, 0x60 };
178 char modif_dk515c_78[] =	/* DK515C_78 */
179     { SDM_PG_MODIFY, 0x0a, 0, 0, 0, 0, SDM_RING|0x01, SDM_ESDT, 0, 0, 0, 0 };
180 char cache_on_dk516c_16[] =	/* DK516C_16 */
181     { SDM_PG_CACHE1, 0x0a, 0, 0, 0x08, 0, 0, 0, 0, 0x80, 0, 0x80 };
182 char modif_dk516c_16[] =	/* DK516C_16 */
183     { SDM_PG_MODIFY, 0x1e, 0, 0, 0, 0, 4, SDM_STOD|SDM_ESDT, 0, 0, 0, 0x0e,
184 	0xff, 0, 0, 0, 0x50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
185 char cache_on_dk312c[] =	/* DK312C_25 */
186     { SDM_PG_CACHE1, 0x0a, 0, 0, 0x02, 0, 0, 0, 0, 0x60, 0, 0x60 };
187 char cache_off_dk312c[] =	/* DK312C_25 */
188     { SDM_PG_CACHE1, 0x0a, 1, 0, 0x02, 0, 0, 0, 0, 0x60, 0, 0x60 };
189 char cache_on_xt_8760s[] =	/* XT_8760S */
190     { SDM_PG_CACHE2, 0x0e, 0x11, 0xff, 0x59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
191 
192 /************** OTHER PAGES SPECIFICATIONS ********************/
193 
194 char *other_wren4old[] =   { cache_off_wren4old, NULL };
195 char *other_wren4567[] =   { cache_on_wren4567,  NULL };
196 char *other_st1480n[] =    { cache1_on_st1480n, cache2_on_st1480n,  NULL };
197 char *other_dk515c_78[] =  { cache_on_dk515c_78, modif_dk515c_78, NULL };
198 char *other_dk516c_16[] =  { cache_on_dk516c_16, modif_dk516c_16, NULL };
199 char *other_dk312c_on[] =  { cache_on_dk312c,    modif_dk515c_78, NULL };
200 char *other_dk312c_off[] = { cache_off_dk312c,   modif_dk515c_78, NULL };
201 char *other_xt_8760s[] =   { cache_on_xt_8760s,  NULL };
202 
203 /**************************************************************/
204 
205 /*************************/
206 /*			 */
207 /* SD device information */
208 /*			 */
209 /*************************/
210 struct sddevinfo sddevinfo[] = {
211     {					/* UNKNOWN DISK */
212 	1,				/* identify length */
213 	"*",				/* vendor & product ID */
214 	revs_all,			/* revision */
215 	-1,				/* drive capacity */
216 	"UNKNOWN",			/* device nickname */
217 	UNKNOWN_DISK,			/* device type code */
218 	0,				/* firmware spec */
219 	0,				/* synchronous transfer period */
220 	0,				/* synchronous transfer offset */
221 	NULL,				/* device setup commands */
222 	&sdst_unknown,			/* device specifications */
223 	NULL,				/* normal Error Recovery Parameters */
224 	NULL,				/* max Error Recovery Parameters */
225 	NULL,				/* Other Parameters */
226 	FMT_DLF_PHYS,			/* Format options */
227     },
228     {					/* CDC WREN III 94161-5 */
229 	15,				/* identify length */
230 	"CDC     94161-5",		/* vendor & product ID */
231 	"6296",				/* revision */
232 	0x029509,			/* drive capacity */
233 	"hd101",			/* device nickname */
234 	WREN3_101,			/* device type code */
235 	FIRM_AWRE,			/* firmware spec */
236 	0,				/* synchronous transfer period */
237 	0,				/* synchronous transfer offset */
238 	NULL,				/* device setup commands */
239 	&sdst_wren3_101,		/* device specifications */
240 	erp_wren3,			/* normal Error Recovery Parameters */
241 	max_erp_wren3,			/* max Error Recovery Parameters */
242 	NULL,				/* Other Parameters */
243 	0,				/* Format options */
244     },
245     {					/* CDC WREN III 94161-86 */
246 	16,				/* identify length */
247 	"CDC     94161-86",		/* vendor & product ID */
248 	"6296",				/* revision */
249 	0x029509,			/* drive capacity */
250 	"hd101",			/* device nickname */
251 	WREN3_101,			/* device type code */
252 	FIRM_AWRE,			/* firmware spec */
253 	0,				/* synchronous transfer period */
254 	0,				/* synchronous transfer offset */
255 	NULL,				/* device setup commands */
256 	&sdst_wren3_101,		/* device specifications */
257 	erp_wren3,			/* normal Error Recovery Parameters */
258 	max_erp_wren3,			/* max Error Recovery Parameters */
259 	NULL,				/* Other Parameters */
260 	0,				/* Format options */
261     },
262     {					/* CDC WREN III 94161-9 */
263 	15,				/* identify length */
264 	"CDC     94161-9",		/* vendor & product ID */
265 	"6296",				/* revision */
266 	0x04a5dd,			/* drive capacity */
267 	"hd182",			/* device nickname */
268 	WREN3_182,			/* device type code */
269 	FIRM_AWRE,			/* firmware spec */
270 	0,				/* synchronous transfer period */
271 	0,				/* synchronous transfer offset */
272 	NULL,				/* device setup commands */
273 	&sdst_wren3_182,		/* device specifications */
274 	erp_wren3,			/* normal Error Recovery Parameters */
275 	max_erp_wren3,			/* max Error Recovery Parameters */
276 	NULL,				/* Other Parameters */
277 	0,				/* Format options */
278     },
279     {					/* CDC WREN III 94161-155 */
280 	17,				/* identify length */
281 	"CDC     94161-155",		/* vendor & product ID */
282 	"6296",				/* revision */
283 	0x04a556,			/* drive capacity */
284 	"hd182",			/* device nickname */
285 	WREN3_182,			/* device type code */
286 	FIRM_AWRE,			/* firmware spec */
287 	0,				/* synchronous transfer period */
288 	0,				/* synchronous transfer offset */
289 	NULL,				/* device setup commands */
290 	&sdst_wren3_182,		/* device specifications */
291 	erp_wren3,			/* normal Error Recovery Parameters */
292 	max_erp_wren3,			/* max Error Recovery Parameters */
293 	NULL,				/* Other Parameters */
294 	0,				/* Format options */
295     },
296     {					/* CDC WREN III 94161-155 */
297 	17,				/* identify length */
298 	"CDC     94161-155",		/* vendor & product ID */
299 	"6296",				/* revision */
300 	0x04a5dd,			/* drive capacity */
301 	"hd182",			/* device nickname */
302 	WREN3_182,			/* device type code */
303 	FIRM_AWRE,			/* firmware spec */
304 	0,				/* synchronous transfer period */
305 	0,				/* synchronous transfer offset */
306 	NULL,				/* device setup commands */
307 	&sdst_wren3_182,		/* device specifications */
308 	erp_wren3,			/* normal Error Recovery Parameters */
309 	max_erp_wren3,			/* max Error Recovery Parameters */
310 	NULL,				/* Other Parameters */
311 	0,				/* Format options */
312     },
313     {					/* CDC WREN III 94161-156 */
314 	17,				/* identify length */
315 	"CDC     94161-156",		/* vendor & product ID */
316 	"6296",				/* revision */
317 	0x04a5dd,			/* drive capacity */
318 	"hd182",			/* device nickname */
319 	WREN3_182,			/* device type code */
320 	FIRM_AWRE,			/* firmware spec */
321 	0,				/* synchronous transfer period */
322 	0,				/* synchronous transfer offset */
323 	NULL,				/* device setup commands */
324 	&sdst_wren3_182,		/* device specifications */
325 	erp_wren3,			/* normal Error Recovery Parameters */
326 	max_erp_wren3,			/* max Error Recovery Parameters */
327 	NULL,				/* Other Parameters */
328 	0,				/* Format options */
329     },
330     {					/* CDC WREN III 94161-5 */
331 	15,				/* identify length */
332 	"CDC     94161-5",		/* vendor & product ID */
333 	revs_all,			/* revision */
334 	0x029509,			/* drive capacity */
335 	"hd101",			/* device nickname */
336 	WREN3_101,			/* device type code */
337 	0,				/* firmware spec */
338 	0,				/* synchronous transfer period */
339 	0,				/* synchronous transfer offset */
340 	NULL,				/* device setup commands */
341 	&sdst_wren3_101,		/* device specifications */
342 	erp_wren3_old,			/* normal Error Recovery Parameters */
343 	max_erp_wren3_old,		/* max Error Recovery Parameters */
344 	NULL,				/* Other Parameters */
345 	0,				/* Format options */
346     },
347     {					/* CDC WREN III 94161-86 */
348 	16,				/* identify length */
349 	"CDC     94161-86",		/* vendor & product ID */
350 	revs_all,			/* revision */
351 	0x029509,			/* drive capacity */
352 	"hd101",			/* device nickname */
353 	WREN3_101,			/* device type code */
354 	0,				/* firmware spec */
355 	0,				/* synchronous transfer period */
356 	0,				/* synchronous transfer offset */
357 	NULL,				/* device setup commands */
358 	&sdst_wren3_101,		/* device specifications */
359 	erp_wren3_old,			/* normal Error Recovery Parameters */
360 	max_erp_wren3_old,		/* max Error Recovery Parameters */
361 	NULL,				/* Other Parameters */
362 	0,				/* Format options */
363     },
364     {					/* CDC WREN III 94161-9 */
365 	15,				/* identify length */
366 	"CDC     94161-9",		/* vendor & product ID */
367 	revs_all,			/* revision */
368 	0x04a5dd,			/* drive capacity */
369 	"hd182",			/* device nickname */
370 	WREN3_182,			/* device type code */
371 	0,				/* firmware spec */
372 	0,				/* synchronous transfer period */
373 	0,				/* synchronous transfer offset */
374 	NULL,				/* device setup commands */
375 	&sdst_wren3_182,		/* device specifications */
376 	erp_wren3_old,			/* normal Error Recovery Parameters */
377 	max_erp_wren3_old,		/* max Error Recovery Parameters */
378 	NULL,				/* Other Parameters */
379 	0,				/* Format options */
380     },
381     {					/* CDC WREN III 94161-155 */
382 	17,				/* identify length */
383 	"CDC     94161-155",		/* vendor & product ID */
384 	revs_all,			/* revision */
385 	0x04a556,			/* drive capacity */
386 	"hd182",			/* device nickname */
387 	WREN3_182,			/* device type code */
388 	0,				/* firmware spec */
389 	0,				/* synchronous transfer period */
390 	0,				/* synchronous transfer offset */
391 	NULL,				/* device setup commands */
392 	&sdst_wren3_182,		/* device specifications */
393 	erp_wren3_old,			/* normal Error Recovery Parameters */
394 	max_erp_wren3_old,		/* max Error Recovery Parameters */
395 	NULL,				/* Other Parameters */
396 	0,				/* Format options */
397     },
398     {					/* CDC WREN III 94161-155 */
399 	17,				/* identify length */
400 	"CDC     94161-155",		/* vendor & product ID */
401 	revs_all,			/* revision */
402 	0x04a5dd,			/* drive capacity */
403 	"hd182",			/* device nickname */
404 	WREN3_182,			/* device type code */
405 	0,				/* firmware spec */
406 	0,				/* synchronous transfer period */
407 	0,				/* synchronous transfer offset */
408 	NULL,				/* device setup commands */
409 	&sdst_wren3_182,		/* device specifications */
410 	erp_wren3_old,			/* normal Error Recovery Parameters */
411 	max_erp_wren3_old,		/* max Error Recovery Parameters */
412 	NULL,				/* Other Parameters */
413 	0,				/* Format options */
414     },
415     {					/* CDC WREN III 94161-156 */
416 	17,				/* identify length */
417 	"CDC     94161-156",		/* vendor & product ID */
418 	revs_all,			/* revision */
419 	0x04a5dd,			/* drive capacity */
420 	"hd182",			/* device nickname */
421 	WREN3_182,			/* device type code */
422 	0,				/* firmware spec */
423 	0,				/* synchronous transfer period */
424 	0,				/* synchronous transfer offset */
425 	NULL,				/* device setup commands */
426 	&sdst_wren3_182,		/* device specifications */
427 	erp_wren3_old,			/* normal Error Recovery Parameters */
428 	max_erp_wren3_old,		/* max Error Recovery Parameters */
429 	NULL,				/* Other Parameters */
430 	0,				/* Format options */
431     },
432     {					/* CDC WREN III HH 94211-5 */
433 	15,				/* identify length */
434 	"CDC     94211-5",		/* vendor & product ID */
435 	revs_all,			/* revision */
436 	0x02baa2,			/* drive capacity */
437 	"hd101_hh",			/* device nickname */
438 	WREN3_101_HH,			/* device type code */
439 	0,				/* firmware spec */
440 	0,				/* synchronous transfer period */
441 	0,				/* synchronous transfer offset */
442 	NULL,				/* device setup commands */
443 	&sdst_wren3_101_hh,		/* device specifications */
444 	erp_wren3_old,			/* normal Error Recovery Parameters */
445 	max_erp_wren3_old,		/* max Error Recovery Parameters */
446 	NULL,				/* Other Parameters */
447 	0,				/* Format options */
448     },
449     {					/* CDC WREN III HH 94216-5 */
450 	15,				/* identify length */
451 	"CDC     94216-5",		/* vendor & product ID */
452 	revs_all,			/* revision */
453 	0x02baa2,			/* drive capacity */
454 	"hd101_hh",			/* device nickname */
455 	WREN3_101_HH,			/* device type code */
456 	FIRM_AWRE,			/* firmware spec */
457 	0,				/* synchronous transfer period */
458 	0,				/* synchronous transfer offset */
459 	NULL,				/* device setup commands */
460 	&sdst_wren3_101_hh,		/* device specifications */
461 	erp_wren3,			/* normal Error Recovery Parameters */
462 	max_erp_wren3,			/* max Error Recovery Parameters */
463 	NULL,				/* Other Parameters */
464 	0,				/* Format options */
465     },
466     {					/* CDC WREN IV 94171-9 */
467 	15,				/* identify length */
468 	"CDC     94171-9",		/* vendor & product ID */
469 	"6981",				/* revision */
470 	0x08f40c,			/* drive capacity */
471 	"hd286",			/* device nickname */
472 	WREN4_286,			/* device type code */
473 	0,				/* firmware spec */
474 	0x4b,				/* synchronous transfer period */
475 	0,				/* synchronous transfer offset */
476 	NULL,				/* device setup commands */
477 	&sdst_wren4_286,		/* device specifications */
478 	erp_wren4567,			/* normal Error Recovery Parameters */
479 	max_erp_wren4567,		/* max Error Recovery Parameters */
480 	other_wren4old,			/* Other Parameters */
481 	FMT_DLF_PHYS,			/* Format options */
482     },
483     {					/* CDC WREN IV 94171-9 */
484 	15,				/* identify length */
485 	"CDC     94171-9",		/* vendor & product ID */
486 	"8794",				/* revision */
487 	0x08f40c,			/* drive capacity */
488 	"hd286",			/* device nickname */
489 	WREN4_286,			/* device type code */
490 	0,				/* firmware spec */
491 	0x4b,				/* synchronous transfer period */
492 	0,				/* synchronous transfer offset */
493 	NULL,				/* device setup commands */
494 	&sdst_wren4_286,		/* device specifications */
495 	erp_wren4567,			/* normal Error Recovery Parameters */
496 	max_erp_wren4567,		/* max Error Recovery Parameters */
497 	other_wren4old,			/* Other Parameters */
498 	FMT_DLF_PHYS,			/* Format options */
499     },
500     {					/* CDC WREN IV 94171-9 */
501 	15,				/* identify length */
502 	"CDC     94171-9",		/* vendor & product ID */
503 	"8814",				/* revision */
504 	0x08f40c,			/* drive capacity */
505 	"hd286",			/* device nickname */
506 	WREN4_286,			/* device type code */
507 	0,				/* firmware spec */
508 	0x4b,				/* synchronous transfer period */
509 	0,				/* synchronous transfer offset */
510 	NULL,				/* device setup commands */
511 	&sdst_wren4_286,		/* device specifications */
512 	erp_wren4567,			/* normal Error Recovery Parameters */
513 	max_erp_wren4567,		/* max Error Recovery Parameters */
514 	other_wren4old,			/* Other Parameters */
515 	FMT_DLF_PHYS,			/* Format options */
516     },
517     {					/* CDC WREN IV 94171-9 */
518 	15,				/* identify length */
519 	"CDC     94171-9",		/* vendor & product ID */
520 	revs_all,			/* revision */
521 	0x08f40c,			/* drive capacity */
522 	"hd286",			/* device nickname */
523 	WREN4_286,			/* device type code */
524 	FIRM_CACHE_ON|FIRM_SYNCTR|FIRM_AWRE,	/* firmware spec */
525 	0x4b,				/* synchronous transfer period */
526 	0,				/* synchronous transfer offset */
527 	NULL,				/* device setup commands */
528 	&sdst_wren4_286,		/* device specifications */
529 	erp_wren4567,			/* normal Error Recovery Parameters */
530 	max_erp_wren4567,		/* max Error Recovery Parameters */
531 	other_wren4567,			/* Other Parameters */
532 	FMT_DLF_PHYS,			/* Format options */
533     },
534     {					/* CDC WREN V HH 94221-5 */
535 	15,				/* identify length */
536 	"CDC     94221-5",		/* vendor & product ID */
537 	revs_all,			/* revision */
538 	0x05564a,			/* drive capacity */
539 	"hd170_hh",			/* device nickname */
540 	WREN5_170_HH,			/* device type code */
541 	FIRM_CACHE_ON|FIRM_SYNCTR|FIRM_AWRE,	/* firmware spec */
542 	0x3f,				/* MIN synchronous transfer period */
543 	15,				/* MAX synchronous transfer offset */
544 	NULL,				/* device setup commands */
545 	&sdst_wren5_170_hh,		/* device specifications */
546 	erp_wren4567,			/* normal Error Recovery Parameters */
547 	max_erp_wren4567,		/* max Error Recovery Parameters */
548 	other_wren4567,			/* Other Parameters */
549 	0,				/* Format options */
550     },
551     {					/* IMPRIMIS WREN VI HH 94241-7 */
552 	15,				/* identify length */
553 	"IMPRIMIS94241-7",		/* vendor & product ID */
554 	"0207",				/* revision */
555 	0xcfa13,			/* drive capacity */
556 	"hd415_hh",			/* device nickname */
557 	WREN6_415_HH,			/* device type code */
558 	FIRM_CACHE_ON|FIRM_SYNCTR|FIRM_AWRE,	/* firmware spec */
559 	0x35,				/* MIN synchronous transfer period */
560 	15,				/* MAX synchronous transfer offset */
561 	NULL,				/* device setup commands */
562 	&sdst_wren6_415_hh,		/* device specifications */
563 	erp_wren4567,			/* normal Error Recovery Parameters */
564 	max_erp_wren4567,		/* max Error Recovery Parameters */
565 	other_wren4567,			/* Other Parameters */
566 	FMT_DLF_PHYS,			/* Format options */
567     },
568     {					/* SEAGATE ST1480N */
569 	15,				/* identify length */
570 	"SEAGATE ST1480 ",		/* vendor & product ID */
571 	revs_all,			/* revision */
572 	0xcb40f,			/* drive capacity */
573 	"hd406",			/* device nickname */      /* ???? */
574 	ST1480N,			/* device type code */
575 	FIRM_CACHE_ON|FIRM_AWRE,	/* firmware spec */
576 	0x35,				/* MIN synchronous transfer period */
577 	0,				/* MAX synchronous transfer offset */
578 	NULL,				/* device setup commands */
579 	&sdst_st1480n,			/* device specifications */
580 	erp_st1480n,			/* normal Error Recovery Parameters */
581 	max_erp_st1480n,		/* max Error Recovery Parameters */
582 	other_st1480n,			/* Other Parameters */
583 	FMT_DLF_PHYS,			/* Format options */
584     },
585     {					/* HITACHI DK515C-78 */
586 	14,				/* identify length */
587 	"HITACHI DK515C",		/* vendor & product ID */
588 	revs_all,			/* revision */
589 	0x13fcc8,			/* drive capacity */
590 	"hd639",			/* device nickname */
591 	DK515C_78,			/* device type code */
592 	FIRM_CACHE_ON|FIRM_SYNCTR,	/* firmware spec */
593 	0x3e,				/* MIN synchronous transfer period */
594 	8,				/* MAX synchronous transfer offset */
595 	NULL,				/* device setup commands */
596 	&sdst_dk515c_78,		/* device specifications */
597 	erp_dk515c_78,			/* normal Error Recovery Parameters */
598 	max_erp_dk515c_78,		/* max Error Recovery Parameters */
599 	other_dk515c_78,		/* Other Parameters */
600 	FMT_DLF_BLK,			/* Format options */
601     },
602     {					/* HITACHI DK516C-16 */
603 	14,				/* identify length */
604 	"HITACHI DK516C",		/* vendor & product ID */
605 	revs_all,			/* revision */
606 	0x2800a4,			/* drive capacity */
607 	"hd1280",			/* device nickname */
608 	DK516C_16,			/* device type code */
609 	FIRM_CACHE_ON|FIRM_SYNCTR,	/* firmware spec */
610 	0x3e,				/* synchronous transfer period */
611 	15,				/* synchronous transfer offset */
612 	NULL,				/* device setup commands */
613 	&sdst_dk516c_16,		/* device specifications */
614 	erp_dk516c_16,			/* normal Error Recovery Parameters */
615 	max_erp_dk516c_16,		/* max Error Recovery Parameters */
616 	other_dk516c_16,		/* Other Parameters */
617 	FMT_DLF_BLK,			/* Format options */
618     },
619     {					/* HITACHI DK312C-20 */
620 	14,				/* identify length */
621 	"HITACHI DK312C",		/* vendor & product ID */
622 	"CM73",				/* revision */
623 	0x063d30,			/* drive capacity */
624 	"hd199",			/* device nickname */
625 	DK312C_20,			/* device type code */
626 	FIRM_CACHE_ON|FIRM_SYNCTR,	/* firmware spec */
627 	0x3e,				/* MIN synchronous transfer period */
628 	7,				/* MAX synchronous transfer offset */
629 	0,				/* synchronous transfer register set */
630 	&sdst_dk312c_20,		/* device specifications */
631 	erp_dk312c_25,			/* normal Error Recovery Parameters */
632 	max_erp_dk312c_25,		/* max Error Recovery Parameters */
633 	other_dk312c_off,		/* Other Parameters */
634 	FMT_DLF_BLK,			/* Format options */
635     },
636     {					/* HITACHI DK312C-25 */
637 	14,				/* identify length */
638 	"HITACHI DK312C",		/* vendor & product ID */
639 	"CM73",				/* revision */
640 	0x077ca0,			/* drive capacity */
641 	"hd239",			/* device nickname */
642 	DK312C_25,			/* device type code */
643 	FIRM_CACHE_ON|FIRM_SYNCTR,	/* firmware spec */
644 	0x3e,				/* MIN synchronous transfer period */
645 	7,				/* MAX synchronous transfer offset */
646 	NULL,				/* device setup commands */
647 	&sdst_dk312c_25,		/* device specifications */
648 	erp_dk312c_25,			/* normal Error Recovery Parameters */
649 	max_erp_dk312c_25,		/* max Error Recovery Parameters */
650 	other_dk312c_off,		/* Other Parameters */
651 	FMT_DLF_BLK,			/* Format options */
652     },
653     {					/* HITACHI DK312C-20 */
654 	14,				/* identify length */
655 	"HITACHI DK312C",		/* vendor & product ID */
656 	"CM76",				/* revision */
657 	0x063d30,			/* drive capacity */
658 	"hd199",			/* device nickname */
659 	DK312C_20,			/* device type code */
660 	FIRM_CACHE_ON|FIRM_SYNCTR,	/* firmware spec */
661 	0x3e,				/* MIN synchronous transfer period */
662 	7,				/* MAX synchronous transfer offset */
663 	0,				/* synchronous transfer register set */
664 	&sdst_dk312c_20,		/* device specifications */
665 	erp_dk312c_25,			/* normal Error Recovery Parameters */
666 	max_erp_dk312c_25,		/* max Error Recovery Parameters */
667 	other_dk312c_off,		/* Other Parameters */
668 	FMT_DLF_BLK,			/* Format options */
669     },
670     {					/* HITACHI DK312C-25 */
671 	14,				/* identify length */
672 	"HITACHI DK312C",		/* vendor & product ID */
673 	"CM76",				/* revision */
674 	0x077ca0,			/* drive capacity */
675 	"hd239",			/* device nickname */
676 	DK312C_25,			/* device type code */
677 	FIRM_CACHE_ON|FIRM_SYNCTR,	/* firmware spec */
678 	0x3e,				/* MIN synchronous transfer period */
679 	7,				/* MAX synchronous transfer offset */
680 	NULL,				/* device setup commands */
681 	&sdst_dk312c_25,		/* device specifications */
682 	erp_dk312c_25,			/* normal Error Recovery Parameters */
683 	max_erp_dk312c_25,		/* max Error Recovery Parameters */
684 	other_dk312c_off,		/* Other Parameters */
685 	FMT_DLF_BLK,			/* Format options */
686     },
687     {					/* HITACHI DK312C-20 */
688 	14,				/* identify length */
689 	"HITACHI DK312C",		/* vendor & product ID */
690 	revs_all,			/* revision */
691 	0x063d30,			/* drive capacity */
692 	"hd199",			/* device nickname */
693 	DK312C_20,			/* device type code */
694 	FIRM_CACHE_ON|FIRM_SYNCTR,	/* firmware spec */
695 	0x3e,				/* MIN synchronous transfer period */
696 	7,				/* MAX synchronous transfer offset */
697 	0,				/* synchronous transfer register set */
698 	&sdst_dk312c_20,		/* device specifications */
699 	erp_dk312c_25,			/* normal Error Recovery Parameters */
700 	max_erp_dk312c_25,		/* max Error Recovery Parameters */
701 	other_dk312c_on,		/* Other Parameters */
702 	FMT_DLF_BLK,			/* Format options */
703     },
704     {					/* HITACHI DK312C-25 */
705 	14,				/* identify length */
706 	"HITACHI DK312C",		/* vendor & product ID */
707 	revs_all,			/* revision */
708 	0x077ca0,			/* drive capacity */
709 	"hd239",			/* device nickname */
710 	DK312C_25,			/* device type code */
711 	FIRM_CACHE_ON|FIRM_SYNCTR,	/* firmware spec */
712 	0x3e,				/* MIN synchronous transfer period */
713 	7,				/* MAX synchronous transfer offset */
714 	NULL,				/* device setup commands */
715 	&sdst_dk312c_25,		/* device specifications */
716 	erp_dk312c_25,			/* normal Error Recovery Parameters */
717 	max_erp_dk312c_25,		/* max Error Recovery Parameters */
718 	other_dk312c_on,		/* Other Parameters */
719 	FMT_DLF_BLK,			/* Format options */
720     },
721     {					/* MAXTOR XT-8760S B5A */
722 	16,				/* identify length */
723 	"MAXTOR  XT-8760S",		/* vendor & product ID */
724 	"B5A ",				/* revision */
725 	0x13bc99,			/* drive capacity */
726 	"xt_8760s",			/* device nickname */
727 	XT_8760S,			/* device type code */
728 	FIRM_CACHE_ON|FIRM_SYNCTR,	/* firmware spec */
729 	0x35,				/* MIN synchronous transfer period */
730 	15,				/* MAX synchronous transfer offset */
731 	NULL,				/* device setup commands */
732 	&sdst_xt_8760s,			/* device specifications */
733 	erp_xt_8760s,			/* normal Error Recovery Parameters */
734 	max_erp_xt_8760s,		/* max Error Recovery Parameters */
735 	other_xt_8760s,			/* Other Parameters */
736 	FMT_DLF_PHYS,			/* Format options */
737     },
738     {					/* MAXTOR XT-8760S B3C */
739 	16,				/* identify length */
740 	"MAXTOR  XT-8760S",		/* vendor & product ID */
741 	"B3C ",				/* revision */
742 	0x13bc99,			/* drive capacity */
743 	"xt_8760s",			/* device nickname */
744 	XT_8760S,			/* device type code */
745 	0,				/* firmware spec */
746 	0,				/* synchronous transfer period */
747 	0,				/* synchronous transfer offset */
748 	NULL,				/* device setup commands */
749 	&sdst_xt_8760s,			/* device specifications */
750 	erp_xt_8760s,			/* normal Error Recovery Parameters */
751 	max_erp_xt_8760s,		/* max Error Recovery Parameters */
752 	NULL,				/* Other Parameters */
753 	FMT_DLF_PHYS,			/* Format options */
754     },
755     {					/* SONY SRD2040Z */
756 	16,				/* identify length */
757 	"SONY    SRD2040Z",		/* vendor & product ID */
758 	revs_all,			/* revision */
759 	0x014124,			/* drive capacity */
760 	"hd41",				/* device nickname */
761 	SRD_2040Z,			/* device type code */
762 	0,				/* firmware spec */
763 	0,				/* synchronous transfer period */
764 	0,				/* synchronous transfer offset */
765 	NULL,				/* device setup commands */
766 	&sdst_srd2040z,			/* device specifications */
767 	erp_srd2040z,			/* normal Error Recovery Parameters */
768 	max_erp_srd2040z,		/* max Error Recovery Parameters */
769 	NULL,				/* Other Parameters */
770 	FMT_DLF_BLK,			/* Format options */
771     },
772     {					/* SONY SMO-S501 SONY format */
773 	16,				/* identify length */
774 	"SONY    SMO-C501",		/* vendor & product ID */
775 	"1.??",				/* revision */
776 	0x08d5c0,			/* drive capacity */
777 	"od282",			/* device nickname */
778 	SMO_S501,			/* device type code */
779 	FIRM_AWRE,			/* firmware spec */
780 	0,				/* synchronous transfer period */
781 	0,				/* synchronous transfer offset */
782 	NULL,				/* device setup commands */
783 	&sdst_smo_s501,			/* device specifications */
784 	erp_smo_s501,			/* normal Error Recovery Parameters */
785 	max_erp_smo_s501,		/* max Error Recovery Parameters */
786 	NULL,				/* Other Parameters */
787 	FMT_DLF_PHYS,			/* Format options */
788     },
789     {					/* SONY SMO-S501 ISO format */
790 	16,				/* identify length */
791 	"SONY    SMO-C501",		/* vendor & product ID */
792 	"2.??",				/* revision */
793 	0x08cde7,			/* drive capacity */
794 	"od282iso",			/* device nickname */
795 	SMO_S501_ISO2,			/* device type code */
796 	FIRM_AWRE,			/* firmware spec */
797 	0,				/* synchronous transfer period */
798 	0,				/* synchronous transfer offset */
799 	NULL,				/* device setup commands */
800 	&sdst_smo_s501_iso,		/* device specifications */
801 	erp_smo_s501,			/* normal Error Recovery Parameters */
802 	max_erp_smo_s501,		/* max Error Recovery Parameters */
803 	NULL,				/* Other Parameters */
804 	FMT_DLF_PHYS,			/* Format options */
805     },
806     {					/* SONY SMO-S501 ISO format */
807 	16,				/* identify length */
808 	"SONY    SMO-C501",		/* vendor & product ID */
809 	"2.??",				/* revision */
810 	0x08d1e7,			/* drive capacity */
811 	"od282i",			/* device nickname */
812 	SMO_S501_ISO,			/* device type code */
813 	FIRM_AWRE,			/* firmware spec */
814 	0,				/* synchronous transfer period */
815 	0,				/* synchronous transfer offset */
816 	NULL,				/* device setup commands */
817 	&sdst_smo_s501_iso,		/* device specifications */
818 	erp_smo_s501,			/* normal Error Recovery Parameters */
819 	max_erp_smo_s501,		/* max Error Recovery Parameters */
820 	NULL,				/* Other Parameters */
821 	FMT_DLF_PHYS,			/* Format options */
822     },
823     {					/* SONY SMO-S501 SONY format */
824 	16,				/* identify length */
825 	"SONY    SMO-C501",		/* vendor & product ID */
826 	"2.??",				/* revision */
827 	0x08d5c0,			/* drive capacity */
828 	"od282",			/* device nickname */
829 	SMO_S501,			/* device type code */
830 	FIRM_AWRE,			/* firmware spec */
831 	0,				/* synchronous transfer period */
832 	0,				/* synchronous transfer offset */
833 	NULL,				/* device setup commands */
834 	&sdst_smo_s501,			/* device specifications */
835 	erp_smo_s501,			/* normal Error Recovery Parameters */
836 	max_erp_smo_s501,		/* max Error Recovery Parameters */
837 	NULL,				/* Other Parameters */
838 	FMT_DLF_PHYS,			/* Format options */
839     },
840     {					/* End of table */
841 	-1,
842     }
843 };
844 #endif /* NSD > 0 */
845