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