OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [uclinux/] [uClinux-2.0.x/] [drivers/] [scsi/] [README.AM53C974] - Blame information for rev 1765

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 199 simons
SUBJECT
2
-------
3
AM53/79C974 PC-SCSI Driver
4
 
5
 
6
DISCLAIMER
7
----------
8
***  THIS SHOULD BE CONSIDERED AS BETA SOFTWARE  ***
9
***  USE AT YOUR OWN RISK!                       ***
10
 
11
 
12
Copyright
13
---------
14
The architecture and much of the code of this device driver was
15
originally developed by Drew Eckhardt for the NCR5380. The
16
following copyrights apply:
17
 
18
For the architecture and all pieces of code which can also be found
19
in the NCR5380 device driver:
20
Copyright 1993, Drew Eckhardt
21
  Visionary Computing
22
  (Unix and Linux consulting and custom programming)
23
  drew@colorado.edu
24
  +1 (303) 666-5836
25
 
26
The AM53C974_nobios_detect code was originally developed by
27
Robin Cutshaw (robin@xfree86.org) and is used here in a
28
slightly modified form.
29
 
30
For the remaining code:
31
  Copyright 1994, D. Frieauff
32
  EMail: fri@rsx42sun0.dofn.de
33
  Phone: x49-7545-8-2256 , x49-7541-42305
34
 
35
 
36
Version
37
-------
38
AM53/79C974 (PC-SCSI) Linux driver ALPHA release 0.5, 19 November 1995
39
 
40
 
41
Changelog
42
---------
43
0.1 -> 0.2:
44
  - Extended message handling re-written to eliminate 'invalid message 17' bug
45
  - Parameters of AM53C974_intr adapted
46
  - Debug messages structured
47
  - Spelling improved
48
0.2 -> 0.3:
49
  - README file updated -- please read this file up to the end!
50
  - Automatic scanning of io_port and irq implemented; no need for BIOS32
51
    anymore
52
  - Improved configuration (now via LILO parameter string)
53
  - Cleanup of probing and initialisation code
54
  - Improved sync. negotiation (can be setup individually for every device)
55
  - Improved/ debugged code for reception of ext. messages
56
0.3 -> 0.4:
57
  - Improved PCI probing and initialisation code
58
  - Compatibility changes for Linux 1.3.x
59
0.4 -> 0.5:
60
  - Compatibility changes for Linux 1.3.42
61
 
62
Bugs & Todo
63
-----------
64
 - Add proc info function
65
 - Support SCSI-2 tagged queuing
66
 - Finalize abort code
67
 
68
Features
69
--------
70
This driver supports asynchronous and synchronous SCSI-I and SCSI-II devices.
71
It is capable of transfer rate and synchronous negotiation (see below).
72
The driver supports scatter-gather. Transfers are DMA based, but do not
73
(yet) make use of the AM53/79C974 MDL mode.
74
Max. transfer rate is 10MHz (whatever this is in real life). The transfer
75
rate is negotiated with each device (see dmesg output).
76
The AM53/79C974 has a 96-byte DMA FIFO to the PCI bus and a 16-byte SCSI
77
FIFO. It provides active negation and glitch suppression functions.
78
Burst DMA transfer rate is 132 MBytes/sec.
79
 
80
 
81
Configuration
82
-------------
83
The following communication characteristics can be set individually  for every
84
SCSI device on the bus:
85
  - enable/disable sync. negotiation
86
  - transfer rate
87
  - asynchronous or synchronous communication
88
  - in case of sync. communication, the sync. offset
89
 
90
The sync. offset specifies the number of bytes that can be sent or
91
received from the SCSI bus without ACK resp. REQ signal.
92
CAUTION: USING SYNCHRONOUS MODE ON LONG SCSI CABLES MAY CAUSE
93
         COMMUNICATION PROBLEMS LEADING TO LOSS OF DATA.
94
 
95
The default setting of the SCSI communication parameters is as follows:
96
  - no negotiation
97
  - 5.0 MHz transfer rate
98
  - asynchronous mode
99
  - zero offset
100
The parameters can be modified by passing a string with the following syntax to
101
the kernel: AM53C974=host-scsi-id,target-scsi-id,max-rate,max-offset
102
The parameters will be used by the driver as negotiation basis.
103
The range of the rate parameter is 3 to 10 MHz.
104
The range of the sync. offset parameter is 0 to 15 bytes. A value of 0 denotes
105
asynchronous comm. mode.
106
If the target cannot cope with the specified transfer rate, sync. mode or sync.
107
offset, the negotiation result will differ from the specified values.
108
The negotiation result is printed out at the end of the negotiation process
109
(to read it, use the dmesg program or the appropriate syslog).
110
The parameter strings (blank separated) can be passed to the kernel at the
111
LILO prompt, or as part of the LILO configuration file.
112
 
113
For example, the string "AM53C974=7,2,8,15" would be interpreted as follows:
114
 "For communication between the controller with SCSI-ID 7 and the device with
115
 SCSI-ID 2 a transfer rate of 8MHz in synchronous mode with max. 15 bytes offset
116
 should be negotiated".
117
 
118
As an example, here my LILO configuration file:
119
  boot = /dev/sda
120
  compact
121
  #prompt
122
  delay = 50    # optional, for systems that boot very quickly
123
  vga = normal  # force sane state
124
  ramdisk = 0   # paranoia setting
125
  root = current  # use "current" root
126
  image = /usr/src/linux/arch/i386/boot/zImage
127
    label = linux
128
    append = "AM53C974=7,0,10,0 AM53C974=7,1,10,0 AM53C974=7,2,10,15 AM53C974=7,4,10,0 AM53C974=7,5,10,0"
129
    read-only
130
  other = /dev/sda4
131
    label = os2
132
  other = /dev/sdb3
133
    loader = /boot/any_d.b
134
    table = /dev/sdb
135
    label = setup
136
 
137
The same parameters at the LILO prompt:
138
  LILO boot: linux AM53C974=7,0,10,0 AM53C974=7,1,10,0 AM53C974=7,2,10,15 AM53C974=7,4,10,0 AM53C974=7,5,10,0
139
 
140
You can override parameters specified in the LILO configuration file by
141
parameters specified on the LILO command line.
142
 
143
 
144
BIOS usage
145
----------
146
Version 0.4 of the driver will use the BIOS, if available. Otherwise
147
it will try its internal PCI scan and access routines.
148
The driver assumes that the controller's SCSI-ID (usually 7) has been
149
correctly loaded by the BIOS into the controller's register during
150
system boot. If the driver detects that the controller's SCSI ID is not
151
'7' it will print out a warning. If this happens to you please correct
152
setting of the controller's SCSI-ID. If it is wrong, then edit the
153
AM53C974_SCSI_ID definition in file AM53C974.h accordingly.
154
 
155
 
156
Test environment
157
----------------
158
This driver was tested on a Compaq XL566 with the following SCSI configuration:
159
2 x HP C2247 fixed disk (internal, rate=10MHz, async.)
160
1 x Micropolis 1624 fixed disk (external, rate=8MHz, sync., offset=15 bytes)
161
1 x Wangtek W5525ES cartridge streamer (internal, rate=5MHz, async.)
162
1 x Toshiba XM-3301B CD-ROM (external, rate=5MHz, async.)
163
 
164
 
165
Known problems
166
--------------
167
 - Compaq/Matsushita CD-ROM:
168
   Use of this device with AM53C974 driver version 0.2 caused the kernel to
169
   hang during Linux boot. If you encounter the problem, don't enable sync.
170
   negotiation with the CD-ROM, i.e. simply don't specify comm. parameters
171
   for this device on the LILO commandline or configuration file.
172
   The driver will thus use its default for the CD-ROM, which is 5MHz
173
   transfer rate asynch and no sync. negotiation.
174
 - Some disks cause problems.
175
 
176
 
177
What to do if there is a SCSI problem possibly related to the driver
178
--------------------------------------------------------------------
179
Read Klaus Liedl's WWW page (http://www-c724.uibk.ac.at/XL/).
180
In case this does not help:
181
Send me a complete description of the problem, including your SCSI
182
configuration plus as much debugging information as possible.
183
Don't wait until I ask you for this information. To enable the
184
generation of debugging output, remove the comments from the following
185
definitions in the AM53C974.h file:
186
    AM53C974_DEBUG
187
    AM53C974_DEBUG_MSG
188
    AM53C974_DEBUG_KEYWAIT
189
    AM53C974_DEBUG_INFO
190
    AM53C974_DEBUG_INTR
191
With these definitions enabled, the driver will enter single-step mode during
192
Linux boot. Use the spacebar for stepping.
193
Take note of at least the last 10 printout sections (marked by dashes) before
194
the crash/hangup or whatever happens and send me all of this information via
195
email. If the system can boot, use the syslogd daemon to record the debugging
196
output. Maybe you can use the ramdisk for this purpose too (if necessary, kindly
197
ask K. Liedl (Klaus.Liedl@uibk.ac.at) for support, he knows how to do it --
198
I never tried). Stay in email contact with me. Be aware that the following
199
weeks/months could be the worst of your life.
200
Note: If single-stepping takes up too much time, you can try to let the driver
201
catch the problem by pressing the 'r' key. The driver will automatically enter
202
single-step mode if it has detected something weird.
203
 
204
 
205
Author's Contact Address
206
-----------------------
207
Email: fri@rsx42sun0.dofn.de
208
Phone: x49-7545-2256 (office), x49-7541-42305 (home)
209
Home address: D. Frieauff, Stockerholzstr. 27, 88048 Friedrichshafen, Germany
210
 
211
 
212
!!!! Important Notice !!!!
213
-----------------------------
214
- Klaus Liedl maintains an excellent WWW page about Linux on Compaq XL.
215
  It includes an FAQ, lots of tips & tricks as well as downloadable
216
  boot disk images. The URL is: http://www-c724.uibk.ac.at/XL/
217
- Volunteer wanted for further maintenance of this driver software. I
218
  don't have the time anymore to do serious support as some of you will know.
219
 
220
Literature
221
----------
222
 - AMD AM53C974 PC-SCSI Technical Manual, publication #18624B
223
 - Amendment to the AMD AM53C974 PC-SCSI Technical Manual
224
 - AMD AM79C974 PC-NET Datasheet, publication #18681
225
 - Amendment to the AMD AM79C974 PC-NET Datasheet
226
 
227
 
228
THANKS to
229
---------
230
 - Drew Eckhardt, Robin Cutshaw, K. Liedl, Robert J. Pappas, A. Grenier,
231
   Mark Stockton, David C. Niemi, Ben Craft, and many others who have helped
232
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.