mpi_cnfg.h revision 1da177e4c3f41524e886b7f1b8a0c1fc7321cac
11da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* 21da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Copyright (c) 2000-2003 LSI Logic Corporation. 31da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 41da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 51da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Name: mpi_cnfg.h 61da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Title: MPI Config message, structures, and Pages 71da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Creation Date: July 27, 2000 81da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 91da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * mpi_cnfg.h Version: 01.05.xx 101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Version History 121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * --------------- 131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Date Version Description 151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * -------- -------- ------------------------------------------------------ 161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 05-08-00 00.10.01 Original release for 0.10 spec dated 4/26/2000. 171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 06-06-00 01.00.01 Update version number for 1.0 release. 181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 06-08-00 01.00.02 Added _PAGEVERSION definitions for all pages. 191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Added FcPhLowestVersion, FcPhHighestVersion, Reserved2 201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * fields to FC_DEVICE_0 page, updated the page version. 211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Changed _FREE_RUNNING_CLOCK to _PACING_TRANSFERS in 221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * SCSI_PORT_0, SCSI_DEVICE_0 and SCSI_DEVICE_1 pages 231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * and updated the page versions. 241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Added _RESPONSE_ID_MASK definition to SCSI_PORT_1 251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * page and updated the page version. 261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Added Information field and _INFO_PARAMS_NEGOTIATED 271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * definitionto SCSI_DEVICE_0 page. 281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 06-22-00 01.00.03 Removed batch controls from LAN_0 page and updated the 291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * page version. 301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Added BucketsRemaining to LAN_1 page, redefined the 311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * state values, and updated the page version. 321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Revised bus width definitions in SCSI_PORT_0, 331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * SCSI_DEVICE_0 and SCSI_DEVICE_1 pages. 341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 06-30-00 01.00.04 Added MaxReplySize to LAN_1 page and updated the page 351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * version. 361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Moved FC_DEVICE_0 PageAddress description to spec. 371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 07-27-00 01.00.05 Corrected the SubsystemVendorID and SubsystemID field 381da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * widths in IOC_0 page and updated the page version. 391da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 11-02-00 01.01.01 Original release for post 1.0 work 401da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Added Manufacturing pages, IO Unit Page 2, SCSI SPI 411da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Port Page 2, FC Port Page 4, FC Port Page 5 421da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 11-15-00 01.01.02 Interim changes to match proposals 431da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 12-04-00 01.01.03 Config page changes to match MPI rev 1.00.01. 441da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 12-05-00 01.01.04 Modified config page actions. 451da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 01-09-01 01.01.05 Added defines for page address formats. 461da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Data size for Manufacturing pages 2 and 3 no longer 471da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * defined here. 481da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Io Unit Page 2 size is fixed at 4 adapters and some 491da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * flags were changed. 501da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * SCSI Port Page 2 Device Settings modified. 511da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * New fields added to FC Port Page 0 and some flags 521da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * cleaned up. 531da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Removed impedance flash from FC Port Page 1. 541da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Added FC Port pages 6 and 7. 551da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 01-25-01 01.01.06 Added MaxInitiators field to FcPortPage0. 561da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 01-29-01 01.01.07 Changed some defines to make them 32 character unique. 571da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Added some LinkType defines for FcPortPage0. 581da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 02-20-01 01.01.08 Started using MPI_POINTER. 591da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 02-27-01 01.01.09 Replaced MPI_CONFIG_PAGETYPE_SCSI_LUN with 601da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * MPI_CONFIG_PAGETYPE_RAID_VOLUME. 611da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Added definitions and structures for IOC Page 2 and 621da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * RAID Volume Page 2. 631da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 03-27-01 01.01.10 Added CONFIG_PAGE_FC_PORT_8 and CONFIG_PAGE_FC_PORT_9. 641da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * CONFIG_PAGE_FC_PORT_3 now supports persistent by DID. 651da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Added VendorId and ProductRevLevel fields to 661da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * RAIDVOL2_IM_PHYS_ID struct. 671da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Modified values for MPI_FCPORTPAGE0_FLAGS_ATTACH_ 681da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * defines to make them compatible to MPI version 1.0. 691da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Added structure offset comments. 701da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 04-09-01 01.01.11 Added some new defines for the PageAddress field and 711da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * removed some obsolete ones. 721da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Added IO Unit Page 3. 731da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Modified defines for Scsi Port Page 2. 741da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Modified RAID Volume Pages. 751da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 08-08-01 01.02.01 Original release for v1.2 work. 761da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Added SepID and SepBus to RVP2 IMPhysicalDisk struct. 771da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Added defines for the SEP bits in RVP2 VolumeSettings. 781da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Modified the DeviceSettings field in RVP2 to use the 791da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * proper structure. 801da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Added defines for SES, SAF-TE, and cross channel for 811da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * IOCPage2 CapabilitiesFlags. 821da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Removed define for MPI_IOUNITPAGE2_FLAGS_RAID_DISABLE. 831da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Removed define for 841da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * MPI_SCSIPORTPAGE2_PORT_FLAGS_PARITY_ENABLE. 851da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Added define for MPI_CONFIG_PAGEATTR_RO_PERSISTENT. 861da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 08-29-01 01.02.02 Fixed value for MPI_MANUFACTPAGE_DEVID_53C1035. 871da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Added defines for MPI_FCPORTPAGE1_FLAGS_HARD_ALPA_ONLY 881da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * and MPI_FCPORTPAGE1_FLAGS_IMMEDIATE_ERROR_REPLY. 891da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Removed MPI_SCSIPORTPAGE0_CAP_PACING_TRANSFERS, 901da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * MPI_SCSIDEVPAGE0_NP_PACING_TRANSFERS, and 911da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * MPI_SCSIDEVPAGE1_RP_PACING_TRANSFERS, and 921da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * MPI_SCSIDEVPAGE1_CONF_PPR_ALLOWED. 931da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Added defines for MPI_SCSIDEVPAGE1_CONF_WDTR_DISALLOWED 941da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * and MPI_SCSIDEVPAGE1_CONF_SDTR_DISALLOWED. 951da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Added OnBusTimerValue to CONFIG_PAGE_SCSI_PORT_1. 961da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Added rejected bits to SCSI Device Page 0 Information. 971da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Increased size of ALPA array in FC Port Page 2 by one 981da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * and removed a one byte reserved field. 991da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 09-28-01 01.02.03 Swapped NegWireSpeedLow and NegWireSpeedLow in 1001da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * CONFIG_PAGE_LAN_1 to match preferred 64-bit ordering. 1011da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Added structures for Manufacturing Page 4, IO Unit 1021da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Page 3, IOC Page 3, IOC Page 4, RAID Volume Page 0, and 1031da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * RAID PhysDisk Page 0. 1041da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 10-04-01 01.02.04 Added define for MPI_CONFIG_PAGETYPE_RAID_PHYSDISK. 1051da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Modified some of the new defines to make them 32 1061da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * character unique. 1071da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Modified how variable length pages (arrays) are defined. 1081da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Added generic defines for hot spare pools and RAID 1091da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * volume types. 1101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 11-01-01 01.02.05 Added define for MPI_IOUNITPAGE1_DISABLE_IR. 1111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 03-14-02 01.02.06 Added PCISlotNum field to CONFIG_PAGE_IOC_1 along with 1121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * related define, and bumped the page version define. 1131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 05-31-02 01.02.07 Added a Flags field to CONFIG_PAGE_IOC_2_RAID_VOL in a 1141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * reserved byte and added a define. 1151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Added define for 1161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * MPI_RAIDVOL0_STATUS_FLAG_VOLUME_INACTIVE. 1171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Added new config page: CONFIG_PAGE_IOC_5. 1181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Added MaxAliases, MaxHardAliases, and NumCurrentAliases 1191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * fields to CONFIG_PAGE_FC_PORT_0. 1201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Added AltConnector and NumRequestedAliases fields to 1211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * CONFIG_PAGE_FC_PORT_1. 1221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Added new config page: CONFIG_PAGE_FC_PORT_10. 1231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 07-12-02 01.02.08 Added more MPI_MANUFACTPAGE_DEVID_ defines. 1241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Added additional MPI_SCSIDEVPAGE0_NP_ defines. 1251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Added more MPI_SCSIDEVPAGE1_RP_ defines. 1261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Added define for 1271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * MPI_SCSIDEVPAGE1_CONF_EXTENDED_PARAMS_ENABLE. 1281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Added new config page: CONFIG_PAGE_SCSI_DEVICE_3. 1291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Modified MPI_FCPORTPAGE5_FLAGS_ defines. 1301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 09-16-02 01.02.09 Added MPI_SCSIDEVPAGE1_CONF_FORCE_PPR_MSG define. 1311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 11-15-02 01.02.10 Added ConnectedID defines for CONFIG_PAGE_SCSI_PORT_0. 1321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Added more Flags defines for CONFIG_PAGE_FC_PORT_1. 1331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Added more Flags defines for CONFIG_PAGE_FC_DEVICE_0. 1341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 04-01-03 01.02.11 Added RR_TOV field and additional Flags defines for 1351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * CONFIG_PAGE_FC_PORT_1. 1361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Added define MPI_FCPORTPAGE5_FLAGS_DISABLE to disable 1371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * an alias. 1381da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Added more device id defines. 1391da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 06-26-03 01.02.12 Added MPI_IOUNITPAGE1_IR_USE_STATIC_VOLUME_ID define. 1401da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Added TargetConfig and IDConfig fields to 1411da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * CONFIG_PAGE_SCSI_PORT_1. 1421da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Added more PortFlags defines for CONFIG_PAGE_SCSI_PORT_2 1431da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * to control DV. 1441da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Added more Flags defines for CONFIG_PAGE_FC_PORT_1. 1451da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * In CONFIG_PAGE_FC_DEVICE_0, replaced Reserved1 field 1461da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * with ADISCHardALPA. 1471da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Added MPI_FC_DEVICE_PAGE0_PROT_FCP_RETRY define. 1481da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * -------------------------------------------------------------------------- 1491da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 1501da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1511da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#ifndef MPI_CNFG_H 1521da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_CNFG_H 1531da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1541da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1551da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/***************************************************************************** 1561da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds* 1571da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds* C o n f i g M e s s a g e a n d S t r u c t u r e s 1581da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds* 1591da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds*****************************************************************************/ 1601da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1611da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _CONFIG_PAGE_HEADER 1621da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 1631da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 PageVersion; /* 00h */ 1641da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 PageLength; /* 01h */ 1651da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 PageNumber; /* 02h */ 1661da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 PageType; /* 03h */ 1671da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} fCONFIG_PAGE_HEADER, MPI_POINTER PTR_CONFIG_PAGE_HEADER, 1681da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds ConfigPageHeader_t, MPI_POINTER pConfigPageHeader_t; 1691da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1701da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef union _CONFIG_PAGE_HEADER_UNION 1711da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 1721da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds ConfigPageHeader_t Struct; 1731da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Bytes[4]; 1741da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 Word16[2]; 1751da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 Word32; 1761da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} ConfigPageHeaderUnion, MPI_POINTER pConfigPageHeaderUnion, 1771da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds fCONFIG_PAGE_HEADER_UNION, MPI_POINTER PTR_CONFIG_PAGE_HEADER_UNION; 1781da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1791da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _CONFIG_EXTENDED_PAGE_HEADER 1801da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 1811da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 PageVersion; /* 00h */ 1821da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Reserved1; /* 01h */ 1831da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 PageNumber; /* 02h */ 1841da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 PageType; /* 03h */ 1851da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 ExtPageLength; /* 04h */ 1861da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 ExtPageType; /* 06h */ 1871da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Reserved2; /* 07h */ 1881da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} fCONFIG_EXTENDED_PAGE_HEADER, MPI_POINTER PTR_CONFIG_EXTENDED_PAGE_HEADER, 1891da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds ConfigExtendedPageHeader_t, MPI_POINTER pConfigExtendedPageHeader_t; 1901da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1911da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1921da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1931da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/**************************************************************************** 1941da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds* PageType field values 1951da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds****************************************************************************/ 1961da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_CONFIG_PAGEATTR_READ_ONLY (0x00) 1971da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_CONFIG_PAGEATTR_CHANGEABLE (0x10) 1981da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_CONFIG_PAGEATTR_PERSISTENT (0x20) 1991da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_CONFIG_PAGEATTR_RO_PERSISTENT (0x30) 2001da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_CONFIG_PAGEATTR_MASK (0xF0) 2011da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 2021da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_CONFIG_PAGETYPE_IO_UNIT (0x00) 2031da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_CONFIG_PAGETYPE_IOC (0x01) 2041da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_CONFIG_PAGETYPE_BIOS (0x02) 2051da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_CONFIG_PAGETYPE_SCSI_PORT (0x03) 2061da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_CONFIG_PAGETYPE_SCSI_DEVICE (0x04) 2071da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_CONFIG_PAGETYPE_FC_PORT (0x05) 2081da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_CONFIG_PAGETYPE_FC_DEVICE (0x06) 2091da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_CONFIG_PAGETYPE_LAN (0x07) 2101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_CONFIG_PAGETYPE_RAID_VOLUME (0x08) 2111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_CONFIG_PAGETYPE_MANUFACTURING (0x09) 2121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_CONFIG_PAGETYPE_RAID_PHYSDISK (0x0A) 2131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_CONFIG_PAGETYPE_INBAND (0x0B) 2141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_CONFIG_PAGETYPE_EXTENDED (0x0F) 2151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_CONFIG_PAGETYPE_MASK (0x0F) 2161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 2171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_CONFIG_TYPENUM_MASK (0x0FFF) 2181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 2191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 2201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/**************************************************************************** 2211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds* ExtPageType field values 2221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds****************************************************************************/ 2231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_CONFIG_EXTPAGETYPE_SAS_IO_UNIT (0x10) 2241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_CONFIG_EXTPAGETYPE_SAS_EXPANDER (0x11) 2251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_CONFIG_EXTPAGETYPE_SAS_DEVICE (0x12) 2261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_CONFIG_EXTPAGETYPE_SAS_PHY (0x13) 2271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 2281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 2291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/**************************************************************************** 2301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds* PageAddress field values 2311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds****************************************************************************/ 2321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSI_PORT_PGAD_PORT_MASK (0x000000FF) 2331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 2341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSI_DEVICE_TARGET_ID_MASK (0x000000FF) 2351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSI_DEVICE_TARGET_ID_SHIFT (0) 2361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSI_DEVICE_BUS_MASK (0x0000FF00) 2371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSI_DEVICE_BUS_SHIFT (8) 2381da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 2391da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FC_PORT_PGAD_PORT_MASK (0xF0000000) 2401da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FC_PORT_PGAD_PORT_SHIFT (28) 2411da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FC_PORT_PGAD_FORM_MASK (0x0F000000) 2421da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FC_PORT_PGAD_FORM_INDEX (0x01000000) 2431da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FC_PORT_PGAD_INDEX_MASK (0x0000FFFF) 2441da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FC_PORT_PGAD_INDEX_SHIFT (0) 2451da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 2461da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FC_DEVICE_PGAD_PORT_MASK (0xF0000000) 2471da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FC_DEVICE_PGAD_PORT_SHIFT (28) 2481da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FC_DEVICE_PGAD_FORM_MASK (0x0F000000) 2491da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FC_DEVICE_PGAD_FORM_NEXT_DID (0x00000000) 2501da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FC_DEVICE_PGAD_ND_PORT_MASK (0xF0000000) 2511da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FC_DEVICE_PGAD_ND_PORT_SHIFT (28) 2521da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FC_DEVICE_PGAD_ND_DID_MASK (0x00FFFFFF) 2531da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FC_DEVICE_PGAD_ND_DID_SHIFT (0) 2541da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FC_DEVICE_PGAD_FORM_BUS_TID (0x01000000) 2551da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FC_DEVICE_PGAD_BT_BUS_MASK (0x0000FF00) 2561da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FC_DEVICE_PGAD_BT_BUS_SHIFT (8) 2571da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FC_DEVICE_PGAD_BT_TID_MASK (0x000000FF) 2581da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FC_DEVICE_PGAD_BT_TID_SHIFT (0) 2591da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 2601da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_PHYSDISK_PGAD_PHYSDISKNUM_MASK (0x000000FF) 2611da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_PHYSDISK_PGAD_PHYSDISKNUM_SHIFT (0) 2621da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 2631da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_DEVICE_PGAD_FORM_MASK (0xF0000000) 2641da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_DEVICE_PGAD_FORM_SHIFT (28) 2651da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_DEVICE_PGAD_FORM_GET_NEXT_HANDLE (0x00000000) 2661da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_DEVICE_PGAD_FORM_BUS_TARGET_ID (0x00000001) 2671da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_DEVICE_PGAD_FORM_HANDLE (0x00000002) 2681da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_DEVICE_PGAD_GNH_HANDLE_MASK (0x0000FFFF) 2691da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_DEVICE_PGAD_GNH_HANDLE_SHIFT (0) 2701da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_DEVICE_PGAD_BT_BUS_MASK (0x0000FF00) 2711da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_DEVICE_PGAD_BT_BUS_SHIFT (8) 2721da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_DEVICE_PGAD_BT_TID_MASK (0x000000FF) 2731da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_DEVICE_PGAD_BT_TID_SHIFT (0) 2741da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_DEVICE_PGAD_H_HANDLE_MASK (0x0000FFFF) 2751da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_DEVICE_PGAD_H_HANDLE_SHIFT (0) 2761da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 2771da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_PHY_PGAD_PHY_NUMBER_MASK (0x00FF0000) 2781da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_PHY_PGAD_PHY_NUMBER_SHIFT (16) 2791da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_PHY_PGAD_DEVHANDLE_MASK (0x0000FFFF) 2801da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_PHY_PGAD_DEVHANDLE_SHIFT (0) 2811da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 2821da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 2831da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/**************************************************************************** 2841da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds* Config Request Message 2851da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds****************************************************************************/ 2861da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _MSG_CONFIG 2871da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 2881da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Action; /* 00h */ 2891da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Reserved; /* 01h */ 2901da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 ChainOffset; /* 02h */ 2911da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Function; /* 03h */ 2921da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 ExtPageLength; /* 04h */ 2931da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 ExtPageType; /* 06h */ 2941da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 MsgFlags; /* 07h */ 2951da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 MsgContext; /* 08h */ 2961da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Reserved2[8]; /* 0Ch */ 2971da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds fCONFIG_PAGE_HEADER Header; /* 14h */ 2981da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 PageAddress; /* 18h */ 2991da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds SGE_IO_UNION PageBufferSGE; /* 1Ch */ 3001da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} MSG_CONFIG, MPI_POINTER PTR_MSG_CONFIG, 3011da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds Config_t, MPI_POINTER pConfig_t; 3021da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 3031da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 3041da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/**************************************************************************** 3051da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds* Action field values 3061da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds****************************************************************************/ 3071da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_CONFIG_ACTION_PAGE_HEADER (0x00) 3081da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_CONFIG_ACTION_PAGE_READ_CURRENT (0x01) 3091da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_CONFIG_ACTION_PAGE_WRITE_CURRENT (0x02) 3101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_CONFIG_ACTION_PAGE_DEFAULT (0x03) 3111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_CONFIG_ACTION_PAGE_WRITE_NVRAM (0x04) 3121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_CONFIG_ACTION_PAGE_READ_DEFAULT (0x05) 3131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_CONFIG_ACTION_PAGE_READ_NVRAM (0x06) 3141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 3151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 3161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* Config Reply Message */ 3171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _MSG_CONFIG_REPLY 3181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 3191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Action; /* 00h */ 3201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Reserved; /* 01h */ 3211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 MsgLength; /* 02h */ 3221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Function; /* 03h */ 3231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 ExtPageLength; /* 04h */ 3241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 ExtPageType; /* 06h */ 3251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 MsgFlags; /* 07h */ 3261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 MsgContext; /* 08h */ 3271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Reserved2[2]; /* 0Ch */ 3281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 IOCStatus; /* 0Eh */ 3291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 IOCLogInfo; /* 10h */ 3301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds fCONFIG_PAGE_HEADER Header; /* 14h */ 3311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} MSG_CONFIG_REPLY, MPI_POINTER PTR_MSG_CONFIG_REPLY, 3321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds ConfigReply_t, MPI_POINTER pConfigReply_t; 3331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 3341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 3351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 3361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/***************************************************************************** 3371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds* 3381da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds* C o n f i g u r a t i o n P a g e s 3391da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds* 3401da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds*****************************************************************************/ 3411da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 3421da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/**************************************************************************** 3431da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds* Manufacturing Config pages 3441da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds****************************************************************************/ 3451da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_MANUFACTPAGE_VENDORID_LSILOGIC (0x1000) 3461da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* Fibre Channel */ 3471da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_MANUFACTPAGE_DEVICEID_FC909 (0x0621) 3481da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_MANUFACTPAGE_DEVICEID_FC919 (0x0624) 3491da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_MANUFACTPAGE_DEVICEID_FC929 (0x0622) 3501da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_MANUFACTPAGE_DEVICEID_FC919X (0x0628) 3511da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_MANUFACTPAGE_DEVICEID_FC929X (0x0626) 3521da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* SCSI */ 3531da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_MANUFACTPAGE_DEVID_53C1030 (0x0030) 3541da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_MANUFACTPAGE_DEVID_53C1030ZC (0x0031) 3551da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_MANUFACTPAGE_DEVID_1030_53C1035 (0x0032) 3561da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_MANUFACTPAGE_DEVID_1030ZC_53C1035 (0x0033) 3571da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_MANUFACTPAGE_DEVID_53C1035 (0x0040) 3581da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_MANUFACTPAGE_DEVID_53C1035ZC (0x0041) 3591da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* SAS */ 3601da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_MANUFACTPAGE_DEVID_SAS1064 (0x0050) 3611da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 3621da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 3631da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _CONFIG_PAGE_MANUFACTURING_0 3641da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 3651da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds fCONFIG_PAGE_HEADER Header; /* 00h */ 3661da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 ChipName[16]; /* 04h */ 3671da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 ChipRevision[8]; /* 14h */ 3681da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 BoardName[16]; /* 1Ch */ 3691da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 BoardAssembly[16]; /* 2Ch */ 3701da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 BoardTracerNumber[16]; /* 3Ch */ 3711da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 3721da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} fCONFIG_PAGE_MANUFACTURING_0, MPI_POINTER PTR_CONFIG_PAGE_MANUFACTURING_0, 3731da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds ManufacturingPage0_t, MPI_POINTER pManufacturingPage0_t; 3741da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 3751da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_MANUFACTURING0_PAGEVERSION (0x00) 3761da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 3771da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 3781da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _CONFIG_PAGE_MANUFACTURING_1 3791da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 3801da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds fCONFIG_PAGE_HEADER Header; /* 00h */ 3811da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 VPD[256]; /* 04h */ 3821da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} fCONFIG_PAGE_MANUFACTURING_1, MPI_POINTER PTR_CONFIG_PAGE_MANUFACTURING_1, 3831da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds ManufacturingPage1_t, MPI_POINTER pManufacturingPage1_t; 3841da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 3851da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_MANUFACTURING1_PAGEVERSION (0x00) 3861da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 3871da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 3881da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _MPI_CHIP_REVISION_ID 3891da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 3901da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 DeviceID; /* 00h */ 3911da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 PCIRevisionID; /* 02h */ 3921da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Reserved; /* 03h */ 3931da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} MPI_CHIP_REVISION_ID, MPI_POINTER PTR_MPI_CHIP_REVISION_ID, 3941da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds MpiChipRevisionId_t, MPI_POINTER pMpiChipRevisionId_t; 3951da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 3961da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 3971da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* 3981da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Host code (drivers, BIOS, utilities, etc.) should leave this define set to 3991da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * one and check Header.PageLength at runtime. 4001da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 4011da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#ifndef MPI_MAN_PAGE_2_HW_SETTINGS_WORDS 4021da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_MAN_PAGE_2_HW_SETTINGS_WORDS (1) 4031da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#endif 4041da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 4051da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _CONFIG_PAGE_MANUFACTURING_2 4061da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 4071da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds fCONFIG_PAGE_HEADER Header; /* 00h */ 4081da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds MPI_CHIP_REVISION_ID ChipId; /* 04h */ 4091da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 HwSettings[MPI_MAN_PAGE_2_HW_SETTINGS_WORDS];/* 08h */ 4101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} fCONFIG_PAGE_MANUFACTURING_2, MPI_POINTER PTR_CONFIG_PAGE_MANUFACTURING_2, 4111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds ManufacturingPage2_t, MPI_POINTER pManufacturingPage2_t; 4121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 4131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_MANUFACTURING2_PAGEVERSION (0x00) 4141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 4151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 4161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* 4171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Host code (drivers, BIOS, utilities, etc.) should leave this define set to 4181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * one and check Header.PageLength at runtime. 4191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 4201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#ifndef MPI_MAN_PAGE_3_INFO_WORDS 4211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_MAN_PAGE_3_INFO_WORDS (1) 4221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#endif 4231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 4241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _CONFIG_PAGE_MANUFACTURING_3 4251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 4261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds fCONFIG_PAGE_HEADER Header; /* 00h */ 4271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds MPI_CHIP_REVISION_ID ChipId; /* 04h */ 4281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 Info[MPI_MAN_PAGE_3_INFO_WORDS];/* 08h */ 4291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} fCONFIG_PAGE_MANUFACTURING_3, MPI_POINTER PTR_CONFIG_PAGE_MANUFACTURING_3, 4301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds ManufacturingPage3_t, MPI_POINTER pManufacturingPage3_t; 4311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 4321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_MANUFACTURING3_PAGEVERSION (0x00) 4331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 4341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 4351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _CONFIG_PAGE_MANUFACTURING_4 4361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 4371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds fCONFIG_PAGE_HEADER Header; /* 00h */ 4381da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 Reserved1; /* 04h */ 4391da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 InfoOffset0; /* 08h */ 4401da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 InfoSize0; /* 09h */ 4411da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 InfoOffset1; /* 0Ah */ 4421da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 InfoSize1; /* 0Bh */ 4431da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 InquirySize; /* 0Ch */ 4441da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Flags; /* 0Dh */ 4451da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 Reserved2; /* 0Eh */ 4461da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 InquiryData[56]; /* 10h */ 4471da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 ISVolumeSettings; /* 48h */ 4481da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 IMEVolumeSettings; /* 4Ch */ 4491da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 IMVolumeSettings; /* 50h */ 4501da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} fCONFIG_PAGE_MANUFACTURING_4, MPI_POINTER PTR_CONFIG_PAGE_MANUFACTURING_4, 4511da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds ManufacturingPage4_t, MPI_POINTER pManufacturingPage4_t; 4521da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 4531da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_MANUFACTURING4_PAGEVERSION (0x01) 4541da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 4551da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* defines for the Flags field */ 4561da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_MANPAGE4_IR_NO_MIX_SAS_SATA (0x01) 4571da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 4581da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 4591da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _CONFIG_PAGE_MANUFACTURING_5 4601da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 4611da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds fCONFIG_PAGE_HEADER Header; /* 00h */ 4621da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U64 BaseWWID; /* 04h */ 4631da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} fCONFIG_PAGE_MANUFACTURING_5, MPI_POINTER PTR_CONFIG_PAGE_MANUFACTURING_5, 4641da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds ManufacturingPage5_t, MPI_POINTER pManufacturingPage5_t; 4651da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 4661da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_MANUFACTURING5_PAGEVERSION (0x00) 4671da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 4681da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 4691da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _CONFIG_PAGE_MANUFACTURING_6 4701da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 4711da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds fCONFIG_PAGE_HEADER Header; /* 00h */ 4721da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 ProductSpecificInfo;/* 04h */ 4731da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} fCONFIG_PAGE_MANUFACTURING_6, MPI_POINTER PTR_CONFIG_PAGE_MANUFACTURING_6, 4741da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds ManufacturingPage6_t, MPI_POINTER pManufacturingPage6_t; 4751da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 4761da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_MANUFACTURING6_PAGEVERSION (0x00) 4771da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 4781da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 4791da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/**************************************************************************** 4801da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds* IO Unit Config Pages 4811da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds****************************************************************************/ 4821da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 4831da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _CONFIG_PAGE_IO_UNIT_0 4841da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 4851da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds fCONFIG_PAGE_HEADER Header; /* 00h */ 4861da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U64 UniqueValue; /* 04h */ 4871da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} fCONFIG_PAGE_IO_UNIT_0, MPI_POINTER PTR_CONFIG_PAGE_IO_UNIT_0, 4881da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds IOUnitPage0_t, MPI_POINTER pIOUnitPage0_t; 4891da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 4901da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_IOUNITPAGE0_PAGEVERSION (0x00) 4911da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 4921da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 4931da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _CONFIG_PAGE_IO_UNIT_1 4941da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 4951da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds fCONFIG_PAGE_HEADER Header; /* 00h */ 4961da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 Flags; /* 04h */ 4971da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} fCONFIG_PAGE_IO_UNIT_1, MPI_POINTER PTR_CONFIG_PAGE_IO_UNIT_1, 4981da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds IOUnitPage1_t, MPI_POINTER pIOUnitPage1_t; 4991da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 5001da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_IOUNITPAGE1_PAGEVERSION (0x01) 5011da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 5021da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* IO Unit Page 1 Flags defines */ 5031da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_IOUNITPAGE1_MULTI_FUNCTION (0x00000000) 5041da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_IOUNITPAGE1_SINGLE_FUNCTION (0x00000001) 5051da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_IOUNITPAGE1_MULTI_PATHING (0x00000002) 5061da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_IOUNITPAGE1_SINGLE_PATHING (0x00000000) 5071da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_IOUNITPAGE1_IR_USE_STATIC_VOLUME_ID (0x00000004) 5081da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_IOUNITPAGE1_DISABLE_QUEUE_FULL_HANDLING (0x00000020) 5091da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_IOUNITPAGE1_DISABLE_IR (0x00000040) 5101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_IOUNITPAGE1_FORCE_32 (0x00000080) 5111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_IOUNITPAGE1_NATIVE_COMMAND_Q_DISABLE (0x00000100) 5121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 5131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 5141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _MPI_ADAPTER_INFO 5151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 5161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 PciBusNumber; /* 00h */ 5171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 PciDeviceAndFunctionNumber; /* 01h */ 5181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 AdapterFlags; /* 02h */ 5191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} MPI_ADAPTER_INFO, MPI_POINTER PTR_MPI_ADAPTER_INFO, 5201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds MpiAdapterInfo_t, MPI_POINTER pMpiAdapterInfo_t; 5211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 5221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_ADAPTER_INFO_FLAGS_EMBEDDED (0x0001) 5231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_ADAPTER_INFO_FLAGS_INIT_STATUS (0x0002) 5241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 5251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _CONFIG_PAGE_IO_UNIT_2 5261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 5271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds fCONFIG_PAGE_HEADER Header; /* 00h */ 5281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 Flags; /* 04h */ 5291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 BiosVersion; /* 08h */ 5301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds MPI_ADAPTER_INFO AdapterOrder[4]; /* 0Ch */ 5311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} fCONFIG_PAGE_IO_UNIT_2, MPI_POINTER PTR_CONFIG_PAGE_IO_UNIT_2, 5321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds IOUnitPage2_t, MPI_POINTER pIOUnitPage2_t; 5331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 5341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_IOUNITPAGE2_PAGEVERSION (0x00) 5351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 5361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_IOUNITPAGE2_FLAGS_PAUSE_ON_ERROR (0x00000002) 5371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_IOUNITPAGE2_FLAGS_VERBOSE_ENABLE (0x00000004) 5381da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_IOUNITPAGE2_FLAGS_COLOR_VIDEO_DISABLE (0x00000008) 5391da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_IOUNITPAGE2_FLAGS_DONT_HOOK_INT_40 (0x00000010) 5401da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 5411da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_IOUNITPAGE2_FLAGS_DEV_LIST_DISPLAY_MASK (0x000000E0) 5421da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_IOUNITPAGE2_FLAGS_INSTALLED_DEV_DISPLAY (0x00000000) 5431da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_IOUNITPAGE2_FLAGS_ADAPTER_DISPLAY (0x00000020) 5441da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_IOUNITPAGE2_FLAGS_ADAPTER_DEV_DISPLAY (0x00000040) 5451da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 5461da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 5471da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* 5481da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Host code (drivers, BIOS, utilities, etc.) should leave this define set to 5491da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * one and check Header.PageLength at runtime. 5501da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 5511da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#ifndef MPI_IO_UNIT_PAGE_3_GPIO_VAL_MAX 5521da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_IO_UNIT_PAGE_3_GPIO_VAL_MAX (1) 5531da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#endif 5541da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 5551da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _CONFIG_PAGE_IO_UNIT_3 5561da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 5571da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds fCONFIG_PAGE_HEADER Header; /* 00h */ 5581da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 GPIOCount; /* 04h */ 5591da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Reserved1; /* 05h */ 5601da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 Reserved2; /* 06h */ 5611da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 GPIOVal[MPI_IO_UNIT_PAGE_3_GPIO_VAL_MAX]; /* 08h */ 5621da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} fCONFIG_PAGE_IO_UNIT_3, MPI_POINTER PTR_CONFIG_PAGE_IO_UNIT_3, 5631da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds IOUnitPage3_t, MPI_POINTER pIOUnitPage3_t; 5641da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 5651da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_IOUNITPAGE3_PAGEVERSION (0x01) 5661da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 5671da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_IOUNITPAGE3_GPIO_FUNCTION_MASK (0xFC) 5681da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_IOUNITPAGE3_GPIO_FUNCTION_SHIFT (2) 5691da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_IOUNITPAGE3_GPIO_SETTING_OFF (0x00) 5701da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_IOUNITPAGE3_GPIO_SETTING_ON (0x01) 5711da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 5721da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 5731da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/**************************************************************************** 5741da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds* IOC Config Pages 5751da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds****************************************************************************/ 5761da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 5771da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _CONFIG_PAGE_IOC_0 5781da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 5791da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds fCONFIG_PAGE_HEADER Header; /* 00h */ 5801da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 TotalNVStore; /* 04h */ 5811da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 FreeNVStore; /* 08h */ 5821da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 VendorID; /* 0Ch */ 5831da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 DeviceID; /* 0Eh */ 5841da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 RevisionID; /* 10h */ 5851da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Reserved[3]; /* 11h */ 5861da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 ClassCode; /* 14h */ 5871da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 SubsystemVendorID; /* 18h */ 5881da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 SubsystemID; /* 1Ah */ 5891da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} fCONFIG_PAGE_IOC_0, MPI_POINTER PTR_CONFIG_PAGE_IOC_0, 5901da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds IOCPage0_t, MPI_POINTER pIOCPage0_t; 5911da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 5921da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_IOCPAGE0_PAGEVERSION (0x01) 5931da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 5941da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 5951da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _CONFIG_PAGE_IOC_1 5961da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 5971da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds fCONFIG_PAGE_HEADER Header; /* 00h */ 5981da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 Flags; /* 04h */ 5991da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 CoalescingTimeout; /* 08h */ 6001da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 CoalescingDepth; /* 0Ch */ 6011da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 PCISlotNum; /* 0Dh */ 6021da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Reserved[2]; /* 0Eh */ 6031da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} fCONFIG_PAGE_IOC_1, MPI_POINTER PTR_CONFIG_PAGE_IOC_1, 6041da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds IOCPage1_t, MPI_POINTER pIOCPage1_t; 6051da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 6061da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_IOCPAGE1_PAGEVERSION (0x01) 6071da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 6081da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* defines for the Flags field */ 6091da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_IOCPAGE1_EEDP_HOST_SUPPORTS_DIF (0x08000000) 6101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_IOCPAGE1_EEDP_MODE_MASK (0x07000000) 6111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_IOCPAGE1_EEDP_MODE_OFF (0x00000000) 6121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_IOCPAGE1_EEDP_MODE_T10 (0x01000000) 6131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_IOCPAGE1_EEDP_MODE_LSI_1 (0x02000000) 6141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_IOCPAGE1_REPLY_COALESCING (0x00000001) 6151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 6161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_IOCPAGE1_PCISLOTNUM_UNKNOWN (0xFF) 6171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 6181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 6191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _CONFIG_PAGE_IOC_2_RAID_VOL 6201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 6211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 VolumeID; /* 00h */ 6221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 VolumeBus; /* 01h */ 6231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 VolumeIOC; /* 02h */ 6241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 VolumePageNumber; /* 03h */ 6251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 VolumeType; /* 04h */ 6261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Flags; /* 05h */ 6271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 Reserved3; /* 06h */ 6281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} fCONFIG_PAGE_IOC_2_RAID_VOL, MPI_POINTER PTR_CONFIG_PAGE_IOC_2_RAID_VOL, 6291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds ConfigPageIoc2RaidVol_t, MPI_POINTER pConfigPageIoc2RaidVol_t; 6301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 6311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* IOC Page 2 Volume RAID Type values, also used in RAID Volume pages */ 6321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 6331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_RAID_VOL_TYPE_IS (0x00) 6341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_RAID_VOL_TYPE_IME (0x01) 6351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_RAID_VOL_TYPE_IM (0x02) 6361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 6371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* IOC Page 2 Volume Flags values */ 6381da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 6391da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_IOCPAGE2_FLAG_VOLUME_INACTIVE (0x08) 6401da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 6411da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* 6421da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Host code (drivers, BIOS, utilities, etc.) should leave this define set to 6431da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * one and check Header.PageLength at runtime. 6441da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 6451da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#ifndef MPI_IOC_PAGE_2_RAID_VOLUME_MAX 6461da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_IOC_PAGE_2_RAID_VOLUME_MAX (1) 6471da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#endif 6481da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 6491da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _CONFIG_PAGE_IOC_2 6501da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 6511da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds fCONFIG_PAGE_HEADER Header; /* 00h */ 6521da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 CapabilitiesFlags; /* 04h */ 6531da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 NumActiveVolumes; /* 08h */ 6541da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 MaxVolumes; /* 09h */ 6551da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 NumActivePhysDisks; /* 0Ah */ 6561da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 MaxPhysDisks; /* 0Bh */ 6571da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds fCONFIG_PAGE_IOC_2_RAID_VOL RaidVolume[MPI_IOC_PAGE_2_RAID_VOLUME_MAX];/* 0Ch */ 6581da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} fCONFIG_PAGE_IOC_2, MPI_POINTER PTR_CONFIG_PAGE_IOC_2, 6591da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds IOCPage2_t, MPI_POINTER pIOCPage2_t; 6601da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 6611da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_IOCPAGE2_PAGEVERSION (0x02) 6621da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 6631da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* IOC Page 2 Capabilities flags */ 6641da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 6651da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_IOCPAGE2_CAP_FLAGS_IS_SUPPORT (0x00000001) 6661da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_IOCPAGE2_CAP_FLAGS_IME_SUPPORT (0x00000002) 6671da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_IOCPAGE2_CAP_FLAGS_IM_SUPPORT (0x00000004) 6681da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_IOCPAGE2_CAP_FLAGS_SES_SUPPORT (0x20000000) 6691da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_IOCPAGE2_CAP_FLAGS_SAFTE_SUPPORT (0x40000000) 6701da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_IOCPAGE2_CAP_FLAGS_CROSS_CHANNEL_SUPPORT (0x80000000) 6711da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 6721da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 6731da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _IOC_3_PHYS_DISK 6741da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 6751da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 PhysDiskID; /* 00h */ 6761da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 PhysDiskBus; /* 01h */ 6771da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 PhysDiskIOC; /* 02h */ 6781da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 PhysDiskNum; /* 03h */ 6791da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} IOC_3_PHYS_DISK, MPI_POINTER PTR_IOC_3_PHYS_DISK, 6801da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds Ioc3PhysDisk_t, MPI_POINTER pIoc3PhysDisk_t; 6811da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 6821da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* 6831da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Host code (drivers, BIOS, utilities, etc.) should leave this define set to 6841da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * one and check Header.PageLength at runtime. 6851da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 6861da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#ifndef MPI_IOC_PAGE_3_PHYSDISK_MAX 6871da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_IOC_PAGE_3_PHYSDISK_MAX (1) 6881da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#endif 6891da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 6901da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _CONFIG_PAGE_IOC_3 6911da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 6921da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds fCONFIG_PAGE_HEADER Header; /* 00h */ 6931da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 NumPhysDisks; /* 04h */ 6941da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Reserved1; /* 05h */ 6951da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 Reserved2; /* 06h */ 6961da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds IOC_3_PHYS_DISK PhysDisk[MPI_IOC_PAGE_3_PHYSDISK_MAX]; /* 08h */ 6971da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} fCONFIG_PAGE_IOC_3, MPI_POINTER PTR_CONFIG_PAGE_IOC_3, 6981da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds IOCPage3_t, MPI_POINTER pIOCPage3_t; 6991da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 7001da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_IOCPAGE3_PAGEVERSION (0x00) 7011da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 7021da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 7031da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _IOC_4_SEP 7041da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 7051da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 SEPTargetID; /* 00h */ 7061da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 SEPBus; /* 01h */ 7071da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 Reserved; /* 02h */ 7081da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} IOC_4_SEP, MPI_POINTER PTR_IOC_4_SEP, 7091da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds Ioc4Sep_t, MPI_POINTER pIoc4Sep_t; 7101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 7111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* 7121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Host code (drivers, BIOS, utilities, etc.) should leave this define set to 7131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * one and check Header.PageLength at runtime. 7141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 7151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#ifndef MPI_IOC_PAGE_4_SEP_MAX 7161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_IOC_PAGE_4_SEP_MAX (1) 7171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#endif 7181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 7191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _CONFIG_PAGE_IOC_4 7201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 7211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds fCONFIG_PAGE_HEADER Header; /* 00h */ 7221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 ActiveSEP; /* 04h */ 7231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 MaxSEP; /* 05h */ 7241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 Reserved1; /* 06h */ 7251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds IOC_4_SEP SEP[MPI_IOC_PAGE_4_SEP_MAX]; /* 08h */ 7261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} fCONFIG_PAGE_IOC_4, MPI_POINTER PTR_CONFIG_PAGE_IOC_4, 7271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds IOCPage4_t, MPI_POINTER pIOCPage4_t; 7281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 7291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_IOCPAGE4_PAGEVERSION (0x00) 7301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 7311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 7321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _IOC_5_HOT_SPARE 7331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 7341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 PhysDiskNum; /* 00h */ 7351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Reserved; /* 01h */ 7361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 HotSparePool; /* 02h */ 7371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Flags; /* 03h */ 7381da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} IOC_5_HOT_SPARE, MPI_POINTER PTR_IOC_5_HOT_SPARE, 7391da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds Ioc5HotSpare_t, MPI_POINTER pIoc5HotSpare_t; 7401da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 7411da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* IOC Page 5 HotSpare Flags */ 7421da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_IOC_PAGE_5_HOT_SPARE_ACTIVE (0x01) 7431da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 7441da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* 7451da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Host code (drivers, BIOS, utilities, etc.) should leave this define set to 7461da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * one and check Header.PageLength at runtime. 7471da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 7481da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#ifndef MPI_IOC_PAGE_5_HOT_SPARE_MAX 7491da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_IOC_PAGE_5_HOT_SPARE_MAX (1) 7501da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#endif 7511da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 7521da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _CONFIG_PAGE_IOC_5 7531da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 7541da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds fCONFIG_PAGE_HEADER Header; /* 00h */ 7551da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 Reserved1; /* 04h */ 7561da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 NumHotSpares; /* 08h */ 7571da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Reserved2; /* 09h */ 7581da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 Reserved3; /* 0Ah */ 7591da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds IOC_5_HOT_SPARE HotSpare[MPI_IOC_PAGE_5_HOT_SPARE_MAX]; /* 0Ch */ 7601da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} fCONFIG_PAGE_IOC_5, MPI_POINTER PTR_CONFIG_PAGE_IOC_5, 7611da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds IOCPage5_t, MPI_POINTER pIOCPage5_t; 7621da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 7631da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_IOCPAGE5_PAGEVERSION (0x00) 7641da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 7651da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 7661da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/**************************************************************************** 7671da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds* BIOS Port Config Pages 7681da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds****************************************************************************/ 7691da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 7701da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _CONFIG_PAGE_BIOS_1 7711da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 7721da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds fCONFIG_PAGE_HEADER Header; /* 00h */ 7731da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 BiosOptions; /* 04h */ 7741da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 IOCSettings; /* 08h */ 7751da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 Reserved1; /* 0Ch */ 7761da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 DeviceSettings; /* 10h */ 7771da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 NumberOfDevices; /* 14h */ 7781da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 Reserved2; /* 16h */ 7791da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 IOTimeoutBlockDevicesNonRM; /* 18h */ 7801da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 IOTimeoutSequential; /* 1Ah */ 7811da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 IOTimeoutOther; /* 1Ch */ 7821da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 IOTimeoutBlockDevicesRM; /* 1Eh */ 7831da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} fCONFIG_PAGE_BIOS_1, MPI_POINTER PTR_CONFIG_PAGE_BIOS_1, 7841da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds BIOSPage1_t, MPI_POINTER pBIOSPage1_t; 7851da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 7861da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_BIOSPAGE1_PAGEVERSION (0x00) 7871da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 7881da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* values for the BiosOptions field */ 7891da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_BIOSPAGE1_OPTIONS_SPI_ENABLE (0x00000400) 7901da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_BIOSPAGE1_OPTIONS_FC_ENABLE (0x00000200) 7911da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_BIOSPAGE1_OPTIONS_SAS_ENABLE (0x00000100) 7921da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_BIOSPAGE1_OPTIONS_DISABLE_BIOS (0x00000001) 7931da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 7941da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* values for the IOCSettings field */ 7951da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_BIOSPAGE1_IOCSET_MASK_SPINUP_DELAY (0x00000F00) 7961da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_BIOSPAGE1_IOCSET_SHIFT_SPINUP_DELAY (8) 7971da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 7981da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_BIOSPAGE1_IOCSET_MASK_RM_SETTING (0x000000C0) 7991da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_BIOSPAGE1_IOCSET_NONE_RM_SETTING (0x00000000) 8001da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_BIOSPAGE1_IOCSET_BOOT_RM_SETTING (0x00000040) 8011da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_BIOSPAGE1_IOCSET_MEDIA_RM_SETTING (0x00000080) 8021da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 8031da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_BIOSPAGE1_IOCSET_MASK_ADAPTER_SUPPORT (0x00000030) 8041da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_BIOSPAGE1_IOCSET_NO_SUPPORT (0x00000000) 8051da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_BIOSPAGE1_IOCSET_BIOS_SUPPORT (0x00000010) 8061da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_BIOSPAGE1_IOCSET_OS_SUPPORT (0x00000020) 8071da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_BIOSPAGE1_IOCSET_ALL_SUPPORT (0x00000030) 8081da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 8091da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_BIOSPAGE1_IOCSET_ALTERNATE_CHS (0x00000008) 8101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 8111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* values for the DeviceSettings field */ 8121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_BIOSPAGE1_DEVSET_DISABLE_SEQ_LUN (0x00000008) 8131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_BIOSPAGE1_DEVSET_DISABLE_RM_LUN (0x00000004) 8141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_BIOSPAGE1_DEVSET_DISABLE_NON_RM_LUN (0x00000002) 8151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_BIOSPAGE1_DEVSET_DISABLE_OTHER_LUN (0x00000001) 8161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 8171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 8181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/**************************************************************************** 8191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds* SCSI Port Config Pages 8201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds****************************************************************************/ 8211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 8221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _CONFIG_PAGE_SCSI_PORT_0 8231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 8241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds fCONFIG_PAGE_HEADER Header; /* 00h */ 8251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 Capabilities; /* 04h */ 8261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 PhysicalInterface; /* 08h */ 8271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} fCONFIG_PAGE_SCSI_PORT_0, MPI_POINTER PTR_CONFIG_PAGE_SCSI_PORT_0, 8281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds SCSIPortPage0_t, MPI_POINTER pSCSIPortPage0_t; 8291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 8301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIPORTPAGE0_PAGEVERSION (0x01) 8311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 8321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIPORTPAGE0_CAP_IU (0x00000001) 8331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIPORTPAGE0_CAP_DT (0x00000002) 8341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIPORTPAGE0_CAP_QAS (0x00000004) 8351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIPORTPAGE0_CAP_MIN_SYNC_PERIOD_MASK (0x0000FF00) 8361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIPORTPAGE0_SYNC_ASYNC (0x00) 8371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIPORTPAGE0_SYNC_5 (0x32) 8381da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIPORTPAGE0_SYNC_10 (0x19) 8391da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIPORTPAGE0_SYNC_20 (0x0C) 8401da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIPORTPAGE0_SYNC_33_33 (0x0B) 8411da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIPORTPAGE0_SYNC_40 (0x0A) 8421da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIPORTPAGE0_SYNC_80 (0x09) 8431da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIPORTPAGE0_SYNC_160 (0x08) 8441da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIPORTPAGE0_SYNC_UNKNOWN (0xFF) 8451da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 8461da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIPORTPAGE0_CAP_SHIFT_MIN_SYNC_PERIOD (8) 8471da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIPORTPAGE0_CAP_GET_MIN_SYNC_PERIOD(Cap) \ 8481da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds ( ((Cap) & MPI_SCSIPORTPAGE0_CAP_MASK_MIN_SYNC_PERIOD) \ 8491da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds >> MPI_SCSIPORTPAGE0_CAP_SHIFT_MIN_SYNC_PERIOD \ 8501da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds ) 8511da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIPORTPAGE0_CAP_MAX_SYNC_OFFSET_MASK (0x00FF0000) 8521da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIPORTPAGE0_CAP_SHIFT_MAX_SYNC_OFFSET (16) 8531da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIPORTPAGE0_CAP_GET_MAX_SYNC_OFFSET(Cap) \ 8541da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds ( ((Cap) & MPI_SCSIPORTPAGE0_CAP_MASK_MAX_SYNC_OFFSET) \ 8551da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds >> MPI_SCSIPORTPAGE0_CAP_SHIFT_MAX_SYNC_OFFSET \ 8561da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds ) 8571da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIPORTPAGE0_CAP_WIDE (0x20000000) 8581da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIPORTPAGE0_CAP_AIP (0x80000000) 8591da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 8601da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIPORTPAGE0_PHY_SIGNAL_TYPE_MASK (0x00000003) 8611da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIPORTPAGE0_PHY_SIGNAL_HVD (0x01) 8621da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIPORTPAGE0_PHY_SIGNAL_SE (0x02) 8631da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIPORTPAGE0_PHY_SIGNAL_LVD (0x03) 8641da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIPORTPAGE0_PHY_MASK_CONNECTED_ID (0xFF000000) 8651da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIPORTPAGE0_PHY_SHIFT_CONNECTED_ID (24) 8661da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIPORTPAGE0_PHY_BUS_FREE_CONNECTED_ID (0xFE) 8671da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIPORTPAGE0_PHY_UNKNOWN_CONNECTED_ID (0xFF) 8681da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 8691da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 8701da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _CONFIG_PAGE_SCSI_PORT_1 8711da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 8721da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds fCONFIG_PAGE_HEADER Header; /* 00h */ 8731da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 Configuration; /* 04h */ 8741da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 OnBusTimerValue; /* 08h */ 8751da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 TargetConfig; /* 0Ch */ 8761da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Reserved1; /* 0Dh */ 8771da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 IDConfig; /* 0Eh */ 8781da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} fCONFIG_PAGE_SCSI_PORT_1, MPI_POINTER PTR_CONFIG_PAGE_SCSI_PORT_1, 8791da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds SCSIPortPage1_t, MPI_POINTER pSCSIPortPage1_t; 8801da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 8811da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIPORTPAGE1_PAGEVERSION (0x03) 8821da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 8831da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* Configuration values */ 8841da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIPORTPAGE1_CFG_PORT_SCSI_ID_MASK (0x000000FF) 8851da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIPORTPAGE1_CFG_PORT_RESPONSE_ID_MASK (0xFFFF0000) 8861da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIPORTPAGE1_CFG_SHIFT_PORT_RESPONSE_ID (16) 8871da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 8881da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* TargetConfig values */ 8891da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIPORTPAGE1_TARGCONFIG_TARG_ONLY (0x01) 8901da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIPORTPAGE1_TARGCONFIG_INIT_TARG (0x02) 8911da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 8921da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 8931da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _MPI_DEVICE_INFO 8941da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 8951da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Timeout; /* 00h */ 8961da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 SyncFactor; /* 01h */ 8971da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 DeviceFlags; /* 02h */ 8981da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} MPI_DEVICE_INFO, MPI_POINTER PTR_MPI_DEVICE_INFO, 8991da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds MpiDeviceInfo_t, MPI_POINTER pMpiDeviceInfo_t; 9001da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 9011da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _CONFIG_PAGE_SCSI_PORT_2 9021da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 9031da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds fCONFIG_PAGE_HEADER Header; /* 00h */ 9041da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 PortFlags; /* 04h */ 9051da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 PortSettings; /* 08h */ 9061da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds MPI_DEVICE_INFO DeviceSettings[16]; /* 0Ch */ 9071da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} fCONFIG_PAGE_SCSI_PORT_2, MPI_POINTER PTR_CONFIG_PAGE_SCSI_PORT_2, 9081da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds SCSIPortPage2_t, MPI_POINTER pSCSIPortPage2_t; 9091da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 9101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIPORTPAGE2_PAGEVERSION (0x02) 9111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 9121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* PortFlags values */ 9131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIPORTPAGE2_PORT_FLAGS_SCAN_HIGH_TO_LOW (0x00000001) 9141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIPORTPAGE2_PORT_FLAGS_AVOID_SCSI_RESET (0x00000004) 9151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIPORTPAGE2_PORT_FLAGS_ALTERNATE_CHS (0x00000008) 9161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIPORTPAGE2_PORT_FLAGS_TERMINATION_DISABLE (0x00000010) 9171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 9181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIPORTPAGE2_PORT_FLAGS_DV_MASK (0x00000060) 9191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIPORTPAGE2_PORT_FLAGS_FULL_DV (0x00000000) 9201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIPORTPAGE2_PORT_FLAGS_BASIC_DV_ONLY (0x00000020) 9211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIPORTPAGE2_PORT_FLAGS_OFF_DV (0x00000060) 9221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 9231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 9241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* PortSettings values */ 9251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIPORTPAGE2_PORT_HOST_ID_MASK (0x0000000F) 9261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIPORTPAGE2_PORT_MASK_INIT_HBA (0x00000030) 9271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIPORTPAGE2_PORT_DISABLE_INIT_HBA (0x00000000) 9281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIPORTPAGE2_PORT_BIOS_INIT_HBA (0x00000010) 9291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIPORTPAGE2_PORT_OS_INIT_HBA (0x00000020) 9301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIPORTPAGE2_PORT_BIOS_OS_INIT_HBA (0x00000030) 9311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIPORTPAGE2_PORT_REMOVABLE_MEDIA (0x000000C0) 9321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIPORTPAGE2_PORT_RM_NONE (0x00000000) 9331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIPORTPAGE2_PORT_RM_BOOT_ONLY (0x00000040) 9341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIPORTPAGE2_PORT_RM_WITH_MEDIA (0x00000080) 9351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIPORTPAGE2_PORT_SPINUP_DELAY_MASK (0x00000F00) 9361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIPORTPAGE2_PORT_SHIFT_SPINUP_DELAY (8) 9371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIPORTPAGE2_PORT_MASK_NEGO_MASTER_SETTINGS (0x00003000) 9381da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIPORTPAGE2_PORT_NEGO_MASTER_SETTINGS (0x00000000) 9391da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIPORTPAGE2_PORT_NONE_MASTER_SETTINGS (0x00001000) 9401da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIPORTPAGE2_PORT_ALL_MASTER_SETTINGS (0x00003000) 9411da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 9421da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIPORTPAGE2_DEVICE_DISCONNECT_ENABLE (0x0001) 9431da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIPORTPAGE2_DEVICE_ID_SCAN_ENABLE (0x0002) 9441da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIPORTPAGE2_DEVICE_LUN_SCAN_ENABLE (0x0004) 9451da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIPORTPAGE2_DEVICE_TAG_QUEUE_ENABLE (0x0008) 9461da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIPORTPAGE2_DEVICE_WIDE_DISABLE (0x0010) 9471da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIPORTPAGE2_DEVICE_BOOT_CHOICE (0x0020) 9481da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 9491da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 9501da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/**************************************************************************** 9511da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds* SCSI Target Device Config Pages 9521da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds****************************************************************************/ 9531da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 9541da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _CONFIG_PAGE_SCSI_DEVICE_0 9551da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 9561da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds fCONFIG_PAGE_HEADER Header; /* 00h */ 9571da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 NegotiatedParameters; /* 04h */ 9581da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 Information; /* 08h */ 9591da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} fCONFIG_PAGE_SCSI_DEVICE_0, MPI_POINTER PTR_CONFIG_PAGE_SCSI_DEVICE_0, 9601da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds SCSIDevicePage0_t, MPI_POINTER pSCSIDevicePage0_t; 9611da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 9621da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIDEVPAGE0_PAGEVERSION (0x03) 9631da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 9641da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIDEVPAGE0_NP_IU (0x00000001) 9651da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIDEVPAGE0_NP_DT (0x00000002) 9661da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIDEVPAGE0_NP_QAS (0x00000004) 9671da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIDEVPAGE0_NP_HOLD_MCS (0x00000008) 9681da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIDEVPAGE0_NP_WR_FLOW (0x00000010) 9691da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIDEVPAGE0_NP_RD_STRM (0x00000020) 9701da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIDEVPAGE0_NP_RTI (0x00000040) 9711da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIDEVPAGE0_NP_PCOMP_EN (0x00000080) 9721da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIDEVPAGE0_NP_NEG_SYNC_PERIOD_MASK (0x0000FF00) 9731da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIDEVPAGE0_NP_SHIFT_SYNC_PERIOD (8) 9741da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIDEVPAGE0_NP_NEG_SYNC_OFFSET_MASK (0x00FF0000) 9751da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIDEVPAGE0_NP_SHIFT_SYNC_OFFSET (16) 9761da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIDEVPAGE0_NP_WIDE (0x20000000) 9771da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIDEVPAGE0_NP_AIP (0x80000000) 9781da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 9791da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIDEVPAGE0_INFO_PARAMS_NEGOTIATED (0x00000001) 9801da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIDEVPAGE0_INFO_SDTR_REJECTED (0x00000002) 9811da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIDEVPAGE0_INFO_WDTR_REJECTED (0x00000004) 9821da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIDEVPAGE0_INFO_PPR_REJECTED (0x00000008) 9831da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 9841da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 9851da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _CONFIG_PAGE_SCSI_DEVICE_1 9861da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 9871da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds fCONFIG_PAGE_HEADER Header; /* 00h */ 9881da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 RequestedParameters; /* 04h */ 9891da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 Reserved; /* 08h */ 9901da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 Configuration; /* 0Ch */ 9911da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} fCONFIG_PAGE_SCSI_DEVICE_1, MPI_POINTER PTR_CONFIG_PAGE_SCSI_DEVICE_1, 9921da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds SCSIDevicePage1_t, MPI_POINTER pSCSIDevicePage1_t; 9931da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 9941da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIDEVPAGE1_PAGEVERSION (0x04) 9951da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 9961da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIDEVPAGE1_RP_IU (0x00000001) 9971da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIDEVPAGE1_RP_DT (0x00000002) 9981da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIDEVPAGE1_RP_QAS (0x00000004) 9991da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIDEVPAGE1_RP_HOLD_MCS (0x00000008) 10001da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIDEVPAGE1_RP_WR_FLOW (0x00000010) 10011da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIDEVPAGE1_RP_RD_STRM (0x00000020) 10021da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIDEVPAGE1_RP_RTI (0x00000040) 10031da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIDEVPAGE1_RP_PCOMP_EN (0x00000080) 10041da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIDEVPAGE1_RP_MIN_SYNC_PERIOD_MASK (0x0000FF00) 10051da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIDEVPAGE1_RP_SHIFT_MIN_SYNC_PERIOD (8) 10061da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIDEVPAGE1_RP_MAX_SYNC_OFFSET_MASK (0x00FF0000) 10071da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIDEVPAGE1_RP_SHIFT_MAX_SYNC_OFFSET (16) 10081da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIDEVPAGE1_RP_WIDE (0x20000000) 10091da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIDEVPAGE1_RP_AIP (0x80000000) 10101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 10111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIDEVPAGE1_CONF_WDTR_DISALLOWED (0x00000002) 10121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIDEVPAGE1_CONF_SDTR_DISALLOWED (0x00000004) 10131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIDEVPAGE1_CONF_EXTENDED_PARAMS_ENABLE (0x00000008) 10141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIDEVPAGE1_CONF_FORCE_PPR_MSG (0x00000010) 10151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 10161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 10171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _CONFIG_PAGE_SCSI_DEVICE_2 10181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 10191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds fCONFIG_PAGE_HEADER Header; /* 00h */ 10201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 DomainValidation; /* 04h */ 10211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 ParityPipeSelect; /* 08h */ 10221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 DataPipeSelect; /* 0Ch */ 10231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} fCONFIG_PAGE_SCSI_DEVICE_2, MPI_POINTER PTR_CONFIG_PAGE_SCSI_DEVICE_2, 10241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds SCSIDevicePage2_t, MPI_POINTER pSCSIDevicePage2_t; 10251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 10261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIDEVPAGE2_PAGEVERSION (0x01) 10271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 10281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIDEVPAGE2_DV_ISI_ENABLE (0x00000010) 10291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIDEVPAGE2_DV_SECONDARY_DRIVER_ENABLE (0x00000020) 10301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIDEVPAGE2_DV_SLEW_RATE_CTRL (0x00000380) 10311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIDEVPAGE2_DV_PRIM_DRIVE_STR_CTRL (0x00001C00) 10321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIDEVPAGE2_DV_SECOND_DRIVE_STR_CTRL (0x0000E000) 10331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIDEVPAGE2_DV_XCLKH_ST (0x10000000) 10341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIDEVPAGE2_DV_XCLKS_ST (0x20000000) 10351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIDEVPAGE2_DV_XCLKH_DT (0x40000000) 10361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIDEVPAGE2_DV_XCLKS_DT (0x80000000) 10371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 10381da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIDEVPAGE2_PPS_PPS_MASK (0x00000003) 10391da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 10401da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIDEVPAGE2_DPS_BIT_0_PL_SELECT_MASK (0x00000003) 10411da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIDEVPAGE2_DPS_BIT_1_PL_SELECT_MASK (0x0000000C) 10421da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIDEVPAGE2_DPS_BIT_2_PL_SELECT_MASK (0x00000030) 10431da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIDEVPAGE2_DPS_BIT_3_PL_SELECT_MASK (0x000000C0) 10441da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIDEVPAGE2_DPS_BIT_4_PL_SELECT_MASK (0x00000300) 10451da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIDEVPAGE2_DPS_BIT_5_PL_SELECT_MASK (0x00000C00) 10461da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIDEVPAGE2_DPS_BIT_6_PL_SELECT_MASK (0x00003000) 10471da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIDEVPAGE2_DPS_BIT_7_PL_SELECT_MASK (0x0000C000) 10481da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIDEVPAGE2_DPS_BIT_8_PL_SELECT_MASK (0x00030000) 10491da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIDEVPAGE2_DPS_BIT_9_PL_SELECT_MASK (0x000C0000) 10501da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIDEVPAGE2_DPS_BIT_10_PL_SELECT_MASK (0x00300000) 10511da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIDEVPAGE2_DPS_BIT_11_PL_SELECT_MASK (0x00C00000) 10521da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIDEVPAGE2_DPS_BIT_12_PL_SELECT_MASK (0x03000000) 10531da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIDEVPAGE2_DPS_BIT_13_PL_SELECT_MASK (0x0C000000) 10541da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIDEVPAGE2_DPS_BIT_14_PL_SELECT_MASK (0x30000000) 10551da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIDEVPAGE2_DPS_BIT_15_PL_SELECT_MASK (0xC0000000) 10561da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 10571da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 10581da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _CONFIG_PAGE_SCSI_DEVICE_3 10591da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 10601da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds fCONFIG_PAGE_HEADER Header; /* 00h */ 10611da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 MsgRejectCount; /* 04h */ 10621da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 PhaseErrorCount; /* 06h */ 10631da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 ParityErrorCount; /* 08h */ 10641da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 Reserved; /* 0Ah */ 10651da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} fCONFIG_PAGE_SCSI_DEVICE_3, MPI_POINTER PTR_CONFIG_PAGE_SCSI_DEVICE_3, 10661da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds SCSIDevicePage3_t, MPI_POINTER pSCSIDevicePage3_t; 10671da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 10681da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIDEVPAGE3_PAGEVERSION (0x00) 10691da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 10701da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIDEVPAGE3_MAX_COUNTER (0xFFFE) 10711da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SCSIDEVPAGE3_UNSUPPORTED_COUNTER (0xFFFF) 10721da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 10731da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 10741da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/**************************************************************************** 10751da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds* FC Port Config Pages 10761da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds****************************************************************************/ 10771da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 10781da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _CONFIG_PAGE_FC_PORT_0 10791da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 10801da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds fCONFIG_PAGE_HEADER Header; /* 00h */ 10811da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 Flags; /* 04h */ 10821da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 MPIPortNumber; /* 08h */ 10831da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 LinkType; /* 09h */ 10841da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 PortState; /* 0Ah */ 10851da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Reserved; /* 0Bh */ 10861da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 PortIdentifier; /* 0Ch */ 10871da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U64 WWNN; /* 10h */ 10881da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U64 WWPN; /* 18h */ 10891da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 SupportedServiceClass; /* 20h */ 10901da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 SupportedSpeeds; /* 24h */ 10911da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 CurrentSpeed; /* 28h */ 10921da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 MaxFrameSize; /* 2Ch */ 10931da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U64 FabricWWNN; /* 30h */ 10941da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U64 FabricWWPN; /* 38h */ 10951da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 DiscoveredPortsCount; /* 40h */ 10961da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 MaxInitiators; /* 44h */ 10971da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 MaxAliasesSupported; /* 48h */ 10981da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 MaxHardAliasesSupported; /* 49h */ 10991da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 NumCurrentAliases; /* 4Ah */ 11001da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Reserved1; /* 4Bh */ 11011da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} fCONFIG_PAGE_FC_PORT_0, MPI_POINTER PTR_CONFIG_PAGE_FC_PORT_0, 11021da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds FCPortPage0_t, MPI_POINTER pFCPortPage0_t; 11031da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 11041da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE0_PAGEVERSION (0x02) 11051da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 11061da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE0_FLAGS_PROT_MASK (0x0000000F) 11071da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE0_FLAGS_PROT_FCP_INIT (MPI_PORTFACTS_PROTOCOL_INITIATOR) 11081da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE0_FLAGS_PROT_FCP_TARG (MPI_PORTFACTS_PROTOCOL_TARGET) 11091da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE0_FLAGS_PROT_LAN (MPI_PORTFACTS_PROTOCOL_LAN) 11101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE0_FLAGS_PROT_LOGBUSADDR (MPI_PORTFACTS_PROTOCOL_LOGBUSADDR) 11111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 11121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE0_FLAGS_ALIAS_ALPA_SUPPORTED (0x00000010) 11131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE0_FLAGS_ALIAS_WWN_SUPPORTED (0x00000020) 11141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE0_FLAGS_FABRIC_WWN_VALID (0x00000040) 11151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 11161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE0_FLAGS_ATTACH_TYPE_MASK (0x00000F00) 11171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE0_FLAGS_ATTACH_NO_INIT (0x00000000) 11181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE0_FLAGS_ATTACH_POINT_TO_POINT (0x00000100) 11191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE0_FLAGS_ATTACH_PRIVATE_LOOP (0x00000200) 11201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE0_FLAGS_ATTACH_FABRIC_DIRECT (0x00000400) 11211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE0_FLAGS_ATTACH_PUBLIC_LOOP (0x00000800) 11221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 11231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE0_LTYPE_RESERVED (0x00) 11241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE0_LTYPE_OTHER (0x01) 11251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE0_LTYPE_UNKNOWN (0x02) 11261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE0_LTYPE_COPPER (0x03) 11271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE0_LTYPE_SINGLE_1300 (0x04) 11281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE0_LTYPE_SINGLE_1500 (0x05) 11291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE0_LTYPE_50_LASER_MULTI (0x06) 11301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE0_LTYPE_50_LED_MULTI (0x07) 11311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE0_LTYPE_62_LASER_MULTI (0x08) 11321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE0_LTYPE_62_LED_MULTI (0x09) 11331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE0_LTYPE_MULTI_LONG_WAVE (0x0A) 11341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE0_LTYPE_MULTI_SHORT_WAVE (0x0B) 11351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE0_LTYPE_LASER_SHORT_WAVE (0x0C) 11361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE0_LTYPE_LED_SHORT_WAVE (0x0D) 11371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE0_LTYPE_1300_LONG_WAVE (0x0E) 11381da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE0_LTYPE_1500_LONG_WAVE (0x0F) 11391da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 11401da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE0_PORTSTATE_UNKNOWN (0x01) /*(SNIA)HBA_PORTSTATE_UNKNOWN 1 Unknown */ 11411da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE0_PORTSTATE_ONLINE (0x02) /*(SNIA)HBA_PORTSTATE_ONLINE 2 Operational */ 11421da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE0_PORTSTATE_OFFLINE (0x03) /*(SNIA)HBA_PORTSTATE_OFFLINE 3 User Offline */ 11431da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE0_PORTSTATE_BYPASSED (0x04) /*(SNIA)HBA_PORTSTATE_BYPASSED 4 Bypassed */ 11441da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE0_PORTSTATE_DIAGNOST (0x05) /*(SNIA)HBA_PORTSTATE_DIAGNOSTICS 5 In diagnostics mode */ 11451da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE0_PORTSTATE_LINKDOWN (0x06) /*(SNIA)HBA_PORTSTATE_LINKDOWN 6 Link Down */ 11461da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE0_PORTSTATE_ERROR (0x07) /*(SNIA)HBA_PORTSTATE_ERROR 7 Port Error */ 11471da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE0_PORTSTATE_LOOPBACK (0x08) /*(SNIA)HBA_PORTSTATE_LOOPBACK 8 Loopback */ 11481da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 11491da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE0_SUPPORT_CLASS_1 (0x00000001) 11501da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE0_SUPPORT_CLASS_2 (0x00000002) 11511da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE0_SUPPORT_CLASS_3 (0x00000004) 11521da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 11531da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE0_SUPPORT_SPEED_UKNOWN (0x00000000) /* (SNIA)HBA_PORTSPEED_UNKNOWN 0 Unknown - transceiver incapable of reporting */ 11541da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE0_SUPPORT_1GBIT_SPEED (0x00000001) /* (SNIA)HBA_PORTSPEED_1GBIT 1 1 GBit/sec */ 11551da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE0_SUPPORT_2GBIT_SPEED (0x00000002) /* (SNIA)HBA_PORTSPEED_2GBIT 2 2 GBit/sec */ 11561da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE0_SUPPORT_10GBIT_SPEED (0x00000004) /* (SNIA)HBA_PORTSPEED_10GBIT 4 10 GBit/sec */ 11571da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE0_SUPPORT_4GBIT_SPEED (0x00000008) /* (SNIA)HBA_PORTSPEED_4GBIT 8 4 GBit/sec */ 11581da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 11591da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE0_CURRENT_SPEED_UKNOWN MPI_FCPORTPAGE0_SUPPORT_SPEED_UKNOWN 11601da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE0_CURRENT_SPEED_1GBIT MPI_FCPORTPAGE0_SUPPORT_1GBIT_SPEED 11611da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE0_CURRENT_SPEED_2GBIT MPI_FCPORTPAGE0_SUPPORT_2GBIT_SPEED 11621da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE0_CURRENT_SPEED_10GBIT MPI_FCPORTPAGE0_SUPPORT_10GBIT_SPEED 11631da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE0_CURRENT_SPEED_4GBIT MPI_FCPORTPAGE0_SUPPORT_4GBIT_SPEED 11641da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE0_CURRENT_SPEED_NOT_NEGOTIATED (0x00008000) /* (SNIA)HBA_PORTSPEED_NOT_NEGOTIATED (1<<15) Speed not established */ 11651da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 11661da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 11671da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 11681da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _CONFIG_PAGE_FC_PORT_1 11691da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 11701da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds fCONFIG_PAGE_HEADER Header; /* 00h */ 11711da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 Flags; /* 04h */ 11721da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U64 NoSEEPROMWWNN; /* 08h */ 11731da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U64 NoSEEPROMWWPN; /* 10h */ 11741da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 HardALPA; /* 18h */ 11751da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 LinkConfig; /* 19h */ 11761da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 TopologyConfig; /* 1Ah */ 11771da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 AltConnector; /* 1Bh */ 11781da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 NumRequestedAliases; /* 1Ch */ 11791da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 RR_TOV; /* 1Dh */ 11801da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 InitiatorDeviceTimeout; /* 1Eh */ 11811da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 InitiatorIoPendTimeout; /* 1Fh */ 11821da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} fCONFIG_PAGE_FC_PORT_1, MPI_POINTER PTR_CONFIG_PAGE_FC_PORT_1, 11831da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds FCPortPage1_t, MPI_POINTER pFCPortPage1_t; 11841da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 11851da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE1_PAGEVERSION (0x06) 11861da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 11871da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE1_FLAGS_EXT_FCP_STATUS_EN (0x08000000) 11881da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE1_FLAGS_IMMEDIATE_ERROR_REPLY (0x04000000) 11891da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE1_FLAGS_FORCE_USE_NOSEEPROM_WWNS (0x02000000) 11901da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE1_FLAGS_VERBOSE_RESCAN_EVENTS (0x01000000) 11911da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE1_FLAGS_TARGET_MODE_OXID (0x00800000) 11921da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE1_FLAGS_PORT_OFFLINE (0x00400000) 11931da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE1_FLAGS_SOFT_ALPA_FALLBACK (0x00200000) 11941da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE1_FLAGS_MASK_RR_TOV_UNITS (0x00000070) 11951da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE1_FLAGS_SUPPRESS_PROT_REG (0x00000008) 11961da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE1_FLAGS_PLOGI_ON_LOGO (0x00000004) 11971da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE1_FLAGS_MAINTAIN_LOGINS (0x00000002) 11981da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE1_FLAGS_SORT_BY_DID (0x00000001) 11991da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE1_FLAGS_SORT_BY_WWN (0x00000000) 12001da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 12011da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE1_FLAGS_PROT_MASK (0xF0000000) 12021da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE1_FLAGS_PROT_SHIFT (28) 12031da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE1_FLAGS_PROT_FCP_INIT ((U32)MPI_PORTFACTS_PROTOCOL_INITIATOR << MPI_FCPORTPAGE1_FLAGS_PROT_SHIFT) 12041da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE1_FLAGS_PROT_FCP_TARG ((U32)MPI_PORTFACTS_PROTOCOL_TARGET << MPI_FCPORTPAGE1_FLAGS_PROT_SHIFT) 12051da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE1_FLAGS_PROT_LAN ((U32)MPI_PORTFACTS_PROTOCOL_LAN << MPI_FCPORTPAGE1_FLAGS_PROT_SHIFT) 12061da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE1_FLAGS_PROT_LOGBUSADDR ((U32)MPI_PORTFACTS_PROTOCOL_LOGBUSADDR << MPI_FCPORTPAGE1_FLAGS_PROT_SHIFT) 12071da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 12081da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE1_FLAGS_NONE_RR_TOV_UNITS (0x00000000) 12091da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE1_FLAGS_THOUSANDTH_RR_TOV_UNITS (0x00000010) 12101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE1_FLAGS_TENTH_RR_TOV_UNITS (0x00000030) 12111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE1_FLAGS_TEN_RR_TOV_UNITS (0x00000050) 12121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 12131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE1_HARD_ALPA_NOT_USED (0xFF) 12141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 12151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE1_LCONFIG_SPEED_MASK (0x0F) 12161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE1_LCONFIG_SPEED_1GIG (0x00) 12171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE1_LCONFIG_SPEED_2GIG (0x01) 12181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE1_LCONFIG_SPEED_4GIG (0x02) 12191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE1_LCONFIG_SPEED_10GIG (0x03) 12201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE1_LCONFIG_SPEED_AUTO (0x0F) 12211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 12221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE1_TOPOLOGY_MASK (0x0F) 12231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE1_TOPOLOGY_NLPORT (0x01) 12241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE1_TOPOLOGY_NPORT (0x02) 12251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE1_TOPOLOGY_AUTO (0x0F) 12261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 12271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE1_ALT_CONN_UNKNOWN (0x00) 12281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 12291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE1_INITIATOR_DEV_TIMEOUT_MASK (0x7F) 12301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 12311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 12321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _CONFIG_PAGE_FC_PORT_2 12331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 12341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds fCONFIG_PAGE_HEADER Header; /* 00h */ 12351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 NumberActive; /* 04h */ 12361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 ALPA[127]; /* 05h */ 12371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} fCONFIG_PAGE_FC_PORT_2, MPI_POINTER PTR_CONFIG_PAGE_FC_PORT_2, 12381da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds FCPortPage2_t, MPI_POINTER pFCPortPage2_t; 12391da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 12401da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE2_PAGEVERSION (0x01) 12411da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 12421da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 12431da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _WWN_FORMAT 12441da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 12451da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U64 WWNN; /* 00h */ 12461da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U64 WWPN; /* 08h */ 12471da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} WWN_FORMAT, MPI_POINTER PTR_WWN_FORMAT, 12481da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds WWNFormat, MPI_POINTER pWWNFormat; 12491da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 12501da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef union _FC_PORT_PERSISTENT_PHYSICAL_ID 12511da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 12521da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds WWN_FORMAT WWN; 12531da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 Did; 12541da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} FC_PORT_PERSISTENT_PHYSICAL_ID, MPI_POINTER PTR_FC_PORT_PERSISTENT_PHYSICAL_ID, 12551da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds PersistentPhysicalId_t, MPI_POINTER pPersistentPhysicalId_t; 12561da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 12571da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _FC_PORT_PERSISTENT 12581da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 12591da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds FC_PORT_PERSISTENT_PHYSICAL_ID PhysicalIdentifier; /* 00h */ 12601da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 TargetID; /* 10h */ 12611da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Bus; /* 11h */ 12621da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 Flags; /* 12h */ 12631da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} FC_PORT_PERSISTENT, MPI_POINTER PTR_FC_PORT_PERSISTENT, 12641da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds PersistentData_t, MPI_POINTER pPersistentData_t; 12651da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 12661da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_PERSISTENT_FLAGS_SHIFT (16) 12671da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_PERSISTENT_FLAGS_ENTRY_VALID (0x0001) 12681da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_PERSISTENT_FLAGS_SCAN_ID (0x0002) 12691da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_PERSISTENT_FLAGS_SCAN_LUNS (0x0004) 12701da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_PERSISTENT_FLAGS_BOOT_DEVICE (0x0008) 12711da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_PERSISTENT_FLAGS_BY_DID (0x0080) 12721da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 12731da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* 12741da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Host code (drivers, BIOS, utilities, etc.) should leave this define set to 12751da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * one and check Header.PageLength at runtime. 12761da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 12771da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#ifndef MPI_FC_PORT_PAGE_3_ENTRY_MAX 12781da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FC_PORT_PAGE_3_ENTRY_MAX (1) 12791da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#endif 12801da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 12811da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _CONFIG_PAGE_FC_PORT_3 12821da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 12831da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds fCONFIG_PAGE_HEADER Header; /* 00h */ 12841da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds FC_PORT_PERSISTENT Entry[MPI_FC_PORT_PAGE_3_ENTRY_MAX]; /* 04h */ 12851da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} fCONFIG_PAGE_FC_PORT_3, MPI_POINTER PTR_CONFIG_PAGE_FC_PORT_3, 12861da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds FCPortPage3_t, MPI_POINTER pFCPortPage3_t; 12871da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 12881da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE3_PAGEVERSION (0x01) 12891da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 12901da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 12911da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _CONFIG_PAGE_FC_PORT_4 12921da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 12931da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds fCONFIG_PAGE_HEADER Header; /* 00h */ 12941da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 PortFlags; /* 04h */ 12951da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 PortSettings; /* 08h */ 12961da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} fCONFIG_PAGE_FC_PORT_4, MPI_POINTER PTR_CONFIG_PAGE_FC_PORT_4, 12971da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds FCPortPage4_t, MPI_POINTER pFCPortPage4_t; 12981da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 12991da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE4_PAGEVERSION (0x00) 13001da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 13011da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE4_PORT_FLAGS_ALTERNATE_CHS (0x00000008) 13021da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 13031da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE4_PORT_MASK_INIT_HBA (0x00000030) 13041da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE4_PORT_DISABLE_INIT_HBA (0x00000000) 13051da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE4_PORT_BIOS_INIT_HBA (0x00000010) 13061da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE4_PORT_OS_INIT_HBA (0x00000020) 13071da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE4_PORT_BIOS_OS_INIT_HBA (0x00000030) 13081da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE4_PORT_REMOVABLE_MEDIA (0x000000C0) 13091da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE4_PORT_SPINUP_DELAY_MASK (0x00000F00) 13101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 13111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 13121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _CONFIG_PAGE_FC_PORT_5_ALIAS_INFO 13131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 13141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Flags; /* 00h */ 13151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 AliasAlpa; /* 01h */ 13161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 Reserved; /* 02h */ 13171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U64 AliasWWNN; /* 04h */ 13181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U64 AliasWWPN; /* 0Ch */ 13191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} fCONFIG_PAGE_FC_PORT_5_ALIAS_INFO, 13201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds MPI_POINTER PTR_CONFIG_PAGE_FC_PORT_5_ALIAS_INFO, 13211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds FcPortPage5AliasInfo_t, MPI_POINTER pFcPortPage5AliasInfo_t; 13221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 13231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _CONFIG_PAGE_FC_PORT_5 13241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 13251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds fCONFIG_PAGE_HEADER Header; /* 00h */ 13261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds fCONFIG_PAGE_FC_PORT_5_ALIAS_INFO AliasInfo; /* 04h */ 13271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} fCONFIG_PAGE_FC_PORT_5, MPI_POINTER PTR_CONFIG_PAGE_FC_PORT_5, 13281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds FCPortPage5_t, MPI_POINTER pFCPortPage5_t; 13291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 13301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE5_PAGEVERSION (0x02) 13311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 13321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE5_FLAGS_ALPA_ACQUIRED (0x01) 13331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE5_FLAGS_HARD_ALPA (0x02) 13341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE5_FLAGS_HARD_WWNN (0x04) 13351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE5_FLAGS_HARD_WWPN (0x08) 13361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE5_FLAGS_DISABLE (0x10) 13371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 13381da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _CONFIG_PAGE_FC_PORT_6 13391da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 13401da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds fCONFIG_PAGE_HEADER Header; /* 00h */ 13411da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 Reserved; /* 04h */ 13421da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U64 TimeSinceReset; /* 08h */ 13431da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U64 TxFrames; /* 10h */ 13441da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U64 RxFrames; /* 18h */ 13451da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U64 TxWords; /* 20h */ 13461da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U64 RxWords; /* 28h */ 13471da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U64 LipCount; /* 30h */ 13481da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U64 NosCount; /* 38h */ 13491da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U64 ErrorFrames; /* 40h */ 13501da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U64 DumpedFrames; /* 48h */ 13511da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U64 LinkFailureCount; /* 50h */ 13521da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U64 LossOfSyncCount; /* 58h */ 13531da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U64 LossOfSignalCount; /* 60h */ 13541da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U64 PrimativeSeqErrCount; /* 68h */ 13551da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U64 InvalidTxWordCount; /* 70h */ 13561da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U64 InvalidCrcCount; /* 78h */ 13571da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U64 FcpInitiatorIoCount; /* 80h */ 13581da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} fCONFIG_PAGE_FC_PORT_6, MPI_POINTER PTR_CONFIG_PAGE_FC_PORT_6, 13591da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds FCPortPage6_t, MPI_POINTER pFCPortPage6_t; 13601da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 13611da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE6_PAGEVERSION (0x00) 13621da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 13631da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 13641da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _CONFIG_PAGE_FC_PORT_7 13651da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 13661da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds fCONFIG_PAGE_HEADER Header; /* 00h */ 13671da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 Reserved; /* 04h */ 13681da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 PortSymbolicName[256]; /* 08h */ 13691da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} fCONFIG_PAGE_FC_PORT_7, MPI_POINTER PTR_CONFIG_PAGE_FC_PORT_7, 13701da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds FCPortPage7_t, MPI_POINTER pFCPortPage7_t; 13711da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 13721da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE7_PAGEVERSION (0x00) 13731da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 13741da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 13751da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _CONFIG_PAGE_FC_PORT_8 13761da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 13771da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds fCONFIG_PAGE_HEADER Header; /* 00h */ 13781da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 BitVector[8]; /* 04h */ 13791da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} fCONFIG_PAGE_FC_PORT_8, MPI_POINTER PTR_CONFIG_PAGE_FC_PORT_8, 13801da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds FCPortPage8_t, MPI_POINTER pFCPortPage8_t; 13811da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 13821da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE8_PAGEVERSION (0x00) 13831da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 13841da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 13851da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _CONFIG_PAGE_FC_PORT_9 13861da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 13871da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds fCONFIG_PAGE_HEADER Header; /* 00h */ 13881da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 Reserved; /* 04h */ 13891da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U64 GlobalWWPN; /* 08h */ 13901da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U64 GlobalWWNN; /* 10h */ 13911da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 UnitType; /* 18h */ 13921da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 PhysicalPortNumber; /* 1Ch */ 13931da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 NumAttachedNodes; /* 20h */ 13941da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 IPVersion; /* 24h */ 13951da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 UDPPortNumber; /* 26h */ 13961da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 IPAddress[16]; /* 28h */ 13971da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 Reserved1; /* 38h */ 13981da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 TopologyDiscoveryFlags; /* 3Ah */ 13991da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} fCONFIG_PAGE_FC_PORT_9, MPI_POINTER PTR_CONFIG_PAGE_FC_PORT_9, 14001da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds FCPortPage9_t, MPI_POINTER pFCPortPage9_t; 14011da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 14021da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE9_PAGEVERSION (0x00) 14031da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 14041da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 14051da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _CONFIG_PAGE_FC_PORT_10_BASE_SFP_DATA 14061da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 14071da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Id; /* 10h */ 14081da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 ExtId; /* 11h */ 14091da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Connector; /* 12h */ 14101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Transceiver[8]; /* 13h */ 14111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Encoding; /* 1Bh */ 14121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 BitRate_100mbs; /* 1Ch */ 14131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Reserved1; /* 1Dh */ 14141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Length9u_km; /* 1Eh */ 14151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Length9u_100m; /* 1Fh */ 14161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Length50u_10m; /* 20h */ 14171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Length62p5u_10m; /* 21h */ 14181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 LengthCopper_m; /* 22h */ 14191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Reseverved2; /* 22h */ 14201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 VendorName[16]; /* 24h */ 14211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Reserved3; /* 34h */ 14221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 VendorOUI[3]; /* 35h */ 14231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 VendorPN[16]; /* 38h */ 14241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 VendorRev[4]; /* 48h */ 14251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 Reserved4; /* 4Ch */ 14261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Reserved5; /* 4Eh */ 14271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 CC_BASE; /* 4Fh */ 14281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} fCONFIG_PAGE_FC_PORT_10_BASE_SFP_DATA, 14291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds MPI_POINTER PTR_CONFIG_PAGE_FC_PORT_10_BASE_SFP_DATA, 14301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds FCPortPage10BaseSfpData_t, MPI_POINTER pFCPortPage10BaseSfpData_t; 14311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 14321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORT10_BASE_ID_UNKNOWN (0x00) 14331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORT10_BASE_ID_GBIC (0x01) 14341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORT10_BASE_ID_FIXED (0x02) 14351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORT10_BASE_ID_SFP (0x03) 14361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORT10_BASE_ID_SFP_MIN (0x04) 14371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORT10_BASE_ID_SFP_MAX (0x7F) 14381da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORT10_BASE_ID_VEND_SPEC_MASK (0x80) 14391da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 14401da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORT10_BASE_EXTID_UNKNOWN (0x00) 14411da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORT10_BASE_EXTID_MODDEF1 (0x01) 14421da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORT10_BASE_EXTID_MODDEF2 (0x02) 14431da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORT10_BASE_EXTID_MODDEF3 (0x03) 14441da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORT10_BASE_EXTID_SEEPROM (0x04) 14451da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORT10_BASE_EXTID_MODDEF5 (0x05) 14461da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORT10_BASE_EXTID_MODDEF6 (0x06) 14471da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORT10_BASE_EXTID_MODDEF7 (0x07) 14481da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORT10_BASE_EXTID_VNDSPC_MASK (0x80) 14491da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 14501da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORT10_BASE_CONN_UNKNOWN (0x00) 14511da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORT10_BASE_CONN_SC (0x01) 14521da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORT10_BASE_CONN_COPPER1 (0x02) 14531da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORT10_BASE_CONN_COPPER2 (0x03) 14541da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORT10_BASE_CONN_BNC_TNC (0x04) 14551da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORT10_BASE_CONN_COAXIAL (0x05) 14561da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORT10_BASE_CONN_FIBERJACK (0x06) 14571da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORT10_BASE_CONN_LC (0x07) 14581da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORT10_BASE_CONN_MT_RJ (0x08) 14591da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORT10_BASE_CONN_MU (0x09) 14601da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORT10_BASE_CONN_SG (0x0A) 14611da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORT10_BASE_CONN_OPT_PIGT (0x0B) 14621da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORT10_BASE_CONN_RSV1_MIN (0x0C) 14631da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORT10_BASE_CONN_RSV1_MAX (0x1F) 14641da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORT10_BASE_CONN_HSSDC_II (0x20) 14651da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORT10_BASE_CONN_CPR_PIGT (0x21) 14661da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORT10_BASE_CONN_RSV2_MIN (0x22) 14671da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORT10_BASE_CONN_RSV2_MAX (0x7F) 14681da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORT10_BASE_CONN_VNDSPC_MASK (0x80) 14691da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 14701da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORT10_BASE_ENCODE_UNSPEC (0x00) 14711da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORT10_BASE_ENCODE_8B10B (0x01) 14721da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORT10_BASE_ENCODE_4B5B (0x02) 14731da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORT10_BASE_ENCODE_NRZ (0x03) 14741da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORT10_BASE_ENCODE_MANCHESTER (0x04) 14751da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 14761da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 14771da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _CONFIG_PAGE_FC_PORT_10_EXTENDED_SFP_DATA 14781da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 14791da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Options[2]; /* 50h */ 14801da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 BitRateMax; /* 52h */ 14811da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 BitRateMin; /* 53h */ 14821da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 VendorSN[16]; /* 54h */ 14831da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 DateCode[8]; /* 64h */ 14841da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Reserved5[3]; /* 6Ch */ 14851da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 CC_EXT; /* 6Fh */ 14861da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} fCONFIG_PAGE_FC_PORT_10_EXTENDED_SFP_DATA, 14871da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds MPI_POINTER PTR_CONFIG_PAGE_FC_PORT_10_EXTENDED_SFP_DATA, 14881da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds FCPortPage10ExtendedSfpData_t, MPI_POINTER pFCPortPage10ExtendedSfpData_t; 14891da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 14901da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORT10_EXT_OPTION1_RATESEL (0x20) 14911da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORT10_EXT_OPTION1_TX_DISABLE (0x10) 14921da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORT10_EXT_OPTION1_TX_FAULT (0x08) 14931da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORT10_EXT_OPTION1_LOS_INVERT (0x04) 14941da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORT10_EXT_OPTION1_LOS (0x02) 14951da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 14961da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 14971da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _CONFIG_PAGE_FC_PORT_10 14981da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 14991da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds fCONFIG_PAGE_HEADER Header; /* 00h */ 15001da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Flags; /* 04h */ 15011da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Reserved1; /* 05h */ 15021da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 Reserved2; /* 06h */ 15031da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 HwConfig1; /* 08h */ 15041da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 HwConfig2; /* 0Ch */ 15051da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds fCONFIG_PAGE_FC_PORT_10_BASE_SFP_DATA Base; /* 10h */ 15061da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds fCONFIG_PAGE_FC_PORT_10_EXTENDED_SFP_DATA Extended; /* 50h */ 15071da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 VendorSpecific[32]; /* 70h */ 15081da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} fCONFIG_PAGE_FC_PORT_10, MPI_POINTER PTR_CONFIG_PAGE_FC_PORT_10, 15091da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds FCPortPage10_t, MPI_POINTER pFCPortPage10_t; 15101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 15111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE10_PAGEVERSION (0x00) 15121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 15131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* standard MODDEF pin definitions (from GBIC spec.) */ 15141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE10_FLAGS_MODDEF_MASK (0x00000007) 15151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE10_FLAGS_MODDEF2 (0x00000001) 15161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE10_FLAGS_MODDEF1 (0x00000002) 15171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE10_FLAGS_MODDEF0 (0x00000004) 15181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE10_FLAGS_MODDEF_NOGBIC (0x00000007) 15191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE10_FLAGS_MODDEF_CPR_IEEE_CX (0x00000006) 15201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE10_FLAGS_MODDEF_COPPER (0x00000005) 15211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE10_FLAGS_MODDEF_OPTICAL_LW (0x00000004) 15221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE10_FLAGS_MODDEF_SEEPROM (0x00000003) 15231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE10_FLAGS_MODDEF_SW_OPTICAL (0x00000002) 15241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE10_FLAGS_MODDEF_LX_IEEE_OPT_LW (0x00000001) 15251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE10_FLAGS_MODDEF_SX_IEEE_OPT_SW (0x00000000) 15261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 15271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE10_FLAGS_CC_BASE_OK (0x00000010) 15281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FCPORTPAGE10_FLAGS_CC_EXT_OK (0x00000020) 15291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 15301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 15311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/**************************************************************************** 15321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds* FC Device Config Pages 15331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds****************************************************************************/ 15341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 15351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _CONFIG_PAGE_FC_DEVICE_0 15361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 15371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds fCONFIG_PAGE_HEADER Header; /* 00h */ 15381da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U64 WWNN; /* 04h */ 15391da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U64 WWPN; /* 0Ch */ 15401da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 PortIdentifier; /* 14h */ 15411da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Protocol; /* 18h */ 15421da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Flags; /* 19h */ 15431da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 BBCredit; /* 1Ah */ 15441da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 MaxRxFrameSize; /* 1Ch */ 15451da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 ADISCHardALPA; /* 1Eh */ 15461da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 PortNumber; /* 1Fh */ 15471da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 FcPhLowestVersion; /* 20h */ 15481da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 FcPhHighestVersion; /* 21h */ 15491da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 CurrentTargetID; /* 22h */ 15501da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 CurrentBus; /* 23h */ 15511da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} fCONFIG_PAGE_FC_DEVICE_0, MPI_POINTER PTR_CONFIG_PAGE_FC_DEVICE_0, 15521da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds FCDevicePage0_t, MPI_POINTER pFCDevicePage0_t; 15531da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 15541da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FC_DEVICE_PAGE0_PAGEVERSION (0x03) 15551da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 15561da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FC_DEVICE_PAGE0_FLAGS_TARGETID_BUS_VALID (0x01) 15571da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FC_DEVICE_PAGE0_FLAGS_PLOGI_INVALID (0x02) 15581da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FC_DEVICE_PAGE0_FLAGS_PRLI_INVALID (0x04) 15591da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 15601da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FC_DEVICE_PAGE0_PROT_IP (0x01) 15611da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FC_DEVICE_PAGE0_PROT_FCP_TARGET (0x02) 15621da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FC_DEVICE_PAGE0_PROT_FCP_INITIATOR (0x04) 15631da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FC_DEVICE_PAGE0_PROT_FCP_RETRY (0x08) 15641da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 15651da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FC_DEVICE_PAGE0_PGAD_PORT_MASK (MPI_FC_DEVICE_PGAD_PORT_MASK) 15661da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FC_DEVICE_PAGE0_PGAD_FORM_MASK (MPI_FC_DEVICE_PGAD_FORM_MASK) 15671da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FC_DEVICE_PAGE0_PGAD_FORM_NEXT_DID (MPI_FC_DEVICE_PGAD_FORM_NEXT_DID) 15681da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FC_DEVICE_PAGE0_PGAD_FORM_BUS_TID (MPI_FC_DEVICE_PGAD_FORM_BUS_TID) 15691da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FC_DEVICE_PAGE0_PGAD_DID_MASK (MPI_FC_DEVICE_PGAD_ND_DID_MASK) 15701da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FC_DEVICE_PAGE0_PGAD_BUS_MASK (MPI_FC_DEVICE_PGAD_BT_BUS_MASK) 15711da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FC_DEVICE_PAGE0_PGAD_BUS_SHIFT (MPI_FC_DEVICE_PGAD_BT_BUS_SHIFT) 15721da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FC_DEVICE_PAGE0_PGAD_TID_MASK (MPI_FC_DEVICE_PGAD_BT_TID_MASK) 15731da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 15741da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_FC_DEVICE_PAGE0_HARD_ALPA_UNKNOWN (0xFF) 15751da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 15761da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/**************************************************************************** 15771da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds* RAID Volume Config Pages 15781da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds****************************************************************************/ 15791da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 15801da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _RAID_VOL0_PHYS_DISK 15811da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 15821da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 Reserved; /* 00h */ 15831da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 PhysDiskMap; /* 02h */ 15841da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 PhysDiskNum; /* 03h */ 15851da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} RAID_VOL0_PHYS_DISK, MPI_POINTER PTR_RAID_VOL0_PHYS_DISK, 15861da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds RaidVol0PhysDisk_t, MPI_POINTER pRaidVol0PhysDisk_t; 15871da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 15881da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_RAIDVOL0_PHYSDISK_PRIMARY (0x01) 15891da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_RAIDVOL0_PHYSDISK_SECONDARY (0x02) 15901da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 15911da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _RAID_VOL0_STATUS 15921da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 15931da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Flags; /* 00h */ 15941da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 State; /* 01h */ 15951da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 Reserved; /* 02h */ 15961da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} RAID_VOL0_STATUS, MPI_POINTER PTR_RAID_VOL0_STATUS, 15971da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds RaidVol0Status_t, MPI_POINTER pRaidVol0Status_t; 15981da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 15991da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* RAID Volume Page 0 VolumeStatus defines */ 16001da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 16011da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_RAIDVOL0_STATUS_FLAG_ENABLED (0x01) 16021da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_RAIDVOL0_STATUS_FLAG_QUIESCED (0x02) 16031da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_RAIDVOL0_STATUS_FLAG_RESYNC_IN_PROGRESS (0x04) 16041da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_RAIDVOL0_STATUS_FLAG_VOLUME_INACTIVE (0x08) 16051da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 16061da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_RAIDVOL0_STATUS_STATE_OPTIMAL (0x00) 16071da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_RAIDVOL0_STATUS_STATE_DEGRADED (0x01) 16081da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_RAIDVOL0_STATUS_STATE_FAILED (0x02) 16091da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 16101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _RAID_VOL0_SETTINGS 16111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 16121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 Settings; /* 00h */ 16131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 HotSparePool; /* 01h */ /* MPI_RAID_HOT_SPARE_POOL_ */ 16141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Reserved; /* 02h */ 16151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} RAID_VOL0_SETTINGS, MPI_POINTER PTR_RAID_VOL0_SETTINGS, 16161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds RaidVol0Settings, MPI_POINTER pRaidVol0Settings; 16171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 16181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* RAID Volume Page 0 VolumeSettings defines */ 16191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 16201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_RAIDVOL0_SETTING_WRITE_CACHING_ENABLE (0x0001) 16211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_RAIDVOL0_SETTING_OFFLINE_ON_SMART (0x0002) 16221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_RAIDVOL0_SETTING_AUTO_CONFIGURE (0x0004) 16231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_RAIDVOL0_SETTING_PRIORITY_RESYNC (0x0008) 16241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_RAIDVOL0_SETTING_USE_PRODUCT_ID_SUFFIX (0x0010) 16251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_RAIDVOL0_SETTING_USE_DEFAULTS (0x8000) 16261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 16271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* RAID Volume Page 0 HotSparePool defines, also used in RAID Physical Disk */ 16281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_RAID_HOT_SPARE_POOL_0 (0x01) 16291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_RAID_HOT_SPARE_POOL_1 (0x02) 16301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_RAID_HOT_SPARE_POOL_2 (0x04) 16311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_RAID_HOT_SPARE_POOL_3 (0x08) 16321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_RAID_HOT_SPARE_POOL_4 (0x10) 16331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_RAID_HOT_SPARE_POOL_5 (0x20) 16341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_RAID_HOT_SPARE_POOL_6 (0x40) 16351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_RAID_HOT_SPARE_POOL_7 (0x80) 16361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 16371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* 16381da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Host code (drivers, BIOS, utilities, etc.) should leave this define set to 16391da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * one and check Header.PageLength at runtime. 16401da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 16411da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#ifndef MPI_RAID_VOL_PAGE_0_PHYSDISK_MAX 16421da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_RAID_VOL_PAGE_0_PHYSDISK_MAX (1) 16431da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#endif 16441da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 16451da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _CONFIG_PAGE_RAID_VOL_0 16461da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 16471da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds fCONFIG_PAGE_HEADER Header; /* 00h */ 16481da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 VolumeID; /* 04h */ 16491da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 VolumeBus; /* 05h */ 16501da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 VolumeIOC; /* 06h */ 16511da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 VolumeType; /* 07h */ /* MPI_RAID_VOL_TYPE_ */ 16521da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds RAID_VOL0_STATUS VolumeStatus; /* 08h */ 16531da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds RAID_VOL0_SETTINGS VolumeSettings; /* 0Ch */ 16541da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 MaxLBA; /* 10h */ 16551da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 Reserved1; /* 14h */ 16561da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 StripeSize; /* 18h */ 16571da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 Reserved2; /* 1Ch */ 16581da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 Reserved3; /* 20h */ 16591da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 NumPhysDisks; /* 24h */ 16601da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Reserved4; /* 25h */ 16611da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 Reserved5; /* 26h */ 16621da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds RAID_VOL0_PHYS_DISK PhysDisk[MPI_RAID_VOL_PAGE_0_PHYSDISK_MAX];/* 28h */ 16631da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} fCONFIG_PAGE_RAID_VOL_0, MPI_POINTER PTR_CONFIG_PAGE_RAID_VOL_0, 16641da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds RaidVolumePage0_t, MPI_POINTER pRaidVolumePage0_t; 16651da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 16661da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_RAIDVOLPAGE0_PAGEVERSION (0x01) 16671da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 16681da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 16691da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/**************************************************************************** 16701da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds* RAID Physical Disk Config Pages 16711da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds****************************************************************************/ 16721da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 16731da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _RAID_PHYS_DISK0_ERROR_DATA 16741da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 16751da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 ErrorCdbByte; /* 00h */ 16761da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 ErrorSenseKey; /* 01h */ 16771da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 Reserved; /* 02h */ 16781da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 ErrorCount; /* 04h */ 16791da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 ErrorASC; /* 06h */ 16801da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 ErrorASCQ; /* 07h */ 16811da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 SmartCount; /* 08h */ 16821da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 SmartASC; /* 0Ah */ 16831da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 SmartASCQ; /* 0Bh */ 16841da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} RAID_PHYS_DISK0_ERROR_DATA, MPI_POINTER PTR_RAID_PHYS_DISK0_ERROR_DATA, 16851da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds RaidPhysDisk0ErrorData_t, MPI_POINTER pRaidPhysDisk0ErrorData_t; 16861da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 16871da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _RAID_PHYS_DISK_INQUIRY_DATA 16881da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 16891da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 VendorID[8]; /* 00h */ 16901da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 ProductID[16]; /* 08h */ 16911da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 ProductRevLevel[4]; /* 18h */ 16921da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Info[32]; /* 1Ch */ 16931da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} RAID_PHYS_DISK0_INQUIRY_DATA, MPI_POINTER PTR_RAID_PHYS_DISK0_INQUIRY_DATA, 16941da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds RaidPhysDisk0InquiryData, MPI_POINTER pRaidPhysDisk0InquiryData; 16951da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 16961da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _RAID_PHYS_DISK0_SETTINGS 16971da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 16981da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 SepID; /* 00h */ 16991da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 SepBus; /* 01h */ 17001da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 HotSparePool; /* 02h */ /* MPI_RAID_HOT_SPARE_POOL_ */ 17011da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 PhysDiskSettings; /* 03h */ 17021da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} RAID_PHYS_DISK0_SETTINGS, MPI_POINTER PTR_RAID_PHYS_DISK0_SETTINGS, 17031da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds RaidPhysDiskSettings_t, MPI_POINTER pRaidPhysDiskSettings_t; 17041da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 17051da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _RAID_PHYS_DISK0_STATUS 17061da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 17071da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Flags; /* 00h */ 17081da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 State; /* 01h */ 17091da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 Reserved; /* 02h */ 17101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} RAID_PHYS_DISK0_STATUS, MPI_POINTER PTR_RAID_PHYS_DISK0_STATUS, 17111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds RaidPhysDiskStatus_t, MPI_POINTER pRaidPhysDiskStatus_t; 17121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 17131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* RAID Volume 2 IM Physical Disk DiskStatus flags */ 17141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 17151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_PHYSDISK0_STATUS_FLAG_OUT_OF_SYNC (0x01) 17161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_PHYSDISK0_STATUS_FLAG_QUIESCED (0x02) 17171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 17181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_PHYSDISK0_STATUS_ONLINE (0x00) 17191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_PHYSDISK0_STATUS_MISSING (0x01) 17201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_PHYSDISK0_STATUS_NOT_COMPATIBLE (0x02) 17211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_PHYSDISK0_STATUS_FAILED (0x03) 17221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_PHYSDISK0_STATUS_INITIALIZING (0x04) 17231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_PHYSDISK0_STATUS_OFFLINE_REQUESTED (0x05) 17241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_PHYSDISK0_STATUS_FAILED_REQUESTED (0x06) 17251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_PHYSDISK0_STATUS_OTHER_OFFLINE (0xFF) 17261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 17271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _CONFIG_PAGE_RAID_PHYS_DISK_0 17281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 17291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds fCONFIG_PAGE_HEADER Header; /* 00h */ 17301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 PhysDiskID; /* 04h */ 17311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 PhysDiskBus; /* 05h */ 17321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 PhysDiskIOC; /* 06h */ 17331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 PhysDiskNum; /* 07h */ 17341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds RAID_PHYS_DISK0_SETTINGS PhysDiskSettings; /* 08h */ 17351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 Reserved1; /* 0Ch */ 17361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 Reserved2; /* 10h */ 17371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 Reserved3; /* 14h */ 17381da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 DiskIdentifier[16]; /* 18h */ 17391da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds RAID_PHYS_DISK0_INQUIRY_DATA InquiryData; /* 28h */ 17401da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds RAID_PHYS_DISK0_STATUS PhysDiskStatus; /* 64h */ 17411da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 MaxLBA; /* 68h */ 17421da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds RAID_PHYS_DISK0_ERROR_DATA ErrorData; /* 6Ch */ 17431da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} fCONFIG_PAGE_RAID_PHYS_DISK_0, MPI_POINTER PTR_CONFIG_PAGE_RAID_PHYS_DISK_0, 17441da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds RaidPhysDiskPage0_t, MPI_POINTER pRaidPhysDiskPage0_t; 17451da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 17461da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_RAIDPHYSDISKPAGE0_PAGEVERSION (0x00) 17471da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 17481da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 17491da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/**************************************************************************** 17501da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds* LAN Config Pages 17511da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds****************************************************************************/ 17521da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 17531da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _CONFIG_PAGE_LAN_0 17541da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 17551da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds ConfigPageHeader_t Header; /* 00h */ 17561da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 TxRxModes; /* 04h */ 17571da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 Reserved; /* 06h */ 17581da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 PacketPrePad; /* 08h */ 17591da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} fCONFIG_PAGE_LAN_0, MPI_POINTER PTR_CONFIG_PAGE_LAN_0, 17601da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds LANPage0_t, MPI_POINTER pLANPage0_t; 17611da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 17621da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_LAN_PAGE0_PAGEVERSION (0x01) 17631da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 17641da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_LAN_PAGE0_RETURN_LOOPBACK (0x0000) 17651da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_LAN_PAGE0_SUPPRESS_LOOPBACK (0x0001) 17661da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_LAN_PAGE0_LOOPBACK_MASK (0x0001) 17671da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 17681da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _CONFIG_PAGE_LAN_1 17691da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 17701da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds ConfigPageHeader_t Header; /* 00h */ 17711da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 Reserved; /* 04h */ 17721da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 CurrentDeviceState; /* 06h */ 17731da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Reserved1; /* 07h */ 17741da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 MinPacketSize; /* 08h */ 17751da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 MaxPacketSize; /* 0Ch */ 17761da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 HardwareAddressLow; /* 10h */ 17771da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 HardwareAddressHigh; /* 14h */ 17781da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 MaxWireSpeedLow; /* 18h */ 17791da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 MaxWireSpeedHigh; /* 1Ch */ 17801da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 BucketsRemaining; /* 20h */ 17811da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 MaxReplySize; /* 24h */ 17821da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 NegWireSpeedLow; /* 28h */ 17831da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 NegWireSpeedHigh; /* 2Ch */ 17841da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} fCONFIG_PAGE_LAN_1, MPI_POINTER PTR_CONFIG_PAGE_LAN_1, 17851da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds LANPage1_t, MPI_POINTER pLANPage1_t; 17861da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 17871da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_LAN_PAGE1_PAGEVERSION (0x03) 17881da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 17891da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_LAN_PAGE1_DEV_STATE_RESET (0x00) 17901da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_LAN_PAGE1_DEV_STATE_OPERATIONAL (0x01) 17911da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 17921da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 17931da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/**************************************************************************** 17941da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds* Inband Config Pages 17951da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds****************************************************************************/ 17961da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 17971da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _CONFIG_PAGE_INBAND_0 17981da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 17991da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds fCONFIG_PAGE_HEADER Header; /* 00h */ 18001da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds MPI_VERSION_FORMAT InbandVersion; /* 04h */ 18011da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 MaximumBuffers; /* 08h */ 18021da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 Reserved1; /* 0Ah */ 18031da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} fCONFIG_PAGE_INBAND_0, MPI_POINTER PTR_CONFIG_PAGE_INBAND_0, 18041da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds InbandPage0_t, MPI_POINTER pInbandPage0_t; 18051da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 18061da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_INBAND_PAGEVERSION (0x00) 18071da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 18081da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 18091da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 18101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/**************************************************************************** 18111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds* SAS IO Unit Config Pages 18121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds****************************************************************************/ 18131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 18141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _MPI_SAS_IO_UNIT0_PHY_DATA 18151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 18161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Port; /* 00h */ 18171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 PortFlags; /* 01h */ 18181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 PhyFlags; /* 02h */ 18191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 NegotiatedLinkRate; /* 03h */ 18201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 ControllerPhyDeviceInfo;/* 04h */ 18211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 AttachedDeviceHandle; /* 08h */ 18221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 ControllerDevHandle; /* 0Ah */ 18231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 Reserved2; /* 0Ch */ 18241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} MPI_SAS_IO_UNIT0_PHY_DATA, MPI_POINTER PTR_MPI_SAS_IO_UNIT0_PHY_DATA, 18251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds SasIOUnit0PhyData, MPI_POINTER pSasIOUnit0PhyData; 18261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 18271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* 18281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Host code (drivers, BIOS, utilities, etc.) should leave this define set to 18291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * one and check Header.PageLength at runtime. 18301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 18311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#ifndef MPI_SAS_IOUNIT0_PHY_MAX 18321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_IOUNIT0_PHY_MAX (1) 18331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#endif 18341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 18351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _CONFIG_PAGE_SAS_IO_UNIT_0 18361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 18371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds fCONFIG_EXTENDED_PAGE_HEADER Header; /* 00h */ 18381da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 Reserved1; /* 08h */ 18391da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 NumPhys; /* 0Ch */ 18401da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Reserved2; /* 0Dh */ 18411da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 Reserved3; /* 0Eh */ 18421da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds MPI_SAS_IO_UNIT0_PHY_DATA PhyData[MPI_SAS_IOUNIT0_PHY_MAX]; /* 10h */ 18431da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} fCONFIG_PAGE_SAS_IO_UNIT_0, MPI_POINTER PTR_CONFIG_PAGE_SAS_IO_UNIT_0, 18441da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds SasIOUnitPage0_t, MPI_POINTER pSasIOUnitPage0_t; 18451da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 18461da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SASIOUNITPAGE0_PAGEVERSION (0x00) 18471da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 18481da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* values for SAS IO Unit Page 0 PortFlags */ 18491da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_IOUNIT0_PORT_FLAGS_DISCOVERY_IN_PROGRESS (0x08) 18501da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_IOUNIT0_PORT_FLAGS_0_TARGET_IOC_NUM (0x00) 18511da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_IOUNIT0_PORT_FLAGS_1_TARGET_IOC_NUM (0x04) 18521da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_IOUNIT0_PORT_FLAGS_WAIT_FOR_PORTENABLE (0x02) 18531da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_IOUNIT0_PORT_FLAGS_AUTO_PORT_CONFIG (0x01) 18541da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 18551da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* values for SAS IO Unit Page 0 PhyFlags */ 18561da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_IOUNIT0_PHY_FLAGS_PHY_DISABLED (0x04) 18571da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_IOUNIT0_PHY_FLAGS_TX_INVERT (0x02) 18581da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_IOUNIT0_PHY_FLAGS_RX_INVERT (0x01) 18591da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 18601da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* values for SAS IO Unit Page 0 NegotiatedLinkRate */ 18611da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_IOUNIT0_RATE_UNKNOWN (0x00) 18621da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_IOUNIT0_RATE_PHY_DISABLED (0x01) 18631da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_IOUNIT0_RATE_FAILED_SPEED_NEGOTIATION (0x02) 18641da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_IOUNIT0_RATE_SATA_OOB_COMPLETE (0x03) 18651da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_IOUNIT0_RATE_1_5 (0x08) 18661da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_IOUNIT0_RATE_3_0 (0x09) 18671da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 18681da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* see mpi_sas.h for values for SAS IO Unit Page 0 ControllerPhyDeviceInfo values */ 18691da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 18701da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 18711da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _MPI_SAS_IO_UNIT1_PHY_DATA 18721da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 18731da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Port; /* 00h */ 18741da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 PortFlags; /* 01h */ 18751da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 PhyFlags; /* 02h */ 18761da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 MaxMinLinkRate; /* 03h */ 18771da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 ControllerPhyDeviceInfo;/* 04h */ 18781da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 Reserved1; /* 08h */ 18791da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} MPI_SAS_IO_UNIT1_PHY_DATA, MPI_POINTER PTR_MPI_SAS_IO_UNIT1_PHY_DATA, 18801da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds SasIOUnit1PhyData, MPI_POINTER pSasIOUnit1PhyData; 18811da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 18821da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* 18831da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Host code (drivers, BIOS, utilities, etc.) should leave this define set to 18841da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * one and check Header.PageLength at runtime. 18851da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 18861da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#ifndef MPI_SAS_IOUNIT1_PHY_MAX 18871da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_IOUNIT1_PHY_MAX (1) 18881da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#endif 18891da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 18901da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _CONFIG_PAGE_SAS_IO_UNIT_1 18911da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 18921da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds fCONFIG_EXTENDED_PAGE_HEADER Header; /* 00h */ 18931da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 Reserved1; /* 08h */ 18941da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 NumPhys; /* 0Ch */ 18951da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Reserved2; /* 0Dh */ 18961da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 Reserved3; /* 0Eh */ 18971da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds MPI_SAS_IO_UNIT1_PHY_DATA PhyData[MPI_SAS_IOUNIT1_PHY_MAX]; /* 10h */ 18981da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} fCONFIG_PAGE_SAS_IO_UNIT_1, MPI_POINTER PTR_CONFIG_PAGE_SAS_IO_UNIT_1, 18991da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds SasIOUnitPage1_t, MPI_POINTER pSasIOUnitPage1_t; 19001da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 19011da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SASIOUNITPAGE1_PAGEVERSION (0x00) 19021da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 19031da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* values for SAS IO Unit Page 0 PortFlags */ 19041da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_IOUNIT1_PORT_FLAGS_0_TARGET_IOC_NUM (0x00) 19051da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_IOUNIT1_PORT_FLAGS_1_TARGET_IOC_NUM (0x04) 19061da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_IOUNIT1_PORT_FLAGS_WAIT_FOR_PORTENABLE (0x02) 19071da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_IOUNIT1_PORT_FLAGS_AUTO_PORT_CONFIG (0x01) 19081da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 19091da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* values for SAS IO Unit Page 0 PhyFlags */ 19101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_IOUNIT1_PHY_FLAGS_PHY_DISABLE (0x04) 19111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_IOUNIT1_PHY_FLAGS_TX_INVERT (0x02) 19121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_IOUNIT1_PHY_FLAGS_RX_INVERT (0x01) 19131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 19141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* values for SAS IO Unit Page 0 MaxMinLinkRate */ 19151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_IOUNIT1_MAX_RATE_MASK (0xF0) 19161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_IOUNIT1_MAX_RATE_1_5 (0x80) 19171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_IOUNIT1_MAX_RATE_3_0 (0x90) 19181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_IOUNIT1_MIN_RATE_MASK (0x0F) 19191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_IOUNIT1_MIN_RATE_1_5 (0x08) 19201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_IOUNIT1_MIN_RATE_3_0 (0x09) 19211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 19221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* see mpi_sas.h for values for SAS IO Unit Page 1 ControllerPhyDeviceInfo values */ 19231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 19241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 19251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _CONFIG_PAGE_SAS_IO_UNIT_2 19261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 19271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds fCONFIG_EXTENDED_PAGE_HEADER Header; /* 00h */ 19281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 Reserved1; /* 08h */ 19291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 MaxPersistentIDs; /* 0Ch */ 19301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 NumPersistentIDsUsed; /* 0Eh */ 19311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Status; /* 10h */ 19321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Flags; /* 11h */ 19331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 Reserved2; /* 12h */ 19341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} fCONFIG_PAGE_SAS_IO_UNIT_2, MPI_POINTER PTR_CONFIG_PAGE_SAS_IO_UNIT_2, 19351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds SasIOUnitPage2_t, MPI_POINTER pSasIOUnitPage2_t; 19361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 19371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SASIOUNITPAGE2_PAGEVERSION (0x00) 19381da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 19391da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* values for SAS IO Unit Page 2 Status field */ 19401da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_IOUNIT2_STATUS_DISABLED_PERSISTENT_MAPPINGS (0x02) 19411da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_IOUNIT2_STATUS_FULL_PERSISTENT_MAPPINGS (0x01) 19421da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 19431da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* values for SAS IO Unit Page 2 Flags field */ 19441da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_IOUNIT2_FLAGS_DISABLE_PERSISTENT_MAPPINGS (0x01) 19451da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 19461da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 19471da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _CONFIG_PAGE_SAS_IO_UNIT_3 19481da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 19491da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds fCONFIG_EXTENDED_PAGE_HEADER Header; /* 00h */ 19501da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 Reserved1; /* 08h */ 19511da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 MaxInvalidDwordCount; /* 0Ch */ 19521da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 InvalidDwordCountTime; /* 10h */ 19531da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 MaxRunningDisparityErrorCount; /* 14h */ 19541da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 RunningDisparityErrorTime; /* 18h */ 19551da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 MaxLossDwordSynchCount; /* 1Ch */ 19561da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 LossDwordSynchCountTime; /* 20h */ 19571da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 MaxPhyResetProblemCount; /* 24h */ 19581da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 PhyResetProblemTime; /* 28h */ 19591da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} fCONFIG_PAGE_SAS_IO_UNIT_3, MPI_POINTER PTR_CONFIG_PAGE_SAS_IO_UNIT_3, 19601da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds SasIOUnitPage3_t, MPI_POINTER pSasIOUnitPage3_t; 19611da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 19621da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SASIOUNITPAGE3_PAGEVERSION (0x00) 19631da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 19641da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 19651da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _CONFIG_PAGE_SAS_EXPANDER_0 19661da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 19671da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds fCONFIG_EXTENDED_PAGE_HEADER Header; /* 00h */ 19681da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 Reserved1; /* 08h */ 19691da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U64 SASAddress; /* 0Ch */ 19701da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 Reserved2; /* 14h */ 19711da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 DevHandle; /* 18h */ 19721da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 ParentDevHandle; /* 1Ah */ 19731da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 ExpanderChangeCount; /* 1Ch */ 19741da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 ExpanderRouteIndexes; /* 1Eh */ 19751da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 NumPhys; /* 20h */ 19761da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 SASLevel; /* 21h */ 19771da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Flags; /* 22h */ 19781da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Reserved3; /* 23h */ 19791da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} fCONFIG_PAGE_SAS_EXPANDER_0, MPI_POINTER PTR_CONFIG_PAGE_SAS_EXPANDER_0, 19801da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds SasExpanderPage0_t, MPI_POINTER pSasExpanderPage0_t; 19811da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 19821da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SASEXPANDER0_PAGEVERSION (0x00) 19831da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 19841da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* values for SAS Expander Page 0 Flags field */ 19851da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_EXPANDER0_FLAGS_ROUTE_TABLE_CONFIG (0x02) 19861da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_EXPANDER0_FLAGS_CONFIG_IN_PROGRESS (0x01) 19871da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 19881da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 19891da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _CONFIG_PAGE_SAS_DEVICE_0 19901da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 19911da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds fCONFIG_EXTENDED_PAGE_HEADER Header; /* 00h */ 19921da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 Reserved1; /* 08h */ 19931da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U64 SASAddress; /* 0Ch */ 19941da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 Reserved2; /* 14h */ 19951da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 DevHandle; /* 18h */ 19961da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 TargetID; /* 1Ah */ 19971da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Bus; /* 1Bh */ 19981da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 DeviceInfo; /* 1Ch */ 19991da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 Flags; /* 20h */ 20001da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 PhysicalPort; /* 22h */ 20011da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Reserved3; /* 23h */ 20021da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} fCONFIG_PAGE_SAS_DEVICE_0, MPI_POINTER PTR_CONFIG_PAGE_SAS_DEVICE_0, 20031da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds SasDevicePage0_t, MPI_POINTER pSasDevicePage0_t; 20041da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 20051da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SASDEVICE0_PAGEVERSION (0x00) 20061da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 20071da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* values for SAS Device Page 0 Flags field */ 20081da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_DEVICE0_FLAGS_MAPPING_PERSISTENT (0x04) 20091da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_DEVICE0_FLAGS_DEVICE_MAPPED (0x02) 20101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_DEVICE0_FLAGS_DEVICE_PRESENT (0x01) 20111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 20121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* see mpi_sas.h for values for SAS Device Page 0 DeviceInfo values */ 20131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 20141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 20151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _CONFIG_PAGE_SAS_DEVICE_1 20161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 20171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds fCONFIG_EXTENDED_PAGE_HEADER Header; /* 00h */ 20181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 Reserved1; /* 08h */ 20191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U64 SASAddress; /* 0Ch */ 20201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 Reserved2; /* 14h */ 20211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 DevHandle; /* 18h */ 20221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 TargetID; /* 1Ah */ 20231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Bus; /* 1Bh */ 20241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 InitialRegDeviceFIS[20];/* 1Ch */ 20251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} fCONFIG_PAGE_SAS_DEVICE_1, MPI_POINTER PTR_CONFIG_PAGE_SAS_DEVICE_1, 20261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds SasDevicePage1_t, MPI_POINTER pSasDevicePage1_t; 20271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 20281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SASDEVICE1_PAGEVERSION (0x00) 20291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 20301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 20311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _CONFIG_PAGE_SAS_PHY_0 20321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 20331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds fCONFIG_EXTENDED_PAGE_HEADER Header; /* 00h */ 20341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 Reserved1; /* 08h */ 20351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U64 SASAddress; /* 0Ch */ 20361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U16 AttachedDevHandle; /* 14h */ 20371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 AttachedPhyIdentifier; /* 16h */ 20381da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Reserved2; /* 17h */ 20391da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 AttachedDeviceInfo; /* 18h */ 20401da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 ProgrammedLinkRate; /* 20h */ 20411da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 HwLinkRate; /* 21h */ 20421da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 ChangeCount; /* 22h */ 20431da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U8 Reserved3; /* 23h */ 20441da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 PhyInfo; /* 24h */ 20451da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} fCONFIG_PAGE_SAS_PHY_0, MPI_POINTER PTR_CONFIG_PAGE_SAS_PHY_0, 20461da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds SasPhyPage0_t, MPI_POINTER pSasPhyPage0_t; 20471da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 20481da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SASPHY0_PAGEVERSION (0x00) 20491da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 20501da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* values for SAS PHY Page 0 ProgrammedLinkRate field */ 20511da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_PHY0_PRATE_MAX_RATE_MASK (0xF0) 20521da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_PHY0_PRATE_MAX_RATE_NOT_PROGRAMMABLE (0x00) 20531da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_PHY0_PRATE_MAX_RATE_1_5 (0x80) 20541da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_PHY0_PRATE_MAX_RATE_3_0 (0x90) 20551da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_PHY0_PRATE_MIN_RATE_MASK (0x0F) 20561da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_PHY0_PRATE_MIN_RATE_NOT_PROGRAMMABLE (0x00) 20571da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_PHY0_PRATE_MIN_RATE_1_5 (0x08) 20581da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_PHY0_PRATE_MIN_RATE_3_0 (0x09) 20591da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 20601da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* values for SAS PHY Page 0 HwLinkRate field */ 20611da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_PHY0_HWRATE_MAX_RATE_MASK (0xF0) 20621da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_PHY0_HWRATE_MAX_RATE_1_5 (0x80) 20631da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_PHY0_HWRATE_MAX_RATE_3_0 (0x90) 20641da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_PHY0_HWRATE_MIN_RATE_MASK (0x0F) 20651da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_PHY0_HWRATE_MIN_RATE_1_5 (0x08) 20661da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_PHY0_HWRATE_MIN_RATE_3_0 (0x09) 20671da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 20681da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* values for SAS PHY Page 0 PhyInfo field */ 20691da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_PHY0_PHYINFO_SATA_PORT_ACTIVE (0x00004000) 20701da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_PHY0_PHYINFO_SATA_PORT_SELECTOR (0x00002000) 20711da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_PHY0_PHYINFO_VIRTUAL_PHY (0x00001000) 20721da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 20731da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_PHY0_PHYINFO_MASK_PARTIAL_PATHWAY_TIME (0x00000F00) 20741da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_PHY0_PHYINFO_SHIFT_PARTIAL_PATHWAY_TIME (8) 20751da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 20761da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_PHY0_PHYINFO_MASK_ROUTING_ATTRIBUTE (0x000000F0) 20771da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_PHY0_PHYINFO_DIRECT_ROUTING (0x00000000) 20781da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_PHY0_PHYINFO_SUBTRACTIVE_ROUTING (0x00000010) 20791da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_PHY0_PHYINFO_TABLE_ROUTING (0x00000020) 20801da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 20811da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_PHY0_PHYINFO_MASK_LINK_RATE (0x0000000F) 20821da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_PHY0_PHYINFO_UNKNOWN_LINK_RATE (0x00000000) 20831da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_PHY0_PHYINFO_PHY_DISABLED (0x00000001) 20841da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_PHY0_PHYINFO_NEGOTIATION_FAILED (0x00000002) 20851da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_PHY0_PHYINFO_SATA_OOB_COMPLETE (0x00000003) 20861da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_PHY0_PHYINFO_RATE_1_5 (0x00000008) 20871da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SAS_PHY0_PHYINFO_RATE_3_0 (0x00000009) 20881da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 20891da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 20901da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _CONFIG_PAGE_SAS_PHY_1 20911da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 20921da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds fCONFIG_EXTENDED_PAGE_HEADER Header; /* 00h */ 20931da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 Reserved1; /* 08h */ 20941da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 InvalidDwordCount; /* 0Ch */ 20951da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 RunningDisparityErrorCount; /* 10h */ 20961da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 LossDwordSynchCount; /* 14h */ 20971da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds U32 PhyResetProblemCount; /* 18h */ 20981da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} fCONFIG_PAGE_SAS_PHY_1, MPI_POINTER PTR_CONFIG_PAGE_SAS_PHY_1, 20991da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds SasPhyPage1_t, MPI_POINTER pSasPhyPage1_t; 21001da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 21011da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define MPI_SASPHY1_PAGEVERSION (0x00) 21021da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 21031da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 21041da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#endif 21051da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 2106