Print this page
3500 Support LSI SAS2008 (Falcon) Skinny FW for mr_sas(7D)

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/io/mr_sas/mr_sas.h
          +++ new/usr/src/uts/common/io/mr_sas/mr_sas.h
↓ open down ↓ 35 lines elided ↑ open up ↑
  36   36   * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
  37   37   * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
  38   38   * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  39   39   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  40   40   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
  41   41   * DAMAGE.
  42   42   */
  43   43  
  44   44  /*
  45   45   * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
       46 + * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
  46   47   */
  47   48  
  48   49  #ifndef _MR_SAS_H_
  49   50  #define _MR_SAS_H_
  50   51  
  51   52  #ifdef  __cplusplus
  52   53  extern "C" {
  53   54  #endif
  54   55  
  55   56  #include <sys/scsi/scsi.h>
↓ open down ↓ 27 lines elided ↑ open up ↑
  83   84                  new_len = len; \
  84   85          } \
  85   86  }
  86   87  
  87   88  
  88   89  /*
  89   90   * MegaRAID SAS2.0 supported controllers
  90   91   */
  91   92  #define PCI_DEVICE_ID_LSI_2108VDE               0x0078
  92   93  #define PCI_DEVICE_ID_LSI_2108V                 0x0079
       94 +#define PCI_DEVICE_ID_LSI_SKINNY                0x0071
       95 +#define PCI_DEVICE_ID_LSI_SKINNY_NEW            0x0073
  93   96  #define PCI_DEVICE_ID_LSI_TBOLT                 0x005b
  94   97  #define PCI_DEVICE_ID_LSI_INVADER               0x005d
  95   98  
  96   99  /*
  97  100   * Register Index for 2108 Controllers.
  98  101   */
  99  102  #define REGISTER_SET_IO_2108                    (2)
 100  103  
 101  104  #define MRSAS_MAX_SGE_CNT                       0x50
 102  105  #define MRSAS_APP_RESERVED_CMDS                 32
      106 +#define MRSAS_APP_MIN_RESERVED_CMDS             4
 103  107  
 104  108  #define MRSAS_IOCTL_DRIVER                      0x12341234
 105  109  #define MRSAS_IOCTL_FIRMWARE                    0x12345678
 106  110  #define MRSAS_IOCTL_AEN                         0x87654321
 107  111  
 108  112  #define MRSAS_1_SECOND                          1000000
 109  113  
 110  114  #ifdef PDSUPPORT
 111  115  
 112  116  #define UNCONFIGURED_GOOD                       0x0
↓ open down ↓ 474 lines elided ↑ open up ↑
 587  591          /* ThunderBolt (TB) specific */
 588  592          ddi_softintr_t  tbolt_soft_intr_id;
 589  593  
 590  594  #ifdef PDSUPPORT
 591  595          uint32_t        mr_tbolt_pd_max;
 592  596          struct mrsas_tbolt_pd *mr_tbolt_pd_list;
 593  597  #endif
 594  598  
 595  599          uint8_t         fast_path_io;
 596  600  
 597      -        uint16_t        tbolt;
      601 +        uint8_t         skinny;
      602 +        uint8_t         tbolt;
 598  603          uint16_t        reply_read_index;
 599  604          uint16_t        reply_size;             /* Single Reply struct size */
 600  605          uint16_t        raid_io_msg_size;       /* Single message size */
 601  606          uint32_t        io_request_frames_phy;
 602  607          uint8_t         *io_request_frames;
 603  608          /* Virtual address of request desc frame pool */
 604  609          MRSAS_REQUEST_DESCRIPTOR_UNION  *request_message_pool;
 605  610          /* Physical address of request desc frame pool */
 606  611          uint32_t        request_message_pool_phy;
 607  612          /* Virtual address of reply Frame */
↓ open down ↓ 1430 lines elided ↑ open up ↑
2038 2043  int mrsas_init_adapter(struct mrsas_instance *instance);
2039 2044  
2040 2045  int mrsas_alloc_cmd_pool(struct mrsas_instance *instance);
2041 2046  void mrsas_free_cmd_pool(struct mrsas_instance *instance);
2042 2047  
2043 2048  void mrsas_print_cmd_details(struct mrsas_instance *, struct mrsas_cmd *, int);
2044 2049  struct mrsas_cmd *get_raid_msg_pkt(struct mrsas_instance *);
2045 2050  
2046 2051  int mfi_state_transition_to_ready(struct mrsas_instance *);
2047 2052  
     2053 +struct mrsas_cmd *mrsas_get_mfi_pkt(struct mrsas_instance *);
     2054 +void mrsas_return_mfi_pkt(struct mrsas_instance *, struct mrsas_cmd *);
2048 2055  
     2056 +
2049 2057  /* FMA functions. */
2050 2058  int mrsas_common_check(struct mrsas_instance *, struct  mrsas_cmd *);
2051 2059  void mrsas_fm_ereport(struct mrsas_instance *, char *);
2052 2060  
2053 2061  
2054 2062  #ifdef  __cplusplus
2055 2063  }
2056 2064  #endif
2057 2065  
2058 2066  #endif /* _MR_SAS_H_ */
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX