Print this page
Initial modifications using the code changes present between
the LSI source code for FreeBSD drivers. Specifically the changes
between from mpslsi-source-17.00.00.00 -> mpslsi-source-03.00.00.00.
This mainly involves using a different scatter/gather element in
frame setup.

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/sys/scsi/adapters/mpt_sas3/mpi/mpi2_cnfg.h
          +++ new/usr/src/uts/common/sys/scsi/adapters/mpt_sas3/mpi/mpi2_cnfg.h
↓ open down ↓ 12 lines elided ↑ open up ↑
  13   13   * When distributing Covered Code, include this CDDL HEADER in each
  14   14   * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  15   15   * If applicable, add the following below this CDDL HEADER, with the
  16   16   * fields enclosed by brackets "[]" replaced with your own identifying
  17   17   * information: Portions Copyright [yyyy] [name of copyright owner]
  18   18   *
  19   19   * CDDL HEADER END
  20   20   */
  21   21  
  22   22  /*
  23      - * Copyright (c) 2000 to 2009, LSI Corporation.
  24      - * All rights reserved.
       23 + *  Copyright (c) 2000-2012 LSI Corporation.
  25   24   *
  26   25   * Redistribution and use in source and binary forms of all code within
  27   26   * this file that is exclusively owned by LSI, with or without
  28   27   * modification, is permitted provided that, in addition to the CDDL 1.0
  29   28   * License requirements, the following conditions are met:
  30   29   *
  31   30   *    Neither the name of the author nor the names of its contributors may be
  32   31   *    used to endorse or promote products derived from this software without
  33   32   *    specific prior written permission.
  34   33   *
↓ open down ↓ 9 lines elided ↑ open up ↑
  44   43   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  45   44   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
  46   45   * DAMAGE.
  47   46   */
  48   47  
  49   48  /*
  50   49   *           Name:  mpi2_cnfg.h
  51   50   *          Title:  MPI Configuration messages and pages
  52   51   *  Creation Date:  November 10, 2006
  53   52   *
  54      - *    mpi2_cnfg.h Version:  02.00.12
       53 + *  mpi2_cnfg.h Version:  02.00.xx
       54 + *
       55 + *  NOTE: Names (typedefs, defines, etc.) beginning with an MPI25 or Mpi25
       56 + *        prefix are for use only on MPI v2.5 products, and must not be used
       57 + *        with MPI v2.0 products. Unless otherwise noted, names beginning with
       58 + *        MPI2 or Mpi2 are for use with both MPI v2.0 and MPI v2.5 products.
  55   59   *
  56   60   *  Version History
  57   61   *  ---------------
  58   62   *
  59   63   *  Date      Version   Description
  60   64   *  --------  --------  ------------------------------------------------------
  61   65   *  04-30-07  02.00.00  Corresponds to Fusion-MPT MPI Specification Rev A.
  62   66   *  06-04-07  02.00.01  Added defines for SAS IO Unit Page 2 PhyFlags.
  63   67   *                      Added Manufacturing Page 11.
  64   68   *                      Added MPI2_SAS_EXPANDER0_FLAGS_CONNECTOR_END_DEVICE
↓ open down ↓ 80 lines elided ↑ open up ↑
 145  149   *                      Added expander reduced functionality data to SAS
 146  150   *                      Expander Page 0.
 147  151   *                      Added SAS PHY Page 2 and SAS PHY Page 3.
 148  152   *  07-30-09  02.00.12  Added IO Unit Page 7.
 149  153   *                      Added new device ids.
 150  154   *                      Added SAS IO Unit Page 5.
 151  155   *                      Added partial and slumber power management capable flags
 152  156   *                      to SAS Device Page 0 Flags field.
 153  157   *                      Added PhyInfo defines for power condition.
 154  158   *                      Added Ethernet configuration pages.
      159 + *  10-28-09  02.00.13  Added MPI2_IOUNITPAGE1_ENABLE_HOST_BASED_DISCOVERY.
      160 + *                      Added SAS PHY Page 4 structure and defines.
      161 + *  02-10-10  02.00.14  Modified the comments for the configuration page
      162 + *                      structures that contain an array of data. The host
      163 + *                      should use the "count" field in the page data (e.g. the
      164 + *                      NumPhys field) to determine the number of valid elements
      165 + *                      in the array.
      166 + *                      Added/modified some MPI2_MFGPAGE_DEVID_SAS defines.
      167 + *                      Added PowerManagementCapabilities to IO Unit Page 7.
      168 + *                      Added PortWidthModGroup field to
      169 + *                      MPI2_SAS_IO_UNIT5_PHY_PM_SETTINGS.
      170 + *                      Added MPI2_CONFIG_PAGE_SASIOUNIT_6 and related defines.
      171 + *                      Added MPI2_CONFIG_PAGE_SASIOUNIT_7 and related defines.
      172 + *                      Added MPI2_CONFIG_PAGE_SASIOUNIT_8 and related defines.
      173 + *  05-12-10  02.00.15  Added MPI2_RAIDVOL0_STATUS_FLAG_VOL_NOT_CONSISTENT
      174 + *                      define.
      175 + *                      Added MPI2_PHYSDISK0_INCOMPATIBLE_MEDIA_TYPE define.
      176 + *                      Added MPI2_SAS_NEG_LINK_RATE_UNSUPPORTED_PHY define.
      177 + *  08-11-10  02.00.16  Removed IO Unit Page 1 device path (multi-pathing)
      178 + *                      defines.
      179 + *  11-10-10  02.00.17  Added ReceptacleID field (replacing Reserved1) to
      180 + *                      MPI2_MANPAGE7_CONNECTOR_INFO and reworked defines for
      181 + *                      the Pinout field.
      182 + *                      Added BoardTemperature and BoardTemperatureUnits fields
      183 + *                      to MPI2_CONFIG_PAGE_IO_UNIT_7.
      184 + *                      Added MPI2_CONFIG_EXTPAGETYPE_EXT_MANUFACTURING define
      185 + *                      and MPI2_CONFIG_PAGE_EXT_MAN_PS structure.
 155  186   *  --------------------------------------------------------------------------
 156  187   */
 157  188  
 158  189  #ifndef MPI2_CNFG_H
 159  190  #define MPI2_CNFG_H
 160  191  
 161  192  /*****************************************************************************
 162  193  *   Configuration Page Header and defines
 163  194  *****************************************************************************/
 164  195  
↓ open down ↓ 63 lines elided ↑ open up ↑
 228  259  #define MPI2_CONFIG_EXTPAGETYPE_SAS_IO_UNIT         (0x10)
 229  260  #define MPI2_CONFIG_EXTPAGETYPE_SAS_EXPANDER        (0x11)
 230  261  #define MPI2_CONFIG_EXTPAGETYPE_SAS_DEVICE          (0x12)
 231  262  #define MPI2_CONFIG_EXTPAGETYPE_SAS_PHY             (0x13)
 232  263  #define MPI2_CONFIG_EXTPAGETYPE_LOG                 (0x14)
 233  264  #define MPI2_CONFIG_EXTPAGETYPE_ENCLOSURE           (0x15)
 234  265  #define MPI2_CONFIG_EXTPAGETYPE_RAID_CONFIG         (0x16)
 235  266  #define MPI2_CONFIG_EXTPAGETYPE_DRIVER_MAPPING      (0x17)
 236  267  #define MPI2_CONFIG_EXTPAGETYPE_SAS_PORT            (0x18)
 237  268  #define MPI2_CONFIG_EXTPAGETYPE_ETHERNET            (0x19)
      269 +#define MPI2_CONFIG_EXTPAGETYPE_EXT_MANUFACTURING   (0x1A)
 238  270  
 239  271  
 240  272  /*****************************************************************************
 241  273  *   PageAddress defines
 242  274  *****************************************************************************/
 243  275  
 244  276  /* RAID Volume PageAddress format */
 245  277  #define MPI2_RAID_VOLUME_PGAD_FORM_MASK             (0xF0000000)
 246  278  #define MPI2_RAID_VOLUME_PGAD_FORM_GET_NEXT_HANDLE  (0x00000000)
 247  279  #define MPI2_RAID_VOLUME_PGAD_FORM_HANDLE           (0x10000000)
