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

Subversion Repositories or1k_old

[/] [or1k_old/] [trunk/] [rc203soc/] [sw/] [uClinux/] [drivers/] [scsi/] [README.in2000] - Blame information for rev 1765

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1626 jcastillo
 
2
UPDATE NEWS: version 1.33 - 26 Aug 98
3
 
4
   Interrupt management in this driver has become, over
5
   time, increasingly odd and difficult to explain - this
6
   has been mostly due to my own mental inadequacies. In
7
   recent kernels, it has failed to function at all when
8
   compiled for SMP. I've fixed that problem, and after
9
   taking a fresh look at interrupts in general, greatly
10
   reduced the number of places where they're fiddled
11
   with. Done some heavy testing and it looks very good.
12
   The driver now makes use of the __initfunc() and
13
   __initdata macros to save about 4k of kernel memory.
14
   Once again, the same code works for both 2.0.xx and
15
   2.1.xx kernels.
16
 
17
UPDATE NEWS: version 1.32 - 28 Mar 98
18
 
19
   Removed the check for legal IN2000 hardware versions:
20
   It appears that the driver works fine with serial
21
   EPROMs (the 8-pin chip that defines hardware rev) as
22
   old as 2.1, so we'll assume that all cards are OK.
23
 
24
UPDATE NEWS: version 1.31 - 6 Jul 97
25
 
26
   Fixed a bug that caused incorrect SCSI status bytes to be
27
   returned from commands sent to LUN's greater than 0. This
28
   means that CDROM changers work now! Fixed a bug in the
29
   handling of command-line arguments when loaded as a module.
30
   Also put all the header data in in2000.h where it belongs.
31
   There are no longer any differences between this driver in
32
   the 2.1.xx source tree and the 2.0.xx tree, as of 2.0.31
33
   and 2.1.45 (or is it .46?) - this makes things much easier
34
   for me...
35
 
36
UPDATE NEWS: version 1.30 - 14 Oct 96
37
 
38
   Fixed a bug in the code that sets the transfer direction
39
   bit (DESTID_DPD in the WD_DESTINATION_ID register). There
40
   are quite a few SCSI commands that do a write-to-device;
41
   now we deal with all of them correctly. Thanks to Joerg
42
   Dorchain for catching this one.
43
 
44
UPDATE NEWS: version 1.29 - 24 Sep 96
45
 
46
   The memory-mapped hardware on the card is now accessed via
47
   the 'readb()' and 'readl()' macros - required by the new
48
   memory management scheme in the 2.1.x kernel series.
49
   As suggested by Andries Brouwer, 'bios_param()' no longer
50
   forces an artificial 1023 track limit on drives. Also
51
   removed some kludge-code left over from struggles with
52
   older (buggy) compilers.
53
 
54
UPDATE NEWS: version 1.28 - 07 May 96
55
 
56
   Tightened up the "interrupts enabled/disabled" discipline
57
   in 'in2000_queuecommand()' and maybe 1 or 2 other places.
58
   I _think_ it may have been a little too lax, causing an
59
   occasional crash during full moon. A fully functional
60
   /proc interface is now in place - if you want to play
61
   with it, start by doing 'cat /proc/scsi/in2000/0'. You
62
   can also use it to change a few run-time parameters on
63
   the fly, but it's mostly for debugging. The curious
64
   should take a good look at 'in2000_proc_info()' in the
65
   in2000.c file to get an understanding of what it's all
66
   about; I figure that people who are really into it will
67
   want to add features suited to their own needs...
68
   Also, sync is now DISABLED by default.
69
 
70
UPDATE NEWS: version 1.27 - 10 Apr 96
71
 
72
   Fixed a well-hidden bug in the adaptive-disconnect code
73
   that would show up every now and then during extreme
74
   heavy loads involving 2 or more simultaneously active
75
   devices. Thanks to Joe Mack for keeping my nose to the
76
   grindstone on this one.
77
 
78
UPDATE NEWS: version 1.26 - 07 Mar 96
79
 
80
   1.25 had a nasty bug that bit people with swap partitions
81
   and tape drives. Also, in my attempt to guess my way
82
   through Intel assembly language, I made an error in the
83
   inline code for IO writes. Made a few other changes and
84
   repairs - this version (fingers crossed) should work well.
85
 
86
UPDATE NEWS: version 1.25 - 05 Mar 96
87
 
88
   Kernel 1.3.70 interrupt mods added; old kernels still OK.
89
   Big help from Bill Earnest and David Willmore on speed
90
   testing and optimizing: I think there's a real improvement
91
   in this area.
92
   New! User-friendly command-line interface for LILO and
93
   module loading - the old method is gone, so you'll need
94
   to read the comments for 'setup_strings' near the top
