|
@@ -1317,7 +1317,55 @@ struct megasas_ctrl_info {
|
|
|
#endif
|
|
|
} adapterOperations3;
|
|
|
|
|
|
- u8 pad[0x800-0x7EC];
|
|
|
+ struct {
|
|
|
+#if defined(__BIG_ENDIAN_BITFIELD)
|
|
|
+ u8 reserved:7;
|
|
|
+ /* Indicates whether the CPLD image is part of
|
|
|
+ * the package and stored in flash
|
|
|
+ */
|
|
|
+ u8 cpld_in_flash:1;
|
|
|
+#else
|
|
|
+ u8 cpld_in_flash:1;
|
|
|
+ u8 reserved:7;
|
|
|
+#endif
|
|
|
+ u8 reserved1[3];
|
|
|
+ /* Null terminated string. Has the version
|
|
|
+ * information if cpld_in_flash = FALSE
|
|
|
+ */
|
|
|
+ u8 userCodeDefinition[12];
|
|
|
+ } cpld; /* Valid only if upgradableCPLD is TRUE */
|
|
|
+
|
|
|
+ struct {
|
|
|
+ #if defined(__BIG_ENDIAN_BITFIELD)
|
|
|
+ u16 reserved:8;
|
|
|
+ u16 fw_swaps_bbu_vpd_info:1;
|
|
|
+ u16 support_pd_map_target_id:1;
|
|
|
+ u16 support_ses_ctrl_in_multipathcfg:1;
|
|
|
+ u16 image_upload_supported:1;
|
|
|
+ u16 support_encrypted_mfc:1;
|
|
|
+ u16 supported_enc_algo:1;
|
|
|
+ u16 support_ibutton_less:1;
|
|
|
+ u16 ctrl_info_ext_supported:1;
|
|
|
+ #else
|
|
|
+
|
|
|
+ u16 ctrl_info_ext_supported:1;
|
|
|
+ u16 support_ibutton_less:1;
|
|
|
+ u16 supported_enc_algo:1;
|
|
|
+ u16 support_encrypted_mfc:1;
|
|
|
+ u16 image_upload_supported:1;
|
|
|
+ /* FW supports LUN based association and target port based */
|
|
|
+ u16 support_ses_ctrl_in_multipathcfg:1;
|
|
|
+ /* association for the SES device connected in multipath mode */
|
|
|
+ /* FW defines Jbod target Id within MR_PD_CFG_SEQ */
|
|
|
+ u16 support_pd_map_target_id:1;
|
|
|
+ /* FW swaps relevant fields in MR_BBU_VPD_INFO_FIXED to
|
|
|
+ * provide the data in little endian order
|
|
|
+ */
|
|
|
+ u16 fw_swaps_bbu_vpd_info:1;
|
|
|
+ u16 reserved:8;
|
|
|
+ #endif
|
|
|
+ } adapter_operations4;
|
|
|
+ u8 pad[0x800-0x7FE]; /* 0x7FE pad to 2K for expansion */
|
|
|
} __packed;
|
|
|
|
|
|
/*
|
|
@@ -1557,33 +1605,35 @@ union megasas_sgl_frame {
|
|
|
typedef union _MFI_CAPABILITIES {
|
|
|
struct {
|
|
|
#if defined(__BIG_ENDIAN_BITFIELD)
|
|
|
- u32 reserved:20;
|
|
|
- u32 support_qd_throttling:1;
|
|
|
- u32 support_fp_rlbypass:1;
|
|
|
- u32 support_vfid_in_ioframe:1;
|
|
|
- u32 support_ext_io_size:1;
|
|
|
- u32 support_ext_queue_depth:1;
|
|
|
- u32 security_protocol_cmds_fw:1;
|
|
|
- u32 support_core_affinity:1;
|
|
|
- u32 support_ndrive_r1_lb:1;
|
|
|
- u32 support_max_255lds:1;
|
|
|
- u32 support_fastpath_wb:1;
|
|
|
- u32 support_additional_msix:1;
|
|
|
- u32 support_fp_remote_lun:1;
|
|
|
+ u32 reserved:19;
|
|
|
+ u32 support_pd_map_target_id:1;
|
|
|
+ u32 support_qd_throttling:1;
|
|
|
+ u32 support_fp_rlbypass:1;
|
|
|
+ u32 support_vfid_in_ioframe:1;
|
|
|
+ u32 support_ext_io_size:1;
|
|
|
+ u32 support_ext_queue_depth:1;
|
|
|
+ u32 security_protocol_cmds_fw:1;
|
|
|
+ u32 support_core_affinity:1;
|
|
|
+ u32 support_ndrive_r1_lb:1;
|
|
|
+ u32 support_max_255lds:1;
|
|
|
+ u32 support_fastpath_wb:1;
|
|
|
+ u32 support_additional_msix:1;
|
|
|
+ u32 support_fp_remote_lun:1;
|
|
|
#else
|
|
|
- u32 support_fp_remote_lun:1;
|
|
|
- u32 support_additional_msix:1;
|
|
|
- u32 support_fastpath_wb:1;
|
|
|
- u32 support_max_255lds:1;
|
|
|
- u32 support_ndrive_r1_lb:1;
|
|
|
- u32 support_core_affinity:1;
|
|
|
- u32 security_protocol_cmds_fw:1;
|
|
|
- u32 support_ext_queue_depth:1;
|
|
|
- u32 support_ext_io_size:1;
|
|
|
- u32 support_vfid_in_ioframe:1;
|
|
|
- u32 support_fp_rlbypass:1;
|
|
|
- u32 support_qd_throttling:1;
|
|
|
- u32 reserved:20;
|
|
|
+ u32 support_fp_remote_lun:1;
|
|
|
+ u32 support_additional_msix:1;
|
|
|
+ u32 support_fastpath_wb:1;
|
|
|
+ u32 support_max_255lds:1;
|
|
|
+ u32 support_ndrive_r1_lb:1;
|
|
|
+ u32 support_core_affinity:1;
|
|
|
+ u32 security_protocol_cmds_fw:1;
|
|
|
+ u32 support_ext_queue_depth:1;
|
|
|
+ u32 support_ext_io_size:1;
|
|
|
+ u32 support_vfid_in_ioframe:1;
|
|
|
+ u32 support_fp_rlbypass:1;
|
|
|
+ u32 support_qd_throttling:1;
|
|
|
+ u32 support_pd_map_target_id:1;
|
|
|
+ u32 reserved:19;
|
|
|
#endif
|
|
|
} mfi_capabilities;
|
|
|
__le32 reg;
|
|
@@ -2052,6 +2102,7 @@ struct megasas_instance {
|
|
|
u32 crash_dump_drv_support;
|
|
|
u32 crash_dump_app_support;
|
|
|
u32 secure_jbod_support;
|
|
|
+ u32 support_morethan256jbod; /* FW support for more than 256 PD/JBOD */
|
|
|
bool use_seqnum_jbod_fp; /* Added for PD sequence */
|
|
|
spinlock_t crashdump_lock;
|
|
|
|