79a9aed8e5d7eb9c6ab8490a0a602e95bd9718a8
[linux-2.6.git] / Documentation / scsi / ChangeLog.megaraid
1 Release Date    : Thu Dec  9 19:02:14 EST 2004 - Sreenivas Bagalkote <sreenib@lsil.com>
2
3 Current Version : 2.20.4.1 (scsi module), 2.20.2.3 (cmm module)
4 Older Version   : 2.20.4.1 (scsi module), 2.20.2.2 (cmm module)
5
6 i.      Fix a bug in kioc's dma buffer deallocation
7
8 Release Date    : Thu Nov  4 18:24:56 EST 2004 - Sreenivas Bagalkote <sreenib@lsil.com>
9
10 Current Version : 2.20.4.1 (scsi module), 2.20.2.2 (cmm module)
11 Older Version   : 2.20.4.0 (scsi module), 2.20.2.1 (cmm module)
12
13 i.      Handle IOCTL cmd timeouts more properly.
14
15 ii.     pci_dma_sync_{sg,single}_for_cpu was introduced into megaraid_mbox
16         incorrectly (instead of _for_device). Changed to appropriate
17         pci_dma_sync_{sg,single}_for_device.
18
19 Release Date    : Wed Oct 06 11:15:29 EDT 2004 - Sreenivas Bagalkote <sreenib@lsil.com>
20 Current Version : 2.20.4.0 (scsi module), 2.20.2.1 (cmm module)
21 Older Version   : 2.20.4.0 (scsi module), 2.20.2.0 (cmm module)
22
23 i.      Remove CONFIG_COMPAT around register_ioctl32_conversion
24
25 Release Date    : Mon Sep 27 22:15:07 EDT 2004 - Atul Mukker <atulm@lsil.com>
26 Current Version : 2.20.4.0 (scsi module), 2.20.2.0 (cmm module)
27 Older Version   : 2.20.3.1 (scsi module), 2.20.2.0 (cmm module)
28
29 i.      Fix data corruption. Because of a typo in the driver, the IO packets
30         were wrongly shared by the ioctl path. This causes a whole IO command
31         to be replaced by an incoming ioctl command.
32
33 Release Date    : Tue Aug 24 09:43:35 EDT 2004 - Atul Mukker <atulm@lsil.com>
34 Current Version : 2.20.3.1 (scsi module), 2.20.2.0 (cmm module)
35 Older Version   : 2.20.3.0 (scsi module), 2.20.2.0 (cmm module)
36
37 i.      Function reordering so that inline functions are defined before they
38         are actually used. It is now mandatory for GCC 3.4.1 (current stable)
39
40         Declare some heavy-weight functions to be non-inlined,
41         megaraid_mbox_build_cmd, megaraid_mbox_runpendq,
42         megaraid_mbox_prepare_pthru, megaraid_mbox_prepare_epthru,
43         megaraid_busywait_mbox
44
45                 - Andrew Morton <akpm@osdl.org>, 08.19.2004
46                 linux-scsi mailing list
47
48         "Something else to clean up after inclusion: every instance of an
49         inline function is actually rendered as a full function call, because
50         the function is always used before it is defined.  Atul, please
51         re-arrange the code to eliminate the need for most (all) of the
52         function prototypes at the top of each file, and define (not just
53         declare with a prototype) each inline function before its first use"
54
55                 - Matt Domsch <Matt_Domsch@dell.com>, 07.27.2004
56                 linux-scsi mailing list
57
58
59 ii.     Display elapsed time (countdown) while waiting for FW to boot.
60
61 iii.    Module compilation reorder in Makefile so that unresolved symbols do
62         not occur when driver is compiled non-modular.
63
64                 Patrick J. LoPresti <patl@users.sourceforge.net>, 8.22.2004
65                 linux-scsi mailing list
66
67
68 Release Date    : Thu Aug 19 09:58:33 EDT 2004 - Atul Mukker <atulm@lsil.com>
69 Current Version : 2.20.3.0 (scsi module), 2.20.2.0 (cmm module)
70 Older Version   : 2.20.2.0 (scsi module), 2.20.1.0 (cmm module)
71
72 i.      When copying the mailbox packets, copy only first 14 bytes (for 32-bit
73         mailboxes) and only first 22 bytes (for 64-bit mailboxes). This is to
74         avoid getting the stale values for busy bit. We want to set the busy
75         bit just before issuing command to the FW.
76
77 ii.     In the reset handling, if the reseted command is not owned by the
78         driver, do not (wrongly) print information for the "attached" driver
79         packet.
80
81 iii.    Have extended wait when issuing command in synchronous mode. This is
82         required for the cases where the option ROM is disabled and there is
83         no BIOS to start the controller. The FW starts to boot after receiving
84         the first command from the driver. The current driver has 1 second
85         timeout for the synchronous commands, which is far less than what is
86         actually required. We now wait up to MBOX_RESET_TIME (180 seconds) for
87         FW boot process.
88
89 iv.     In megaraid_mbox_product_info, clear the mailbox contents completely
90         before preparing the command for inquiry3. This is to ensure that the
91         FW does not get junk values in the command.
92
93 v.      Do away with the redundant LSI_CONFIG_COMPAT redefinition for
94         CONFIG_COMPAT. Replace <asm/ioctl32.h> with <linux/ioctl32.h>
95
96                 - James Bottomley <James.Bottomley@SteelEye.com>, 08.17.2004
97                  linux-scsi mailing list
98
99 vi.     Add support for 64-bit applications. Current drivers assume only
100         32-bit applications, even on 64-bit platforms. Use the "data" and
101         "buffer" fields of the mimd_t structure, instead of embedded 32-bit
102         addresses in application mailbox and passthru structures.
103
104 vii.    Move the function declarations for the management module from
105         megaraid_mm.h to megaraid_mm.c
106
107                 - Andrew Morton <akpm@osdl.org>, 08.19.2004
108                 linux-scsi mailing list
109
110 viii.   Change default values for MEGARAID_NEWGEN, MEGARAID_MM, and
111         MEGARAID_MAILBOX to 'n' in Kconfig.megaraid
112
113                 - Andrew Morton <akpm@osdl.org>, 08.19.2004
114                 linux-scsi mailing list
115
116 ix.     replace udelay with msleep
117
118 x.      Typos corrected in comments and whitespace adjustments, explicit
119         grouping of expressions.
120
121
122 Release Date    : Fri Jul 23 15:22:07 EDT 2004 - Atul Mukker <atulm@lsil.com>
123 Current Version : 2.20.2.0 (scsi module), 2.20.1.0 (cmm module)
124 Older Version   : 2.20.1.0 (scsi module), 2.20.0.0 (cmm module)
125
126 i.      Add PCI ids for Acer ROMB 2E solution
127
128 ii.     Add PCI ids for I4
129
130 iii.    Typo corrected for subsys id for megaraid sata 300-4x
131
132 iv.     Remove yield() while mailbox handshake in synchronous commands
133
134
135         "My other main gripe is things like this:
136
137         +       // wait for maximum 1 second for status to post
138         +       for (i = 0; i < 40000; i++) {
139         +               if (mbox->numstatus != 0xFF) break;
140         +               udelay(25); yield();
141         +       }
142
143         which litter the driver.  Use of yield() in drivers is deprecated."
144
145                 - James Bottomley <James.Bottomley@SteelEye.com>, 07.14.2004
146                  linux-scsi mailing list
147
148 v.      Remove redundant __megaraid_busywait_mbox routine
149
150 vi.     Fix bug in the managment module, which causes a system lockup when the
151         IO module is loaded and then unloaded, followed by executing any
152         management utility. The current version of management module does not
153         handle the adapter unregister properly.
154
155         Specifically, it still keeps a reference to the unregistered
156         controllers. To avoid this, the static array adapters has been
157         replaced by a dynamic list, which gets updated every time an adapter
158         is added or removed.
159
160         Also, during unregistration of the IO module, the resources are
161         now released in the exact reverse order of the allocation time
162         sequence.
163
164
165 Release Date    : Fri Jun 25 18:58:43 EDT 2004 - Atul Mukker <atulm@lsil.com>
166 Current Version : 2.20.1.0
167 Older Version   : megaraid 2.20.0.1
168
169 i.      Stale list pointer in adapter causes kernel panic when module
170         megaraid_mbox is unloaded
171
172
173 Release Date    : Thu Jun 24 20:37:11 EDT 2004 - Atul Mukker <atulm@lsil.com>
174 Current Version : 2.20.0.1
175 Older Version   : megaraid 2.20.0.00
176
177 i.      Modules are not 'y' by default, but depend on current definition of
178         SCSI & PCI.
179
180 ii.     Redundant structure mraid_driver_t removed.
181
182 iii.    Miscellaneous indentation and goto/label fixes.
183                 - Christoph Hellwig <hch@infradead.org>, 06.24.2004 linux-scsi
184
185 iv.     scsi_host_put(), do just before completing HBA shutdown.
186
187
188
189 Release Date    : Mon Jun 21 19:53:54 EDT 2004 - Atul Mukker <atulm@lsil.com>
190 Current Version : 2.20.0.0
191 Older Version   : megaraid 2.20.0.rc2 and 2.00.3
192
193 i.      Independent module to interact with userland applications and
194         multiplex command to low level RAID module(s).
195
196         "Shared code in a third module, a "library module", is an acceptable
197         solution. modprobe automatically loads dependent modules, so users
198         running "modprobe driver1" or "modprobe driver2" would automatically
199         load the shared library module."
200
201                 - Jeff Garzik <jgarzik@pobox.com> 02.25.2004 LKML
202
203         "As Jeff hinted, if your userspace<->driver API is consistent between
204         your new MPT-based RAID controllers and your existing megaraid driver,
205         then perhaps you need a single small helper module (lsiioctl or some
206         better name), loaded by both mptraid and megaraid automatically, which
207         handles registering the /dev/megaraid node dynamically. In this case,
208         both mptraid and megaraid would register with lsiioctl for each
209         adapter discovered, and lsiioctl would essentially be a switch,
210         redirecting userspace tool ioctls to the appropriate driver."
211
212                 - Matt Domsch <Matt_Domsch@dell.com> 02.25.2004 LKML
213
214 ii.     Remove C99 initializations from pci_device id.
215
216         "pci_id_table_g would be much more readable when not using C99
217         initializers.
218         PCI table doesn't change, there's lots of users that prefer the more
219         readable variant.  And it's really far less and much easier to grok
220         lines without C99 initializers."
221
222                 - Christoph Hellwig <hch@infradead.org>, 05.28.2004 linux-scsi
223
224 iii.    Many fixes as suggested by Christoph Hellwig <hch@infradead.org> on
225         linux-scsi, 05.28.2004
226
227 iv.     We now support up to 32 parallel ioctl commands instead of current 1.
228         There is a conscious effort to let memory allocation not fail for ioctl
229         commands.
230
231 v.      Do away with internal memory management. Use pci_pool_(create|alloc)
232         instead.
233
234 vi.     Kill tasklet when unloading the driver.
235
236 vii.    Do not use "host_lock', driver has fine-grain locks now to protect all
237         data structures.
238
239 viii.   Optimize the build scatter-gather list routine. The callers already
240         know the data transfer address and length.
241
242 ix.     Better implementation of error handling and recovery. Driver now
243         performs extended errors recovery for instances like scsi cable pull.
244
245 x.      Disassociate the management commands with an overlaid scsi command.
246         Driver now treats the management packets as special packets and has a
247         dedicated callback routine.