95
   of in2000.c. For people with CDROM's or other devices
96
   that have a tough time with sync negotiation, you can
97
   now selectively disable sync on individual devices -
98
   search for the 'nosync' keyword in the command-line
99
   comments. Some of you disable the BIOS on the card, which
100
   caused the auto-detect function to fail; there is now a
101
   command-line option to force detection of a ROM-less card.
102
 
103
UPDATE NEWS: version 1.24a - 24 Feb 96
104
 
105
   There was a bug in the synchronous transfer code. Only
106
   a few people downloaded before I caught it - could have
107
   been worse.
108
 
109
UPDATE NEWS: version 1.24 - 23 Feb 96
110
 
111
   Lots of good changes. Advice from Bill Earnest resulted
112
   in much better detection of cards, more efficient usage
113
   of the fifo, and (hopefully) faster data transfers. The
114
   jury is still out on speed - I hope it's improved some.
115
   One nifty new feature is a cool way of doing disconnect/
116
   reselect. The driver defaults to what I'm calling
117
   'adaptive disconnect' - meaning that each command is
118
   evaluated individually as to whether or not it should be
119
   run with the option to disconnect/reselect (if the device
120
   chooses), or as a "SCSI-bus-hog". When several devices
121
   are operating simultaneously, disconnects are usually an
122
   advantage. In a single device system, or if only 1 device
123
   is being accessed, transfers usually go faster if disconnects
124
   are not allowed.
125
 
126
 
127
 
128
The default arguments (you get these when you don't give an 'in2000'
129
command-line argument, or you give a blank argument) will cause
130
the driver to do adaptive disconnect, synchronous transfers, and a
131
minimum of debug messages. If you want to fool with the options,
132
search for 'setup_strings' near the top of the in2000.c file and
133
check the 'hostdata->args' section in in2000.h - but be warned! Not
134
everything is working yet (some things will never work, probably).
135
I believe that disabling disconnects (DIS_NEVER) will allow you
136
to choose a LEVEL2 value higher than 'L2_BASIC', but I haven't
137
spent a lot of time testing this. You might try 'ENABLE_CLUSTERING'
138
to see what happens: my tests showed little difference either way.
139
There's also a define called 'DEFAULT_SX_PER'; this sets the data
140
transfer speed for the asynchronous mode. I've put it at 500 ns
141
despite the fact that the card could handle settings of 376 or
142
252, because higher speeds may be a problem with poor quality
143
cables or improper termination; 500 ns is a compromise. You can
144
choose your own default through the command-line with the
145
'period' keyword.
146
 
147
 
148
------------------------------------------------
149
***********  DIP switch settings  **************
150
------------------------------------------------
151
 
152
   sw1-1 sw1-2    BIOS address (hex)
153
   -----------------------------------------
154
    off   off     C8000 - CBFF0
155
    on    off     D8000 - DBFF0
156
    off   on      D0000 - D3FF0
157
    on    on      BIOS disabled
158
 
159
   sw1-3 sw1-4    IO port address (hex)
160
   ------------------------------------
161
    off   off     220 - 22F
162
    on    off     200 - 20F
163
    off   on      110 - 11F
164
    on    on      100 - 10F
165
 
166
   sw1-5 sw1-6 sw1-7    Interrupt
167
   ------------------------------
168
    off   off   off     15
169
    off   on    off     14
170
    off   off   on      11
171
    off   on    on      10
172
    on    -     -       disabled
173
 
174
   sw1-8 function depends on BIOS version. In earlier versions this
175
   controlled synchronous data transfer support for MSDOS:
176
      off = disabled
177
      on  = enabled
178
   In later ROMs (starting with 01.3 in April 1994) sw1-8 controls
179
   the "greater than 2 disk drive" feature that first appeared in
180
   MSDOS 5.0 (ignored by Linux):
181
      off = 2 drives maximum
182
      on  = 7 drives maximum
183
 
184
   sw1-9    Floppy controller
185
   --------------------------
186
    off     disabled
187
    on      enabled
188
 
189
------------------------------------------------
190
 
191
   I should mention that Drew Eckhardt's 'Generic NCR5380' sources
192
   were my main inspiration, with lots of reference to the IN2000
193
   driver currently distributed in the kernel source. I also owe
194
   much to a driver written by Hamish Macdonald for Linux-m68k(!).
195
   And to Eric Wright for being an ALPHA guinea pig. And to Bill
196
   Earnest for 2 tons of great input and information. And to David
197
   Willmore for extensive 'bonnie' testing. And to Joe Mack for
198
   continual testing and feedback.
199
 
200
 
201
            John Shifflett    jshiffle@netcom.com
202
 

powered by: WebSVN 2.1.0

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