Release notes for Marvell Windows IAL, release: 3.6.3 ============================================================================ Table of Contents ----------------- 1. Contents of Release 2. Changes from Previous Releases 3. File Structures 4. Known Issues 5. Notes 6. Disclaimer 1. Contents of Release 3.6.3 ============================== - Windows 2000/XP/2003/Vista SCSI mini port driver. - Driver version is 3.6.3.3 2. Changes from Previous Releases ================================= Changes from Release 3.6.2 ---------------------------- Updated files: install/mvsata.inf mvsata.rc build_patform.bat Set the driver version to 3.6.3.3 split the mvsata.inf file to two files, one for x86 and one for ADM64 architecture. Changes from Release 3.6.1 ---------------------------- Updated files: install/mvsata.inf mvsata.rc Set the driver version to 3.6.2.0 Changes from Release 3.4.1 ---------------------------- Updated files: mvWin2kScsiMiniPort.c mvWin2kScsiMiniPort.h mvOsWindows.h install/mvsata.inf install/txtsetup.oem mvsata.rc Added Support for 6042 and 7042 devices and thier new features: - 128 entries mode of the EDMA for 6042/7042 devices. - single data region feature. Added support for allocating the command parameters structure by the upper layer. AllocateEdmaQueues() allocates uncached memory according to the adapter type, 1KByte for the request queue for Gen1 and Gen2 adapters, and 4Kbytes for GEN_IIE (6042 and 7042). Changes from Release 3.4.0 ---------------------------- Updated files: mvWin2kScsiMiniPort.c mvWin2kScsiMiniPort.h mvOsWin2k.c mvOsWindows.h Added support for hibernation and crash dump. In mvSataEventNotify(), fixed a log message print out format where there was a missing parameter passed to the log function. In ResetSataChannel(), added a sanity check of channel existance before performing the actual HardReset. In mvOsWindows.h, added the stdio.h and stdarg.h includes. Changed the mvBoolean type from enum to UCHAR in order to reduce its size from 4 bytes to 1 byte. Changes from Release 3.2.1 ---------------------------- Updated files: NextLuRequest replaced by NextRequest in IOCtls Fixed few #ifdef IOCTL problems Changed IAL debug level default value to 1 (enabled) Added new internal function - canQueueCmnds. This function returns true if further commands can be queued to specific drive connected to a given adapter/channel/PMPort. In StartIO, ScsiPortNotification called with NextLuRequest only when the new queued command is Read/Write DMA command. In completion, ScsiPortNotification is called with NextLuRequest. Fixed bug in mvAdapterIoControl, when changing debug level, SAL component debug level also changed. In mvSataEventNotify, support the new event - MV_EVENT_TYPE_SATA_ERROR (view the CORE driver user manual for more information with regards this event) In AllocateEdmaQueues, the memory size allocated for the EDMA queues is calculated according to the number of sata channels of the adapter (4 or 8); instead of being calculated as 8 channels. Support the new log debug level MV_DEBUG_FATAL_ERROR Removed auto flush feature. CORE driver does automatic requeuing of aborted commands after failure. Remove support for the ScsiRestartAdapter control. This causes for SCSI Port to call HwScsiFindAdapter and HwScsiInitialize routines to restart the adapter. Change the usage of channelInfo->queueDepth to be the max queue depth of the queued commands per disk rather that per channel Moved szModules string pointrs struct to the body of the driver (instead inside the initialization function). This is done in order to export the struct to the IO Control handlers. Extern of mvLogMsgType struct from CORE driver logger. This is in order to export it to the IO Control handlers. Modified SAL totalAccumulatedOutstanding variable to be per channel and not per PMPort in the channel. The Windows IAL has a fix when accessing this. Fixed NumberOfPhysicalBreaks SCSI port config paramter. The bug was that the miniport modifies this paramter to the maximum support MAX_SG_DESCRIPTORS, while this should be set to the minimum betwee MAX_SG_DESCRIPTORS and the initial value of NumberOfPhysicalBreaks when the mvFindAdapter is called. Added files: Added mvSataUserApi.h file. This file holds all IO Controls definition for new wxWindows based GUI. Deleted files: Changes from Release 3.2.0-B ---------------------------- Updated files: Remove mvOsWindows.h file from COREDriver directory to Windows IAL directory. Modified build scripts Fixed MV_IOCTL_GET_STATS handler in IO Control. The printf printed more paramters than needed. Also disk information is available in GUI only when connected directly to the adapter and not through port multiplier. Added a call to ScsiPortNotification in bus reset handler Modified IALCompletion to update sense info buffer only when SRB's buffer is bigger than SAL's buffer. In IALCompletion revert ScsiStatus and SrbStatus to 0 in the NOT READY, INVALID STATUS and default handler In buildPRDTable don't complete the read/write SRB if the transfer length is zero; instead pass this command to SAL. Added files: Deleted files: 3. File Structures ================== -->WindowsIAL | +----->build_all_.bat +----->mvOsWin2k.c +----->mvOsWindows.h +----->mvWin2kScsiMiniPort.c +----->mvWin2kScsiMiniPort.h +----->GUI | | | -------->mvSataGui.exe | +----->Install | +------->mv_128k.reg +------->mv_maxReqs.reg +------->txtsetup.oem +------->txtsetup_old.oem +------->mvsata.inf 4. Known Issues =============== This version doesn't support the Hibernate feature on the x86_64 (64 bit)systems, this is because the 128 entries mode support makes the size of the memory allocated per adapter larger than the maximum limit set by windows in order to support Hibernation. The driver supports the Self-Monitoring Analysis and Reporting Technology (SMART) feature. Unfortunately, SMART applications tend to sends the SMART IOCTL requests to the same drive even when multiple drives are connected to the adapter, with the actual drive address embedded within the request input buffer. This behavior makes those applications to show confused information about the existing drives. SMART requests that sent by the Windows Disk class driver and WMI tools do not have this problem. The driver might cause to system crash when ATA command that has been issued due to IOCTL request times out. This can happen when the SRB of the IOCTL request received with PathId set to X, and the ATA command issued to a drive that connected to channel Y where Y != X. In that case, if the ATA command times out, then the SCSI Port of the Windows OS will reset bus X, and the SRB's ownership with return back to the SCSI Port, but the driver will be aware of that so it may access that SRP which may contain none valid information. Such IOCTL requests may be issued from the mvSataGui application or external SMART applications (Windows Disk class driver and WMI tools don't have this issue). Fast hotplug on 88SX50XX adapters (hotswap less than ~0.5 second) does not function well. If a user disconnects then reconnects a hard drive in less than ~0.5 second then the driver might interpret the completion of an outstanding command where the hotplug took place as a LBA out of range command. As a workaround, the user must not hotplug a disk drive (disconnect and reconnect) in less than 0.5 second. When disabling and then re-enabling queuing for TCQ enabled hard drives via GUI, the queuing is not enabled back again. The workaround is to restart the PC (or disable/enable the driver) for re-enabling queuing. When connected multiple NCQ drives to port multiplier in queued command based switching mode, it is possible to reach a case where a single drive has IOs and the other drives are in idle. This case is reproduced when modifying NumberOfRequests for a value large enough value. The problem is that a single drive on the PM leaf can potentionally get up to 31 commands on the EDMA leaving no space in EDMA request queue for queuing commands to other drives in the PM leaf. 5. Notes ======== Channel to channel communication (aka Target mode) is supported only in CORE Driver, and not in Windows IAL, SAL or IAL Common. When using CORE driver version 3.4.x, the IAL must be modified according to ../docs/COREModifications_3_2_1_to_3_4_0.pdf 6. Disclaimer ============= This document provides preliminary information about the products described, and such information should not be used for purpose of final design. Visit the Marvell® web site at www.marvell.com for the latest information on Marvell products. 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 makes no commitment either to update or to keep current the information contained in 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. The user should contact Marvell to obtain the latest specifications before finalizing a product design. 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. Marvell comprises Marvell Technology Group Ltd. (MTGL) and its subsidiaries, Marvell International Ltd. (MIL), Marvell Semiconductor, Inc. (MSI), Marvell Asia Pte Ltd. (MAPL), Marvell Japan K.K. (MJKK), Marvell Semiconductor Israel Ltd. (MSIL), SysKonnect GmbH, and Radlan Computer Communications, Ltd. Export Controls. With respect to any of Marvell’s Information, 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. All rights reserved. Marvell, the Marvell logo, Moving Forward Faster, Alaska, and GalNet are registered trademarks of Marvell. Discovery, Fastwriter, GalTis, Horizon, Libertas, Link Street, NetGX, PHY Advantage, Prestera, Raising The Technology Bar, UniMAC, Virtual Cable Tester, and Yukon are trademarks of Marvell. All other trademarks are the property of their respective owners.