diff options
Diffstat (limited to 'Documentation/scsi/ChangeLog.megaraid')
-rw-r--r-- | Documentation/scsi/ChangeLog.megaraid | 349 |
1 files changed, 349 insertions, 0 deletions
diff --git a/Documentation/scsi/ChangeLog.megaraid b/Documentation/scsi/ChangeLog.megaraid new file mode 100644 index 000000000000..a9356c63b800 --- /dev/null +++ b/Documentation/scsi/ChangeLog.megaraid | |||
@@ -0,0 +1,349 @@ | |||
1 | Release Date : Thu Feb 03 12:27:22 EST 2005 - Seokmann Ju <sju@lsil.com> | ||
2 | Current Version : 2.20.4.5 (scsi module), 2.20.2.5 (cmm module) | ||
3 | Older Version : 2.20.4.4 (scsi module), 2.20.2.4 (cmm module) | ||
4 | |||
5 | 1. Modified name of two attributes in scsi_host_template. | ||
6 | On Wed, 2005-02-02 at 10:56 -0500, Ju, Seokmann wrote: | ||
7 | > + .sdev_attrs = megaraid_device_attrs, | ||
8 | > + .shost_attrs = megaraid_class_device_attrs, | ||
9 | |||
10 | These are, perhaps, slightly confusing names. | ||
11 | The terms device and class_device have well defined meanings in the | ||
12 | generic device model, neither of which is what you mean here. | ||
13 | Why not simply megaraid_sdev_attrs and megaraid_shost_attrs? | ||
14 | |||
15 | Other than this, it looks fine to me too. | ||
16 | |||
17 | Release Date : Thu Jan 27 00:01:03 EST 2005 - Atul Mukker <atulm@lsil.com> | ||
18 | Current Version : 2.20.4.4 (scsi module), 2.20.2.5 (cmm module) | ||
19 | Older Version : 2.20.4.3 (scsi module), 2.20.2.4 (cmm module) | ||
20 | |||
21 | 1. Bump up the version of scsi module due to its conflict. | ||
22 | |||
23 | Release Date : Thu Jan 21 00:01:03 EST 2005 - Atul Mukker <atulm@lsil.com> | ||
24 | Current Version : 2.20.4.3 (scsi module), 2.20.2.5 (cmm module) | ||
25 | Older Version : 2.20.4.2 (scsi module), 2.20.2.4 (cmm module) | ||
26 | |||
27 | 1. Remove driver ioctl for logical drive to scsi address translation and | ||
28 | replace with the sysfs attribute. To remove drives and change | ||
29 | capacity, application shall now use the device attribute to get the | ||
30 | logical drive number for a scsi device. For adding newly created | ||
31 | logical drives, class device attribute would be required to uniquely | ||
32 | identify each controller. | ||
33 | - Atul Mukker <atulm@lsil.com> | ||
34 | |||
35 | "James, I've been thinking about this a little more, and you may be on | ||
36 | to something here. Let each driver add files as such:" | ||
37 | |||
38 | - Matt Domsch <Matt_Domsch@dell.com>, 12.15.2004 | ||
39 | linux-scsi mailing list | ||
40 | |||
41 | |||
42 | "Then, if you simply publish your LD number as an extra parameter of | ||
43 | the device, you can look through /sys to find it." | ||
44 | |||
45 | - James Bottomley <James.Bottomley@SteelEye.com>, 01.03.2005 | ||
46 | linux-scsi mailing list | ||
47 | |||
48 | |||
49 | "I don't see why not ... it's your driver, you can publish whatever | ||
50 | extra information you need as scsi_device attributes; that was one of | ||
51 | the designs of the extensible attribute system." | ||
52 | |||
53 | - James Bottomley <James.Bottomley@SteelEye.com>, 01.06.2005 | ||
54 | linux-scsi mailing list | ||
55 | |||
56 | 2. Add AMI megaraid support - Brian King <brking@charter.net> | ||
57 | PCI_VENDOR_ID_AMI, PCI_DEVICE_ID_AMI_MEGARAID3, | ||
58 | PCI_VENDOR_ID_AMI, PCI_SUBSYS_ID_PERC3_DC, | ||
59 | |||
60 | 3. Make some code static - Adrian Bunk <bunk@stusta.de> | ||
61 | Date: Mon, 15 Nov 2004 03:14:57 +0100 | ||
62 | |||
63 | The patch below makes some needlessly global code static. | ||
64 | -wait_queue_head_t wait_q; | ||
65 | +static wait_queue_head_t wait_q; | ||
66 | |||
67 | Signed-off-by: Adrian Bunk <bunk@stusta.de> | ||
68 | |||
69 | 4. Added NEC ROMB support - NEC MegaRAID PCI Express ROMB controller | ||
70 | PCI_VENDOR_ID_LSI_LOGIC, PCI_DEVICE_ID_MEGARAID_NEC_ROMB_2E, | ||
71 | PCI_SUBSYS_ID_NEC, PCI_SUBSYS_ID_MEGARAID_NEC_ROMB_2E, | ||
72 | |||
73 | 5. Fixed Tape drive issue : For any Direct CDB command to physical device | ||
74 | including tape, timeout value set by driver was 10 minutes. With this | ||
75 | value, most of command will return within timeout. However, for those | ||
76 | command like ERASE or FORMAT, it takes more than an hour depends on | ||
77 | capacity of the device and the command could be terminated before it | ||
78 | completes. | ||
79 | To address this issue, the 'timeout' field in the DCDB command will | ||
80 | have NO TIMEOUT (i.e., 4) value as its timeout on DCDB command. | ||
81 | |||
82 | |||
83 | |||
84 | Release Date : Thu Dec 9 19:10:23 EST 2004 | ||
85 | - Sreenivas Bagalkote <sreenib@lsil.com> | ||
86 | |||
87 | Current Version : 2.20.4.2 (scsi module), 2.20.2.4 (cmm module) | ||
88 | Older Version : 2.20.4.1 (scsi module), 2.20.2.3 (cmm module) | ||
89 | |||
90 | i. Introduced driver ioctl that returns scsi address for a given ld. | ||
91 | |||
92 | "Why can't the existing sysfs interfaces be used to do this?" | ||
93 | - Brian King (brking@us.ibm.com) | ||
94 | |||
95 | "I've looked into solving this another way, but I cannot see how | ||
96 | to get this driver-private mapping of logical drive number-> HCTL | ||
97 | without putting code something like this into the driver." | ||
98 | |||
99 | "...and by providing a mapping a function to userspace, the driver | ||
100 | is free to change its mapping algorithm in the future if necessary .." | ||
101 | - Matt Domsch (Matt_Domsch@dell.com) | ||
102 | |||
103 | Release Date : Thu Dec 9 19:02:14 EST 2004 - Sreenivas Bagalkote <sreenib@lsil.com> | ||
104 | |||
105 | Current Version : 2.20.4.1 (scsi module), 2.20.2.3 (cmm module) | ||
106 | Older Version : 2.20.4.1 (scsi module), 2.20.2.2 (cmm module) | ||
107 | |||
108 | i. Fix a bug in kioc's dma buffer deallocation | ||
109 | |||
110 | Release Date : Thu Nov 4 18:24:56 EST 2004 - Sreenivas Bagalkote <sreenib@lsil.com> | ||
111 | |||
112 | Current Version : 2.20.4.1 (scsi module), 2.20.2.2 (cmm module) | ||
113 | Older Version : 2.20.4.0 (scsi module), 2.20.2.1 (cmm module) | ||
114 | |||
115 | i. Handle IOCTL cmd timeouts more properly. | ||
116 | |||
117 | ii. pci_dma_sync_{sg,single}_for_cpu was introduced into megaraid_mbox | ||
118 | incorrectly (instead of _for_device). Changed to appropriate | ||
119 | pci_dma_sync_{sg,single}_for_device. | ||
120 | |||
121 | Release Date : Wed Oct 06 11:15:29 EDT 2004 - Sreenivas Bagalkote <sreenib@lsil.com> | ||
122 | Current Version : 2.20.4.0 (scsi module), 2.20.2.1 (cmm module) | ||
123 | Older Version : 2.20.4.0 (scsi module), 2.20.2.0 (cmm module) | ||
124 | |||
125 | i. Remove CONFIG_COMPAT around register_ioctl32_conversion | ||
126 | |||
127 | Release Date : Mon Sep 27 22:15:07 EDT 2004 - Atul Mukker <atulm@lsil.com> | ||
128 | Current Version : 2.20.4.0 (scsi module), 2.20.2.0 (cmm module) | ||
129 | Older Version : 2.20.3.1 (scsi module), 2.20.2.0 (cmm module) | ||
130 | |||
131 | i. Fix data corruption. Because of a typo in the driver, the IO packets | ||
132 | were wrongly shared by the ioctl path. This causes a whole IO command | ||
133 | to be replaced by an incoming ioctl command. | ||
134 | |||
135 | Release Date : Tue Aug 24 09:43:35 EDT 2004 - Atul Mukker <atulm@lsil.com> | ||
136 | Current Version : 2.20.3.1 (scsi module), 2.20.2.0 (cmm module) | ||
137 | Older Version : 2.20.3.0 (scsi module), 2.20.2.0 (cmm module) | ||
138 | |||
139 | i. Function reordering so that inline functions are defined before they | ||
140 | are actually used. It is now mandatory for GCC 3.4.1 (current stable) | ||
141 | |||
142 | Declare some heavy-weight functions to be non-inlined, | ||
143 | megaraid_mbox_build_cmd, megaraid_mbox_runpendq, | ||
144 | megaraid_mbox_prepare_pthru, megaraid_mbox_prepare_epthru, | ||
145 | megaraid_busywait_mbox | ||
146 | |||
147 | - Andrew Morton <akpm@osdl.org>, 08.19.2004 | ||
148 | linux-scsi mailing list | ||
149 | |||
150 | "Something else to clean up after inclusion: every instance of an | ||
151 | inline function is actually rendered as a full function call, because | ||
152 | the function is always used before it is defined. Atul, please | ||
153 | re-arrange the code to eliminate the need for most (all) of the | ||
154 | function prototypes at the top of each file, and define (not just | ||
155 | declare with a prototype) each inline function before its first use" | ||
156 | |||
157 | - Matt Domsch <Matt_Domsch@dell.com>, 07.27.2004 | ||
158 | linux-scsi mailing list | ||
159 | |||
160 | |||
161 | ii. Display elapsed time (countdown) while waiting for FW to boot. | ||
162 | |||
163 | iii. Module compilation reorder in Makefile so that unresolved symbols do | ||
164 | not occur when driver is compiled non-modular. | ||
165 | |||
166 | Patrick J. LoPresti <patl@users.sourceforge.net>, 8.22.2004 | ||
167 | linux-scsi mailing list | ||
168 | |||
169 | |||
170 | Release Date : Thu Aug 19 09:58:33 EDT 2004 - Atul Mukker <atulm@lsil.com> | ||
171 | Current Version : 2.20.3.0 (scsi module), 2.20.2.0 (cmm module) | ||
172 | Older Version : 2.20.2.0 (scsi module), 2.20.1.0 (cmm module) | ||
173 | |||
174 | i. When copying the mailbox packets, copy only first 14 bytes (for 32-bit | ||
175 | mailboxes) and only first 22 bytes (for 64-bit mailboxes). This is to | ||
176 | avoid getting the stale values for busy bit. We want to set the busy | ||
177 | bit just before issuing command to the FW. | ||
178 | |||
179 | ii. In the reset handling, if the reseted command is not owned by the | ||
180 | driver, do not (wrongly) print information for the "attached" driver | ||
181 | packet. | ||
182 | |||
183 | iii. Have extended wait when issuing command in synchronous mode. This is | ||
184 | required for the cases where the option ROM is disabled and there is | ||
185 | no BIOS to start the controller. The FW starts to boot after receiving | ||
186 | the first command from the driver. The current driver has 1 second | ||
187 | timeout for the synchronous commands, which is far less than what is | ||
188 | actually required. We now wait up to MBOX_RESET_TIME (180 seconds) for | ||
189 | FW boot process. | ||
190 | |||
191 | iv. In megaraid_mbox_product_info, clear the mailbox contents completely | ||
192 | before preparing the command for inquiry3. This is to ensure that the | ||
193 | FW does not get junk values in the command. | ||
194 | |||
195 | v. Do away with the redundant LSI_CONFIG_COMPAT redefinition for | ||
196 | CONFIG_COMPAT. Replace <asm/ioctl32.h> with <linux/ioctl32.h> | ||
197 | |||
198 | - James Bottomley <James.Bottomley@SteelEye.com>, 08.17.2004 | ||
199 | linux-scsi mailing list | ||
200 | |||
201 | vi. Add support for 64-bit applications. Current drivers assume only | ||
202 | 32-bit applications, even on 64-bit platforms. Use the "data" and | ||
203 | "buffer" fields of the mimd_t structure, instead of embedded 32-bit | ||
204 | addresses in application mailbox and passthru structures. | ||
205 | |||
206 | vii. Move the function declarations for the management module from | ||
207 | megaraid_mm.h to megaraid_mm.c | ||
208 | |||
209 | - Andrew Morton <akpm@osdl.org>, 08.19.2004 | ||
210 | linux-scsi mailing list | ||
211 | |||
212 | viii. Change default values for MEGARAID_NEWGEN, MEGARAID_MM, and | ||
213 | MEGARAID_MAILBOX to 'n' in Kconfig.megaraid | ||
214 | |||
215 | - Andrew Morton <akpm@osdl.org>, 08.19.2004 | ||
216 | linux-scsi mailing list | ||
217 | |||
218 | ix. replace udelay with msleep | ||
219 | |||
220 | x. Typos corrected in comments and whitespace adjustments, explicit | ||
221 | grouping of expressions. | ||
222 | |||
223 | |||
224 | Release Date : Fri Jul 23 15:22:07 EDT 2004 - Atul Mukker <atulm@lsil.com> | ||
225 | Current Version : 2.20.2.0 (scsi module), 2.20.1.0 (cmm module) | ||
226 | Older Version : 2.20.1.0 (scsi module), 2.20.0.0 (cmm module) | ||
227 | |||
228 | i. Add PCI ids for Acer ROMB 2E solution | ||
229 | |||
230 | ii. Add PCI ids for I4 | ||
231 | |||
232 | iii. Typo corrected for subsys id for megaraid sata 300-4x | ||
233 | |||
234 | iv. Remove yield() while mailbox handshake in synchronous commands | ||
235 | |||
236 | |||
237 | "My other main gripe is things like this: | ||
238 | |||
239 | + // wait for maximum 1 second for status to post | ||
240 | + for (i = 0; i < 40000; i++) { | ||
241 | + if (mbox->numstatus != 0xFF) break; | ||
242 | + udelay(25); yield(); | ||
243 | + } | ||
244 | |||
245 | which litter the driver. Use of yield() in drivers is deprecated." | ||
246 | |||
247 | - James Bottomley <James.Bottomley@SteelEye.com>, 07.14.2004 | ||
248 | linux-scsi mailing list | ||
249 | |||
250 | v. Remove redundant __megaraid_busywait_mbox routine | ||
251 | |||
252 | vi. Fix bug in the managment module, which causes a system lockup when the | ||
253 | IO module is loaded and then unloaded, followed by executing any | ||
254 | management utility. The current version of management module does not | ||
255 | handle the adapter unregister properly. | ||
256 | |||
257 | Specifically, it still keeps a reference to the unregistered | ||
258 | controllers. To avoid this, the static array adapters has been | ||
259 | replaced by a dynamic list, which gets updated every time an adapter | ||
260 | is added or removed. | ||
261 | |||
262 | Also, during unregistration of the IO module, the resources are | ||
263 | now released in the exact reverse order of the allocation time | ||
264 | sequence. | ||
265 | |||
266 | |||
267 | Release Date : Fri Jun 25 18:58:43 EDT 2004 - Atul Mukker <atulm@lsil.com> | ||
268 | Current Version : 2.20.1.0 | ||
269 | Older Version : megaraid 2.20.0.1 | ||
270 | |||
271 | i. Stale list pointer in adapter causes kernel panic when module | ||
272 | megaraid_mbox is unloaded | ||
273 | |||
274 | |||
275 | Release Date : Thu Jun 24 20:37:11 EDT 2004 - Atul Mukker <atulm@lsil.com> | ||
276 | Current Version : 2.20.0.1 | ||
277 | Older Version : megaraid 2.20.0.00 | ||
278 | |||
279 | i. Modules are not 'y' by default, but depend on current definition of | ||
280 | SCSI & PCI. | ||
281 | |||
282 | ii. Redundant structure mraid_driver_t removed. | ||
283 | |||
284 | iii. Miscellaneous indentation and goto/label fixes. | ||
285 | - Christoph Hellwig <hch@infradead.org>, 06.24.2004 linux-scsi | ||
286 | |||
287 | iv. scsi_host_put(), do just before completing HBA shutdown. | ||
288 | |||
289 | |||
290 | |||
291 | Release Date : Mon Jun 21 19:53:54 EDT 2004 - Atul Mukker <atulm@lsil.com> | ||
292 | Current Version : 2.20.0.0 | ||
293 | Older Version : megaraid 2.20.0.rc2 and 2.00.3 | ||
294 | |||
295 | i. Independent module to interact with userland applications and | ||
296 | multiplex command to low level RAID module(s). | ||
297 | |||
298 | "Shared code in a third module, a "library module", is an acceptable | ||
299 | solution. modprobe automatically loads dependent modules, so users | ||
300 | running "modprobe driver1" or "modprobe driver2" would automatically | ||
301 | load the shared library module." | ||
302 | |||
303 | - Jeff Garzik <jgarzik@pobox.com> 02.25.2004 LKML | ||
304 | |||
305 | "As Jeff hinted, if your userspace<->driver API is consistent between | ||
306 | your new MPT-based RAID controllers and your existing megaraid driver, | ||
307 | then perhaps you need a single small helper module (lsiioctl or some | ||
308 | better name), loaded by both mptraid and megaraid automatically, which | ||
309 | handles registering the /dev/megaraid node dynamically. In this case, | ||
310 | both mptraid and megaraid would register with lsiioctl for each | ||
311 | adapter discovered, and lsiioctl would essentially be a switch, | ||
312 | redirecting userspace tool ioctls to the appropriate driver." | ||
313 | |||
314 | - Matt Domsch <Matt_Domsch@dell.com> 02.25.2004 LKML | ||
315 | |||
316 | ii. Remove C99 initializations from pci_device id. | ||
317 | |||
318 | "pci_id_table_g would be much more readable when not using C99 | ||
319 | initializers. | ||
320 | PCI table doesn't change, there's lots of users that prefer the more | ||
321 | readable variant. And it's really far less and much easier to grok | ||
322 | lines without C99 initializers." | ||
323 | |||
324 | - Christoph Hellwig <hch@infradead.org>, 05.28.2004 linux-scsi | ||
325 | |||
326 | iii. Many fixes as suggested by Christoph Hellwig <hch@infradead.org> on | ||
327 | linux-scsi, 05.28.2004 | ||
328 | |||
329 | iv. We now support up to 32 parallel ioctl commands instead of current 1. | ||
330 | There is a conscious effort to let memory allocation not fail for ioctl | ||
331 | commands. | ||
332 | |||
333 | v. Do away with internal memory management. Use pci_pool_(create|alloc) | ||
334 | instead. | ||
335 | |||
336 | vi. Kill tasklet when unloading the driver. | ||
337 | |||
338 | vii. Do not use "host_lock', driver has fine-grain locks now to protect all | ||
339 | data structures. | ||
340 | |||
341 | viii. Optimize the build scatter-gather list routine. The callers already | ||
342 | know the data transfer address and length. | ||
343 | |||
344 | ix. Better implementation of error handling and recovery. Driver now | ||
345 | performs extended errors recovery for instances like scsi cable pull. | ||
346 | |||
347 | x. Disassociate the management commands with an overlaid scsi command. | ||
348 | Driver now treats the management packets as special packets and has a | ||
349 | dedicated callback routine. | ||