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