Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6: [SCSI] Skip deleted devices in __scsi_device_lookup_by_target() [SCSI] Add SUN Universal Xport to no attach blacklist [SCSI] iscsi_tcp: make padbuf non-static [SCSI] mpt fusion: Add Firmware debug support [SCSI] mpt fusion: Add separate msi enable disable for FC,SPI,SAS [SCSI] mpt fusion: Update MPI Headers to version 01.05.19 [SCSI] qla2xxx: Fix ISP restart bug in multiq code
This commit is contained in:
commit
a11d9b623e
@ -6,7 +6,7 @@
|
|||||||
* Title: MPI Message independent structures and definitions
|
* Title: MPI Message independent structures and definitions
|
||||||
* Creation Date: July 27, 2000
|
* Creation Date: July 27, 2000
|
||||||
*
|
*
|
||||||
* mpi.h Version: 01.05.13
|
* mpi.h Version: 01.05.16
|
||||||
*
|
*
|
||||||
* Version History
|
* Version History
|
||||||
* ---------------
|
* ---------------
|
||||||
@ -79,6 +79,9 @@
|
|||||||
* 03-27-06 01.05.11 Bumped MPI_HEADER_VERSION_UNIT.
|
* 03-27-06 01.05.11 Bumped MPI_HEADER_VERSION_UNIT.
|
||||||
* 10-11-06 01.05.12 Bumped MPI_HEADER_VERSION_UNIT.
|
* 10-11-06 01.05.12 Bumped MPI_HEADER_VERSION_UNIT.
|
||||||
* 05-24-07 01.05.13 Bumped MPI_HEADER_VERSION_UNIT.
|
* 05-24-07 01.05.13 Bumped MPI_HEADER_VERSION_UNIT.
|
||||||
|
* 08-07-07 01.05.14 Bumped MPI_HEADER_VERSION_UNIT.
|
||||||
|
* 01-15-08 01.05.15 Bumped MPI_HEADER_VERSION_UNIT.
|
||||||
|
* 03-28-08 01.05.16 Bumped MPI_HEADER_VERSION_UNIT.
|
||||||
* --------------------------------------------------------------------------
|
* --------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -109,7 +112,7 @@
|
|||||||
/* Note: The major versions of 0xe0 through 0xff are reserved */
|
/* Note: The major versions of 0xe0 through 0xff are reserved */
|
||||||
|
|
||||||
/* versioning for this MPI header set */
|
/* versioning for this MPI header set */
|
||||||
#define MPI_HEADER_VERSION_UNIT (0x10)
|
#define MPI_HEADER_VERSION_UNIT (0x13)
|
||||||
#define MPI_HEADER_VERSION_DEV (0x00)
|
#define MPI_HEADER_VERSION_DEV (0x00)
|
||||||
#define MPI_HEADER_VERSION_UNIT_MASK (0xFF00)
|
#define MPI_HEADER_VERSION_UNIT_MASK (0xFF00)
|
||||||
#define MPI_HEADER_VERSION_UNIT_SHIFT (8)
|
#define MPI_HEADER_VERSION_UNIT_SHIFT (8)
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
* Title: MPI Config message, structures, and Pages
|
* Title: MPI Config message, structures, and Pages
|
||||||
* Creation Date: July 27, 2000
|
* Creation Date: July 27, 2000
|
||||||
*
|
*
|
||||||
* mpi_cnfg.h Version: 01.05.15
|
* mpi_cnfg.h Version: 01.05.18
|
||||||
*
|
*
|
||||||
* Version History
|
* Version History
|
||||||
* ---------------
|
* ---------------
|
||||||
@ -308,6 +308,20 @@
|
|||||||
* Expander Page 0 Flags field.
|
* Expander Page 0 Flags field.
|
||||||
* Fixed define for
|
* Fixed define for
|
||||||
* MPI_SAS_EXPANDER1_DISCINFO_BAD_PHY_DISABLED.
|
* MPI_SAS_EXPANDER1_DISCINFO_BAD_PHY_DISABLED.
|
||||||
|
* 08-07-07 01.05.16 Added MPI_IOCPAGE6_CAP_FLAGS_MULTIPORT_DRIVE_SUPPORT
|
||||||
|
* define.
|
||||||
|
* Added BIOS Page 4 structure.
|
||||||
|
* Added MPI_RAID_PHYS_DISK1_PATH_MAX define for RAID
|
||||||
|
* Physcial Disk Page 1.
|
||||||
|
* 01-15-07 01.05.17 Added additional bit defines for ExtFlags field of
|
||||||
|
* Manufacturing Page 4.
|
||||||
|
* Added Solid State Drives Supported bit to IOC Page 6
|
||||||
|
* Capabilities Flags.
|
||||||
|
* Added new value for AccessStatus field of SAS Device
|
||||||
|
* Page 0 (_SATA_NEEDS_INITIALIZATION).
|
||||||
|
* 03-28-08 01.05.18 Defined new bits in Manufacturing Page 4 ExtFlags field
|
||||||
|
* to control coercion size and the mixing of SAS and SATA
|
||||||
|
* SSD drives.
|
||||||
* --------------------------------------------------------------------------
|
* --------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -686,6 +700,14 @@ typedef struct _CONFIG_PAGE_MANUFACTURING_4
|
|||||||
#define MPI_MANPAGE4_IR_NO_MIX_SAS_SATA (0x01)
|
#define MPI_MANPAGE4_IR_NO_MIX_SAS_SATA (0x01)
|
||||||
|
|
||||||
/* defines for the ExtFlags field */
|
/* defines for the ExtFlags field */
|
||||||
|
#define MPI_MANPAGE4_EXTFLAGS_MASK_COERCION_SIZE (0x0180)
|
||||||
|
#define MPI_MANPAGE4_EXTFLAGS_SHIFT_COERCION_SIZE (7)
|
||||||
|
#define MPI_MANPAGE4_EXTFLAGS_1GB_COERCION_SIZE (0)
|
||||||
|
#define MPI_MANPAGE4_EXTFLAGS_128MB_COERCION_SIZE (1)
|
||||||
|
|
||||||
|
#define MPI_MANPAGE4_EXTFLAGS_NO_MIX_SSD_SAS_SATA (0x0040)
|
||||||
|
#define MPI_MANPAGE4_EXTFLAGS_MIX_SSD_AND_NON_SSD (0x0020)
|
||||||
|
#define MPI_MANPAGE4_EXTFLAGS_DUAL_PORT_SUPPORT (0x0010)
|
||||||
#define MPI_MANPAGE4_EXTFLAGS_HIDE_NON_IR_METADATA (0x0008)
|
#define MPI_MANPAGE4_EXTFLAGS_HIDE_NON_IR_METADATA (0x0008)
|
||||||
#define MPI_MANPAGE4_EXTFLAGS_SAS_CACHE_DISABLE (0x0004)
|
#define MPI_MANPAGE4_EXTFLAGS_SAS_CACHE_DISABLE (0x0004)
|
||||||
#define MPI_MANPAGE4_EXTFLAGS_SATA_CACHE_DISABLE (0x0002)
|
#define MPI_MANPAGE4_EXTFLAGS_SATA_CACHE_DISABLE (0x0002)
|
||||||
@ -1159,6 +1181,8 @@ typedef struct _CONFIG_PAGE_IOC_6
|
|||||||
|
|
||||||
/* IOC Page 6 Capabilities Flags */
|
/* IOC Page 6 Capabilities Flags */
|
||||||
|
|
||||||
|
#define MPI_IOCPAGE6_CAP_FLAGS_SSD_SUPPORT (0x00000020)
|
||||||
|
#define MPI_IOCPAGE6_CAP_FLAGS_MULTIPORT_DRIVE_SUPPORT (0x00000010)
|
||||||
#define MPI_IOCPAGE6_CAP_FLAGS_DISABLE_SMART_POLLING (0x00000008)
|
#define MPI_IOCPAGE6_CAP_FLAGS_DISABLE_SMART_POLLING (0x00000008)
|
||||||
|
|
||||||
#define MPI_IOCPAGE6_CAP_FLAGS_MASK_METADATA_SIZE (0x00000006)
|
#define MPI_IOCPAGE6_CAP_FLAGS_MASK_METADATA_SIZE (0x00000006)
|
||||||
@ -1428,6 +1452,15 @@ typedef struct _CONFIG_PAGE_BIOS_2
|
|||||||
#define MPI_BIOSPAGE2_FORM_SAS_WWN (0x05)
|
#define MPI_BIOSPAGE2_FORM_SAS_WWN (0x05)
|
||||||
#define MPI_BIOSPAGE2_FORM_ENCLOSURE_SLOT (0x06)
|
#define MPI_BIOSPAGE2_FORM_ENCLOSURE_SLOT (0x06)
|
||||||
|
|
||||||
|
typedef struct _CONFIG_PAGE_BIOS_4
|
||||||
|
{
|
||||||
|
CONFIG_PAGE_HEADER Header; /* 00h */
|
||||||
|
U64 ReassignmentBaseWWID; /* 04h */
|
||||||
|
} CONFIG_PAGE_BIOS_4, MPI_POINTER PTR_CONFIG_PAGE_BIOS_4,
|
||||||
|
BIOSPage4_t, MPI_POINTER pBIOSPage4_t;
|
||||||
|
|
||||||
|
#define MPI_BIOSPAGE4_PAGEVERSION (0x00)
|
||||||
|
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* SCSI Port Config Pages
|
* SCSI Port Config Pages
|
||||||
@ -2419,6 +2452,15 @@ typedef struct _RAID_PHYS_DISK1_PATH
|
|||||||
#define MPI_RAID_PHYSDISK1_FLAG_BROKEN (0x0002)
|
#define MPI_RAID_PHYSDISK1_FLAG_BROKEN (0x0002)
|
||||||
#define MPI_RAID_PHYSDISK1_FLAG_INVALID (0x0001)
|
#define MPI_RAID_PHYSDISK1_FLAG_INVALID (0x0001)
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Host code (drivers, BIOS, utilities, etc.) should leave this define set to
|
||||||
|
* one and check Header.PageLength or NumPhysDiskPaths at runtime.
|
||||||
|
*/
|
||||||
|
#ifndef MPI_RAID_PHYS_DISK1_PATH_MAX
|
||||||
|
#define MPI_RAID_PHYS_DISK1_PATH_MAX (1)
|
||||||
|
#endif
|
||||||
|
|
||||||
typedef struct _CONFIG_PAGE_RAID_PHYS_DISK_1
|
typedef struct _CONFIG_PAGE_RAID_PHYS_DISK_1
|
||||||
{
|
{
|
||||||
CONFIG_PAGE_HEADER Header; /* 00h */
|
CONFIG_PAGE_HEADER Header; /* 00h */
|
||||||
@ -2426,7 +2468,7 @@ typedef struct _CONFIG_PAGE_RAID_PHYS_DISK_1
|
|||||||
U8 PhysDiskNum; /* 05h */
|
U8 PhysDiskNum; /* 05h */
|
||||||
U16 Reserved2; /* 06h */
|
U16 Reserved2; /* 06h */
|
||||||
U32 Reserved1; /* 08h */
|
U32 Reserved1; /* 08h */
|
||||||
RAID_PHYS_DISK1_PATH Path[1]; /* 0Ch */
|
RAID_PHYS_DISK1_PATH Path[MPI_RAID_PHYS_DISK1_PATH_MAX];/* 0Ch */
|
||||||
} CONFIG_PAGE_RAID_PHYS_DISK_1, MPI_POINTER PTR_CONFIG_PAGE_RAID_PHYS_DISK_1,
|
} CONFIG_PAGE_RAID_PHYS_DISK_1, MPI_POINTER PTR_CONFIG_PAGE_RAID_PHYS_DISK_1,
|
||||||
RaidPhysDiskPage1_t, MPI_POINTER pRaidPhysDiskPage1_t;
|
RaidPhysDiskPage1_t, MPI_POINTER pRaidPhysDiskPage1_t;
|
||||||
|
|
||||||
@ -2844,6 +2886,7 @@ typedef struct _CONFIG_PAGE_SAS_DEVICE_0
|
|||||||
#define MPI_SAS_DEVICE0_ASTATUS_SATA_INIT_FAILED (0x01)
|
#define MPI_SAS_DEVICE0_ASTATUS_SATA_INIT_FAILED (0x01)
|
||||||
#define MPI_SAS_DEVICE0_ASTATUS_SATA_CAPABILITY_FAILED (0x02)
|
#define MPI_SAS_DEVICE0_ASTATUS_SATA_CAPABILITY_FAILED (0x02)
|
||||||
#define MPI_SAS_DEVICE0_ASTATUS_SATA_AFFILIATION_CONFLICT (0x03)
|
#define MPI_SAS_DEVICE0_ASTATUS_SATA_AFFILIATION_CONFLICT (0x03)
|
||||||
|
#define MPI_SAS_DEVICE0_ASTATUS_SATA_NEEDS_INITIALIZATION (0x04)
|
||||||
/* specific values for SATA Init failures */
|
/* specific values for SATA Init failures */
|
||||||
#define MPI_SAS_DEVICE0_ASTATUS_SIF_UNKNOWN (0x10)
|
#define MPI_SAS_DEVICE0_ASTATUS_SIF_UNKNOWN (0x10)
|
||||||
#define MPI_SAS_DEVICE0_ASTATUS_SIF_AFFILIATION_CONFLICT (0x11)
|
#define MPI_SAS_DEVICE0_ASTATUS_SIF_AFFILIATION_CONFLICT (0x11)
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2000-2004 LSI Corporation.
|
* Copyright (c) 2000-2008 LSI Corporation.
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* Name: mpi_fc.h
|
* Name: mpi_fc.h
|
||||||
|
@ -3,28 +3,28 @@
|
|||||||
MPI Header File Change History
|
MPI Header File Change History
|
||||||
==============================
|
==============================
|
||||||
|
|
||||||
Copyright (c) 2000-2007 LSI Corporation.
|
Copyright (c) 2000-2008 LSI Corporation.
|
||||||
|
|
||||||
---------------------------------------
|
---------------------------------------
|
||||||
Header Set Release Version: 01.05.16
|
Header Set Release Version: 01.05.19
|
||||||
Header Set Release Date: 05-24-07
|
Header Set Release Date: 03-28-08
|
||||||
---------------------------------------
|
---------------------------------------
|
||||||
|
|
||||||
Filename Current version Prior version
|
Filename Current version Prior version
|
||||||
---------- --------------- -------------
|
---------- --------------- -------------
|
||||||
mpi.h 01.05.13 01.05.12
|
mpi.h 01.05.16 01.05.15
|
||||||
mpi_ioc.h 01.05.14 01.05.13
|
mpi_ioc.h 01.05.16 01.05.15
|
||||||
mpi_cnfg.h 01.05.15 01.05.14
|
mpi_cnfg.h 01.05.18 01.05.17
|
||||||
mpi_init.h 01.05.09 01.05.09
|
mpi_init.h 01.05.09 01.05.09
|
||||||
mpi_targ.h 01.05.06 01.05.06
|
mpi_targ.h 01.05.06 01.05.06
|
||||||
mpi_fc.h 01.05.01 01.05.01
|
mpi_fc.h 01.05.01 01.05.01
|
||||||
mpi_lan.h 01.05.01 01.05.01
|
mpi_lan.h 01.05.01 01.05.01
|
||||||
mpi_raid.h 01.05.03 01.05.03
|
mpi_raid.h 01.05.05 01.05.05
|
||||||
mpi_tool.h 01.05.03 01.05.03
|
mpi_tool.h 01.05.03 01.05.03
|
||||||
mpi_inb.h 01.05.01 01.05.01
|
mpi_inb.h 01.05.01 01.05.01
|
||||||
mpi_sas.h 01.05.04 01.05.04
|
mpi_sas.h 01.05.05 01.05.05
|
||||||
mpi_type.h 01.05.02 01.05.02
|
mpi_type.h 01.05.02 01.05.02
|
||||||
mpi_history.txt 01.05.14 01.05.14
|
mpi_history.txt 01.05.19 01.05.18
|
||||||
|
|
||||||
|
|
||||||
* Date Version Description
|
* Date Version Description
|
||||||
@ -96,6 +96,9 @@ mpi.h
|
|||||||
* 03-27-06 01.05.11 Bumped MPI_HEADER_VERSION_UNIT.
|
* 03-27-06 01.05.11 Bumped MPI_HEADER_VERSION_UNIT.
|
||||||
* 10-11-06 01.05.12 Bumped MPI_HEADER_VERSION_UNIT.
|
* 10-11-06 01.05.12 Bumped MPI_HEADER_VERSION_UNIT.
|
||||||
* 05-24-07 01.05.13 Bumped MPI_HEADER_VERSION_UNIT.
|
* 05-24-07 01.05.13 Bumped MPI_HEADER_VERSION_UNIT.
|
||||||
|
* 08-07-07 01.05.14 Bumped MPI_HEADER_VERSION_UNIT.
|
||||||
|
* 01-15-08 01.05.15 Bumped MPI_HEADER_VERSION_UNIT.
|
||||||
|
* 03-28-08 01.05.16 Bumped MPI_HEADER_VERSION_UNIT.
|
||||||
* --------------------------------------------------------------------------
|
* --------------------------------------------------------------------------
|
||||||
|
|
||||||
mpi_ioc.h
|
mpi_ioc.h
|
||||||
@ -127,7 +130,7 @@ mpi_ioc.h
|
|||||||
* 08-08-01 01.02.01 Original release for v1.2 work.
|
* 08-08-01 01.02.01 Original release for v1.2 work.
|
||||||
* New format for FWVersion and ProductId in
|
* New format for FWVersion and ProductId in
|
||||||
* MSG_IOC_FACTS_REPLY and MPI_FW_HEADER.
|
* MSG_IOC_FACTS_REPLY and MPI_FW_HEADER.
|
||||||
* 08-31-01 01.02.02 Added event MPI_EVENT_SCSI_DEVICE_STATUS_CHANGE and
|
* 08-31-01 01.02.02 Addded event MPI_EVENT_SCSI_DEVICE_STATUS_CHANGE and
|
||||||
* related structure and defines.
|
* related structure and defines.
|
||||||
* Added event MPI_EVENT_ON_BUS_TIMER_EXPIRED.
|
* Added event MPI_EVENT_ON_BUS_TIMER_EXPIRED.
|
||||||
* Added MPI_IOCINIT_FLAGS_DISCARD_FW_IMAGE.
|
* Added MPI_IOCINIT_FLAGS_DISCARD_FW_IMAGE.
|
||||||
@ -187,7 +190,7 @@ mpi_ioc.h
|
|||||||
* 10-11-06 01.05.12 Added MPI_IOCFACTS_EXCEPT_METADATA_UNSUPPORTED.
|
* 10-11-06 01.05.12 Added MPI_IOCFACTS_EXCEPT_METADATA_UNSUPPORTED.
|
||||||
* Added MaxInitiators field to PortFacts reply.
|
* Added MaxInitiators field to PortFacts reply.
|
||||||
* Added SAS Device Status Change ReasonCode for
|
* Added SAS Device Status Change ReasonCode for
|
||||||
* asynchronous notification.
|
* asynchronous notificaiton.
|
||||||
* Added MPI_EVENT_SAS_EXPANDER_STATUS_CHANGE and event
|
* Added MPI_EVENT_SAS_EXPANDER_STATUS_CHANGE and event
|
||||||
* data structure.
|
* data structure.
|
||||||
* Added new ImageType values for FWDownload and FWUpload
|
* Added new ImageType values for FWDownload and FWUpload
|
||||||
@ -199,6 +202,16 @@ mpi_ioc.h
|
|||||||
* added _MULTI_PORT_DOMAIN.
|
* added _MULTI_PORT_DOMAIN.
|
||||||
* 05-24-07 01.05.14 Added Common Boot Block type to FWDownload Request.
|
* 05-24-07 01.05.14 Added Common Boot Block type to FWDownload Request.
|
||||||
* Added Common Boot Block type to FWUpload Request.
|
* Added Common Boot Block type to FWUpload Request.
|
||||||
|
* 08-07-07 01.05.15 Added MPI_EVENT_SAS_INIT_RC_REMOVED define.
|
||||||
|
* Added MPI_EVENT_IR2_RC_DUAL_PORT_ADDED and
|
||||||
|
* MPI_EVENT_IR2_RC_DUAL_PORT_REMOVED for IR2 event data.
|
||||||
|
* Added SASAddress field to SAS Initiator Device Table
|
||||||
|
* Overflow event data structure.
|
||||||
|
* 03-28-08 01.05.16 Added two new ReasonCode values to SAS Device Status
|
||||||
|
* Change Event data to indicate completion of internally
|
||||||
|
* generated task management.
|
||||||
|
* Added MPI_EVENT_DSCVRY_ERR_DS_SATA_INIT_FAILURE define.
|
||||||
|
* Added MPI_EVENT_SAS_INIT_RC_INACCESSIBLE define.
|
||||||
* --------------------------------------------------------------------------
|
* --------------------------------------------------------------------------
|
||||||
|
|
||||||
mpi_cnfg.h
|
mpi_cnfg.h
|
||||||
@ -213,7 +226,7 @@ mpi_cnfg.h
|
|||||||
* Added _RESPONSE_ID_MASK definition to SCSI_PORT_1
|
* Added _RESPONSE_ID_MASK definition to SCSI_PORT_1
|
||||||
* page and updated the page version.
|
* page and updated the page version.
|
||||||
* Added Information field and _INFO_PARAMS_NEGOTIATED
|
* Added Information field and _INFO_PARAMS_NEGOTIATED
|
||||||
* definition to SCSI_DEVICE_0 page.
|
* definitionto SCSI_DEVICE_0 page.
|
||||||
* 06-22-00 01.00.03 Removed batch controls from LAN_0 page and updated the
|
* 06-22-00 01.00.03 Removed batch controls from LAN_0 page and updated the
|
||||||
* page version.
|
* page version.
|
||||||
* Added BucketsRemaining to LAN_1 page, redefined the
|
* Added BucketsRemaining to LAN_1 page, redefined the
|
||||||
@ -496,6 +509,20 @@ mpi_cnfg.h
|
|||||||
* Expander Page 0 Flags field.
|
* Expander Page 0 Flags field.
|
||||||
* Fixed define for
|
* Fixed define for
|
||||||
* MPI_SAS_EXPANDER1_DISCINFO_BAD_PHY_DISABLED.
|
* MPI_SAS_EXPANDER1_DISCINFO_BAD_PHY_DISABLED.
|
||||||
|
* 08-07-07 01.05.16 Added MPI_IOCPAGE6_CAP_FLAGS_MULTIPORT_DRIVE_SUPPORT
|
||||||
|
* define.
|
||||||
|
* Added BIOS Page 4 structure.
|
||||||
|
* Added MPI_RAID_PHYS_DISK1_PATH_MAX define for RAID
|
||||||
|
* Physcial Disk Page 1.
|
||||||
|
* 01-15-07 01.05.17 Added additional bit defines for ExtFlags field of
|
||||||
|
* Manufacturing Page 4.
|
||||||
|
* Added Solid State Drives Supported bit to IOC Page 6
|
||||||
|
* Capabilities Flags.
|
||||||
|
* Added new value for AccessStatus field of SAS Device
|
||||||
|
* Page 0 (_SATA_NEEDS_INITIALIZATION).
|
||||||
|
* 03-28-08 01.05.18 Defined new bits in Manufacturing Page 4 ExtFlags field
|
||||||
|
* to control coercion size and the mixing of SAS and SATA
|
||||||
|
* SSD drives.
|
||||||
* --------------------------------------------------------------------------
|
* --------------------------------------------------------------------------
|
||||||
|
|
||||||
mpi_init.h
|
mpi_init.h
|
||||||
@ -661,6 +688,9 @@ mpi_raid.h
|
|||||||
* _SET_RESYNC_RATE and _SET_DATA_SCRUB_RATE.
|
* _SET_RESYNC_RATE and _SET_DATA_SCRUB_RATE.
|
||||||
* 02-28-07 01.05.03 Added new RAID Action, Device FW Update Mode, and
|
* 02-28-07 01.05.03 Added new RAID Action, Device FW Update Mode, and
|
||||||
* associated defines.
|
* associated defines.
|
||||||
|
* 08-07-07 01.05.04 Added Disable Full Rebuild bit to the ActionDataWord
|
||||||
|
* for the RAID Action MPI_RAID_ACTION_DISABLE_VOLUME.
|
||||||
|
* 01-15-08 01.05.05 Added define for MPI_RAID_ACTION_SET_VOLUME_NAME.
|
||||||
* --------------------------------------------------------------------------
|
* --------------------------------------------------------------------------
|
||||||
|
|
||||||
mpi_tool.h
|
mpi_tool.h
|
||||||
@ -694,6 +724,10 @@ mpi_sas.h
|
|||||||
* reply.
|
* reply.
|
||||||
* 10-11-06 01.05.04 Fixed the name of a define for Operation field of SAS IO
|
* 10-11-06 01.05.04 Fixed the name of a define for Operation field of SAS IO
|
||||||
* Unit Control request.
|
* Unit Control request.
|
||||||
|
* 01-15-08 01.05.05 Added support for MPI_SAS_OP_SET_IOC_PARAMETER,
|
||||||
|
* including adding IOCParameter and IOCParameter value
|
||||||
|
* fields to SAS IO Unit Control Request.
|
||||||
|
* Added MPI_SAS_DEVICE_INFO_PRODUCT_SPECIFIC define.
|
||||||
* --------------------------------------------------------------------------
|
* --------------------------------------------------------------------------
|
||||||
|
|
||||||
mpi_type.h
|
mpi_type.h
|
||||||
@ -709,20 +743,20 @@ mpi_type.h
|
|||||||
|
|
||||||
mpi_history.txt Parts list history
|
mpi_history.txt Parts list history
|
||||||
|
|
||||||
Filename 01.05.15 01.05.15
|
Filename 01.05.19 01.05.18 01.05.17 01.05.16 01.05.15
|
||||||
---------- -------- --------
|
---------- -------- -------- -------- -------- --------
|
||||||
mpi.h 01.05.12 01.05.13
|
mpi.h 01.05.16 01.05.15 01.05.14 01.05.13 01.05.12
|
||||||
mpi_ioc.h 01.05.13 01.05.14
|
mpi_ioc.h 01.05.16 01.05.15 01.05.15 01.05.14 01.05.13
|
||||||
mpi_cnfg.h 01.05.14 01.05.15
|
mpi_cnfg.h 01.05.18 01.05.17 01.05.16 01.05.15 01.05.14
|
||||||
mpi_init.h 01.05.09 01.05.09
|
mpi_init.h 01.05.09 01.05.09 01.05.09 01.05.09 01.05.09
|
||||||
mpi_targ.h 01.05.06 01.05.06
|
mpi_targ.h 01.05.06 01.05.06 01.05.06 01.05.06 01.05.06
|
||||||
mpi_fc.h 01.05.01 01.05.01
|
mpi_fc.h 01.05.01 01.05.01 01.05.01 01.05.01 01.05.01
|
||||||
mpi_lan.h 01.05.01 01.05.01
|
mpi_lan.h 01.05.01 01.05.01 01.05.01 01.05.01 01.05.01
|
||||||
mpi_raid.h 01.05.03 01.05.03
|
mpi_raid.h 01.05.05 01.05.05 01.05.04 01.05.03 01.05.03
|
||||||
mpi_tool.h 01.05.03 01.05.03
|
mpi_tool.h 01.05.03 01.05.03 01.05.03 01.05.03 01.05.03
|
||||||
mpi_inb.h 01.05.01 01.05.01
|
mpi_inb.h 01.05.01 01.05.01 01.05.01 01.05.01 01.05.01
|
||||||
mpi_sas.h 01.05.04 01.05.04
|
mpi_sas.h 01.05.05 01.05.05 01.05.04 01.05.04 01.05.04
|
||||||
mpi_type.h 01.05.02 01.05.02
|
mpi_type.h 01.05.02 01.05.02 01.05.02 01.05.02 01.05.02
|
||||||
|
|
||||||
Filename 01.05.14 01.05.13 01.05.12 01.05.11 01.05.10 01.05.09
|
Filename 01.05.14 01.05.13 01.05.12 01.05.11 01.05.10 01.05.09
|
||||||
---------- -------- -------- -------- -------- -------- --------
|
---------- -------- -------- -------- -------- -------- --------
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2000-2007 LSI Corporation.
|
* Copyright (c) 2000-2008 LSI Corporation.
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* Name: mpi_init.h
|
* Name: mpi_init.h
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2000-2007 LSI Corporation.
|
* Copyright (c) 2000-2008 LSI Corporation.
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* Name: mpi_ioc.h
|
* Name: mpi_ioc.h
|
||||||
* Title: MPI IOC, Port, Event, FW Download, and FW Upload messages
|
* Title: MPI IOC, Port, Event, FW Download, and FW Upload messages
|
||||||
* Creation Date: August 11, 2000
|
* Creation Date: August 11, 2000
|
||||||
*
|
*
|
||||||
* mpi_ioc.h Version: 01.05.14
|
* mpi_ioc.h Version: 01.05.16
|
||||||
*
|
*
|
||||||
* Version History
|
* Version History
|
||||||
* ---------------
|
* ---------------
|
||||||
@ -113,6 +113,16 @@
|
|||||||
* added _MULTI_PORT_DOMAIN.
|
* added _MULTI_PORT_DOMAIN.
|
||||||
* 05-24-07 01.05.14 Added Common Boot Block type to FWDownload Request.
|
* 05-24-07 01.05.14 Added Common Boot Block type to FWDownload Request.
|
||||||
* Added Common Boot Block type to FWUpload Request.
|
* Added Common Boot Block type to FWUpload Request.
|
||||||
|
* 08-07-07 01.05.15 Added MPI_EVENT_SAS_INIT_RC_REMOVED define.
|
||||||
|
* Added MPI_EVENT_IR2_RC_DUAL_PORT_ADDED and
|
||||||
|
* MPI_EVENT_IR2_RC_DUAL_PORT_REMOVED for IR2 event data.
|
||||||
|
* Added SASAddress field to SAS Initiator Device Table
|
||||||
|
* Overflow event data structure.
|
||||||
|
* 03-28-08 01.05.16 Added two new ReasonCode values to SAS Device Status
|
||||||
|
* Change Event data to indicate completion of internally
|
||||||
|
* generated task management.
|
||||||
|
* Added MPI_EVENT_DSCVRY_ERR_DS_SATA_INIT_FAILURE define.
|
||||||
|
* Added MPI_EVENT_SAS_INIT_RC_INACCESSIBLE define.
|
||||||
* --------------------------------------------------------------------------
|
* --------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -612,6 +622,8 @@ typedef struct _EVENT_DATA_SAS_DEVICE_STATUS_CHANGE
|
|||||||
#define MPI_EVENT_SAS_DEV_STAT_RC_CLEAR_TASK_SET_INTERNAL (0x0B)
|
#define MPI_EVENT_SAS_DEV_STAT_RC_CLEAR_TASK_SET_INTERNAL (0x0B)
|
||||||
#define MPI_EVENT_SAS_DEV_STAT_RC_QUERY_TASK_INTERNAL (0x0C)
|
#define MPI_EVENT_SAS_DEV_STAT_RC_QUERY_TASK_INTERNAL (0x0C)
|
||||||
#define MPI_EVENT_SAS_DEV_STAT_RC_ASYNC_NOTIFICATION (0x0D)
|
#define MPI_EVENT_SAS_DEV_STAT_RC_ASYNC_NOTIFICATION (0x0D)
|
||||||
|
#define MPI_EVENT_SAS_DEV_STAT_RC_CMPL_INTERNAL_DEV_RESET (0x0E)
|
||||||
|
#define MPI_EVENT_SAS_DEV_STAT_RC_CMPL_TASK_ABORT_INTERNAL (0x0F)
|
||||||
|
|
||||||
|
|
||||||
/* SCSI Event data for Queue Full event */
|
/* SCSI Event data for Queue Full event */
|
||||||
@ -708,6 +720,8 @@ typedef struct _MPI_EVENT_DATA_IR2
|
|||||||
#define MPI_EVENT_IR2_RC_PD_REMOVED (0x05)
|
#define MPI_EVENT_IR2_RC_PD_REMOVED (0x05)
|
||||||
#define MPI_EVENT_IR2_RC_FOREIGN_CFG_DETECTED (0x06)
|
#define MPI_EVENT_IR2_RC_FOREIGN_CFG_DETECTED (0x06)
|
||||||
#define MPI_EVENT_IR2_RC_REBUILD_MEDIUM_ERROR (0x07)
|
#define MPI_EVENT_IR2_RC_REBUILD_MEDIUM_ERROR (0x07)
|
||||||
|
#define MPI_EVENT_IR2_RC_DUAL_PORT_ADDED (0x08)
|
||||||
|
#define MPI_EVENT_IR2_RC_DUAL_PORT_REMOVED (0x09)
|
||||||
|
|
||||||
/* defines for logical disk states */
|
/* defines for logical disk states */
|
||||||
#define MPI_LD_STATE_OPTIMAL (0x00)
|
#define MPI_LD_STATE_OPTIMAL (0x00)
|
||||||
@ -867,6 +881,7 @@ typedef struct _EVENT_DATA_DISCOVERY_ERROR
|
|||||||
#define MPI_EVENT_DSCVRY_ERR_DS_UNSUPPORTED_DEVICE (0x00000800)
|
#define MPI_EVENT_DSCVRY_ERR_DS_UNSUPPORTED_DEVICE (0x00000800)
|
||||||
#define MPI_EVENT_DSCVRY_ERR_DS_MAX_SATA_TARGETS (0x00001000)
|
#define MPI_EVENT_DSCVRY_ERR_DS_MAX_SATA_TARGETS (0x00001000)
|
||||||
#define MPI_EVENT_DSCVRY_ERR_DS_MULTI_PORT_DOMAIN (0x00002000)
|
#define MPI_EVENT_DSCVRY_ERR_DS_MULTI_PORT_DOMAIN (0x00002000)
|
||||||
|
#define MPI_EVENT_DSCVRY_ERR_DS_SATA_INIT_FAILURE (0x00004000)
|
||||||
|
|
||||||
/* SAS SMP Error Event data */
|
/* SAS SMP Error Event data */
|
||||||
|
|
||||||
@ -902,6 +917,8 @@ typedef struct _EVENT_DATA_SAS_INIT_DEV_STATUS_CHANGE
|
|||||||
|
|
||||||
/* defines for the ReasonCode field of the SAS Initiator Device Status Change event */
|
/* defines for the ReasonCode field of the SAS Initiator Device Status Change event */
|
||||||
#define MPI_EVENT_SAS_INIT_RC_ADDED (0x01)
|
#define MPI_EVENT_SAS_INIT_RC_ADDED (0x01)
|
||||||
|
#define MPI_EVENT_SAS_INIT_RC_REMOVED (0x02)
|
||||||
|
#define MPI_EVENT_SAS_INIT_RC_INACCESSIBLE (0x03)
|
||||||
|
|
||||||
/* SAS Initiator Device Table Overflow Event data */
|
/* SAS Initiator Device Table Overflow Event data */
|
||||||
|
|
||||||
@ -910,6 +927,7 @@ typedef struct _EVENT_DATA_SAS_INIT_TABLE_OVERFLOW
|
|||||||
U8 MaxInit; /* 00h */
|
U8 MaxInit; /* 00h */
|
||||||
U8 CurrentInit; /* 01h */
|
U8 CurrentInit; /* 01h */
|
||||||
U16 Reserved1; /* 02h */
|
U16 Reserved1; /* 02h */
|
||||||
|
U64 SASAddress; /* 04h */
|
||||||
} EVENT_DATA_SAS_INIT_TABLE_OVERFLOW,
|
} EVENT_DATA_SAS_INIT_TABLE_OVERFLOW,
|
||||||
MPI_POINTER PTR_EVENT_DATA_SAS_INIT_TABLE_OVERFLOW,
|
MPI_POINTER PTR_EVENT_DATA_SAS_INIT_TABLE_OVERFLOW,
|
||||||
MpiEventDataSasInitTableOverflow_t,
|
MpiEventDataSasInitTableOverflow_t,
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2000-2004 LSI Corporation.
|
* Copyright (c) 2000-2008 LSI Corporation.
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* Name: mpi_lan.h
|
* Name: mpi_lan.h
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2000-2001 LSI Corporation. All rights reserved.
|
* Copyright (c) 2000-2008 LSI Corporation. All rights reserved.
|
||||||
*
|
*
|
||||||
* NAME: fc_log.h
|
* NAME: fc_log.h
|
||||||
* SUMMARY: MPI IocLogInfo definitions for the SYMFC9xx chips
|
* SUMMARY: MPI IocLogInfo definitions for the SYMFC9xx chips
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Copyright 2003 LSI Corporation. All rights reserved. *
|
* Copyright (c) 2000-2008 LSI Corporation. All rights reserved. *
|
||||||
* *
|
* *
|
||||||
* Description *
|
* Description *
|
||||||
* ------------ *
|
* ------------ *
|
||||||
@ -73,6 +73,8 @@
|
|||||||
#define IOP_LOGINFO_CODE_TARGET_MODE_ABORT_EXACT_IO (0x00070004)
|
#define IOP_LOGINFO_CODE_TARGET_MODE_ABORT_EXACT_IO (0x00070004)
|
||||||
#define IOP_LOGINFO_CODE_TARGET_MODE_ABORT_EXACT_IO_REQ (0x00070005)
|
#define IOP_LOGINFO_CODE_TARGET_MODE_ABORT_EXACT_IO_REQ (0x00070005)
|
||||||
|
|
||||||
|
#define IOP_LOGINFO_CODE_LOG_TIMESTAMP_EVENT (0x00080000)
|
||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
/* PL LOGINFO_CODE defines, valid if IOC_LOGINFO_ORIGINATOR = PL */
|
/* PL LOGINFO_CODE defines, valid if IOC_LOGINFO_ORIGINATOR = PL */
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
@ -92,7 +94,7 @@
|
|||||||
#define PL_LOGINFO_SUB_CODE_OPEN_FAIL_OPEN_TIMEOUT_EXP (0x0000000C)
|
#define PL_LOGINFO_SUB_CODE_OPEN_FAIL_OPEN_TIMEOUT_EXP (0x0000000C)
|
||||||
#define PL_LOGINFO_SUB_CODE_OPEN_FAIL_UNUSED_0D (0x0000000D)
|
#define PL_LOGINFO_SUB_CODE_OPEN_FAIL_UNUSED_0D (0x0000000D)
|
||||||
#define PL_LOGINFO_SUB_CODE_OPEN_FAIL_DVTBLE_ACCSS_FAIL (0x0000000E)
|
#define PL_LOGINFO_SUB_CODE_OPEN_FAIL_DVTBLE_ACCSS_FAIL (0x0000000E)
|
||||||
#define PL_LOGINFO_SUB CODE_OPEN_FAIL_BAD_DEST (0x00000011)
|
#define PL_LOGINFO_SUB_CODE_OPEN_FAIL_BAD_DEST (0x00000011)
|
||||||
#define PL_LOGINFO_SUB_CODE_OPEN_FAIL_RATE_NOT_SUPP (0x00000012)
|
#define PL_LOGINFO_SUB_CODE_OPEN_FAIL_RATE_NOT_SUPP (0x00000012)
|
||||||
#define PL_LOGINFO_SUB_CODE_OPEN_FAIL_PROT_NOT_SUPP (0x00000013)
|
#define PL_LOGINFO_SUB_CODE_OPEN_FAIL_PROT_NOT_SUPP (0x00000013)
|
||||||
#define PL_LOGINFO_SUB_CODE_OPEN_FAIL_RESERVED_ABANDON0 (0x00000014)
|
#define PL_LOGINFO_SUB_CODE_OPEN_FAIL_RESERVED_ABANDON0 (0x00000014)
|
||||||
@ -159,10 +161,11 @@
|
|||||||
|
|
||||||
#define PL_LOGINFO_SUB_CODE_INVALID_SGL (0x00000200)
|
#define PL_LOGINFO_SUB_CODE_INVALID_SGL (0x00000200)
|
||||||
#define PL_LOGINFO_SUB_CODE_WRONG_REL_OFF_OR_FRAME_LENGTH (0x00000300)
|
#define PL_LOGINFO_SUB_CODE_WRONG_REL_OFF_OR_FRAME_LENGTH (0x00000300)
|
||||||
#define PL_LOGINFO_SUB_CODE_FRAME_XFER_ERROR (0x00000400) /* Bits 0-3 encode Transport Status Register (offset 0x08) */
|
#define PL_LOGINFO_SUB_CODE_FRAME_XFER_ERROR (0x00000400)
|
||||||
/* Bit 0 is Status Bit 0: FrameXferErr */
|
/* Bits 0-3 encode Transport Status Register (offset 0x08) */
|
||||||
/* Bit 1 & 2 are Status Bits 16 and 17: FrameXmitErrStatus */
|
/* Bit 0 is Status Bit 0: FrameXferErr */
|
||||||
/* Bit 3 is Status Bit 18 WriteDataLengthGTDataLengthErr */
|
/* Bit 1 & 2 are Status Bits 16 and 17: FrameXmitErrStatus */
|
||||||
|
/* Bit 3 is Status Bit 18 WriteDataLenghtGTDataLengthErr */
|
||||||
|
|
||||||
#define PL_LOGINFO_SUB_CODE_TX_FM_CONNECTED_LOW (0x00000500)
|
#define PL_LOGINFO_SUB_CODE_TX_FM_CONNECTED_LOW (0x00000500)
|
||||||
#define PL_LOGINFO_SUB_CODE_SATA_NON_NCQ_RW_ERR_BIT_SET (0x00000600)
|
#define PL_LOGINFO_SUB_CODE_SATA_NON_NCQ_RW_ERR_BIT_SET (0x00000600)
|
||||||
@ -177,6 +180,11 @@
|
|||||||
#define PL_LOGINFO_SUB_CODE_DISCOVERY_REMOTE_SEP_RESET (0x00000E01)
|
#define PL_LOGINFO_SUB_CODE_DISCOVERY_REMOTE_SEP_RESET (0x00000E01)
|
||||||
#define PL_LOGINFO_SUB_CODE_SECOND_OPEN (0x00000F00)
|
#define PL_LOGINFO_SUB_CODE_SECOND_OPEN (0x00000F00)
|
||||||
#define PL_LOGINFO_SUB_CODE_DSCVRY_SATA_INIT_TIMEOUT (0x00001000)
|
#define PL_LOGINFO_SUB_CODE_DSCVRY_SATA_INIT_TIMEOUT (0x00001000)
|
||||||
|
#define PL_LOGINFO_SUB_CODE_BREAK_ON_SATA_CONNECTION (0x00002000)
|
||||||
|
/* not currently used in mainline */
|
||||||
|
#define PL_LOGINFO_SUB_CODE_BREAK_ON_STUCK_LINK (0x00003000)
|
||||||
|
#define PL_LOGINFO_SUB_CODE_BREAK_ON_STUCK_LINK_AIP (0x00004000)
|
||||||
|
#define PL_LOGINFO_SUB_CODE_BREAK_ON_INCOMPLETE_BREAK_RCVD (0x00005000)
|
||||||
|
|
||||||
#define PL_LOGINFO_CODE_ENCL_MGMT_SMP_FRAME_FAILURE (0x00200000) /* Can't get SMP Frame */
|
#define PL_LOGINFO_CODE_ENCL_MGMT_SMP_FRAME_FAILURE (0x00200000) /* Can't get SMP Frame */
|
||||||
#define PL_LOGINFO_CODE_ENCL_MGMT_SMP_READ_ERROR (0x00200010) /* Error occured on SMP Read */
|
#define PL_LOGINFO_CODE_ENCL_MGMT_SMP_READ_ERROR (0x00200010) /* Error occured on SMP Read */
|
||||||
@ -243,6 +251,8 @@
|
|||||||
#define IR_LOGINFO_VOLUME_ACTIVATE_VOLUME_FAILED (0x00010014)
|
#define IR_LOGINFO_VOLUME_ACTIVATE_VOLUME_FAILED (0x00010014)
|
||||||
/* Activation failed trying to import the volume */
|
/* Activation failed trying to import the volume */
|
||||||
#define IR_LOGINFO_VOLUME_ACTIVATING_IMPORT_VOLUME_FAILED (0x00010015)
|
#define IR_LOGINFO_VOLUME_ACTIVATING_IMPORT_VOLUME_FAILED (0x00010015)
|
||||||
|
/* Activation failed trying to import the volume */
|
||||||
|
#define IR_LOGINFO_VOLUME_ACTIVATING_TOO_MANY_PHYS_DISKS (0x00010016)
|
||||||
|
|
||||||
/* Phys Disk failed, too many phys disks */
|
/* Phys Disk failed, too many phys disks */
|
||||||
#define IR_LOGINFO_PHYSDISK_CREATE_TOO_MANY_DISKS (0x00010020)
|
#define IR_LOGINFO_PHYSDISK_CREATE_TOO_MANY_DISKS (0x00010020)
|
||||||
@ -285,6 +295,21 @@
|
|||||||
/* Compatibility Error : IME size limited to < 2TB */
|
/* Compatibility Error : IME size limited to < 2TB */
|
||||||
#define IR_LOGINFO_COMPAT_ERROR_IME_VOL_NOT_CURRENTLY_SUPPORTED (0x0001003D)
|
#define IR_LOGINFO_COMPAT_ERROR_IME_VOL_NOT_CURRENTLY_SUPPORTED (0x0001003D)
|
||||||
|
|
||||||
|
/* Device Firmware Update: DFU can only be started once */
|
||||||
|
#define IR_LOGINFO_DEV_FW_UPDATE_ERR_DFU_IN_PROGRESS (0x00010050)
|
||||||
|
/* Device Firmware Update: Volume must be Optimal/Active/non-Quiesced */
|
||||||
|
#define IR_LOGINFO_DEV_FW_UPDATE_ERR_DEVICE_IN_INVALID_STATE (0x00010051)
|
||||||
|
/* Device Firmware Update: DFU Timeout cannot be zero */
|
||||||
|
#define IR_LOGINFO_DEV_FW_UPDATE_ERR_INVALID_TIMEOUT (0x00010052)
|
||||||
|
/* Device Firmware Update: CREATE TIMER FAILED */
|
||||||
|
#define IR_LOGINFO_DEV_FW_UPDATE_ERR_NO_TIMERS (0x00010053)
|
||||||
|
/* Device Firmware Update: Failed to read SAS_IO_UNIT_PG_1 */
|
||||||
|
#define IR_LOGINFO_DEV_FW_UPDATE_ERR_READING_CFG_PAGE (0x00010054)
|
||||||
|
/* Device Firmware Update: Invalid SAS_IO_UNIT_PG_1 value(s) */
|
||||||
|
#define IR_LOGINFO_DEV_FW_UPDATE_ERR_PORT_IO_TIMEOUTS_REQUIRED (0x00010055)
|
||||||
|
/* Device Firmware Update: Unable to allocate memory for page */
|
||||||
|
#define IR_LOGINFO_DEV_FW_UPDATE_ERR_ALLOC_CFG_PAGE (0x00010056)
|
||||||
|
|
||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
/* Defines for convenience */
|
/* Defines for convenience */
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2001-2007 LSI Corporation.
|
* Copyright (c) 2001-2008 LSI Corporation.
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* Name: mpi_raid.h
|
* Name: mpi_raid.h
|
||||||
* Title: MPI RAID message and structures
|
* Title: MPI RAID message and structures
|
||||||
* Creation Date: February 27, 2001
|
* Creation Date: February 27, 2001
|
||||||
*
|
*
|
||||||
* mpi_raid.h Version: 01.05.03
|
* mpi_raid.h Version: 01.05.05
|
||||||
*
|
*
|
||||||
* Version History
|
* Version History
|
||||||
* ---------------
|
* ---------------
|
||||||
@ -34,6 +34,9 @@
|
|||||||
* _SET_RESYNC_RATE and _SET_DATA_SCRUB_RATE.
|
* _SET_RESYNC_RATE and _SET_DATA_SCRUB_RATE.
|
||||||
* 02-28-07 01.05.03 Added new RAID Action, Device FW Update Mode, and
|
* 02-28-07 01.05.03 Added new RAID Action, Device FW Update Mode, and
|
||||||
* associated defines.
|
* associated defines.
|
||||||
|
* 08-07-07 01.05.04 Added Disable Full Rebuild bit to the ActionDataWord
|
||||||
|
* for the RAID Action MPI_RAID_ACTION_DISABLE_VOLUME.
|
||||||
|
* 01-15-08 01.05.05 Added define for MPI_RAID_ACTION_SET_VOLUME_NAME.
|
||||||
* --------------------------------------------------------------------------
|
* --------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -93,6 +96,7 @@ typedef struct _MSG_RAID_ACTION
|
|||||||
#define MPI_RAID_ACTION_SET_RESYNC_RATE (0x13)
|
#define MPI_RAID_ACTION_SET_RESYNC_RATE (0x13)
|
||||||
#define MPI_RAID_ACTION_SET_DATA_SCRUB_RATE (0x14)
|
#define MPI_RAID_ACTION_SET_DATA_SCRUB_RATE (0x14)
|
||||||
#define MPI_RAID_ACTION_DEVICE_FW_UPDATE_MODE (0x15)
|
#define MPI_RAID_ACTION_DEVICE_FW_UPDATE_MODE (0x15)
|
||||||
|
#define MPI_RAID_ACTION_SET_VOLUME_NAME (0x16)
|
||||||
|
|
||||||
/* ActionDataWord defines for use with MPI_RAID_ACTION_CREATE_VOLUME action */
|
/* ActionDataWord defines for use with MPI_RAID_ACTION_CREATE_VOLUME action */
|
||||||
#define MPI_RAID_ACTION_ADATA_DO_NOT_SYNC (0x00000001)
|
#define MPI_RAID_ACTION_ADATA_DO_NOT_SYNC (0x00000001)
|
||||||
@ -105,6 +109,9 @@ typedef struct _MSG_RAID_ACTION
|
|||||||
#define MPI_RAID_ACTION_ADATA_KEEP_LBA0 (0x00000000)
|
#define MPI_RAID_ACTION_ADATA_KEEP_LBA0 (0x00000000)
|
||||||
#define MPI_RAID_ACTION_ADATA_ZERO_LBA0 (0x00000002)
|
#define MPI_RAID_ACTION_ADATA_ZERO_LBA0 (0x00000002)
|
||||||
|
|
||||||
|
/* ActionDataWord defines for use with MPI_RAID_ACTION_DISABLE_VOLUME action */
|
||||||
|
#define MPI_RAID_ACTION_ADATA_DISABLE_FULL_REBUILD (0x00000001)
|
||||||
|
|
||||||
/* ActionDataWord defines for use with MPI_RAID_ACTION_ACTIVATE_VOLUME action */
|
/* ActionDataWord defines for use with MPI_RAID_ACTION_ACTIVATE_VOLUME action */
|
||||||
#define MPI_RAID_ACTION_ADATA_INACTIVATE_ALL (0x00000001)
|
#define MPI_RAID_ACTION_ADATA_INACTIVATE_ALL (0x00000001)
|
||||||
|
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2004-2006 LSI Corporation.
|
* Copyright (c) 2004-2008 LSI Corporation.
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* Name: mpi_sas.h
|
* Name: mpi_sas.h
|
||||||
* Title: MPI Serial Attached SCSI structures and definitions
|
* Title: MPI Serial Attached SCSI structures and definitions
|
||||||
* Creation Date: August 19, 2004
|
* Creation Date: August 19, 2004
|
||||||
*
|
*
|
||||||
* mpi_sas.h Version: 01.05.04
|
* mpi_sas.h Version: 01.05.05
|
||||||
*
|
*
|
||||||
* Version History
|
* Version History
|
||||||
* ---------------
|
* ---------------
|
||||||
@ -23,6 +23,10 @@
|
|||||||
* reply.
|
* reply.
|
||||||
* 10-11-06 01.05.04 Fixed the name of a define for Operation field of SAS IO
|
* 10-11-06 01.05.04 Fixed the name of a define for Operation field of SAS IO
|
||||||
* Unit Control request.
|
* Unit Control request.
|
||||||
|
* 01-15-08 01.05.05 Added support for MPI_SAS_OP_SET_IOC_PARAMETER,
|
||||||
|
* including adding IOCParameter and IOCParameter value
|
||||||
|
* fields to SAS IO Unit Control Request.
|
||||||
|
* Added MPI_SAS_DEVICE_INFO_PRODUCT_SPECIFIC define.
|
||||||
* --------------------------------------------------------------------------
|
* --------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -60,6 +64,8 @@
|
|||||||
* Values for the SAS DeviceInfo field used in SAS Device Status Change Event
|
* Values for the SAS DeviceInfo field used in SAS Device Status Change Event
|
||||||
* data and SAS IO Unit Configuration pages.
|
* data and SAS IO Unit Configuration pages.
|
||||||
*/
|
*/
|
||||||
|
#define MPI_SAS_DEVICE_INFO_PRODUCT_SPECIFIC (0xF0000000)
|
||||||
|
|
||||||
#define MPI_SAS_DEVICE_INFO_SEP (0x00004000)
|
#define MPI_SAS_DEVICE_INFO_SEP (0x00004000)
|
||||||
#define MPI_SAS_DEVICE_INFO_ATAPI_DEVICE (0x00002000)
|
#define MPI_SAS_DEVICE_INFO_ATAPI_DEVICE (0x00002000)
|
||||||
#define MPI_SAS_DEVICE_INFO_LSI_DEVICE (0x00001000)
|
#define MPI_SAS_DEVICE_INFO_LSI_DEVICE (0x00001000)
|
||||||
@ -216,7 +222,7 @@ typedef struct _MSG_SAS_IOUNIT_CONTROL_REQUEST
|
|||||||
U8 ChainOffset; /* 02h */
|
U8 ChainOffset; /* 02h */
|
||||||
U8 Function; /* 03h */
|
U8 Function; /* 03h */
|
||||||
U16 DevHandle; /* 04h */
|
U16 DevHandle; /* 04h */
|
||||||
U8 Reserved3; /* 06h */
|
U8 IOCParameter; /* 06h */
|
||||||
U8 MsgFlags; /* 07h */
|
U8 MsgFlags; /* 07h */
|
||||||
U32 MsgContext; /* 08h */
|
U32 MsgContext; /* 08h */
|
||||||
U8 TargetID; /* 0Ch */
|
U8 TargetID; /* 0Ch */
|
||||||
@ -225,7 +231,7 @@ typedef struct _MSG_SAS_IOUNIT_CONTROL_REQUEST
|
|||||||
U8 PrimFlags; /* 0Fh */
|
U8 PrimFlags; /* 0Fh */
|
||||||
U32 Primitive; /* 10h */
|
U32 Primitive; /* 10h */
|
||||||
U64 SASAddress; /* 14h */
|
U64 SASAddress; /* 14h */
|
||||||
U32 Reserved4; /* 1Ch */
|
U32 IOCParameterValue; /* 1Ch */
|
||||||
} MSG_SAS_IOUNIT_CONTROL_REQUEST, MPI_POINTER PTR_MSG_SAS_IOUNIT_CONTROL_REQUEST,
|
} MSG_SAS_IOUNIT_CONTROL_REQUEST, MPI_POINTER PTR_MSG_SAS_IOUNIT_CONTROL_REQUEST,
|
||||||
SasIoUnitControlRequest_t, MPI_POINTER pSasIoUnitControlRequest_t;
|
SasIoUnitControlRequest_t, MPI_POINTER pSasIoUnitControlRequest_t;
|
||||||
|
|
||||||
@ -241,6 +247,8 @@ typedef struct _MSG_SAS_IOUNIT_CONTROL_REQUEST
|
|||||||
#define MPI_SAS_OP_TRANSMIT_PORT_SELECT_SIGNAL (0x0C)
|
#define MPI_SAS_OP_TRANSMIT_PORT_SELECT_SIGNAL (0x0C)
|
||||||
#define MPI_SAS_OP_TRANSMIT_REMOVE_DEVICE (0x0D) /* obsolete name */
|
#define MPI_SAS_OP_TRANSMIT_REMOVE_DEVICE (0x0D) /* obsolete name */
|
||||||
#define MPI_SAS_OP_REMOVE_DEVICE (0x0D)
|
#define MPI_SAS_OP_REMOVE_DEVICE (0x0D)
|
||||||
|
#define MPI_SAS_OP_SET_IOC_PARAMETER (0x0E)
|
||||||
|
#define MPI_SAS_OP_PRODUCT_SPECIFIC_MIN (0x80)
|
||||||
|
|
||||||
/* values for the PrimFlags field */
|
/* values for the PrimFlags field */
|
||||||
#define MPI_SAS_PRIMFLAGS_SINGLE (0x08)
|
#define MPI_SAS_PRIMFLAGS_SINGLE (0x08)
|
||||||
@ -256,7 +264,7 @@ typedef struct _MSG_SAS_IOUNIT_CONTROL_REPLY
|
|||||||
U8 MsgLength; /* 02h */
|
U8 MsgLength; /* 02h */
|
||||||
U8 Function; /* 03h */
|
U8 Function; /* 03h */
|
||||||
U16 DevHandle; /* 04h */
|
U16 DevHandle; /* 04h */
|
||||||
U8 Reserved3; /* 06h */
|
U8 IOCParameter; /* 06h */
|
||||||
U8 MsgFlags; /* 07h */
|
U8 MsgFlags; /* 07h */
|
||||||
U32 MsgContext; /* 08h */
|
U32 MsgContext; /* 08h */
|
||||||
U16 Reserved4; /* 0Ch */
|
U16 Reserved4; /* 0Ch */
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2000-2004 LSI Corporation.
|
* Copyright (c) 2000-2008 LSI Corporation.
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* Name: mpi_targ.h
|
* Name: mpi_targ.h
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2001-2005 LSI Corporation.
|
* Copyright (c) 2001-2008 LSI Corporation.
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* Name: mpi_tool.h
|
* Name: mpi_tool.h
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2000-2004 LSI Corporation.
|
* Copyright (c) 2000-2008 LSI Corporation.
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* Name: mpi_type.h
|
* Name: mpi_type.h
|
||||||
* Title: MPI Basic type definitions
|
* Title: MPI Basic type definitions
|
||||||
* Creation Date: June 6, 2000
|
* Creation Date: June 6, 2000
|
||||||
*
|
*
|
||||||
* mpi_type.h Version: 01.05.01
|
* mpi_type.h Version: 01.05.02
|
||||||
*
|
*
|
||||||
* Version History
|
* Version History
|
||||||
* ---------------
|
* ---------------
|
||||||
|
@ -79,9 +79,22 @@ MODULE_VERSION(my_VERSION);
|
|||||||
/*
|
/*
|
||||||
* cmd line parameters
|
* cmd line parameters
|
||||||
*/
|
*/
|
||||||
static int mpt_msi_enable = -1;
|
|
||||||
module_param(mpt_msi_enable, int, 0);
|
static int mpt_msi_enable_spi;
|
||||||
MODULE_PARM_DESC(mpt_msi_enable, " MSI Support Enable (default=0)");
|
module_param(mpt_msi_enable_spi, int, 0);
|
||||||
|
MODULE_PARM_DESC(mpt_msi_enable_spi, " Enable MSI Support for SPI \
|
||||||
|
controllers (default=0)");
|
||||||
|
|
||||||
|
static int mpt_msi_enable_fc;
|
||||||
|
module_param(mpt_msi_enable_fc, int, 0);
|
||||||
|
MODULE_PARM_DESC(mpt_msi_enable_fc, " Enable MSI Support for FC \
|
||||||
|
controllers (default=0)");
|
||||||
|
|
||||||
|
static int mpt_msi_enable_sas;
|
||||||
|
module_param(mpt_msi_enable_sas, int, 1);
|
||||||
|
MODULE_PARM_DESC(mpt_msi_enable_sas, " Enable MSI Support for SAS \
|
||||||
|
controllers (default=1)");
|
||||||
|
|
||||||
|
|
||||||
static int mpt_channel_mapping;
|
static int mpt_channel_mapping;
|
||||||
module_param(mpt_channel_mapping, int, 0);
|
module_param(mpt_channel_mapping, int, 0);
|
||||||
@ -91,7 +104,17 @@ static int mpt_debug_level;
|
|||||||
static int mpt_set_debug_level(const char *val, struct kernel_param *kp);
|
static int mpt_set_debug_level(const char *val, struct kernel_param *kp);
|
||||||
module_param_call(mpt_debug_level, mpt_set_debug_level, param_get_int,
|
module_param_call(mpt_debug_level, mpt_set_debug_level, param_get_int,
|
||||||
&mpt_debug_level, 0600);
|
&mpt_debug_level, 0600);
|
||||||
MODULE_PARM_DESC(mpt_debug_level, " debug level - refer to mptdebug.h - (default=0)");
|
MODULE_PARM_DESC(mpt_debug_level, " debug level - refer to mptdebug.h \
|
||||||
|
- (default=0)");
|
||||||
|
|
||||||
|
int mpt_fwfault_debug;
|
||||||
|
EXPORT_SYMBOL(mpt_fwfault_debug);
|
||||||
|
module_param_call(mpt_fwfault_debug, param_set_int, param_get_int,
|
||||||
|
&mpt_fwfault_debug, 0600);
|
||||||
|
MODULE_PARM_DESC(mpt_fwfault_debug, "Enable detection of Firmware fault"
|
||||||
|
" and halt Firmware on fault - (default=0)");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef MFCNT
|
#ifdef MFCNT
|
||||||
static int mfcounter = 0;
|
static int mfcounter = 0;
|
||||||
@ -1751,16 +1774,25 @@ mpt_attach(struct pci_dev *pdev, const struct pci_device_id *id)
|
|||||||
ioc->bus_type = SAS;
|
ioc->bus_type = SAS;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mpt_msi_enable == -1) {
|
|
||||||
/* Enable on SAS, disable on FC and SPI */
|
|
||||||
if (ioc->bus_type == SAS)
|
|
||||||
ioc->msi_enable = 1;
|
|
||||||
else
|
|
||||||
ioc->msi_enable = 0;
|
|
||||||
} else
|
|
||||||
/* follow flag: 0 - disable; 1 - enable */
|
|
||||||
ioc->msi_enable = mpt_msi_enable;
|
|
||||||
|
|
||||||
|
switch (ioc->bus_type) {
|
||||||
|
|
||||||
|
case SAS:
|
||||||
|
ioc->msi_enable = mpt_msi_enable_sas;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SPI:
|
||||||
|
ioc->msi_enable = mpt_msi_enable_spi;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case FC:
|
||||||
|
ioc->msi_enable = mpt_msi_enable_fc;
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
ioc->msi_enable = 0;
|
||||||
|
break;
|
||||||
|
}
|
||||||
if (ioc->errata_flag_1064)
|
if (ioc->errata_flag_1064)
|
||||||
pci_disable_io_access(pdev);
|
pci_disable_io_access(pdev);
|
||||||
|
|
||||||
@ -6313,6 +6345,33 @@ mpt_print_ioc_summary(MPT_ADAPTER *ioc, char *buffer, int *size, int len, int sh
|
|||||||
*size = y;
|
*size = y;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* mpt_halt_firmware - Halts the firmware if it is operational and panic
|
||||||
|
* the kernel
|
||||||
|
* @ioc: Pointer to MPT_ADAPTER structure
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
void
|
||||||
|
mpt_halt_firmware(MPT_ADAPTER *ioc)
|
||||||
|
{
|
||||||
|
u32 ioc_raw_state;
|
||||||
|
|
||||||
|
ioc_raw_state = mpt_GetIocState(ioc, 0);
|
||||||
|
|
||||||
|
if ((ioc_raw_state & MPI_IOC_STATE_MASK) == MPI_IOC_STATE_FAULT) {
|
||||||
|
printk(MYIOC_s_ERR_FMT "IOC is in FAULT state (%04xh)!!!\n",
|
||||||
|
ioc->name, ioc_raw_state & MPI_DOORBELL_DATA_MASK);
|
||||||
|
panic("%s: IOC Fault (%04xh)!!!\n", ioc->name,
|
||||||
|
ioc_raw_state & MPI_DOORBELL_DATA_MASK);
|
||||||
|
} else {
|
||||||
|
CHIPREG_WRITE32(&ioc->chip->Doorbell, 0xC0FFEE00);
|
||||||
|
panic("%s: Firmware is halted due to command timeout\n",
|
||||||
|
ioc->name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL(mpt_halt_firmware);
|
||||||
|
|
||||||
/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
|
/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
|
||||||
/*
|
/*
|
||||||
* Reset Handling
|
* Reset Handling
|
||||||
@ -6345,6 +6404,8 @@ mpt_HardResetHandler(MPT_ADAPTER *ioc, int sleepFlag)
|
|||||||
printk(MYIOC_s_INFO_FMT "HardResetHandler Entered!\n", ioc->name);
|
printk(MYIOC_s_INFO_FMT "HardResetHandler Entered!\n", ioc->name);
|
||||||
printk("MF count 0x%x !\n", ioc->mfcnt);
|
printk("MF count 0x%x !\n", ioc->mfcnt);
|
||||||
#endif
|
#endif
|
||||||
|
if (mpt_fwfault_debug)
|
||||||
|
mpt_halt_firmware(ioc);
|
||||||
|
|
||||||
/* Reset the adapter. Prevent more than 1 call to
|
/* Reset the adapter. Prevent more than 1 call to
|
||||||
* mpt_do_ioc_recovery at any instant in time.
|
* mpt_do_ioc_recovery at any instant in time.
|
||||||
|
@ -922,11 +922,14 @@ extern void mpt_free_fw_memory(MPT_ADAPTER *ioc);
|
|||||||
extern int mpt_findImVolumes(MPT_ADAPTER *ioc);
|
extern int mpt_findImVolumes(MPT_ADAPTER *ioc);
|
||||||
extern int mptbase_sas_persist_operation(MPT_ADAPTER *ioc, u8 persist_opcode);
|
extern int mptbase_sas_persist_operation(MPT_ADAPTER *ioc, u8 persist_opcode);
|
||||||
extern int mpt_raid_phys_disk_pg0(MPT_ADAPTER *ioc, u8 phys_disk_num, pRaidPhysDiskPage0_t phys_disk);
|
extern int mpt_raid_phys_disk_pg0(MPT_ADAPTER *ioc, u8 phys_disk_num, pRaidPhysDiskPage0_t phys_disk);
|
||||||
|
extern void mpt_halt_firmware(MPT_ADAPTER *ioc);
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Public data decl's...
|
* Public data decl's...
|
||||||
*/
|
*/
|
||||||
extern struct list_head ioc_list;
|
extern struct list_head ioc_list;
|
||||||
|
extern int mpt_fwfault_debug;
|
||||||
|
|
||||||
/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
|
/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
|
||||||
#endif /* } __KERNEL__ */
|
#endif /* } __KERNEL__ */
|
||||||
|
@ -1846,6 +1846,9 @@ mptscsih_abort(struct scsi_cmnd * SCpnt)
|
|||||||
if (hd->timeouts < -1)
|
if (hd->timeouts < -1)
|
||||||
hd->timeouts++;
|
hd->timeouts++;
|
||||||
|
|
||||||
|
if (mpt_fwfault_debug)
|
||||||
|
mpt_halt_firmware(ioc);
|
||||||
|
|
||||||
/* Most important! Set TaskMsgContext to SCpnt's MsgContext!
|
/* Most important! Set TaskMsgContext to SCpnt's MsgContext!
|
||||||
* (the IO to be ABORT'd)
|
* (the IO to be ABORT'd)
|
||||||
*
|
*
|
||||||
|
@ -177,7 +177,6 @@ int iscsi_tcp_segment_done(struct iscsi_tcp_conn *tcp_conn,
|
|||||||
struct iscsi_segment *segment, int recv,
|
struct iscsi_segment *segment, int recv,
|
||||||
unsigned copied)
|
unsigned copied)
|
||||||
{
|
{
|
||||||
static unsigned char padbuf[ISCSI_PAD_LEN];
|
|
||||||
struct scatterlist sg;
|
struct scatterlist sg;
|
||||||
unsigned int pad;
|
unsigned int pad;
|
||||||
|
|
||||||
@ -233,7 +232,7 @@ int iscsi_tcp_segment_done(struct iscsi_tcp_conn *tcp_conn,
|
|||||||
debug_tcp("consume %d pad bytes\n", pad);
|
debug_tcp("consume %d pad bytes\n", pad);
|
||||||
segment->total_size += pad;
|
segment->total_size += pad;
|
||||||
segment->size = pad;
|
segment->size = pad;
|
||||||
segment->data = padbuf;
|
segment->data = segment->padbuf;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1258,35 +1258,48 @@ qla2x00_init_rings(scsi_qla_host_t *vha)
|
|||||||
{
|
{
|
||||||
int rval;
|
int rval;
|
||||||
unsigned long flags = 0;
|
unsigned long flags = 0;
|
||||||
int cnt;
|
int cnt, que;
|
||||||
struct qla_hw_data *ha = vha->hw;
|
struct qla_hw_data *ha = vha->hw;
|
||||||
struct req_que *req = ha->req_q_map[0];
|
struct req_que *req;
|
||||||
struct rsp_que *rsp = ha->rsp_q_map[0];
|
struct rsp_que *rsp;
|
||||||
|
struct scsi_qla_host *vp;
|
||||||
struct mid_init_cb_24xx *mid_init_cb =
|
struct mid_init_cb_24xx *mid_init_cb =
|
||||||
(struct mid_init_cb_24xx *) ha->init_cb;
|
(struct mid_init_cb_24xx *) ha->init_cb;
|
||||||
|
|
||||||
spin_lock_irqsave(&ha->hardware_lock, flags);
|
spin_lock_irqsave(&ha->hardware_lock, flags);
|
||||||
|
|
||||||
/* Clear outstanding commands array. */
|
/* Clear outstanding commands array. */
|
||||||
for (cnt = 0; cnt < MAX_OUTSTANDING_COMMANDS; cnt++)
|
for (que = 0; que < ha->max_queues; que++) {
|
||||||
req->outstanding_cmds[cnt] = NULL;
|
req = ha->req_q_map[que];
|
||||||
|
if (!req)
|
||||||
|
continue;
|
||||||
|
for (cnt = 0; cnt < MAX_OUTSTANDING_COMMANDS; cnt++)
|
||||||
|
req->outstanding_cmds[cnt] = NULL;
|
||||||
|
|
||||||
req->current_outstanding_cmd = 0;
|
req->current_outstanding_cmd = 0;
|
||||||
|
|
||||||
|
/* Initialize firmware. */
|
||||||
|
req->ring_ptr = req->ring;
|
||||||
|
req->ring_index = 0;
|
||||||
|
req->cnt = req->length;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (que = 0; que < ha->max_queues; que++) {
|
||||||
|
rsp = ha->rsp_q_map[que];
|
||||||
|
if (!rsp)
|
||||||
|
continue;
|
||||||
|
rsp->ring_ptr = rsp->ring;
|
||||||
|
rsp->ring_index = 0;
|
||||||
|
|
||||||
|
/* Initialize response queue entries */
|
||||||
|
qla2x00_init_response_q_entries(rsp);
|
||||||
|
}
|
||||||
|
|
||||||
/* Clear RSCN queue. */
|
/* Clear RSCN queue. */
|
||||||
vha->rscn_in_ptr = 0;
|
list_for_each_entry(vp, &ha->vp_list, list) {
|
||||||
vha->rscn_out_ptr = 0;
|
vp->rscn_in_ptr = 0;
|
||||||
|
vp->rscn_out_ptr = 0;
|
||||||
/* Initialize firmware. */
|
}
|
||||||
req->ring_ptr = req->ring;
|
|
||||||
req->ring_index = 0;
|
|
||||||
req->cnt = req->length;
|
|
||||||
rsp->ring_ptr = rsp->ring;
|
|
||||||
rsp->ring_index = 0;
|
|
||||||
|
|
||||||
/* Initialize response queue entries */
|
|
||||||
qla2x00_init_response_q_entries(rsp);
|
|
||||||
|
|
||||||
ha->isp_ops->config_rings(vha);
|
ha->isp_ops->config_rings(vha);
|
||||||
|
|
||||||
spin_unlock_irqrestore(&ha->hardware_lock, flags);
|
spin_unlock_irqrestore(&ha->hardware_lock, flags);
|
||||||
@ -3212,8 +3225,8 @@ qla2x00_loop_resync(scsi_qla_host_t *vha)
|
|||||||
int rval = QLA_SUCCESS;
|
int rval = QLA_SUCCESS;
|
||||||
uint32_t wait_time;
|
uint32_t wait_time;
|
||||||
struct qla_hw_data *ha = vha->hw;
|
struct qla_hw_data *ha = vha->hw;
|
||||||
struct req_que *req = ha->req_q_map[0];
|
struct req_que *req = ha->req_q_map[vha->req_ques[0]];
|
||||||
struct rsp_que *rsp = ha->rsp_q_map[0];
|
struct rsp_que *rsp = req->rsp;
|
||||||
|
|
||||||
atomic_set(&vha->loop_state, LOOP_UPDATE);
|
atomic_set(&vha->loop_state, LOOP_UPDATE);
|
||||||
clear_bit(ISP_ABORT_RETRY, &vha->dpc_flags);
|
clear_bit(ISP_ABORT_RETRY, &vha->dpc_flags);
|
||||||
@ -3492,6 +3505,7 @@ qla25xx_init_queues(struct qla_hw_data *ha)
|
|||||||
}
|
}
|
||||||
req = ha->req_q_map[i];
|
req = ha->req_q_map[i];
|
||||||
if (req) {
|
if (req) {
|
||||||
|
/* Clear outstanding commands array. */
|
||||||
req->options &= ~BIT_0;
|
req->options &= ~BIT_0;
|
||||||
ret = qla25xx_init_req_que(base_vha, req, req->options);
|
ret = qla25xx_init_req_que(base_vha, req, req->options);
|
||||||
if (ret != QLA_SUCCESS)
|
if (ret != QLA_SUCCESS)
|
||||||
@ -3500,7 +3514,7 @@ qla25xx_init_queues(struct qla_hw_data *ha)
|
|||||||
req->id));
|
req->id));
|
||||||
else
|
else
|
||||||
DEBUG2_17(printk(KERN_WARNING
|
DEBUG2_17(printk(KERN_WARNING
|
||||||
"%s Rsp que:%d inited\n", __func__,
|
"%s Req que:%d inited\n", __func__,
|
||||||
req->id));
|
req->id));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -4151,8 +4165,8 @@ qla24xx_configure_vhba(scsi_qla_host_t *vha)
|
|||||||
uint16_t mb[MAILBOX_REGISTER_COUNT];
|
uint16_t mb[MAILBOX_REGISTER_COUNT];
|
||||||
struct qla_hw_data *ha = vha->hw;
|
struct qla_hw_data *ha = vha->hw;
|
||||||
struct scsi_qla_host *base_vha = pci_get_drvdata(ha->pdev);
|
struct scsi_qla_host *base_vha = pci_get_drvdata(ha->pdev);
|
||||||
struct req_que *req = ha->req_q_map[0];
|
struct req_que *req = ha->req_q_map[vha->req_ques[0]];
|
||||||
struct rsp_que *rsp = ha->rsp_q_map[0];
|
struct rsp_que *rsp = req->rsp;
|
||||||
|
|
||||||
if (!vha->vp_idx)
|
if (!vha->vp_idx)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
@ -629,6 +629,7 @@ qla25xx_create_req_que(struct qla_hw_data *ha, uint16_t options,
|
|||||||
req->ring_index = 0;
|
req->ring_index = 0;
|
||||||
req->cnt = req->length;
|
req->cnt = req->length;
|
||||||
req->id = que_id;
|
req->id = que_id;
|
||||||
|
req->max_q_depth = ha->req_q_map[0]->max_q_depth;
|
||||||
mutex_unlock(&ha->vport_lock);
|
mutex_unlock(&ha->vport_lock);
|
||||||
|
|
||||||
ret = qla25xx_init_req_que(base_vha, req, options);
|
ret = qla25xx_init_req_que(base_vha, req, options);
|
||||||
|
@ -1158,8 +1158,8 @@ qla2x00_abort_all_cmds(scsi_qla_host_t *vha, int res)
|
|||||||
struct req_que *req;
|
struct req_que *req;
|
||||||
|
|
||||||
spin_lock_irqsave(&ha->hardware_lock, flags);
|
spin_lock_irqsave(&ha->hardware_lock, flags);
|
||||||
for (que = 0; que < QLA_MAX_HOST_QUES; que++) {
|
for (que = 0; que < ha->max_queues; que++) {
|
||||||
req = ha->req_q_map[vha->req_ques[que]];
|
req = ha->req_q_map[que];
|
||||||
if (!req)
|
if (!req)
|
||||||
continue;
|
continue;
|
||||||
for (cnt = 1; cnt < MAX_OUTSTANDING_COMMANDS; cnt++) {
|
for (cnt = 1; cnt < MAX_OUTSTANDING_COMMANDS; cnt++) {
|
||||||
@ -1193,7 +1193,7 @@ qla2xxx_slave_configure(struct scsi_device *sdev)
|
|||||||
scsi_qla_host_t *vha = shost_priv(sdev->host);
|
scsi_qla_host_t *vha = shost_priv(sdev->host);
|
||||||
struct qla_hw_data *ha = vha->hw;
|
struct qla_hw_data *ha = vha->hw;
|
||||||
struct fc_rport *rport = starget_to_rport(sdev->sdev_target);
|
struct fc_rport *rport = starget_to_rport(sdev->sdev_target);
|
||||||
struct req_que *req = ha->req_q_map[0];
|
struct req_que *req = ha->req_q_map[vha->req_ques[0]];
|
||||||
|
|
||||||
if (sdev->tagged_supported)
|
if (sdev->tagged_supported)
|
||||||
scsi_activate_tcq(sdev, req->max_q_depth);
|
scsi_activate_tcq(sdev, req->max_q_depth);
|
||||||
@ -1998,7 +1998,6 @@ qla2x00_probe_one(struct pci_dev *pdev, const struct pci_device_id *id)
|
|||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
probe_failed:
|
probe_failed:
|
||||||
qla2x00_free_que(ha, req, rsp);
|
|
||||||
qla2x00_free_device(base_vha);
|
qla2x00_free_device(base_vha);
|
||||||
|
|
||||||
scsi_host_put(base_vha->host);
|
scsi_host_put(base_vha->host);
|
||||||
|
@ -1095,7 +1095,8 @@ EXPORT_SYMBOL(__starget_for_each_device);
|
|||||||
* Description: Looks up the scsi_device with the specified @lun for a given
|
* Description: Looks up the scsi_device with the specified @lun for a given
|
||||||
* @starget. The returned scsi_device does not have an additional
|
* @starget. The returned scsi_device does not have an additional
|
||||||
* reference. You must hold the host's host_lock over this call and
|
* reference. You must hold the host's host_lock over this call and
|
||||||
* any access to the returned scsi_device.
|
* any access to the returned scsi_device. A scsi_device in state
|
||||||
|
* SDEV_DEL is skipped.
|
||||||
*
|
*
|
||||||
* Note: The only reason why drivers should use this is because
|
* Note: The only reason why drivers should use this is because
|
||||||
* they need to access the device list in irq context. Otherwise you
|
* they need to access the device list in irq context. Otherwise you
|
||||||
@ -1107,6 +1108,8 @@ struct scsi_device *__scsi_device_lookup_by_target(struct scsi_target *starget,
|
|||||||
struct scsi_device *sdev;
|
struct scsi_device *sdev;
|
||||||
|
|
||||||
list_for_each_entry(sdev, &starget->devices, same_target_siblings) {
|
list_for_each_entry(sdev, &starget->devices, same_target_siblings) {
|
||||||
|
if (sdev->sdev_state == SDEV_DEL)
|
||||||
|
continue;
|
||||||
if (sdev->lun ==lun)
|
if (sdev->lun ==lun)
|
||||||
return sdev;
|
return sdev;
|
||||||
}
|
}
|
||||||
|
@ -224,6 +224,7 @@ static struct {
|
|||||||
{"SGI", "TP9100", "*", BLIST_REPORTLUN2},
|
{"SGI", "TP9100", "*", BLIST_REPORTLUN2},
|
||||||
{"SGI", "Universal Xport", "*", BLIST_NO_ULD_ATTACH},
|
{"SGI", "Universal Xport", "*", BLIST_NO_ULD_ATTACH},
|
||||||
{"IBM", "Universal Xport", "*", BLIST_NO_ULD_ATTACH},
|
{"IBM", "Universal Xport", "*", BLIST_NO_ULD_ATTACH},
|
||||||
|
{"SUN", "Universal Xport", "*", BLIST_NO_ULD_ATTACH},
|
||||||
{"SMSC", "USB 2 HS-CF", NULL, BLIST_SPARSELUN | BLIST_INQUIRY_36},
|
{"SMSC", "USB 2 HS-CF", NULL, BLIST_SPARSELUN | BLIST_INQUIRY_36},
|
||||||
{"SONY", "CD-ROM CDU-8001", NULL, BLIST_BORKEN},
|
{"SONY", "CD-ROM CDU-8001", NULL, BLIST_BORKEN},
|
||||||
{"SONY", "TSL", NULL, BLIST_FORCELUN}, /* DDS3 & DDS4 autoloaders */
|
{"SONY", "TSL", NULL, BLIST_FORCELUN}, /* DDS3 & DDS4 autoloaders */
|
||||||
|
@ -39,6 +39,7 @@ struct iscsi_segment {
|
|||||||
unsigned int total_copied;
|
unsigned int total_copied;
|
||||||
|
|
||||||
struct hash_desc *hash;
|
struct hash_desc *hash;
|
||||||
|
unsigned char padbuf[ISCSI_PAD_LEN];
|
||||||
unsigned char recv_digest[ISCSI_DIGEST_SIZE];
|
unsigned char recv_digest[ISCSI_DIGEST_SIZE];
|
||||||
unsigned char digest[ISCSI_DIGEST_SIZE];
|
unsigned char digest[ISCSI_DIGEST_SIZE];
|
||||||
unsigned int digest_len;
|
unsigned int digest_len;
|
||||||
|
Loading…
Reference in New Issue
Block a user