↓ open down ↓ 146 lines elided ↑ open up ↑
 394  426  *               C o n f i g u r a t i o n    P a g e s
 395  427  *
 396  428  *****************************************************************************/
 397  429  
 398  430  /****************************************************************************
 399  431  *   Manufacturing Config pages
 400  432  ****************************************************************************/
 401  433  
 402  434  #define MPI2_MFGPAGE_VENDORID_LSI                   (0x1000)
 403  435  
 404      -/* SAS */
      436 +/* MPI v2.0 SAS products */
 405  437  #define MPI2_MFGPAGE_DEVID_SAS2004                  (0x0070)
 406  438  #define MPI2_MFGPAGE_DEVID_SAS2008                  (0x0072)
 407  439  #define MPI2_MFGPAGE_DEVID_SAS2108_1                (0x0074)
 408  440  #define MPI2_MFGPAGE_DEVID_SAS2108_2                (0x0076)
 409  441  #define MPI2_MFGPAGE_DEVID_SAS2108_3                (0x0077)
 410  442  #define MPI2_MFGPAGE_DEVID_SAS2116_1                (0x0064)
 411  443  #define MPI2_MFGPAGE_DEVID_SAS2116_2                (0x0065)
 412  444  
      445 +#define MPI2_MFGPAGE_DEVID_SSS6200                  (0x007E)
      446 +
 413  447  #define MPI2_MFGPAGE_DEVID_SAS2208_1                (0x0080)
 414  448  #define MPI2_MFGPAGE_DEVID_SAS2208_2                (0x0081)
 415  449  #define MPI2_MFGPAGE_DEVID_SAS2208_3                (0x0082)
 416  450  #define MPI2_MFGPAGE_DEVID_SAS2208_4                (0x0083)
 417  451  #define MPI2_MFGPAGE_DEVID_SAS2208_5                (0x0084)
 418  452  #define MPI2_MFGPAGE_DEVID_SAS2208_6                (0x0085)
 419  453  #define MPI2_MFGPAGE_DEVID_SAS2208_7                (0x0086)
 420  454  #define MPI2_MFGPAGE_DEVID_SAS2208_8                (0x0087)
 421      -
      455 +#define MPI2_MFGPAGE_DEVID_SAS2308_1                (0x0086)
      456 +#define MPI2_MFGPAGE_DEVID_SAS2308_2                (0x0087)
      457 +#define MPI2_MFGPAGE_DEVID_SAS2308_3                (0x006E)
      458 +
      459 +/* MPI v2.5 SAS products */
      460 +#define MPI25_MFGPAGE_DEVID_SAS3004                 (0x0096)
      461 +#define MPI25_MFGPAGE_DEVID_SAS3008                 (0x0097)
      462 +#define MPI25_MFGPAGE_DEVID_SAS3108_1               (0x0090)
      463 +#define MPI25_MFGPAGE_DEVID_SAS3108_2               (0x0091)
      464 +#define MPI25_MFGPAGE_DEVID_SAS3108_3               (0x0092)
      465 +#define MPI25_MFGPAGE_DEVID_SAS3108_4               (0x0093)
      466 +#define MPI25_MFGPAGE_DEVID_SAS3108_5               (0x0094)
      467 +#define MPI25_MFGPAGE_DEVID_SAS3108_6               (0x0095)
 422  468  
 423  469  /* Manufacturing Page 0 */
 424  470  
 425  471  typedef struct _MPI2_CONFIG_PAGE_MAN_0
 426  472  {
 427  473      MPI2_CONFIG_PAGE_HEADER Header;                     /* 0x00 */
 428  474      U8                      ChipName[16];               /* 0x04 */
 429  475      U8                      ChipRevision[8];            /* 0x14 */
 430  476      U8                      BoardName[16];              /* 0x1C */
 431  477      U8                      BoardAssembly[16];          /* 0x2C */
↓ open down ↓ 193 lines elided ↑ open up ↑
 625  671  #define MPI2_MANUFACTURING6_PAGEVERSION                 (0x00)
 626  672  
 627  673  
 628  674  /* Manufacturing Page 7 */
 629  675  
 630  676  typedef struct _MPI2_MANPAGE7_CONNECTOR_INFO
 631  677  {
 632  678      U32                         Pinout;                 /* 0x00 */
 633  679      U8                          Connector[16];          /* 0x04 */
 634  680      U8                          Location;               /* 0x14 */
 635      -    U8                          Reserved1;              /* 0x15 */
      681 +    U8                          ReceptacleID;           /* 0x15 */
 636  682      U16                         Slot;                   /* 0x16 */
 637  683      U32                         Reserved2;              /* 0x18 */
 638  684  } MPI2_MANPAGE7_CONNECTOR_INFO, MPI2_POINTER PTR_MPI2_MANPAGE7_CONNECTOR_INFO,
 639  685    Mpi2ManPage7ConnectorInfo_t, MPI2_POINTER pMpi2ManPage7ConnectorInfo_t;
 640  686  
 641  687  /* defines for the Pinout field */
 642  688  #define MPI2_MANPAGE7_PINOUT_SFF_8484_L4                (0x00080000)
 643  689  #define MPI2_MANPAGE7_PINOUT_SFF_8484_L3                (0x00040000)
 644  690  #define MPI2_MANPAGE7_PINOUT_SFF_8484_L2                (0x00020000)
 645  691  #define MPI2_MANPAGE7_PINOUT_SFF_8484_L1                (0x00010000)
↓ open down ↓ 29 lines elided ↑ open up ↑
 675  721      U32                             Flags;              /* 0x0C */
 676  722      U8                              EnclosureName[16];  /* 0x10 */
 677  723      U8                              NumPhys;            /* 0x20 */
 678  724      U8                              Reserved3;          /* 0x21 */
 679  725      U16                             Reserved4;          /* 0x22 */
 680  726      MPI2_MANPAGE7_CONNECTOR_INFO    ConnectorInfo[MPI2_MANPAGE7_CONNECTOR_INFO_MAX]; /* 0x24 */
 681  727  } MPI2_CONFIG_PAGE_MAN_7,
 682  728    MPI2_POINTER PTR_MPI2_CONFIG_PAGE_MAN_7,
 683  729    Mpi2ManufacturingPage7_t, MPI2_POINTER pMpi2ManufacturingPage7_t;
 684  730  
 685      -#define MPI2_MANUFACTURING7_PAGEVERSION                 (0x00)
      731 +#define MPI2_MANUFACTURING7_PAGEVERSION                 (0x01)
 686  732  
 687  733  /* defines for the Flags field */
 688  734  #define MPI2_MANPAGE7_FLAG_USE_SLOT_INFO                (0x00000001)
 689  735  
 690  736  
 691  737  /*
 692  738   * Generic structure to use for product-specific manufacturing pages
 693  739   * (currently Manufacturing Page 8 through Manufacturing Page 31).
 694  740   */
 695  741  
