diff options
Diffstat (limited to 'Documentation/scsi/sym53c8xx_2.txt')
-rw-r--r-- | Documentation/scsi/sym53c8xx_2.txt | 1059 |
1 files changed, 1059 insertions, 0 deletions
diff --git a/Documentation/scsi/sym53c8xx_2.txt b/Documentation/scsi/sym53c8xx_2.txt new file mode 100644 index 000000000000..7f516cdcd262 --- /dev/null +++ b/Documentation/scsi/sym53c8xx_2.txt | |||
@@ -0,0 +1,1059 @@ | |||
1 | The Linux SYM-2 driver documentation file | ||
2 | |||
3 | Written by Gerard Roudier <groudier@free.fr> | ||
4 | 21 Rue Carnot | ||
5 | 95170 DEUIL LA BARRE - FRANCE | ||
6 | |||
7 | Updated by Matthew Wilcox <matthew@wil.cx> | ||
8 | |||
9 | 2004-10-09 | ||
10 | =============================================================================== | ||
11 | |||
12 | 1. Introduction | ||
13 | 2. Supported chips and SCSI features | ||
14 | 3. Advantages of this driver for newer chips. | ||
15 | 3.1 Optimized SCSI SCRIPTS | ||
16 | 3.2 New features appeared with the SYM53C896 | ||
17 | 4. Memory mapped I/O versus normal I/O | ||
18 | 5. Tagged command queueing | ||
19 | 6. Parity checking | ||
20 | 7. Profiling information | ||
21 | 8. Control commands | ||
22 | 8.1 Set minimum synchronous period | ||
23 | 8.2 Set wide size | ||
24 | 8.3 Set maximum number of concurrent tagged commands | ||
25 | 8.4 Set debug mode | ||
26 | 8.5 Set flag (no_disc) | ||
27 | 8.6 Set verbose level | ||
28 | 8.7 Reset all logical units of a target | ||
29 | 8.8 Abort all tasks of all logical units of a target | ||
30 | 9. Configuration parameters | ||
31 | 10. Boot setup commands | ||
32 | 10.1 Syntax | ||
33 | 10.2 Available arguments | ||
34 | 10.2.1 Default number of tagged commands | ||
35 | 10.2.2 Burst max | ||
36 | 10.2.3 LED support | ||
37 | 10.2.4 Differential mode | ||
38 | 10.2.5 IRQ mode | ||
39 | 10.2.6 Check SCSI BUS | ||
40 | 10.2.7 Suggest a default SCSI id for hosts | ||
41 | 10.2.8 Verbosity level | ||
42 | 10.2.9 Debug mode | ||
43 | 10.2.10 Settle delay | ||
44 | 10.2.11 Serial NVRAM | ||
45 | 10.2.12 Exclude a host from being attached | ||
46 | 10.3 Converting from old options | ||
47 | 10.4 SCSI BUS checking boot option | ||
48 | 11. SCSI problem troubleshooting | ||
49 | 15.1 Problem tracking | ||
50 | 15.2 Understanding hardware error reports | ||
51 | 12. Serial NVRAM support (by Richard Waltham) | ||
52 | 17.1 Features | ||
53 | 17.2 Symbios NVRAM layout | ||
54 | 17.3 Tekram NVRAM layout | ||
55 | |||
56 | =============================================================================== | ||
57 | |||
58 | 1. Introduction | ||
59 | |||
60 | This driver supports the whole SYM53C8XX family of PCI-SCSI controllers. | ||
61 | It also support the subset of LSI53C10XX PCI-SCSI controllers that are based | ||
62 | on the SYM53C8XX SCRIPTS language. | ||
63 | |||
64 | It replaces the sym53c8xx+ncr53c8xx driver bundle and shares its core code | ||
65 | with the FreeBSD SYM-2 driver. The `glue' that allows this driver to work | ||
66 | under Linux is contained in 2 files named sym_glue.h and sym_glue.c. | ||
67 | Other drivers files are intended not to depend on the Operating System | ||
68 | on which the driver is used. | ||
69 | |||
70 | The history of this driver can be summerized as follows: | ||
71 | |||
72 | 1993: ncr driver written for 386bsd and FreeBSD by: | ||
73 | Wolfgang Stanglmeier <wolf@cologne.de> | ||
74 | Stefan Esser <se@mi.Uni-Koeln.de> | ||
75 | |||
76 | 1996: port of the ncr driver to Linux-1.2.13 and rename it ncr53c8xx. | ||
77 | Gerard Roudier | ||
78 | |||
79 | 1998: new sym53c8xx driver for Linux based on LOAD/STORE instruction and that | ||
80 | adds full support for the 896 but drops support for early NCR devices. | ||
81 | Gerard Roudier | ||
82 | |||
83 | 1999: port of the sym53c8xx driver to FreeBSD and support for the LSI53C1010 | ||
84 | 33 MHz and 66MHz Ultra-3 controllers. The new driver is named `sym'. | ||
85 | Gerard Roudier | ||
86 | |||
87 | 2000: Add support for early NCR devices to FreeBSD `sym' driver. | ||
88 | Break the driver into several sources and separate the OS glue | ||
89 | code from the core code that can be shared among different O/Ses. | ||
90 | Write a glue code for Linux. | ||
91 | Gerard Roudier | ||
92 | |||
93 | 2004: Remove FreeBSD compatibility code. Remove support for versions of | ||
94 | Linux before 2.6. Start using Linux facilities. | ||
95 | |||
96 | This README file addresses the Linux version of the driver. Under FreeBSD, | ||
97 | the driver documentation is the sym.8 man page. | ||
98 | |||
99 | Information about new chips is available at LSILOGIC web server: | ||
100 | |||
101 | http://www.lsilogic.com/ | ||
102 | |||
103 | SCSI standard documentations are available at T10 site: | ||
104 | |||
105 | http://www.t10.org/ | ||
106 | |||
107 | Useful SCSI tools written by Eric Youngdale are part of most Linux | ||
108 | distributions: | ||
109 | scsiinfo: command line tool | ||
110 | scsi-config: TCL/Tk tool using scsiinfo | ||
111 | |||
112 | 2. Supported chips and SCSI features | ||
113 | |||
114 | The following features are supported for all chips: | ||
115 | |||
116 | Synchronous negotiation | ||
117 | Disconnection | ||
118 | Tagged command queuing | ||
119 | SCSI parity checking | ||
120 | PCI Master parity checking | ||
121 | |||
122 | Other features depends on chip capabilities. | ||
123 | The driver notably uses optimized SCRIPTS for devices that support | ||
124 | LOAD/STORE and handles PHASE MISMATCH from SCRIPTS for devices that | ||
125 | support the corresponding feature. | ||
126 | |||
127 | The following table shows some characteristics of the chip family. | ||
128 | |||
129 | On board LOAD/STORE HARDWARE | ||
130 | Chip SDMS BIOS Wide SCSI std. Max. sync SCRIPTS PHASE MISMATCH | ||
131 | ---- --------- ---- --------- ---------- ---------- -------------- | ||
132 | 810 N N FAST10 10 MB/s N N | ||
133 | 810A N N FAST10 10 MB/s Y N | ||
134 | 815 Y N FAST10 10 MB/s N N | ||
135 | 825 Y Y FAST10 20 MB/s N N | ||
136 | 825A Y Y FAST10 20 MB/s Y N | ||
137 | 860 N N FAST20 20 MB/s Y N | ||
138 | 875 Y Y FAST20 40 MB/s Y N | ||
139 | 875A Y Y FAST20 40 MB/s Y Y | ||
140 | 876 Y Y FAST20 40 MB/s Y N | ||
141 | 895 Y Y FAST40 80 MB/s Y N | ||
142 | 895A Y Y FAST40 80 MB/s Y Y | ||
143 | 896 Y Y FAST40 80 MB/s Y Y | ||
144 | 897 Y Y FAST40 80 MB/s Y Y | ||
145 | 1510D Y Y FAST40 80 MB/s Y Y | ||
146 | 1010 Y Y FAST80 160 MB/s Y Y | ||
147 | 1010_66* Y Y FAST80 160 MB/s Y Y | ||
148 | |||
149 | * Chip supports 33MHz and 66MHz PCI bus clock. | ||
150 | |||
151 | |||
152 | Summary of other supported features: | ||
153 | |||
154 | Module: allow to load the driver | ||
155 | Memory mapped I/O: increases performance | ||
156 | Control commands: write operations to the proc SCSI file system | ||
157 | Debugging information: written to syslog (expert only) | ||
158 | Scatter / gather | ||
159 | Shared interrupt | ||
160 | Boot setup commands | ||
161 | Serial NVRAM: Symbios and Tekram formats | ||
162 | |||
163 | |||
164 | 3. Advantages of this driver for newer chips. | ||
165 | |||
166 | 3.1 Optimized SCSI SCRIPTS. | ||
167 | |||
168 | All chips except the 810, 815 and 825, support new SCSI SCRIPTS instructions | ||
169 | named LOAD and STORE that allow to move up to 1 DWORD from/to an IO register | ||
170 | to/from memory much faster that the MOVE MEMORY instruction that is supported | ||
171 | by the 53c7xx and 53c8xx family. | ||
172 | |||
173 | The LOAD/STORE instructions support absolute and DSA relative addressing | ||
174 | modes. The SCSI SCRIPTS had been entirely rewritten using LOAD/STORE instead | ||
175 | of MOVE MEMORY instructions. | ||
176 | |||
177 | Due to the lack of LOAD/STORE SCRIPTS instructions by earlier chips, this | ||
178 | driver also incorporates a different SCRIPTS set based on MEMORY MOVE, in | ||
179 | order to provide support for the entire SYM53C8XX chips family. | ||
180 | |||
181 | 3.2 New features appeared with the SYM53C896 | ||
182 | |||
183 | Newer chips (see above) allows handling of the phase mismatch context from | ||
184 | SCRIPTS (avoids the phase mismatch interrupt that stops the SCSI processor | ||
185 | until the C code has saved the context of the transfer). | ||
186 | |||
187 | The 896 and 1010 chips support 64 bit PCI transactions and addressing, | ||
188 | while the 895A supports 32 bit PCI transactions and 64 bit addressing. | ||
189 | The SCRIPTS processor of these chips is not true 64 bit, but uses segment | ||
190 | registers for bit 32-63. Another interesting feature is that LOAD/STORE | ||
191 | instructions that address the on-chip RAM (8k) remain internal to the chip. | ||
192 | |||
193 | 4. Memory mapped I/O versus normal I/O | ||
194 | |||
195 | Memory mapped I/O has less latency than normal I/O and is the recommended | ||
196 | way for doing IO with PCI devices. Memory mapped I/O seems to work fine on | ||
197 | most hardware configurations, but some poorly designed chipsets may break | ||
198 | this feature. A configuration option is provided for normal I/O to be | ||
199 | used but the driver defaults to MMIO. | ||
200 | |||
201 | 5. Tagged command queueing | ||
202 | |||
203 | Queuing more than 1 command at a time to a device allows it to perform | ||
204 | optimizations based on actual head positions and its mechanical | ||
205 | characteristics. This feature may also reduce average command latency. | ||
206 | In order to really gain advantage of this feature, devices must have | ||
207 | a reasonable cache size (No miracle is to be expected for a low-end | ||
208 | hard disk with 128 KB or less). | ||
209 | Some kown old SCSI devices do not properly support tagged command queuing. | ||
210 | Generally, firmware revisions that fix this kind of problems are available | ||
211 | at respective vendor web/ftp sites. | ||
212 | All I can say is that I never have had problem with tagged queuing using | ||
213 | this driver and its predecessors. Hard disks that behaved correctly for | ||
214 | me using tagged commands are the following: | ||
215 | |||
216 | - IBM S12 0662 | ||
217 | - Conner 1080S | ||
218 | - Quantum Atlas I | ||
219 | - Quantum Atlas II | ||
220 | - Seagate Cheetah I | ||
221 | - Quantum Viking II | ||
222 | - IBM DRVS | ||
223 | - Quantum Atlas IV | ||
224 | - Seagate Cheetah II | ||
225 | |||
226 | If your controller has NVRAM, you can configure this feature per target | ||
227 | from the user setup tool. The Tekram Setup program allows to tune the | ||
228 | maximum number of queued commands up to 32. The Symbios Setup only allows | ||
229 | to enable or disable this feature. | ||
230 | |||
231 | The maximum number of simultaneous tagged commands queued to a device | ||
232 | is currently set to 16 by default. This value is suitable for most SCSI | ||
233 | disks. With large SCSI disks (>= 2GB, cache >= 512KB, average seek time | ||
234 | <= 10 ms), using a larger value may give better performances. | ||
235 | |||
236 | This driver supports up to 255 commands per device, and but using more than | ||
237 | 64 is generally not worth-while, unless you are using a very large disk or | ||
238 | disk arrays. It is noticeable that most of recent hard disks seem not to | ||
239 | accept more than 64 simultaneous commands. So, using more than 64 queued | ||
240 | commands is probably just resource wasting. | ||
241 | |||
242 | If your controller does not have NVRAM or if it is managed by the SDMS | ||
243 | BIOS/SETUP, you can configure tagged queueing feature and device queue | ||
244 | depths from the boot command-line. For example: | ||
245 | |||
246 | sym53c8xx=tags:4/t2t3q15-t4q7/t1u0q32 | ||
247 | |||
248 | will set tagged commands queue depths as follow: | ||
249 | |||
250 | - target 2 all luns on controller 0 --> 15 | ||
251 | - target 3 all luns on controller 0 --> 15 | ||
252 | - target 4 all luns on controller 0 --> 7 | ||
253 | - target 1 lun 0 on controller 1 --> 32 | ||
254 | - all other target/lun --> 4 | ||
255 | |||
256 | In some special conditions, some SCSI disk firmwares may return a | ||
257 | QUEUE FULL status for a SCSI command. This behaviour is managed by the | ||
258 | driver using the following heuristic: | ||
259 | |||
260 | - Each time a QUEUE FULL status is returned, tagged queue depth is reduced | ||
261 | to the actual number of disconnected commands. | ||
262 | |||
263 | - Every 200 successfully completed SCSI commands, if allowed by the | ||
264 | current limit, the maximum number of queueable commands is incremented. | ||
265 | |||
266 | Since QUEUE FULL status reception and handling is resource wasting, the | ||
267 | driver notifies by default this problem to user by indicating the actual | ||
268 | number of commands used and their status, as well as its decision on the | ||
269 | device queue depth change. | ||
270 | The heuristic used by the driver in handling QUEUE FULL ensures that the | ||
271 | impact on performances is not too bad. You can get rid of the messages by | ||
272 | setting verbose level to zero, as follow: | ||
273 | |||
274 | 1st method: boot your system using 'sym53c8xx=verb:0' option. | ||
275 | 2nd method: apply "setverbose 0" control command to the proc fs entry | ||
276 | corresponding to your controller after boot-up. | ||
277 | |||
278 | 6. Parity checking | ||
279 | |||
280 | The driver supports SCSI parity checking and PCI bus master parity | ||
281 | checking. These features must be enabled in order to ensure safe | ||
282 | data transfers. Some flawed devices or mother boards may have problems | ||
283 | with parity. The options to defeat parity checking have been removed | ||
284 | from the driver. | ||
285 | |||
286 | 7. Profiling information | ||
287 | |||
288 | This driver does not provide profiling informations as did its predecessors. | ||
289 | This feature was not this useful and added complexity to the code. | ||
290 | As the driver code got more complex, I have decided to remove everything | ||
291 | that didn't seem actually useful. | ||
292 | |||
293 | 8. Control commands | ||
294 | |||
295 | Control commands can be sent to the driver with write operations to | ||
296 | the proc SCSI file system. The generic command syntax is the | ||
297 | following: | ||
298 | |||
299 | echo "<verb> <parameters>" >/proc/scsi/sym53c8xx/0 | ||
300 | (assumes controller number is 0) | ||
301 | |||
302 | Using "all" for "<target>" parameter with the commands below will | ||
303 | apply to all targets of the SCSI chain (except the controller). | ||
304 | |||
305 | Available commands: | ||
306 | |||
307 | 8.1 Set minimum synchronous period factor | ||
308 | |||
309 | setsync <target> <period factor> | ||
310 | |||
311 | target: target number | ||
312 | period: minimum synchronous period. | ||
313 | Maximum speed = 1000/(4*period factor) except for special | ||
314 | cases below. | ||
315 | |||
316 | Specify a period of 0, to force asynchronous transfer mode. | ||
317 | |||
318 | 9 means 12.5 nano-seconds synchronous period | ||
319 | 10 means 25 nano-seconds synchronous period | ||
320 | 11 means 30 nano-seconds synchronous period | ||
321 | 12 means 50 nano-seconds synchronous period | ||
322 | |||
323 | 8.2 Set wide size | ||
324 | |||
325 | setwide <target> <size> | ||
326 | |||
327 | target: target number | ||
328 | size: 0=8 bits, 1=16bits | ||
329 | |||
330 | 8.3 Set maximum number of concurrent tagged commands | ||
331 | |||
332 | settags <target> <tags> | ||
333 | |||
334 | target: target number | ||
335 | tags: number of concurrent tagged commands | ||
336 | must not be greater than configured (default: 16) | ||
337 | |||
338 | 8.4 Set debug mode | ||
339 | |||
340 | setdebug <list of debug flags> | ||
341 | |||
342 | Available debug flags: | ||
343 | alloc: print info about memory allocations (ccb, lcb) | ||
344 | queue: print info about insertions into the command start queue | ||
345 | result: print sense data on CHECK CONDITION status | ||
346 | scatter: print info about the scatter process | ||
347 | scripts: print info about the script binding process | ||
348 | tiny: print minimal debugging information | ||
349 | timing: print timing information of the NCR chip | ||
350 | nego: print information about SCSI negotiations | ||
351 | phase: print information on script interruptions | ||
352 | |||
353 | Use "setdebug" with no argument to reset debug flags. | ||
354 | |||
355 | |||
356 | 8.5 Set flag (no_disc) | ||
357 | |||
358 | setflag <target> <flag> | ||
359 | |||
360 | target: target number | ||
361 | |||
362 | For the moment, only one flag is available: | ||
363 | |||
364 | no_disc: not allow target to disconnect. | ||
365 | |||
366 | Do not specify any flag in order to reset the flag. For example: | ||
367 | - setflag 4 | ||
368 | will reset no_disc flag for target 4, so will allow it disconnections. | ||
369 | - setflag all | ||
370 | will allow disconnection for all devices on the SCSI bus. | ||
371 | |||
372 | |||
373 | 8.6 Set verbose level | ||
374 | |||
375 | setverbose #level | ||
376 | |||
377 | The driver default verbose level is 1. This command allows to change | ||
378 | th driver verbose level after boot-up. | ||
379 | |||
380 | 8.7 Reset all logical units of a target | ||
381 | |||
382 | resetdev <target> | ||
383 | |||
384 | target: target number | ||
385 | The driver will try to send a BUS DEVICE RESET message to the target. | ||
386 | |||
387 | 8.8 Abort all tasks of all logical units of a target | ||
388 | |||
389 | cleardev <target> | ||
390 | |||
391 | target: target number | ||
392 | The driver will try to send a ABORT message to all the logical units | ||
393 | of the target. | ||
394 | |||
395 | |||
396 | 9. Configuration parameters | ||
397 | |||
398 | Under kernel configuration tools (make menuconfig, for example), it is | ||
399 | possible to change some default driver configuration parameters. | ||
400 | If the firmware of all your devices is perfect enough, all the | ||
401 | features supported by the driver can be enabled at start-up. However, | ||
402 | if only one has a flaw for some SCSI feature, you can disable the | ||
403 | support by the driver of this feature at linux start-up and enable | ||
404 | this feature after boot-up only for devices that support it safely. | ||
405 | |||
406 | Configuration parameters: | ||
407 | |||
408 | Use normal IO (default answer: n) | ||
409 | Answer "y" if you suspect your mother board to not allow memory mapped I/O. | ||
410 | May slow down performance a little. | ||
411 | |||
412 | Default tagged command queue depth (default answer: 16) | ||
413 | Entering 0 defaults to tagged commands not being used. | ||
414 | This parameter can be specified from the boot command line. | ||
415 | |||
416 | Maximum number of queued commands (default answer: 32) | ||
417 | This option allows you to specify the maximum number of tagged commands | ||
418 | that can be queued to a device. The maximum supported value is 255. | ||
419 | |||
420 | Synchronous transfers frequency (default answer: 80) | ||
421 | This option allows you to specify the frequency in MHz the driver | ||
422 | will use at boot time for synchronous data transfer negotiations. | ||
423 | 0 means "asynchronous data transfers". | ||
424 | |||
425 | 10. Boot setup commands | ||
426 | |||
427 | 10.1 Syntax | ||
428 | |||
429 | Setup commands can be passed to the driver either at boot time or as | ||
430 | parameters to modprobe, as described in Documentation/kernel-parameters.txt | ||
431 | |||
432 | Example of boot setup command under lilo prompt: | ||
433 | |||
434 | lilo: linux root=/dev/sda2 sym53c8xx.cmd_per_lun=4 sym53c8xx.sync=10 sym53c8xx.debug=0x200 | ||
435 | |||
436 | - enable tagged commands, up to 4 tagged commands queued. | ||
437 | - set synchronous negotiation speed to 10 Mega-transfers / second. | ||
438 | - set DEBUG_NEGO flag. | ||
439 | |||
440 | The following command will install the driver module with the same | ||
441 | options as above. | ||
442 | |||
443 | modprobe sym53c8xx cmd_per_lun=4 sync=10 debug=0x200 | ||
444 | |||
445 | 10.2 Available arguments | ||
446 | |||
447 | 10.2.1 Default number of tagged commands | ||
448 | cmd_per_lun=0 (or cmd_per_lun=1) tagged command queuing disabled | ||
449 | cmd_per_lun=#tags (#tags > 1) tagged command queuing enabled | ||
450 | #tags will be truncated to the max queued commands configuration parameter. | ||
451 | |||
452 | 10.2.2 Detailed control of tagged commands | ||
453 | This option allows you to specify a command queue depth for each device | ||
454 | that supports tagged command queueing. | ||
455 | Example: | ||
456 | tag_ctrl=10/t2t3q16-t5q24/t1u2q32 | ||
457 | will set devices queue depth as follow: | ||
458 | - controller #0 target #2 and target #3 -> 16 commands, | ||
459 | - controller #0 target #5 -> 24 commands, | ||
460 | - controller #1 target #1 logical unit #2 -> 32 commands, | ||
461 | - all other logical units (all targets, all controllers) -> 10 commands. | ||
462 | |||
463 | 10.2.3 Burst max | ||
464 | burst=0 burst disabled | ||
465 | burst=255 get burst length from initial IO register settings. | ||
466 | burst=#x burst enabled (1<<#x burst transfers max) | ||
467 | #x is an integer value which is log base 2 of the burst transfers max. | ||
468 | By default the driver uses the maximum value supported by the chip. | ||
469 | |||
470 | 10.2.4 LED support | ||
471 | led=1 enable LED support | ||
472 | led=0 disable LED support | ||
473 | Do not enable LED support if your scsi board does not use SDMS BIOS. | ||
474 | (See 'Configuration parameters') | ||
475 | |||
476 | 10.2.4 Differential mode | ||
477 | diff=0 never set up diff mode | ||
478 | diff=1 set up diff mode if BIOS set it | ||
479 | diff=2 always set up diff mode | ||
480 | diff=3 set diff mode if GPIO3 is not set | ||
481 | |||
482 | 10.2.5 IRQ mode | ||
483 | irqm=0 always open drain | ||
484 | irqm=1 same as initial settings (assumed BIOS settings) | ||
485 | irqm=2 always totem pole | ||
486 | |||
487 | 10.2.6 Check SCSI BUS | ||
488 | buschk=<option bits> | ||
489 | |||
490 | Available option bits: | ||
491 | 0x0: No check. | ||
492 | 0x1: Check and do not attach the controller on error. | ||
493 | 0x2: Check and just warn on error. | ||
494 | |||
495 | 10.2.7 Suggest a default SCSI id for hosts | ||
496 | hostid=255 no id suggested. | ||
497 | hostid=#x (0 < x < 7) x suggested for hosts SCSI id. | ||
498 | |||
499 | If a host SCSI id is available from the NVRAM, the driver will ignore | ||
500 | any value suggested as boot option. Otherwise, if a suggested value | ||
501 | different from 255 has been supplied, it will use it. Otherwise, it will | ||
502 | try to deduce the value previously set in the hardware and use value | ||
503 | 7 if the hardware value is zero. | ||
504 | |||
505 | 10.2.8 Verbosity level | ||
506 | verb=0 minimal | ||
507 | verb=1 normal | ||
508 | verb=2 too much | ||
509 | |||
510 | 10.2.9 Debug mode | ||
511 | debug=0 clear debug flags | ||
512 | debug=#x set debug flags | ||
513 | #x is an integer value combining the following power-of-2 values: | ||
514 | DEBUG_ALLOC 0x1 | ||
515 | DEBUG_PHASE 0x2 | ||
516 | DEBUG_POLL 0x4 | ||
517 | DEBUG_QUEUE 0x8 | ||
518 | DEBUG_RESULT 0x10 | ||
519 | DEBUG_SCATTER 0x20 | ||
520 | DEBUG_SCRIPT 0x40 | ||
521 | DEBUG_TINY 0x80 | ||
522 | DEBUG_TIMING 0x100 | ||
523 | DEBUG_NEGO 0x200 | ||
524 | DEBUG_TAGS 0x400 | ||
525 | DEBUG_FREEZE 0x800 | ||
526 | DEBUG_RESTART 0x1000 | ||
527 | |||
528 | You can play safely with DEBUG_NEGO. However, some of these flags may | ||
529 | generate bunches of syslog messages. | ||
530 | |||
531 | 10.2.10 Settle delay | ||
532 | settle=n delay for n seconds | ||
533 | |||
534 | After a bus reset, the driver will delay for n seconds before talking | ||
535 | to any device on the bus. The default is 3 seconds and safe mode will | ||
536 | default it to 10. | ||
537 | |||
538 | 10.2.11 Serial NVRAM | ||
539 | NB: option not currently implemented. | ||
540 | nvram=n do not look for serial NVRAM | ||
541 | nvram=y test controllers for onboard serial NVRAM | ||
542 | (alternate binary form) | ||
543 | nvram=<bits options> | ||
544 | 0x01 look for NVRAM (equivalent to nvram=y) | ||
545 | 0x02 ignore NVRAM "Synchronous negotiation" parameters for all devices | ||
546 | 0x04 ignore NVRAM "Wide negotiation" parameter for all devices | ||
547 | 0x08 ignore NVRAM "Scan at boot time" parameter for all devices | ||
548 | 0x80 also attach controllers set to OFF in the NVRAM (sym53c8xx only) | ||
549 | |||
550 | 10.2.12 Exclude a host from being attached | ||
551 | excl=<io_address>,... | ||
552 | |||
553 | Prevent host at a given io address from being attached. | ||
554 | For example 'excl=0xb400,0xc000' indicate to the | ||
555 | driver not to attach hosts at address 0xb400 and 0xc000. | ||
556 | |||
557 | 10.3 Converting from old style options | ||
558 | |||
559 | Previously, the sym2 driver accepted arguments of the form | ||
560 | sym53c8xx=tags:4,sync:10,debug:0x200 | ||
561 | |||
562 | As a result of the new module parameters, this is no longer available. | ||
563 | Most of the options have remained the same, but tags has split into | ||
564 | cmd_per_lun and tag_ctrl for its two different purposes. The sample above | ||
565 | would be specified as: | ||
566 | modprobe sym53c8xx cmd_per_lun=4 sync=10 debug=0x200 | ||
567 | |||
568 | or on the kernel boot line as: | ||
569 | sym53c8xx.cmd_per_lun=4 sym53c8xx.sync=10 sym53c8xx.debug=0x200 | ||
570 | |||
571 | 10.4 SCSI BUS checking boot option. | ||
572 | |||
573 | When this option is set to a non-zero value, the driver checks SCSI lines | ||
574 | logic state, 100 micro-seconds after having asserted the SCSI RESET line. | ||
575 | The driver just reads SCSI lines and checks all lines read FALSE except RESET. | ||
576 | Since SCSI devices shall release the BUS at most 800 nano-seconds after SCSI | ||
577 | RESET has been asserted, any signal to TRUE may indicate a SCSI BUS problem. | ||
578 | Unfortunately, the following common SCSI BUS problems are not detected: | ||
579 | - Only 1 terminator installed. | ||
580 | - Misplaced terminators. | ||
581 | - Bad quality terminators. | ||
582 | On the other hand, either bad cabling, broken devices, not conformant | ||
583 | devices, ... may cause a SCSI signal to be wrong when te driver reads it. | ||
584 | |||
585 | 15. SCSI problem troubleshooting | ||
586 | |||
587 | 15.1 Problem tracking | ||
588 | |||
589 | Most SCSI problems are due to a non conformant SCSI bus or too buggy | ||
590 | devices. If infortunately you have SCSI problems, you can check the | ||
591 | following things: | ||
592 | |||
593 | - SCSI bus cables | ||
594 | - terminations at both end of the SCSI chain | ||
595 | - linux syslog messages (some of them may help you) | ||
596 | |||
597 | If you do not find the source of problems, you can configure the | ||
598 | driver or devices in the NVRAM with minimal features. | ||
599 | |||
600 | - only asynchronous data transfers | ||
601 | - tagged commands disabled | ||
602 | - disconnections not allowed | ||
603 | |||
604 | Now, if your SCSI bus is ok, your system has every chance to work | ||
605 | with this safe configuration but performances will not be optimal. | ||
606 | |||
607 | If it still fails, then you can send your problem description to | ||
608 | appropriate mailing lists or news-groups. Send me a copy in order to | ||
609 | be sure I will receive it. Obviously, a bug in the driver code is | ||
610 | possible. | ||
611 | |||
612 | My cyrrent email address: Gerard Roudier <groudier@free.fr> | ||
613 | |||
614 | Allowing disconnections is important if you use several devices on | ||
615 | your SCSI bus but often causes problems with buggy devices. | ||
616 | Synchronous data transfers increases throughput of fast devices like | ||
617 | hard disks. Good SCSI hard disks with a large cache gain advantage of | ||
618 | tagged commands queuing. | ||
619 | |||
620 | 15.2 Understanding hardware error reports | ||
621 | |||
622 | When the driver detects an unexpected error condition, it may display a | ||
623 | message of the following pattern. | ||
624 | |||
625 | sym0:1: ERROR (0:48) (1-21-65) (f/95/0) @ (script 7c0:19000000). | ||
626 | sym0: script cmd = 19000000 | ||
627 | sym0: regdump: da 10 80 95 47 0f 01 07 75 01 81 21 80 01 09 00. | ||
628 | |||
629 | Some fields in such a message may help you understand the cause of the | ||
630 | problem, as follows: | ||
631 | |||
632 | sym0:1: ERROR (0:48) (1-21-65) (f/95/0) @ (script 7c0:19000000). | ||
633 | .....A.........B.C....D.E..F....G.H..I.......J.....K...L....... | ||
634 | |||
635 | Field A : target number. | ||
636 | SCSI ID of the device the controller was talking with at the moment the | ||
637 | error occurs. | ||
638 | |||
639 | Field B : DSTAT io register (DMA STATUS) | ||
640 | Bit 0x40 : MDPE Master Data Parity Error | ||
641 | Data parity error detected on the PCI BUS. | ||
642 | Bit 0x20 : BF Bus Fault | ||
643 | PCI bus fault condition detected | ||
644 | Bit 0x01 : IID Illegal Instruction Detected | ||
645 | Set by the chip when it detects an Illegal Instruction format | ||
646 | on some condition that makes an instruction illegal. | ||
647 | Bit 0x80 : DFE Dma Fifo Empty | ||
648 | Pure status bit that does not indicate an error. | ||
649 | If the reported DSTAT value contains a combination of MDPE (0x40), | ||
650 | BF (0x20), then the cause may be likely due to a PCI BUS problem. | ||
651 | |||
652 | Field C : SIST io register (SCSI Interrupt Status) | ||
653 | Bit 0x08 : SGE SCSI GROSS ERROR | ||
654 | Indicates that the chip detected a severe error condition | ||
655 | on the SCSI BUS that prevents the SCSI protocol from functioning | ||
656 | properly. | ||
657 | Bit 0x04 : UDC Unexpected Disconnection | ||
658 | Indicates that the device released the SCSI BUS when the chip | ||
659 | was not expecting this to happen. A device may behave so to | ||
660 | indicate the SCSI initiator that an error condition not reportable using the SCSI protocol has occurred. | ||
661 | Bit 0x02 : RST SCSI BUS Reset | ||
662 | Generally SCSI targets do not reset the SCSI BUS, although any | ||
663 | device on the BUS can reset it at any time. | ||
664 | Bit 0x01 : PAR Parity | ||
665 | SCSI parity error detected. | ||
666 | On a faulty SCSI BUS, any error condition among SGE (0x08), UDC (0x04) and | ||
667 | PAR (0x01) may be detected by the chip. If your SCSI system sometimes | ||
668 | encounters such error conditions, especially SCSI GROSS ERROR, then a SCSI | ||
669 | BUS problem is likely the cause of these errors. | ||
670 | |||
671 | For fields D,E,F,G and H, you may look into the sym53c8xx_defs.h file | ||
672 | that contains some minimal comments on IO register bits. | ||
673 | Field D : SOCL Scsi Output Control Latch | ||
674 | This register reflects the state of the SCSI control lines the | ||
675 | chip want to drive or compare against. | ||
676 | Field E : SBCL Scsi Bus Control Lines | ||
677 | Actual value of control lines on the SCSI BUS. | ||
678 | Field F : SBDL Scsi Bus Data Lines | ||
679 | Actual value of data lines on the SCSI BUS. | ||
680 | Field G : SXFER SCSI Transfer | ||
681 | Contains the setting of the Synchronous Period for output and | ||
682 | the current Synchronous offset (offset 0 means asynchronous). | ||
683 | Field H : SCNTL3 Scsi Control Register 3 | ||
684 | Contains the setting of timing values for both asynchronous and | ||
685 | synchronous data transfers. | ||
686 | Field I : SCNTL4 Scsi Control Register 4 | ||
687 | Only meaninful for 53C1010 Ultra3 controllers. | ||
688 | |||
689 | Understanding Fields J, K, L and dumps requires to have good knowledge of | ||
690 | SCSI standards, chip cores functionnals and internal driver data structures. | ||
691 | You are not required to decode and understand them, unless you want to help | ||
692 | maintain the driver code. | ||
693 | |||
694 | 17. Serial NVRAM (added by Richard Waltham: dormouse@farsrobt.demon.co.uk) | ||
695 | |||
696 | 17.1 Features | ||
697 | |||
698 | Enabling serial NVRAM support enables detection of the serial NVRAM included | ||
699 | on Symbios and some Symbios compatible host adaptors, and Tekram boards. The | ||
700 | serial NVRAM is used by Symbios and Tekram to hold set up parameters for the | ||
701 | host adaptor and it's attached drives. | ||
702 | |||
703 | The Symbios NVRAM also holds data on the boot order of host adaptors in a | ||
704 | system with more than one host adaptor. This information is no longer used | ||
705 | as it's fundamentally incompatible with the hotplug PCI model. | ||
706 | |||
707 | Tekram boards using Symbios chips, DC390W/F/U, which have NVRAM are detected | ||
708 | and this is used to distinguish between Symbios compatible and Tekram host | ||
709 | adaptors. This is used to disable the Symbios compatible "diff" setting | ||
710 | incorrectly set on Tekram boards if the CONFIG_SCSI_53C8XX_SYMBIOS_COMPAT | ||
711 | configuration parameter is set enabling both Symbios and Tekram boards to be | ||
712 | used together with the Symbios cards using all their features, including | ||
713 | "diff" support. ("led pin" support for Symbios compatible cards can remain | ||
714 | enabled when using Tekram cards. It does nothing useful for Tekram host | ||
715 | adaptors but does not cause problems either.) | ||
716 | |||
717 | The parameters the driver is able to get from the NVRAM depend on the | ||
718 | data format used, as follow: | ||
719 | |||
720 | Tekram format Symbios format | ||
721 | General and host parameters | ||
722 | Boot order N Y | ||
723 | Host SCSI ID Y Y | ||
724 | SCSI parity checking Y Y | ||
725 | Verbose boot messages N Y | ||
726 | SCSI devices parameters | ||
727 | Synchronous transfer speed Y Y | ||
728 | Wide 16 / Narrow Y Y | ||
729 | Tagged Command Queuing enabled Y Y | ||
730 | Disconnections enabled Y Y | ||
731 | Scan at boot time N Y | ||
732 | |||
733 | In order to speed up the system boot, for each device configured without | ||
734 | the "scan at boot time" option, the driver forces an error on the | ||
735 | first TEST UNIT READY command received for this device. | ||
736 | |||
737 | |||
738 | 17.2 Symbios NVRAM layout | ||
739 | |||
740 | typical data at NVRAM address 0x100 (53c810a NVRAM) | ||
741 | ----------------------------------------------------------- | ||
742 | 00 00 | ||
743 | 64 01 | ||
744 | 8e 0b | ||
745 | |||
746 | 00 30 00 00 00 00 07 00 00 00 00 00 00 00 07 04 10 04 00 00 | ||
747 | |||
748 | 04 00 0f 00 00 10 00 50 00 00 01 00 00 62 | ||
749 | 04 00 03 00 00 10 00 58 00 00 01 00 00 63 | ||
750 | 04 00 01 00 00 10 00 48 00 00 01 00 00 61 | ||
751 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ||
752 | |||
753 | 0f 00 08 08 64 00 0a 00 | ||
754 | 0f 00 08 08 64 00 0a 00 | ||
755 | 0f 00 08 08 64 00 0a 00 | ||
756 | 0f 00 08 08 64 00 0a 00 | ||
757 | 0f 00 08 08 64 00 0a 00 | ||
758 | 0f 00 08 08 64 00 0a 00 | ||
759 | 0f 00 08 08 64 00 0a 00 | ||
760 | 0f 00 08 08 64 00 0a 00 | ||
761 | |||
762 | 0f 00 08 08 64 00 0a 00 | ||
763 | 0f 00 08 08 64 00 0a 00 | ||
764 | 0f 00 08 08 64 00 0a 00 | ||
765 | 0f 00 08 08 64 00 0a 00 | ||
766 | 0f 00 08 08 64 00 0a 00 | ||
767 | 0f 00 08 08 64 00 0a 00 | ||
768 | 0f 00 08 08 64 00 0a 00 | ||
769 | 0f 00 08 08 64 00 0a 00 | ||
770 | |||
771 | 00 00 00 00 00 00 00 00 | ||
772 | 00 00 00 00 00 00 00 00 | ||
773 | 00 00 00 00 00 00 00 00 | ||
774 | 00 00 00 00 00 00 00 00 | ||
775 | 00 00 00 00 00 00 00 00 | ||
776 | 00 00 00 00 00 00 00 00 | ||
777 | 00 00 00 00 00 00 00 00 | ||
778 | 00 00 00 00 00 00 00 00 | ||
779 | |||
780 | 00 00 00 00 00 00 00 00 | ||
781 | 00 00 00 00 00 00 00 00 | ||
782 | 00 00 00 00 00 00 00 00 | ||
783 | 00 00 00 00 00 00 00 00 | ||
784 | 00 00 00 00 00 00 00 00 | ||
785 | 00 00 00 00 00 00 00 00 | ||
786 | 00 00 00 00 00 00 00 00 | ||
787 | 00 00 00 00 00 00 00 00 | ||
788 | |||
789 | 00 00 00 00 00 00 00 00 | ||
790 | 00 00 00 00 00 00 00 00 | ||
791 | 00 00 00 00 00 00 00 00 | ||
792 | |||
793 | fe fe | ||
794 | 00 00 | ||
795 | 00 00 | ||
796 | ----------------------------------------------------------- | ||
797 | NVRAM layout details | ||
798 | |||
799 | NVRAM Address 0x000-0x0ff not used | ||
800 | 0x100-0x26f initialised data | ||
801 | 0x270-0x7ff not used | ||
802 | |||
803 | general layout | ||
804 | |||
805 | header - 6 bytes, | ||
806 | data - 356 bytes (checksum is byte sum of this data) | ||
807 | trailer - 6 bytes | ||
808 | --- | ||
809 | total 368 bytes | ||
810 | |||
811 | data area layout | ||
812 | |||
813 | controller set up - 20 bytes | ||
814 | boot configuration - 56 bytes (4x14 bytes) | ||
815 | device set up - 128 bytes (16x8 bytes) | ||
816 | unused (spare?) - 152 bytes (19x8 bytes) | ||
817 | --- | ||
818 | total 356 bytes | ||
819 | |||
820 | ----------------------------------------------------------- | ||
821 | header | ||
822 | |||
823 | 00 00 - ?? start marker | ||
824 | 64 01 - byte count (lsb/msb excludes header/trailer) | ||
825 | 8e 0b - checksum (lsb/msb excludes header/trailer) | ||
826 | ----------------------------------------------------------- | ||
827 | controller set up | ||
828 | |||
829 | 00 30 00 00 00 00 07 00 00 00 00 00 00 00 07 04 10 04 00 00 | ||
830 | | | | | | ||
831 | | | | -- host ID | ||
832 | | | | | ||
833 | | | --Removable Media Support | ||
834 | | | 0x00 = none | ||
835 | | | 0x01 = Bootable Device | ||
836 | | | 0x02 = All with Media | ||
837 | | | | ||
838 | | --flag bits 2 | ||
839 | | 0x00000001= scan order hi->low | ||
840 | | (default 0x00 - scan low->hi) | ||
841 | --flag bits 1 | ||
842 | 0x00000001 scam enable | ||
843 | 0x00000010 parity enable | ||
844 | 0x00000100 verbose boot msgs | ||
845 | |||
846 | remaining bytes unknown - they do not appear to change in my | ||
847 | current set up for any of the controllers. | ||
848 | |||
849 | default set up is identical for 53c810a and 53c875 NVRAM | ||
850 | (Removable Media added Symbios BIOS version 4.09) | ||
851 | ----------------------------------------------------------- | ||
852 | boot configuration | ||
853 | |||
854 | boot order set by order of the devices in this table | ||
855 | |||
856 | 04 00 0f 00 00 10 00 50 00 00 01 00 00 62 -- 1st controller | ||
857 | 04 00 03 00 00 10 00 58 00 00 01 00 00 63 2nd controller | ||
858 | 04 00 01 00 00 10 00 48 00 00 01 00 00 61 3rd controller | ||
859 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 4th controller | ||
860 | | | | | | | | | | ||
861 | | | | | | | ---- PCI io port adr | ||
862 | | | | | | --0x01 init/scan at boot time | ||
863 | | | | | --PCI device/function number (0xdddddfff) | ||
864 | | | ----- ?? PCI vendor ID (lsb/msb) | ||
865 | ----PCI device ID (lsb/msb) | ||
866 | |||
867 | ?? use of this data is a guess but seems reasonable | ||
868 | |||
869 | remaining bytes unknown - they do not appear to change in my | ||
870 | current set up | ||
871 | |||
872 | default set up is identical for 53c810a and 53c875 NVRAM | ||
873 | ----------------------------------------------------------- | ||
874 | device set up (up to 16 devices - includes controller) | ||
875 | |||
876 | 0f 00 08 08 64 00 0a 00 - id 0 | ||
877 | 0f 00 08 08 64 00 0a 00 | ||
878 | 0f 00 08 08 64 00 0a 00 | ||
879 | 0f 00 08 08 64 00 0a 00 | ||
880 | 0f 00 08 08 64 00 0a 00 | ||
881 | 0f 00 08 08 64 00 0a 00 | ||
882 | 0f 00 08 08 64 00 0a 00 | ||
883 | 0f 00 08 08 64 00 0a 00 | ||
884 | |||
885 | 0f 00 08 08 64 00 0a 00 | ||
886 | 0f 00 08 08 64 00 0a 00 | ||
887 | 0f 00 08 08 64 00 0a 00 | ||
888 | 0f 00 08 08 64 00 0a 00 | ||
889 | 0f 00 08 08 64 00 0a 00 | ||
890 | 0f 00 08 08 64 00 0a 00 | ||
891 | 0f 00 08 08 64 00 0a 00 | ||
892 | 0f 00 08 08 64 00 0a 00 - id 15 | ||
893 | | | | | | | | ||
894 | | | | | ----timeout (lsb/msb) | ||
895 | | | | --synch period (0x?? 40 Mtrans/sec- fast 40) (probably 0x28) | ||
896 | | | | (0x30 20 Mtrans/sec- fast 20) | ||
897 | | | | (0x64 10 Mtrans/sec- fast ) | ||
898 | | | | (0xc8 5 Mtrans/sec) | ||
899 | | | | (0x00 asynchronous) | ||
900 | | | -- ?? max sync offset (0x08 in NVRAM on 53c810a) | ||
901 | | | (0x10 in NVRAM on 53c875) | ||
902 | | --device bus width (0x08 narrow) | ||
903 | | (0x10 16 bit wide) | ||
904 | --flag bits | ||
905 | 0x00000001 - disconnect enabled | ||
906 | 0x00000010 - scan at boot time | ||
907 | 0x00000100 - scan luns | ||
908 | 0x00001000 - queue tags enabled | ||
909 | |||
910 | remaining bytes unknown - they do not appear to change in my | ||
911 | current set up | ||
912 | |||
913 | ?? use of this data is a guess but seems reasonable | ||
914 | (but it could be max bus width) | ||
915 | |||
916 | default set up for 53c810a NVRAM | ||
917 | default set up for 53c875 NVRAM - bus width - 0x10 | ||
918 | - sync offset ? - 0x10 | ||
919 | - sync period - 0x30 | ||
920 | ----------------------------------------------------------- | ||
921 | ?? spare device space (32 bit bus ??) | ||
922 | |||
923 | 00 00 00 00 00 00 00 00 (19x8bytes) | ||
924 | . | ||
925 | . | ||
926 | 00 00 00 00 00 00 00 00 | ||
927 | |||
928 | default set up is identical for 53c810a and 53c875 NVRAM | ||
929 | ----------------------------------------------------------- | ||
930 | trailer | ||
931 | |||
932 | fe fe - ? end marker ? | ||
933 | 00 00 | ||
934 | 00 00 | ||
935 | |||
936 | default set up is identical for 53c810a and 53c875 NVRAM | ||
937 | ----------------------------------------------------------- | ||
938 | |||
939 | |||
940 | |||
941 | 17.3 Tekram NVRAM layout | ||
942 | |||
943 | nvram 64x16 (1024 bit) | ||
944 | |||
945 | Drive settings | ||
946 | |||
947 | Drive ID 0-15 (addr 0x0yyyy0 = device setup, yyyy = ID) | ||
948 | (addr 0x0yyyy1 = 0x0000) | ||
949 | |||
950 | x x x x x x x x x x x x x x x x | ||
951 | | | | | | | | | | | ||
952 | | | | | | | | | ----- parity check 0 - off | ||
953 | | | | | | | | | 1 - on | ||
954 | | | | | | | | | | ||
955 | | | | | | | | ------- sync neg 0 - off | ||
956 | | | | | | | | 1 - on | ||
957 | | | | | | | | | ||
958 | | | | | | | --------- disconnect 0 - off | ||
959 | | | | | | | 1 - on | ||
960 | | | | | | | | ||
961 | | | | | | ----------- start cmd 0 - off | ||
962 | | | | | | 1 - on | ||
963 | | | | | | | ||
964 | | | | | -------------- tagged cmds 0 - off | ||
965 | | | | | 1 - on | ||
966 | | | | | | ||
967 | | | | ---------------- wide neg 0 - off | ||
968 | | | | 1 - on | ||
969 | | | | | ||
970 | --------------------------- sync rate 0 - 10.0 Mtrans/sec | ||
971 | 1 - 8.0 | ||
972 | 2 - 6.6 | ||
973 | 3 - 5.7 | ||
974 | 4 - 5.0 | ||
975 | 5 - 4.0 | ||
976 | 6 - 3.0 | ||
977 | 7 - 2.0 | ||
978 | 7 - 2.0 | ||
979 | 8 - 20.0 | ||
980 | 9 - 16.7 | ||
981 | a - 13.9 | ||
982 | b - 11.9 | ||
983 | |||
984 | Global settings | ||
985 | |||
986 | Host flags 0 (addr 0x100000, 32) | ||
987 | |||
988 | x x x x x x x x x x x x x x x x | ||
989 | | | | | | | | | | | | | | ||
990 | | | | | | | | | ----------- host ID 0x00 - 0x0f | ||
991 | | | | | | | | | | ||
992 | | | | | | | | ----------------------- support for 0 - off | ||
993 | | | | | | | | > 2 drives 1 - on | ||
994 | | | | | | | | | ||
995 | | | | | | | ------------------------- support drives 0 - off | ||
996 | | | | | | | > 1Gbytes 1 - on | ||
997 | | | | | | | | ||
998 | | | | | | --------------------------- bus reset on 0 - off | ||
999 | | | | | | power on 1 - on | ||
1000 | | | | | | | ||
1001 | | | | | ----------------------------- active neg 0 - off | ||
1002 | | | | | 1 - on | ||
1003 | | | | | | ||
1004 | | | | -------------------------------- imm seek 0 - off | ||
1005 | | | | 1 - on | ||
1006 | | | | | ||
1007 | | | ---------------------------------- scan luns 0 - off | ||
1008 | | | 1 - on | ||
1009 | | | | ||
1010 | -------------------------------------- removable 0 - disable | ||
1011 | as BIOS dev 1 - boot device | ||
1012 | 2 - all | ||
1013 | |||
1014 | Host flags 1 (addr 0x100001, 33) | ||
1015 | |||
1016 | x x x x x x x x x x x x x x x x | ||
1017 | | | | | | | | ||
1018 | | | | --------- boot delay 0 - 3 sec | ||
1019 | | | | 1 - 5 | ||
1020 | | | | 2 - 10 | ||
1021 | | | | 3 - 20 | ||
1022 | | | | 4 - 30 | ||
1023 | | | | 5 - 60 | ||
1024 | | | | 6 - 120 | ||
1025 | | | | | ||
1026 | --------------------------- max tag cmds 0 - 2 | ||
1027 | 1 - 4 | ||
1028 | 2 - 8 | ||
1029 | 3 - 16 | ||
1030 | 4 - 32 | ||
1031 | |||
1032 | Host flags 2 (addr 0x100010, 34) | ||
1033 | |||
1034 | x x x x x x x x x x x x x x x x | ||
1035 | | | ||
1036 | ----- F2/F6 enable 0 - off ??? | ||
1037 | 1 - on ??? | ||
1038 | |||
1039 | checksum (addr 0x111111) | ||
1040 | |||
1041 | checksum = 0x1234 - (sum addr 0-63) | ||
1042 | |||
1043 | ---------------------------------------------------------------------------- | ||
1044 | |||
1045 | default nvram data: | ||
1046 | |||
1047 | 0x0037 0x0000 0x0037 0x0000 0x0037 0x0000 0x0037 0x0000 | ||
1048 | 0x0037 0x0000 0x0037 0x0000 0x0037 0x0000 0x0037 0x0000 | ||
1049 | 0x0037 0x0000 0x0037 0x0000 0x0037 0x0000 0x0037 0x0000 | ||
1050 | 0x0037 0x0000 0x0037 0x0000 0x0037 0x0000 0x0037 0x0000 | ||
1051 | |||
1052 | 0x0f07 0x0400 0x0001 0x0000 0x0000 0x0000 0x0000 0x0000 | ||
1053 | 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 | ||
1054 | 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 | ||
1055 | 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0xfbbc | ||
1056 | |||
1057 | |||
1058 | =============================================================================== | ||
1059 | End of Linux SYM-2 driver documentation file | ||