vserver 1.9.3
[linux-2.6.git] / Documentation / scsi / ChangeLog.megaraid
index 03af4a4..431e398 100644 (file)
-### Version 2.00.3
-Wed Jan 29 09:13:44 EST 200 - Atul Mukker <atulm@lsil.com>
-i.     Change the handshake in ISR while acknowledging interrupts. Write the
-       valid interrupt pattern 0x10001234 as soon as it is read from the
-       outdoor register. In existing driver and on certain platform, invalid
-       command ids were being returned.
+Release Date   : Mon Sep 27 22:15:07 EDT 2004 - Atul Mukker <atulm@lsil.com>
+Current Version        : 2.20.4.0 (scsi module), 2.20.2.0 (cmm module)
+Older Version  : 2.20.3.1 (scsi module), 2.20.2.0 (cmm module)
 
-       Also, do not wait on status be become 0xFF, since FW can return this
-       status in certain circumstances.
+i.     Fix data corruption. Because of a typo in the driver, the IO packets
+       were wrongly shared by the ioctl path. This causes a whole IO command
+       to be replaced by an incoming ioctl command.
 
-       Initialize the numstatus field of mailbox to 0xFF so that we can wait
-       on this wait in next interrupt. Firmware does not change its value
-       unless there are some status to be posted
+Release Date   : Tue Aug 24 09:43:35 EDT 2004 - Atul Mukker <atulm@lsil.com>
+Current Version        : 2.20.3.1 (scsi module), 2.20.2.0 (cmm module)
+Older Version  : 2.20.3.0 (scsi module), 2.20.2.0 (cmm module)
 
-ii.    Specify the logical drive number while issuing the RESERVATION_STATUS
+i.     Function reordering so that inline functions are defined before they
+       are actually used. It is now mandatory for GCC 3.4.1 (current stable)
 
-iii.   Reduce the default mailbox busy wait time from 300us to 10us. This is
-       done to avaoid a possible deadlock in FW because of longer bust waits.
+       Declare some heavy-weight functions to be non-inlined,
+       megaraid_mbox_build_cmd, megaraid_mbox_runpendq,
+       megaraid_mbox_prepare_pthru, megaraid_mbox_prepare_epthru,
+       megaraid_busywait_mbox
 
-iv.    The max outstanding commands are reduced to 126 because that't the
-       safest value on all FW.
+               - Andrew Morton <akpm@osdl.org>, 08.19.2004
+               linux-scsi mailing list
 
-v.     Number of sectors per IO are reduced to 128 (64kb), becuase FW needs
-       resources in special circumstances like check consistency, rebuilds
-       etc.
+       "Something else to clean up after inclusion: every instance of an
+       inline function is actually rendered as a full function call, because
+       the function is always used before it is defined.  Atul, please
+       re-arrange the code to eliminate the need for most (all) of the
+       function prototypes at the top of each file, and define (not just
+       declare with a prototype) each inline function before its first use"
 
-vi.    max_commands is no longer a module parameter because of iv.
+               - Matt Domsch <Matt_Domsch@dell.com>, 07.27.2004
+               linux-scsi mailing list
 
-### Version: 2.00.2
-i.     Intermediate release with kernel specific code
 
+ii.    Display elapsed time (countdown) while waiting for FW to boot.
 
-### Version: 2.00.1i
-Wed Dec  4 14:34:51 EST 2002 - Atul Mukker <atulm@lsil.com>
-i.     Making the older IO based controllers to work with this driver
+iii.   Module compilation reorder in Makefile so that unresolved symbols do
+       not occur when driver is compiled non-modular.
 
+               Patrick J. LoPresti <patl@users.sourceforge.net>, 8.22.2004
+               linux-scsi mailing list
 
-### Version 2.00.1
-Fri Nov 15 10:59:44 EST 2002 - Atul Mukker <atulm@lsil.com>
-i.     Release host lock before issuing internal command to reset
-       reservations in megaraid_reset() and reacquire after internal command
-       is completed.
+
+Release Date   : Thu Aug 19 09:58:33 EDT 2004 - Atul Mukker <atulm@lsil.com>
+Current Version        : 2.20.3.0 (scsi module), 2.20.2.0 (cmm module)
+Older Version  : 2.20.2.0 (scsi module), 2.20.1.0 (cmm module)
+
+i.     When copying the mailbox packets, copy only first 14 bytes (for 32-bit
+       mailboxes) and only first 22 bytes (for 64-bit mailboxes). This is to
+       avoid getting the stale values for busy bit. We want to set the busy
+       bit just before issuing command to the FW.
+
+ii.    In the reset handling, if the reseted command is not owned by the
+       driver, do not (wrongly) print information for the "attached" driver
+       packet.
+
+iii.   Have extended wait when issuing command in synchronous mode. This is
+       required for the cases where the option ROM is disabled and there is
+       no BIOS to start the controller. The FW starts to boot after receiving
+       the first command from the driver. The current driver has 1 second
+       timeout for the synchronous commands, which is far less than what is
+       actually required. We now wait up to MBOX_RESET_TIME (180 seconds) for
+       FW boot process.
+
+iv.    In megaraid_mbox_product_info, clear the mailbox contents completely
+       before preparing the command for inquiry3. This is to ensure that the
+       FW does not get junk values in the command.
+
+v.     Do away with the redundant LSI_CONFIG_COMPAT redefinition for
+       CONFIG_COMPAT. Replace <asm/ioctl32.h> with <linux/ioctl32.h>
+
+               - James Bottomley <James.Bottomley@SteelEye.com>, 08.17.2004
+                linux-scsi mailing list
+
+vi.    Add support for 64-bit applications. Current drivers assume only
+       32-bit applications, even on 64-bit platforms. Use the "data" and
+       "buffer" fields of the mimd_t structure, instead of embedded 32-bit
+       addresses in application mailbox and passthru structures.
+
+vii.   Move the function declarations for the management module from
+       megaraid_mm.h to megaraid_mm.c
+
+               - Andrew Morton <akpm@osdl.org>, 08.19.2004
+               linux-scsi mailing list
+
+viii.  Change default values for MEGARAID_NEWGEN, MEGARAID_MM, and
+       MEGARAID_MAILBOX to 'n' in Kconfig.megaraid
+
+               - Andrew Morton <akpm@osdl.org>, 08.19.2004
+               linux-scsi mailing list
+
+ix.    replace udelay with msleep
+
+x.     Typos corrected in comments and whitespace adjustments, explicit
+       grouping of expressions.
+
+
+Release Date   : Fri Jul 23 15:22:07 EDT 2004 - Atul Mukker <atulm@lsil.com>
+Current Version        : 2.20.2.0 (scsi module), 2.20.1.0 (cmm module)
+Older Version  : 2.20.1.0 (scsi module), 2.20.0.0 (cmm module)
+
+i.     Add PCI ids for Acer ROMB 2E solution
+
+ii.    Add PCI ids for I4
+
+iii.   Typo corrected for subsys id for megaraid sata 300-4x
+
+iv.    Remove yield() while mailbox handshake in synchronous commands
+
+
+       "My other main gripe is things like this:
+
+       +       // wait for maximum 1 second for status to post
+       +       for (i = 0; i < 40000; i++) {
+       +               if (mbox->numstatus != 0xFF) break;
+       +               udelay(25); yield();
+       +       }
+
+       which litter the driver.  Use of yield() in drivers is deprecated."
+
+               - James Bottomley <James.Bottomley@SteelEye.com>, 07.14.2004
+                linux-scsi mailing list
+
+v.     Remove redundant __megaraid_busywait_mbox routine
+
+vi.    Fix bug in the managment module, which causes a system lockup when the
+       IO module is loaded and then unloaded, followed by executing any
+       management utility. The current version of management module does not
+       handle the adapter unregister properly.
+
+       Specifically, it still keeps a reference to the unregistered
+       controllers. To avoid this, the static array adapters has been
+       replaced by a dynamic list, which gets updated every time an adapter
+       is added or removed.
+
+       Also, during unregistration of the IO module, the resources are
+       now released in the exact reverse order of the allocation time
+       sequence.
+
+
+Release Date   : Fri Jun 25 18:58:43 EDT 2004 - Atul Mukker <atulm@lsil.com>
+Current Version        : 2.20.1.0
+Older Version  : megaraid 2.20.0.1
+
+i.     Stale list pointer in adapter causes kernel panic when module
+       megaraid_mbox is unloaded
+
+
+Release Date   : Thu Jun 24 20:37:11 EDT 2004 - Atul Mukker <atulm@lsil.com>
+Current Version        : 2.20.0.1
+Older Version  : megaraid 2.20.0.00
+
+i.     Modules are not 'y' by default, but depend on current definition of
+       SCSI & PCI.
+
+ii.    Redundant structure mraid_driver_t removed.
+
+iii.   Miscellaneous indentation and goto/label fixes.
+               - Christoph Hellwig <hch@infradead.org>, 06.24.2004 linux-scsi
+
+iv.    scsi_host_put(), do just before completing HBA shutdown.
+
+
+
+Release Date   : Mon Jun 21 19:53:54 EDT 2004 - Atul Mukker <atulm@lsil.com>
+Current Version        : 2.20.0.0
+Older Version  : megaraid 2.20.0.rc2 and 2.00.3
+
+i.     Independent module to interact with userland applications and
+       multiplex command to low level RAID module(s).
+
+       "Shared code in a third module, a "library module", is an acceptable
+       solution. modprobe automatically loads dependent modules, so users
+       running "modprobe driver1" or "modprobe driver2" would automatically
+       load the shared library module."
+
+               - Jeff Garzik <jgarzik@pobox.com> 02.25.2004 LKML
+
+       "As Jeff hinted, if your userspace<->driver API is consistent between
+       your new MPT-based RAID controllers and your existing megaraid driver,
+       then perhaps you need a single small helper module (lsiioctl or some
+       better name), loaded by both mptraid and megaraid automatically, which
+       handles registering the /dev/megaraid node dynamically. In this case,
+       both mptraid and megaraid would register with lsiioctl for each
+       adapter discovered, and lsiioctl would essentially be a switch,
+       redirecting userspace tool ioctls to the appropriate driver."
+
+               - Matt Domsch <Matt_Domsch@dell.com> 02.25.2004 LKML
+
+ii.    Remove C99 initializations from pci_device id.
+
+       "pci_id_table_g would be much more readable when not using C99
+       initializers.
+       PCI table doesn't change, there's lots of users that prefer the more
+       readable variant.  And it's really far less and much easier to grok
+       lines without C99 initializers."
+
+               - Christoph Hellwig <hch@infradead.org>, 05.28.2004 linux-scsi
+
+iii.   Many fixes as suggested by Christoph Hellwig <hch@infradead.org> on
+       linux-scsi, 05.28.2004
+
+iv.    We now support up to 32 parallel ioctl commands instead of current 1.
+       There is a conscious effort to let memory allocation not fail for ioctl
+       commands.
+
+v.     Do away with internal memory management. Use pci_pool_(create|alloc)
+       instead.
+
+vi.    Kill tasklet when unloading the driver.
+
+vii.   Do not use "host_lock', driver has fine-grain locks now to protect all
+       data structures.
+
+viii.  Optimize the build scatter-gather list routine. The callers already
+       know the data transfer address and length.
+
+ix.    Better implementation of error handling and recovery. Driver now
+       performs extended errors recovery for instances like scsi cable pull.
+
+x.     Disassociate the management commands with an overlaid scsi command.
+       Driver now treats the management packets as special packets and has a
+       dedicated callback routine.