↓ open down ↓ 54 lines elided ↑ open up ↑
 750  796  typedef struct _MPI2_CONFIG_PAGE_IO_UNIT_1
 751  797  {
 752  798      MPI2_CONFIG_PAGE_HEADER Header;                     /* 0x00 */
 753  799      U32                     Flags;                      /* 0x04 */
 754  800  } MPI2_CONFIG_PAGE_IO_UNIT_1, MPI2_POINTER PTR_MPI2_CONFIG_PAGE_IO_UNIT_1,
 755  801    Mpi2IOUnitPage1_t, MPI2_POINTER pMpi2IOUnitPage1_t;
 756  802  
 757  803  #define MPI2_IOUNITPAGE1_PAGEVERSION                    (0x04)
 758  804  
 759  805  /* IO Unit Page 1 Flags defines */
      806 +#define MPI25_IOUNITPAGE1_NEW_DEVICE_FAST_PATH_DISABLE  (0x00002000)
      807 +#define MPI25_IOUNITPAGE1_DISABLE_FAST_PATH             (0x00001000)
      808 +#define MPI2_IOUNITPAGE1_ENABLE_HOST_BASED_DISCOVERY    (0x00000800)
 760  809  #define MPI2_IOUNITPAGE1_MASK_SATA_WRITE_CACHE          (0x00000600)
      810 +#define MPI2_IOUNITPAGE1_SATA_WRITE_CACHE_SHIFT         (9)
 761  811  #define MPI2_IOUNITPAGE1_ENABLE_SATA_WRITE_CACHE        (0x00000000)
 762  812  #define MPI2_IOUNITPAGE1_DISABLE_SATA_WRITE_CACHE       (0x00000200)
 763  813  #define MPI2_IOUNITPAGE1_UNCHANGED_SATA_WRITE_CACHE     (0x00000400)
 764  814  #define MPI2_IOUNITPAGE1_NATIVE_COMMAND_Q_DISABLE       (0x00000100)
 765  815  #define MPI2_IOUNITPAGE1_DISABLE_IR                     (0x00000040)
 766  816  #define MPI2_IOUNITPAGE1_DISABLE_TASK_SET_FULL_HANDLING (0x00000020)
 767  817  #define MPI2_IOUNITPAGE1_IR_USE_STATIC_VOLUME_ID        (0x00000004)
 768  818  #define MPI2_IOUNITPAGE1_MULTI_PATHING                  (0x00000002)
 769  819  #define MPI2_IOUNITPAGE1_SINGLE_PATHING                 (0x00000000)
 770  820  
