Release notes for Marvell Linux IAL Layer, Release: 3.6.3 ============================================================================ Table of Contents ----------------- 1. Contents of Release 3.6.3 2. Changes from Previous Releases 3. File Structures 4. Known Issues 5. Notes 6. Disclaimer 1. Contents of Release 3.6.3 ============================== - Linux IAL 2. Changes from Previous Releases ================================= Changes from Release 3.6.2 ---------------------------- Updated files: mvLinuxIalLib.c Removed files: RedHat/precompiles_drivers/modules.cgz.FC5-x86 Removed unneeded sanity check if the buffer length is larger than the maximum request size. Changes from Release 3.6.1 ---------------------------- Updated files: mvLinuxIalHt.c mvLinuxIalLib.c mvLinuxIalHt.h Removed files: RedHat/precompiles_drivers/modules.cgz.FC3-x86 New files: RedHat/precompiles_drivers/modules.cgz.FC5-x86 RedHat/files/pci.ids RedHat/files/modules.pcimap RedHat/files/modules.alias Added support for latest kernels (up to 2.6.17). Added support for MSI (Message Signalled Interrupts), this features is disbaled by deafult, to enable this feature, the user needs to uncomment the line #define MV_SUPPORT_MSI in mvLinuxIalHt.h Added support for 1MB IO's, this features is disbaled by deafult, to enable this feature, the user needs to uncomment the line #define MV_SUPPORT_1MBYTE_IOS in mvLinuxIalHt.h Added installation driver for Fedora Core 5. Added support for the integrated SATA interface for the MV88F5182 devices. Changes from Release 3.4.2 ---------------------------- Updated files: Makefile build.sh mvLinuxIalHt.c mvLinuxIalLib.c mvLinuxIalOs.c mvLinuxIalSmart.c mvLinuxIalHt.h mvLinuxIalLib.h mvLinuxIalOs.h mvLinuxIalSmart.h RedHat/gen_module.sh Removed files: RedHat/files/modules.cgz New files: RedHat/files/rhdd RedHat/precompiles_drivers Removed double instance of CROSS_COMPILE from the Makefile (line 57). Added support for the new 6042 and 7042 devices and to thier new features: - Single region EDMA buffer. - EDMA 128 entries mode. - Fis Base Switching mode. Updated the proc file read information; added pci device Id, revision number and information about the PM. Fixed the disk model name for big endian CPUs. Removed the CVS revsion nunbers from the file headers. Modified the include macros so the driver can be compiled when only headers of the kernel are provided, this can be usefull for latest Fodera Core linux systems where the kernel-sources package is not installed. Added support to generate binary drivers for Fedora Core systems that use the linux kernel 2.6. Also included precompiled drivers for Fedora Core 3 linux for the x86 CPUs. Changes from Release 3.4.0 ---------------------------- Updated files: build.sh mvLinuxIalHt.c Removed files: Makefile_2_4 Makefile_2_6 RedHat/build.sh New files: Makefile Unified Makefiles for linux 2.4 and 2.6 to one Makefile. Disabled ScsiAtaLayer from reporting Parameters Changes Unit Attention Condition, this fixed a bug that caused linux 2.6 to set a device into offline state due to bus reset. Fixed bug in mv_ial_ht_release(), iounmap() called while spinlock is taken. Fixed RedHat/gen_modules.sh script, RHEL support added. Updated RedHat/files/modules.cgz binary drivers for RedHat 8 and 9 (i686 cpus only) with the last driver, and added new binary drivers for RedHat Enterprise linux AS release 3 for i686 and Athlon cpus. Changes from Release 3.2.1 ---------------------------- Updated files: build.sh mvLinuxIalHt.h mvLinuxIalHt.c mvLinuxIalLib.h mvLinuxIalLib.c mvLinuxIalOs.c New Features: ============= Kernel 2.6 support: ------------------- Added Support for kernel version 2.6 and on: SCSI hot plug, PCI hot plug The build.sh script modified to support for kernel version 2.6 Added makefile for kernel version 2.6 Added system work thread to handle hot plug events in kernel version 2.6 Added IALBusChangeNotifyEx(): IAL Common callback function to handle hot plug events in kernel verison 2.6 SCSI Host Instance per SATA Channel: ------------------------------------ Each SATA channel is registered in the system as a SCSI host. Each host has one bus that is always set to 0, so the new address of a hard drive is . Each SATA channel appears as a host in /proc/scsi/mvSata. For kernel 2.4 and 2.6, all entry points per adapter are synchronized with the adapter's spin lock. Set the host queue size limit to 31 commands for NCQ and TCQ modes, and to 2 in a none-queued mode. For Linux 2.6, Limit the device queue size (2 to 31 commands) according to EDMA mode. For Linux 2.4 add mv_ial_ht_select_queue_depths(). This function sets the device queue size to 31. Block requests from the scsi midlayer. Whenever the channel is in the initialization state, requests are blocked using the SCSI midlayer API function scsi_requests_block(). The requests are unblocked when channel initialization is finished. Changed PRD table allocation - each channel has its own PRD table. Bug Fixes and Modifications: ============================ Added PRD table alignment to 16 byte. mvMicroSecondsDelay() uses usleep() instead of msleep(). The msleep() function causes exception when called from interrupt handler in kernel version 2.6.5 ). Simplified the eh_abort() entry point, this function simply restarts the channel. Removed unused code and variables. In the functions mv_ial_lib_add_done_queue() and mv_ial_lib_get_first_cmnd(), added sanity check for the input parameters and check pointers before usage. Removed the "do_done" flag. This flag is used to mark the commands to be canceled for a given channel from the adapter's common commands done queue. From this revision, each channel has its own queue. In mv_ial_lib_event_notify(), added support for the new SATA errors events reported by the Core Driver. This is a callback function. In mv_ial_lib_allocate_edma_queues(), set the size of the PCI consistent memory according to the number of SATA channels supported by teh device (8 or 4). updated RedHat/files/modules.cgz with the following kernels: 2.4.18-14 - for RedHat 8.0 2.4.20-8 - for RedHat 9.0 Added files: ============ Makefile_2_4 Makefile_2_6 Deleted files: ============== Makefile 3. File Structures ================== -->LinuxIAL | +----->Makefile +----->build.sh +----->mvLinuxIalHt.c +----->mvLinuxIalHt.h +----->mvLinuxIalLib.c +----->mvLinuxIalLib.h +----->mvLinuxIalOs.c +----->mvLinuxIalSmart.c +----->mvLinuxIalSmart.h +----->mvOsLinux.h +----->RedHat | +---->gen_module.sh +---->files | | | +---->modinfo | +---->modules.cgz | +---->modules.dep | +---->pcitable | +---->rhdd-6.1 | +---->precompiled_drivers | +---->modules.cgz.FC3-x86 4. Known Issues =============== - Infinite loop in the SCSI error handler of Kernel 2.4: While handling an error, (e.g. a timeout error), the scsi_send_eh_cmnd() function issues a timed out queued command. When this command hits a repeatable failure (e.g. MEDIUM ERROR), the SCSI error handler keep issuing that command on the same (broken) block infinitely. This bug is fixed in linux kernel 2.4.28. - In Kernel 2.6, a command may be issued to a released channel. In this case, the following message will be printed: "Linux IAL (FATAL_ERROR): in queuecommand, command queued for released host!!" this is a Linux issue, and seems to be fixed in the linux version 2.6.8. 5. Notes ======== Tested on the following platforms: - RedHat AS v3 (Kernel version 2.4.21-9.EL) - Fedora Core3 (Kernel version 2.6.9-1.667) - Suse Linux 9.1 (Kernel version 2.6.4-52) 6. Disclaimer ============= No part of this document may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying and recording, for any purpose, without the express written permission of Marvell. Marvell retains the right to make changes to this document at any time, without notice. Marvell makes no warranty of any kind, expressed or implied, with regard to any information contained in this document, including, but not limited to, the implied warranties of merchantability or fitness for any particular purpose. Further, Marvell does not warrant the accuracy or completeness of the information, text, graphics, or other items contained within this document. Marvell products are not designed for use in life-support equipment or applications that would cause a life-threatening situation if any such products failed. Do not use Marvell products in these types of equipment or applications. Marvell assumes no responsibility, either for use of these products or for any infringements of patents and trademarks, or other rights of third parties resulting from its use. No license is granted under any patents, patent rights, or trademarks of Marvell. These products may include one or more optional functions. The user has the choice of implementing any particular optional function. Should the user choose to implement any of these optional functions, it is possible that the use could be subject to third party intellectual property rights. Marvell recommends that the user investigate whether third party intellectual property rights are relevant to the intended use of these products and obtain licenses as appropriate under relevant intellectual property rights. With respect to the products described herein, the user or recipient, in the absence of appropriate U.S. government authorization, agrees: 1) Not to re-export or release any such information consisting of technology, software or source code controlled for national security reasons by the U.S. Export Control Regulations ("EAR"), to a national of EAR Country Groups D:1 or E:2; 2) Not to export the direct product of such technology or such software, to EAR Country Groups D:1 or E:2, if such technology or software and direct products thereof are controlled for national security reasons by the EAR; and, 3) In the case of technology controlled for national security reasons under the EAR where the direct product of the technology is a complete plant or component of a plant, not to export to EAR Country Groups D:1 or E:2 the direct product of the plant or major component thereof, if such direct product is controlled for national security reasons by the EAR, or is subject to controls under the U.S. Munitions List ("USML"). At all times hereunder, the recipient of any such information agrees that they shall be deemed to have manually signed this document in connection with their receipt of any such information. Copyright © 2004. Marvell International Ltd. All rights reserved. Marvell, the Marvell logo, Moving Forward Faster, Alaska, Fastwriter, GalNet, PHYAdvantage and Prestera are registered trademarks of Marvell. Discovery, DSP Switcher, GalTis, Horizon, Libertas, Link Street, NetGX, RADLAN, Raising The Technology Bar, The Technology Within, UniMAC, Virtual Cable Tester, and Yukon are trademarks of Marvell. All other trademarks are the property of their respective owners.