↓ open down ↓ 89 lines elided ↑ open up ↑
 860  910  
 861  911  /* IO Unit Page 7 */
 862  912  
 863  913  typedef struct _MPI2_CONFIG_PAGE_IO_UNIT_7
 864  914  {
 865  915      MPI2_CONFIG_PAGE_HEADER Header;                                 /* 0x00 */
 866  916      U16                     Reserved1;                              /* 0x04 */
 867  917      U8                      PCIeWidth;                              /* 0x06 */
 868  918      U8                      PCIeSpeed;                              /* 0x07 */
 869  919      U32                     ProcessorState;                         /* 0x08 */
 870      -    U32                     Reserved2;                              /* 0x0C */
      920 +    U32                     PowerManagementCapabilities;            /* 0x0C */
 871  921      U16                     IOCTemperature;                         /* 0x10 */
 872  922      U8                      IOCTemperatureUnits;                    /* 0x12 */
 873  923      U8                      IOCSpeed;                               /* 0x13 */
 874      -    U32                     Reserved3;                              /* 0x14 */
      924 +    U16                     BoardTemperature;                       /* 0x14 */
      925 +    U8                      BoardTemperatureUnits;                  /* 0x16 */
      926 +    U8                      Reserved3;                              /* 0x17 */
 875  927  } MPI2_CONFIG_PAGE_IO_UNIT_7, MPI2_POINTER PTR_MPI2_CONFIG_PAGE_IO_UNIT_7,
 876  928    Mpi2IOUnitPage7_t, MPI2_POINTER pMpi2IOUnitPage7_t;
 877  929  
 878      -#define MPI2_IOUNITPAGE7_PAGEVERSION                    (0x00)
      930 +#define MPI2_IOUNITPAGE7_PAGEVERSION                    (0x02)
 879  931  
 880  932  /* defines for IO Unit Page 7 PCIeWidth field */
 881  933  #define MPI2_IOUNITPAGE7_PCIE_WIDTH_X1              (0x01)
 882  934  #define MPI2_IOUNITPAGE7_PCIE_WIDTH_X2              (0x02)
 883  935  #define MPI2_IOUNITPAGE7_PCIE_WIDTH_X4              (0x04)
 884  936  #define MPI2_IOUNITPAGE7_PCIE_WIDTH_X8              (0x08)
 885  937  
 886  938  /* defines for IO Unit Page 7 PCIeSpeed field */
 887  939  #define MPI2_IOUNITPAGE7_PCIE_SPEED_2_5_GBPS        (0x00)
 888  940  #define MPI2_IOUNITPAGE7_PCIE_SPEED_5_0_GBPS        (0x01)
 889  941  #define MPI2_IOUNITPAGE7_PCIE_SPEED_8_0_GBPS        (0x02)
 890  942  
 891  943  /* defines for IO Unit Page 7 ProcessorState field */
 892  944  #define MPI2_IOUNITPAGE7_PSTATE_MASK_SECOND         (0x0000000F)
 893  945  #define MPI2_IOUNITPAGE7_PSTATE_SHIFT_SECOND        (0)
 894  946  
 895  947  #define MPI2_IOUNITPAGE7_PSTATE_NOT_PRESENT         (0x00)
 896  948  #define MPI2_IOUNITPAGE7_PSTATE_DISABLED            (0x01)
 897  949  #define MPI2_IOUNITPAGE7_PSTATE_ENABLED             (0x02)
 898  950  
      951 +/* defines for IO Unit Page 7 PowerManagementCapabilities field */
      952 +#define MPI2_IOUNITPAGE7_PMCAP_12_5_PCT_IOCSPEED    (0x00000400)
      953 +#define MPI2_IOUNITPAGE7_PMCAP_25_0_PCT_IOCSPEED    (0x00000200)
      954 +#define MPI2_IOUNITPAGE7_PMCAP_50_0_PCT_IOCSPEED    (0x00000100)
      955 +#define MPI2_IOUNITPAGE7_PMCAP_PCIE_WIDTH_CHANGE    (0x00000008)
      956 +#define MPI2_IOUNITPAGE7_PMCAP_PCIE_SPEED_CHANGE    (0x00000004)
      957 +
 899  958  /* defines for IO Unit Page 7 IOCTemperatureUnits field */
 900  959  #define MPI2_IOUNITPAGE7_IOC_TEMP_NOT_PRESENT       (0x00)
 901  960  #define MPI2_IOUNITPAGE7_IOC_TEMP_FAHRENHEIT        (0x01)
 902  961  #define MPI2_IOUNITPAGE7_IOC_TEMP_CELSIUS           (0x02)
 903  962  
 904  963  /* defines for IO Unit Page 7 IOCSpeed field */
 905  964  #define MPI2_IOUNITPAGE7_IOC_SPEED_FULL             (0x01)
 906  965  #define MPI2_IOUNITPAGE7_IOC_SPEED_HALF             (0x02)
 907  966  #define MPI2_IOUNITPAGE7_IOC_SPEED_QUARTER          (0x04)
 908  967  #define MPI2_IOUNITPAGE7_IOC_SPEED_EIGHTH           (0x08)
 909  968  
      969 +/* defines for IO Unit Page 7 BoardTemperatureUnits field */
      970 +#define MPI2_IOUNITPAGE7_BOARD_TEMP_NOT_PRESENT     (0x00)
      971 +#define MPI2_IOUNITPAGE7_BOARD_TEMP_FAHRENHEIT      (0x01)
      972 +#define MPI2_IOUNITPAGE7_BOARD_TEMP_CELSIUS         (0x02)
 910  973  
 911  974  
 912  975  /****************************************************************************
 913  976  *   IOC Config Pages
 914  977  ****************************************************************************/
 915  978  
 916  979  /* IOC Page 0 */
 917  980  
 918  981  typedef struct _MPI2_CONFIG_PAGE_IOC_0
 919  982  {
↓ open down ↓ 443 lines elided ↑ open up ↑
1363 1426  #define MPI2_RAIDVOL0_STATUS_FLAG_PENDING_RESYNC            (0x02000000)
1364 1427  #define MPI2_RAIDVOL0_STATUS_FLAG_BACKG_INIT_PENDING        (0x01000000)
1365 1428  #define MPI2_RAIDVOL0_STATUS_FLAG_MDC_PENDING               (0x00800000)
1366 1429  #define MPI2_RAIDVOL0_STATUS_FLAG_USER_CONSIST_PENDING      (0x00400000)
1367 1430  #define MPI2_RAIDVOL0_STATUS_FLAG_MAKE_DATA_CONSISTENT      (0x00200000)
1368 1431  #define MPI2_RAIDVOL0_STATUS_FLAG_DATA_SCRUB                (0x00100000)
1369 1432  #define MPI2_RAIDVOL0_STATUS_FLAG_CONSISTENCY_CHECK         (0x00080000)
1370 1433  #define MPI2_RAIDVOL0_STATUS_FLAG_CAPACITY_EXPANSION        (0x00040000)
1371 1434  #define MPI2_RAIDVOL0_STATUS_FLAG_BACKGROUND_INIT           (0x00020000)
1372 1435  #define MPI2_RAIDVOL0_STATUS_FLAG_RESYNC_IN_PROGRESS        (0x00010000)
     1436 +#define MPI2_RAIDVOL0_STATUS_FLAG_VOL_NOT_CONSISTENT        (0x00000080)
1373 1437  #define MPI2_RAIDVOL0_STATUS_FLAG_OCE_ALLOWED               (0x00000040)
1374 1438  #define MPI2_RAIDVOL0_STATUS_FLAG_BGI_COMPLETE              (0x00000020)
1375 1439  #define MPI2_RAIDVOL0_STATUS_FLAG_1E_OFFSET_MIRROR          (0x00000000)
1376 1440  #define MPI2_RAIDVOL0_STATUS_FLAG_1E_ADJACENT_MIRROR        (0x00000010)
1377 1441  #define MPI2_RAIDVOL0_STATUS_FLAG_BAD_BLOCK_TABLE_FULL      (0x00000008)
1378 1442  #define MPI2_RAIDVOL0_STATUS_FLAG_VOLUME_INACTIVE           (0x00000004)
1379 1443  #define MPI2_RAIDVOL0_STATUS_FLAG_QUIESCED                  (0x00000002)
1380 1444  #define MPI2_RAIDVOL0_STATUS_FLAG_ENABLED                   (0x00000001)
1381 1445  
1382 1446  /* values for RAID Volume Page 0 SupportedPhysDisks field */
↓ open down ↓ 102 lines elided ↑ open up ↑
1485 1549  #define MPI2_PHYSDISK0_OFFLINE_FAILED_REQUESTED         (0x06)
1486 1550  #define MPI2_PHYSDISK0_OFFLINE_OTHER                    (0xFF)
1487 1551  
1488 1552  /* IncompatibleReason defines */
1489 1553  #define MPI2_PHYSDISK0_COMPATIBLE                       (0x00)
1490 1554  #define MPI2_PHYSDISK0_INCOMPATIBLE_PROTOCOL            (0x01)
1491 1555  #define MPI2_PHYSDISK0_INCOMPATIBLE_BLOCKSIZE           (0x02)
1492 1556  #define MPI2_PHYSDISK0_INCOMPATIBLE_MAX_LBA             (0x03)
1493 1557  #define MPI2_PHYSDISK0_INCOMPATIBLE_SATA_EXTENDED_CMD   (0x04)
1494 1558  #define MPI2_PHYSDISK0_INCOMPATIBLE_REMOVEABLE_MEDIA    (0x05)
     1559 +#define MPI2_PHYSDISK0_INCOMPATIBLE_MEDIA_TYPE          (0x06)
1495 1560  #define MPI2_PHYSDISK0_INCOMPATIBLE_UNKNOWN             (0xFF)
1496 1561  
1497 1562  /* PhysDiskAttributes defines */
1498 1563  #define MPI2_PHYSDISK0_ATTRIB_SOLID_STATE_DRIVE         (0x08)
1499 1564  #define MPI2_PHYSDISK0_ATTRIB_HARD_DISK_DRIVE           (0x04)
     1565 +
     1566 +#define MPI2_PHYSDISK0_ATTRIB_PROTOCOL_MASK             (0x03)
1500 1567  #define MPI2_PHYSDISK0_ATTRIB_SAS_PROTOCOL              (0x02)
1501 1568  #define MPI2_PHYSDISK0_ATTRIB_SATA_PROTOCOL             (0x01)
1502 1569  
1503 1570  /* PhysDiskStatusFlags defines */
1504 1571  #define MPI2_PHYSDISK0_STATUS_FLAG_NOT_CERTIFIED        (0x00000040)
1505 1572  #define MPI2_PHYSDISK0_STATUS_FLAG_OCE_TARGET           (0x00000020)
1506 1573  #define MPI2_PHYSDISK0_STATUS_FLAG_WRITE_CACHE_ENABLED  (0x00000010)
1507 1574  #define MPI2_PHYSDISK0_STATUS_FLAG_OPTIMAL_PREVIOUS     (0x00000000)
1508 1575  #define MPI2_PHYSDISK0_STATUS_FLAG_NOT_OPTIMAL_PREVIOUS (0x00000008)
1509 1576  #define MPI2_PHYSDISK0_STATUS_FLAG_INACTIVE_VOLUME      (0x00000004)
↓ open down ↓ 51 lines elided ↑ open up ↑
1561 1628  #define MPI2_SAS_NEG_LINK_RATE_MASK_LOGICAL             (0xF0)
1562 1629  #define MPI2_SAS_NEG_LINK_RATE_SHIFT_LOGICAL            (4)
1563 1630  #define MPI2_SAS_NEG_LINK_RATE_MASK_PHYSICAL            (0x0F)
1564 1631  /* link rates used for Negotiated Physical and Logical Link Rate */
1565 1632  #define MPI2_SAS_NEG_LINK_RATE_UNKNOWN_LINK_RATE        (0x00)
1566 1633  #define MPI2_SAS_NEG_LINK_RATE_PHY_DISABLED             (0x01)
1567 1634  #define MPI2_SAS_NEG_LINK_RATE_NEGOTIATION_FAILED       (0x02)
1568 1635  #define MPI2_SAS_NEG_LINK_RATE_SATA_OOB_COMPLETE        (0x03)
1569 1636  #define MPI2_SAS_NEG_LINK_RATE_PORT_SELECTOR            (0x04)
1570 1637  #define MPI2_SAS_NEG_LINK_RATE_SMP_RESET_IN_PROGRESS    (0x05)
     1638 +#define MPI2_SAS_NEG_LINK_RATE_UNSUPPORTED_PHY          (0x06)
1571 1639  #define MPI2_SAS_NEG_LINK_RATE_1_5                      (0x08)
1572 1640  #define MPI2_SAS_NEG_LINK_RATE_3_0                      (0x09)
1573 1641  #define MPI2_SAS_NEG_LINK_RATE_6_0                      (0x0A)
     1642 +#define MPI25_SAS_NEG_LINK_RATE_12_0                    (0x0B)
1574 1643  
1575 1644  
1576 1645  /* values for AttachedPhyInfo fields */
1577 1646  #define MPI2_SAS_APHYINFO_INSIDE_ZPSDS_PERSISTENT       (0x00000040)
1578 1647  #define MPI2_SAS_APHYINFO_REQUESTED_INSIDE_ZPSDS        (0x00000020)
1579 1648  #define MPI2_SAS_APHYINFO_BREAK_REPLY_CAPABLE           (0x00000010)
1580 1649  
1581 1650  #define MPI2_SAS_APHYINFO_REASON_MASK                   (0x0000000F)
1582 1651  #define MPI2_SAS_APHYINFO_REASON_UNKNOWN                (0x00000000)
1583 1652  #define MPI2_SAS_APHYINFO_REASON_POWER_ON               (0x00000001)
↓ open down ↓ 3 lines elided ↑ open up ↑
1587 1656  #define MPI2_SAS_APHYINFO_REASON_MULTIPLEXING_SEQ       (0x00000005)
1588 1657  #define MPI2_SAS_APHYINFO_REASON_IT_NEXUS_LOSS_TIMER    (0x00000006)
1589 1658  #define MPI2_SAS_APHYINFO_REASON_BREAK_TIMEOUT          (0x00000007)
1590 1659  #define MPI2_SAS_APHYINFO_REASON_PHY_TEST_STOPPED       (0x00000008)
1591 1660  
1592 1661  
1593 1662  /* values for PhyInfo fields */
1594 1663  #define MPI2_SAS_PHYINFO_PHY_VACANT                     (0x80000000)
1595 1664  
1596 1665  #define MPI2_SAS_PHYINFO_PHY_POWER_CONDITION_MASK       (0x18000000)
     1666 +#define MPI2_SAS_PHYINFO_SHIFT_PHY_POWER_CONDITION      (27)
1597 1667  #define MPI2_SAS_PHYINFO_PHY_POWER_ACTIVE               (0x00000000)
1598 1668  #define MPI2_SAS_PHYINFO_PHY_POWER_PARTIAL              (0x08000000)
1599 1669  #define MPI2_SAS_PHYINFO_PHY_POWER_SLUMBER              (0x10000000)
1600 1670  
1601 1671  #define MPI2_SAS_PHYINFO_CHANGED_REQ_INSIDE_ZPSDS       (0x04000000)
1602 1672  #define MPI2_SAS_PHYINFO_INSIDE_ZPSDS_PERSISTENT        (0x02000000)
1603 1673  #define MPI2_SAS_PHYINFO_REQ_INSIDE_ZPSDS               (0x01000000)
1604 1674  #define MPI2_SAS_PHYINFO_ZONE_GROUP_PERSISTENT          (0x00400000)
1605 1675  #define MPI2_SAS_PHYINFO_INSIDE_ZPSDS                   (0x00200000)
1606 1676  #define MPI2_SAS_PHYINFO_ZONING_ENABLED                 (0x00100000)
↓ open down ↓ 27 lines elided ↑ open up ↑
1634 1704  #define MPI2_SAS_PRATE_MAX_RATE_MASK                    (0xF0)
1635 1705  #define MPI2_SAS_PRATE_MAX_RATE_NOT_PROGRAMMABLE        (0x00)
1636 1706  #define MPI2_SAS_PRATE_MAX_RATE_1_5                     (0x80)
1637 1707  #define MPI2_SAS_PRATE_MAX_RATE_3_0                     (0x90)
1638 1708  #define MPI2_SAS_PRATE_MAX_RATE_6_0                     (0xA0)
1639 1709  #define MPI2_SAS_PRATE_MIN_RATE_MASK                    (0x0F)
1640 1710  #define MPI2_SAS_PRATE_MIN_RATE_NOT_PROGRAMMABLE        (0x00)
1641 1711  #define MPI2_SAS_PRATE_MIN_RATE_1_5                     (0x08)
1642 1712  #define MPI2_SAS_PRATE_MIN_RATE_3_0                     (0x09)
1643 1713  #define MPI2_SAS_PRATE_MIN_RATE_6_0                     (0x0A)
     1714 +#define MPI25_SAS_PRATE_MIN_RATE_12_0                   (0x0B)
1644 1715  
1645 1716  
1646 1717  /* values for SAS HwLinkRate fields */
1647 1718  #define MPI2_SAS_HWRATE_MAX_RATE_MASK                   (0xF0)
1648 1719  #define MPI2_SAS_HWRATE_MAX_RATE_1_5                    (0x80)
1649 1720  #define MPI2_SAS_HWRATE_MAX_RATE_3_0                    (0x90)
1650 1721  #define MPI2_SAS_HWRATE_MAX_RATE_6_0                    (0xA0)
1651 1722  #define MPI2_SAS_HWRATE_MIN_RATE_MASK                   (0x0F)
1652 1723  #define MPI2_SAS_HWRATE_MIN_RATE_1_5                    (0x08)
1653 1724  #define MPI2_SAS_HWRATE_MIN_RATE_3_0                    (0x09)
1654 1725  #define MPI2_SAS_HWRATE_MIN_RATE_6_0                    (0x0A)
     1726 +#define MPI25_SAS_HWRATE_MIN_RATE_12_0                  (0x0B)
1655 1727  
1656 1728  
1657 1729  
1658 1730  /****************************************************************************
1659 1731  *   SAS IO Unit Config Pages
1660 1732  ****************************************************************************/
1661 1733  
1662 1734  /* SAS IO Unit Page 0 */
1663 1735  
1664 1736  typedef struct _MPI2_SAS_IO_UNIT0_PHY_DATA
↓ open down ↓ 147 lines elided ↑ open up ↑
1812 1884  
1813 1885  /* values for SAS IO Unit Page 1 PhyFlags */
1814 1886  #define MPI2_SASIOUNIT1_PHYFLAGS_ZONING_ENABLE                      (0x10)
1815 1887  #define MPI2_SASIOUNIT1_PHYFLAGS_PHY_DISABLE                        (0x08)
1816 1888  
1817 1889  /* values for SAS IO Unit Page 1 MaxMinLinkRate */
1818 1890  #define MPI2_SASIOUNIT1_MAX_RATE_MASK                               (0xF0)
1819 1891  #define MPI2_SASIOUNIT1_MAX_RATE_1_5                                (0x80)
1820 1892  #define MPI2_SASIOUNIT1_MAX_RATE_3_0                                (0x90)
1821 1893  #define MPI2_SASIOUNIT1_MAX_RATE_6_0                                (0xA0)
     1894 +#define MPI25_SASIOUNIT1_MAX_RATE_12_0                              (0xB0)
1822 1895  #define MPI2_SASIOUNIT1_MIN_RATE_MASK                               (0x0F)
1823 1896  #define MPI2_SASIOUNIT1_MIN_RATE_1_5                                (0x08)
1824 1897  #define MPI2_SASIOUNIT1_MIN_RATE_3_0                                (0x09)
1825 1898  #define MPI2_SASIOUNIT1_MIN_RATE_6_0                                (0x0A)
     1899 +#define MPI25_SASIOUNIT1_MIN_RATE_12_0                              (0x0B)
1826 1900  
1827 1901  /* see mpi2_sas.h for values for SAS IO Unit Page 1 ControllerPhyDeviceInfo values */
1828 1902  
1829 1903  
1830 1904  /* SAS IO Unit Page 4 */
1831 1905  
1832 1906  typedef struct _MPI2_SAS_IOUNIT4_SPINUP_GROUP
1833 1907  {
1834 1908      U8          MaxTargetSpinup;            /* 0x00 */
1835 1909      U8          SpinupDelay;                /* 0x01 */
↓ open down ↓ 35 lines elided ↑ open up ↑
1871 1945  
1872 1946  /* defines for PHY field */
1873 1947  #define MPI2_SASIOUNIT4_PHY_SPINUP_GROUP_MASK               (0x03)
1874 1948  
1875 1949  
1876 1950  /* SAS IO Unit Page 5 */
1877 1951  
1878 1952  typedef struct _MPI2_SAS_IO_UNIT5_PHY_PM_SETTINGS
1879 1953  {
1880 1954      U8          ControlFlags;               /* 0x00 */
1881      -    U8          Reserved1;                  /* 0x01 */
     1955 +    U8          PortWidthModGroup;          /* 0x01 */
1882 1956      U16         InactivityTimerExponent;    /* 0x02 */
1883 1957      U8          SATAPartialTimeout;         /* 0x04 */
1884 1958      U8          Reserved2;                  /* 0x05 */
1885 1959      U8          SATASlumberTimeout;         /* 0x06 */
1886 1960      U8          Reserved3;                  /* 0x07 */
1887 1961      U8          SASPartialTimeout;          /* 0x08 */
1888 1962      U8          Reserved4;                  /* 0x09 */
1889 1963      U8          SASSlumberTimeout;          /* 0x0A */
1890 1964      U8          Reserved5;                  /* 0x0B */
1891 1965  } MPI2_SAS_IO_UNIT5_PHY_PM_SETTINGS,
1892 1966    MPI2_POINTER PTR_MPI2_SAS_IO_UNIT5_PHY_PM_SETTINGS,
1893 1967    Mpi2SasIOUnit5PhyPmSettings_t, MPI2_POINTER pMpi2SasIOUnit5PhyPmSettings_t;
1894 1968  
1895 1969  /* defines for ControlFlags field */
1896 1970  #define MPI2_SASIOUNIT5_CONTROL_SAS_SLUMBER_ENABLE      (0x08)
1897 1971  #define MPI2_SASIOUNIT5_CONTROL_SAS_PARTIAL_ENABLE      (0x04)
1898 1972  #define MPI2_SASIOUNIT5_CONTROL_SATA_SLUMBER_ENABLE     (0x02)
1899 1973  #define MPI2_SASIOUNIT5_CONTROL_SATA_PARTIAL_ENABLE     (0x01)
1900 1974  
     1975 +/* defines for PortWidthModeGroup field */
     1976 +#define MPI2_SASIOUNIT5_PWMG_DISABLE                    (0xFF)
     1977 +
1901 1978  /* defines for InactivityTimerExponent field */
1902 1979  #define MPI2_SASIOUNIT5_ITE_MASK_SAS_SLUMBER            (0x7000)
1903 1980  #define MPI2_SASIOUNIT5_ITE_SHIFT_SAS_SLUMBER           (12)
1904 1981  #define MPI2_SASIOUNIT5_ITE_MASK_SAS_PARTIAL            (0x0700)
1905 1982  #define MPI2_SASIOUNIT5_ITE_SHIFT_SAS_PARTIAL           (8)
1906 1983  #define MPI2_SASIOUNIT5_ITE_MASK_SATA_SLUMBER           (0x0070)
1907 1984  #define MPI2_SASIOUNIT5_ITE_SHIFT_SATA_SLUMBER          (4)
1908 1985  #define MPI2_SASIOUNIT5_ITE_MASK_SATA_PARTIAL           (0x0007)
1909 1986  #define MPI2_SASIOUNIT5_ITE_SHIFT_SATA_PARTIAL          (0)
1910 1987  
↓ open down ↓ 19 lines elided ↑ open up ↑
1930 2007      MPI2_CONFIG_EXTENDED_PAGE_HEADER    Header;                             /* 0x00 */
1931 2008      U8                                  NumPhys;                            /* 0x08 */
1932 2009      U8                                  Reserved1;                          /* 0x09 */
1933 2010      U16                                 Reserved2;                          /* 0x0A */
1934 2011      U32                                 Reserved3;                          /* 0x0C */
1935 2012      MPI2_SAS_IO_UNIT5_PHY_PM_SETTINGS   SASPhyPowerManagementSettings[MPI2_SAS_IOUNIT5_PHY_MAX];  /* 0x10 */
1936 2013  } MPI2_CONFIG_PAGE_SASIOUNIT_5,
1937 2014    MPI2_POINTER PTR_MPI2_CONFIG_PAGE_SASIOUNIT_5,
1938 2015    Mpi2SasIOUnitPage5_t, MPI2_POINTER pMpi2SasIOUnitPage5_t;
1939 2016  
1940      -#define MPI2_SASIOUNITPAGE5_PAGEVERSION     (0x00)
     2017 +#define MPI2_SASIOUNITPAGE5_PAGEVERSION     (0x01)
     2018 +
     2019 +
     2020 +/* SAS IO Unit Page 6 */
     2021 +
     2022 +typedef struct _MPI2_SAS_IO_UNIT6_PORT_WIDTH_MOD_GROUP_STATUS
     2023 +{
     2024 +    U8          CurrentStatus;              /* 0x00 */
     2025 +    U8          CurrentModulation;          /* 0x01 */
     2026 +    U8          CurrentUtilization;         /* 0x02 */
     2027 +    U8          Reserved1;                  /* 0x03 */
     2028 +    U32         Reserved2;                  /* 0x04 */
     2029 +} MPI2_SAS_IO_UNIT6_PORT_WIDTH_MOD_GROUP_STATUS,
     2030 +  MPI2_POINTER PTR_MPI2_SAS_IO_UNIT6_PORT_WIDTH_MOD_GROUP_STATUS,
     2031 +  Mpi2SasIOUnit6PortWidthModGroupStatus_t,
     2032 +  MPI2_POINTER pMpi2SasIOUnit6PortWidthModGroupStatus_t;
     2033 +
     2034 +/* defines for CurrentStatus field */
     2035 +#define MPI2_SASIOUNIT6_STATUS_UNAVAILABLE                      (0x00)
     2036 +#define MPI2_SASIOUNIT6_STATUS_UNCONFIGURED                     (0x01)
     2037 +#define MPI2_SASIOUNIT6_STATUS_INVALID_CONFIG                   (0x02)
     2038 +#define MPI2_SASIOUNIT6_STATUS_LINK_DOWN                        (0x03)
     2039 +#define MPI2_SASIOUNIT6_STATUS_OBSERVATION_ONLY                 (0x04)
     2040 +#define MPI2_SASIOUNIT6_STATUS_INACTIVE                         (0x05)
     2041 +#define MPI2_SASIOUNIT6_STATUS_ACTIVE_IOUNIT                    (0x06)
     2042 +#define MPI2_SASIOUNIT6_STATUS_ACTIVE_HOST                      (0x07)
     2043 +
     2044 +/* defines for CurrentModulation field */
     2045 +#define MPI2_SASIOUNIT6_MODULATION_25_PERCENT                   (0x00)
     2046 +#define MPI2_SASIOUNIT6_MODULATION_50_PERCENT                   (0x01)
     2047 +#define MPI2_SASIOUNIT6_MODULATION_75_PERCENT                   (0x02)
     2048 +#define MPI2_SASIOUNIT6_MODULATION_100_PERCENT                  (0x03)
     2049 +
     2050 +/*
     2051 + * Host code (drivers, BIOS, utilities, etc.) should leave this define set to
     2052 + * one and check the value returned for NumGroups at runtime.
     2053 + */
     2054 +#ifndef MPI2_SAS_IOUNIT6_GROUP_MAX
     2055 +#define MPI2_SAS_IOUNIT6_GROUP_MAX      (1)
     2056 +#endif
     2057 +
     2058 +typedef struct _MPI2_CONFIG_PAGE_SASIOUNIT_6
     2059 +{
     2060 +    MPI2_CONFIG_EXTENDED_PAGE_HEADER    Header;                     /* 0x00 */
     2061 +    U32                                 Reserved1;                  /* 0x08 */
     2062 +    U32                                 Reserved2;                  /* 0x0C */
     2063 +    U8                                  NumGroups;                  /* 0x10 */
     2064 +    U8                                  Reserved3;                  /* 0x11 */
     2065 +    U16                                 Reserved4;                  /* 0x12 */
     2066 +    MPI2_SAS_IO_UNIT6_PORT_WIDTH_MOD_GROUP_STATUS
     2067 +        PortWidthModulationGroupStatus[MPI2_SAS_IOUNIT6_GROUP_MAX]; /* 0x14 */
     2068 +} MPI2_CONFIG_PAGE_SASIOUNIT_6,
     2069 +  MPI2_POINTER PTR_MPI2_CONFIG_PAGE_SASIOUNIT_6,
     2070 +  Mpi2SasIOUnitPage6_t, MPI2_POINTER pMpi2SasIOUnitPage6_t;
     2071 +
     2072 +#define MPI2_SASIOUNITPAGE6_PAGEVERSION     (0x00)
     2073 +
     2074 +
     2075 +/* SAS IO Unit Page 7 */
     2076 +
     2077 +typedef struct _MPI2_SAS_IO_UNIT7_PORT_WIDTH_MOD_GROUP_SETTINGS
     2078 +{
     2079 +    U8          Flags;                      /* 0x00 */
     2080 +    U8          Reserved1;                  /* 0x01 */
     2081 +    U16         Reserved2;                  /* 0x02 */
     2082 +    U8          Threshold75Pct;             /* 0x04 */
     2083 +    U8          Threshold50Pct;             /* 0x05 */
     2084 +    U8          Threshold25Pct;             /* 0x06 */
     2085 +    U8          Reserved3;                  /* 0x07 */
     2086 +} MPI2_SAS_IO_UNIT7_PORT_WIDTH_MOD_GROUP_SETTINGS,
     2087 +  MPI2_POINTER PTR_MPI2_SAS_IO_UNIT7_PORT_WIDTH_MOD_GROUP_SETTINGS,
     2088 +  Mpi2SasIOUnit7PortWidthModGroupSettings_t,
     2089 +  MPI2_POINTER pMpi2SasIOUnit7PortWidthModGroupSettings_t;
     2090 +
     2091 +/* defines for Flags field */
     2092 +#define MPI2_SASIOUNIT7_FLAGS_ENABLE_PORT_WIDTH_MODULATION  (0x01)
     2093 +
     2094 +
     2095 +/*
     2096 + * Host code (drivers, BIOS, utilities, etc.) should leave this define set to
     2097 + * one and check the value returned for NumGroups at runtime.
     2098 + */
     2099 +#ifndef MPI2_SAS_IOUNIT7_GROUP_MAX
     2100 +#define MPI2_SAS_IOUNIT7_GROUP_MAX      (1)
     2101 +#endif
     2102 +
     2103 +typedef struct _MPI2_CONFIG_PAGE_SASIOUNIT_7
     2104 +{
     2105 +    MPI2_CONFIG_EXTENDED_PAGE_HEADER            Header;             /* 0x00 */
     2106 +    U8                                          SamplingInterval;   /* 0x08 */
     2107 +    U8                                          WindowLength;       /* 0x09 */
     2108 +    U16                                         Reserved1;          /* 0x0A */
     2109 +    U32                                         Reserved2;          /* 0x0C */
     2110 +    U32                                         Reserved3;          /* 0x10 */
     2111 +    U8                                          NumGroups;          /* 0x14 */
     2112 +    U8                                          Reserved4;          /* 0x15 */
     2113 +    U16                                         Reserved5;          /* 0x16 */
     2114 +    MPI2_SAS_IO_UNIT7_PORT_WIDTH_MOD_GROUP_SETTINGS
     2115 +        PortWidthModulationGroupSettings[MPI2_SAS_IOUNIT7_GROUP_MAX]; /* 0x18 */
     2116 +} MPI2_CONFIG_PAGE_SASIOUNIT_7,
     2117 +  MPI2_POINTER PTR_MPI2_CONFIG_PAGE_SASIOUNIT_7,
     2118 +  Mpi2SasIOUnitPage7_t, MPI2_POINTER pMpi2SasIOUnitPage7_t;
     2119 +
     2120 +#define MPI2_SASIOUNITPAGE7_PAGEVERSION     (0x00)
     2121 +
     2122 +
     2123 +/* SAS IO Unit Page 8 */
     2124 +
     2125 +typedef struct _MPI2_CONFIG_PAGE_SASIOUNIT_8
     2126 +{
     2127 +    MPI2_CONFIG_EXTENDED_PAGE_HEADER    Header;                             /* 0x00 */
     2128 +    U32                                 Reserved1;                          /* 0x08 */
     2129 +    U32                                 PowerManagementCapabilities;        /* 0x0C */
     2130 +    U32                                 Reserved2;                          /* 0x10 */
     2131 +} MPI2_CONFIG_PAGE_SASIOUNIT_8,
     2132 +  MPI2_POINTER PTR_MPI2_CONFIG_PAGE_SASIOUNIT_8,
     2133 +  Mpi2SasIOUnitPage8_t, MPI2_POINTER pMpi2SasIOUnitPage8_t;
     2134 +
     2135 +#define MPI2_SASIOUNITPAGE8_PAGEVERSION     (0x00)
     2136 +
     2137 +/* defines for PowerManagementCapabilities field */
     2138 +#define MPI2_SASIOUNIT8_PM_HOST_PORT_WIDTH_MOD          (0x000001000)
     2139 +#define MPI2_SASIOUNIT8_PM_HOST_SAS_SLUMBER_MODE        (0x000000800)
     2140 +#define MPI2_SASIOUNIT8_PM_HOST_SAS_PARTIAL_MODE        (0x000000400)
     2141 +#define MPI2_SASIOUNIT8_PM_HOST_SATA_SLUMBER_MODE       (0x000000200)
     2142 +#define MPI2_SASIOUNIT8_PM_HOST_SATA_PARTIAL_MODE       (0x000000100)
     2143 +#define MPI2_SASIOUNIT8_PM_IOUNIT_PORT_WIDTH_MOD        (0x000000010)
     2144 +#define MPI2_SASIOUNIT8_PM_IOUNIT_SAS_SLUMBER_MODE      (0x000000008)
     2145 +#define MPI2_SASIOUNIT8_PM_IOUNIT_SAS_PARTIAL_MODE      (0x000000004)
     2146 +#define MPI2_SASIOUNIT8_PM_IOUNIT_SATA_SLUMBER_MODE     (0x000000002)
     2147 +#define MPI2_SASIOUNIT8_PM_IOUNIT_SATA_PARTIAL_MODE     (0x000000001)
1941 2148  
1942 2149  
1943 2150  
1944 2151  
1945 2152  /****************************************************************************
1946 2153  *   SAS Expander Config Pages
1947 2154  ****************************************************************************/
1948 2155  
1949 2156  /* SAS Expander Page 0 */
1950 2157  
↓ open down ↓ 166 lines elided ↑ open up ↑
2117 2324  #define MPI2_SAS_DEVICE0_ASTATUS_SIF_PIO_SN                 (0x15)
2118 2325  #define MPI2_SAS_DEVICE0_ASTATUS_SIF_MDMA_SN                (0x16)
2119 2326  #define MPI2_SAS_DEVICE0_ASTATUS_SIF_UDMA_SN                (0x17)
2120 2327  #define MPI2_SAS_DEVICE0_ASTATUS_SIF_ZONING_VIOLATION       (0x18)
2121 2328  #define MPI2_SAS_DEVICE0_ASTATUS_SIF_NOT_ADDRESSABLE        (0x19)
2122 2329  #define MPI2_SAS_DEVICE0_ASTATUS_SIF_MAX                    (0x1F)
2123 2330  
2124 2331  /* see mpi2_sas.h for values for SAS Device Page 0 DeviceInfo values */
2125 2332  
2126 2333  /* values for SAS Device Page 0 Flags field */
     2334 +#define MPI25_SAS_DEVICE0_FLAGS_ENABLED_FAST_PATH           (0x4000)
     2335 +#define MPI25_SAS_DEVICE0_FLAGS_FAST_PATH_CAPABLE           (0x2000)
2127 2336  #define MPI2_SAS_DEVICE0_FLAGS_SLUMBER_PM_CAPABLE           (0x1000)
2128 2337  #define MPI2_SAS_DEVICE0_FLAGS_PARTIAL_PM_CAPABLE           (0x0800)
2129 2338  #define MPI2_SAS_DEVICE0_FLAGS_SATA_ASYNCHRONOUS_NOTIFY     (0x0400)
2130 2339  #define MPI2_SAS_DEVICE0_FLAGS_SATA_SW_PRESERVE             (0x0200)
2131 2340  #define MPI2_SAS_DEVICE0_FLAGS_UNSUPPORTED_DEVICE           (0x0100)
2132 2341  #define MPI2_SAS_DEVICE0_FLAGS_SATA_48BIT_LBA_SUPPORTED     (0x0080)
2133 2342  #define MPI2_SAS_DEVICE0_FLAGS_SATA_SMART_SUPPORTED         (0x0040)
2134 2343  #define MPI2_SAS_DEVICE0_FLAGS_SATA_NCQ_SUPPORTED           (0x0020)
2135 2344  #define MPI2_SAS_DEVICE0_FLAGS_SATA_FUA_SUPPORTED           (0x0010)
2136 2345  #define MPI2_SAS_DEVICE0_FLAGS_PORT_SELECTOR_ATTACH         (0x0008)
↓ open down ↓ 197 lines elided ↑ open up ↑
2334 2543      U8                                  NumPhyEvents;               /* 0x0C */
2335 2544      U8                                  Reserved2;                  /* 0x0D */
2336 2545      U16                                 Reserved3;                  /* 0x0E */
2337 2546      MPI2_SASPHY3_PHY_EVENT_CONFIG       PhyEventConfig[MPI2_SASPHY3_PHY_EVENT_MAX]; /* 0x10 */
2338 2547  } MPI2_CONFIG_PAGE_SAS_PHY_3, MPI2_POINTER PTR_MPI2_CONFIG_PAGE_SAS_PHY_3,
2339 2548    Mpi2SasPhyPage3_t, MPI2_POINTER pMpi2SasPhyPage3_t;
2340 2549  
2341 2550  #define MPI2_SASPHY3_PAGEVERSION            (0x00)
2342 2551  
2343 2552  
     2553 +/* SAS PHY Page 4 */
     2554 +
     2555 +typedef struct _MPI2_CONFIG_PAGE_SAS_PHY_4
     2556 +{
     2557 +    MPI2_CONFIG_EXTENDED_PAGE_HEADER    Header;                     /* 0x00 */
     2558 +    U16                                 Reserved1;                  /* 0x08 */
     2559 +    U8                                  Reserved2;                  /* 0x0A */
     2560 +    U8                                  Flags;                      /* 0x0B */
     2561 +    U8                                  InitialFrame[28];           /* 0x0C */
     2562 +} MPI2_CONFIG_PAGE_SAS_PHY_4, MPI2_POINTER PTR_MPI2_CONFIG_PAGE_SAS_PHY_4,
     2563 +  Mpi2SasPhyPage4_t, MPI2_POINTER pMpi2SasPhyPage4_t;
     2564 +
     2565 +#define MPI2_SASPHY4_PAGEVERSION            (0x00)
     2566 +
     2567 +/* values for the Flags field */
     2568 +#define MPI2_SASPHY4_FLAGS_FRAME_VALID        (0x02)
     2569 +#define MPI2_SASPHY4_FLAGS_SATA_FRAME         (0x01)
     2570 +
     2571 +
     2572 +
     2573 +
2344 2574  /****************************************************************************
2345 2575  *   SAS Port Config Pages
2346 2576  ****************************************************************************/
2347 2577  
2348 2578  /* SAS Port Page 0 */
2349 2579  
2350 2580  typedef struct _MPI2_CONFIG_PAGE_SAS_PORT_0
2351 2581  {
2352 2582      MPI2_CONFIG_EXTENDED_PAGE_HEADER    Header;                     /* 0x00 */
2353 2583      U8                                  PortNumber;                 /* 0x08 */
↓ open down ↓ 301 lines elided ↑ open up ↑
2655 2885  #define MPI2_ETHPG1_MS_HALF_DUPLEX                  (0x00)
2656 2886  #define MPI2_ETHPG1_MS_FULL_DUPLEX                  (0x80)
2657 2887  
2658 2888  #define MPI2_ETHPG1_MS_DATA_RATE_MASK               (0x07)
2659 2889  #define MPI2_ETHPG1_MS_DATA_RATE_AUTO               (0x00)
2660 2890  #define MPI2_ETHPG1_MS_DATA_RATE_10MBIT             (0x01)
2661 2891  #define MPI2_ETHPG1_MS_DATA_RATE_100MBIT            (0x02)
2662 2892  #define MPI2_ETHPG1_MS_DATA_RATE_1GBIT              (0x03)
2663 2893  
2664 2894  
     2895 +/****************************************************************************
     2896 +*   Extended Manufacturing Config Pages
     2897 +****************************************************************************/
     2898 +
     2899 +/*
     2900 + * Generic structure to use for product-specific extended manufacturing pages
     2901 + * (currently Extended Manufacturing Page 40 through Extended Manufacturing
     2902 + * Page 60).
     2903 + */
     2904 +
     2905 +typedef struct _MPI2_CONFIG_PAGE_EXT_MAN_PS
     2906 +{
     2907 +    MPI2_CONFIG_EXTENDED_PAGE_HEADER    Header;                 /* 0x00 */
     2908 +    U32                                 ProductSpecificInfo;    /* 0x08 */
     2909 +} MPI2_CONFIG_PAGE_EXT_MAN_PS,
     2910 +  MPI2_POINTER PTR_MPI2_CONFIG_PAGE_EXT_MAN_PS,
     2911 +  Mpi2ExtManufacturingPagePS_t, MPI2_POINTER pMpi2ExtManufacturingPagePS_t;
     2912 +
     2913 +/* PageVersion should be provided by product-specific code */
     2914 +
2665 2915  #endif
2666 2916  
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX