[PATCH 10/11] megaraid_sas: Implement the PD Map support for SAS3.5 Generic Megaraid Controllers
Update Linux driver to use new pdTargetId field for JBOD target ID This patch is depending on patch 9 Signed-off-by: Sasikumar Chandrasekaran--- drivers/scsi/megaraid/megaraid_sas.h| 106 +--- drivers/scsi/megaraid/megaraid_sas_base.c | 5 +- drivers/scsi/megaraid/megaraid_sas_fusion.c | 11 ++- drivers/scsi/megaraid/megaraid_sas_fusion.h | 3 +- 4 files changed, 94 insertions(+), 31 deletions(-) diff --git a/drivers/scsi/megaraid/megaraid_sas.h b/drivers/scsi/megaraid/megaraid_sas.h index 40b8295..e4bb93d 100644 --- a/drivers/scsi/megaraid/megaraid_sas.h +++ b/drivers/scsi/megaraid/megaraid_sas.h @@ -1320,7 +1320,56 @@ 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 cpldInFlash:1; +#else + u8 cpldInFlash:1; + u8 reserved:7; +#endif + u8 reserved1[3]; + /* Null terminated string. Has the version + * information if cpldInFlash = FALSE + */ + u8 userCodeDefinition[12]; + } cpld; /* Valid only if upgradableCPLD is TRUE */ + + struct { + #if defined(__BIG_ENDIAN_BITFIELD) + u16 reserved:8; + u16 FWSwapsBBUVPDInfo :1; + u16 supportPdMapTargetId:1; + u16 supportSESCtrlInMultipathCfg:1; + u16 imageUploadSupported:1; + u16 supportEncryptedMfc :1; + u16 supportedEncAlgo:1; + u16 supportIbuttonLess :1; + u16 ctrlInfoExtSupported:1; + #else + + u16 ctrlInfoExtSupported:1; + u16 supportIbuttonLess :1; + u16 supportedEncAlgo:1; + u16 supportEncryptedMfc :1; + u16 imageUploadSupported:1; + /* FW supports LUN based association and target port based */ + u16 supportSESCtrlInMultipathCfg:1; + /* association for the SES device connected in multipath mode */ +/* FW defines Jbod target Id within MR_PD_CFG_SEQ */ + u16 supportPdMapTargetId:1; + /* FW swaps relevant fields in MR_BBU_VPD_INFO_FIXED to + * provide the data in little endian order + */ + u16 FWSwapsBBUVPDInfo :1; + u16 reserved:8; + #endif + } adapterOperations4; + +u8 pad[0x800-0x7FE]; /* 0x7FE pad to 2K for expansion */ } __packed; /* @@ -1560,33 +1609,35 @@ struct megasas_header { 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 supportPdMapTargetId: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
[PATCH 10/11] megaraid_sas: Implement the PD Map support for SAS3.5 Generic Megaraid Controllers
Update Linux driver to use new pdTargetId field for JBOD target ID This patch is depending on patch 9 Signed-off-by: Sasikumar Chandrasekaran --- drivers/scsi/megaraid/megaraid_sas.h| 106 +--- drivers/scsi/megaraid/megaraid_sas_base.c | 5 +- drivers/scsi/megaraid/megaraid_sas_fusion.c | 11 ++- drivers/scsi/megaraid/megaraid_sas_fusion.h | 3 +- 4 files changed, 94 insertions(+), 31 deletions(-) diff --git a/drivers/scsi/megaraid/megaraid_sas.h b/drivers/scsi/megaraid/megaraid_sas.h index 40b8295..e4bb93d 100644 --- a/drivers/scsi/megaraid/megaraid_sas.h +++ b/drivers/scsi/megaraid/megaraid_sas.h @@ -1320,7 +1320,56 @@ 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 cpldInFlash:1; +#else + u8 cpldInFlash:1; + u8 reserved:7; +#endif + u8 reserved1[3]; + /* Null terminated string. Has the version + * information if cpldInFlash = FALSE + */ + u8 userCodeDefinition[12]; + } cpld; /* Valid only if upgradableCPLD is TRUE */ + + struct { + #if defined(__BIG_ENDIAN_BITFIELD) + u16 reserved:8; + u16 FWSwapsBBUVPDInfo :1; + u16 supportPdMapTargetId:1; + u16 supportSESCtrlInMultipathCfg:1; + u16 imageUploadSupported:1; + u16 supportEncryptedMfc :1; + u16 supportedEncAlgo:1; + u16 supportIbuttonLess :1; + u16 ctrlInfoExtSupported:1; + #else + + u16 ctrlInfoExtSupported:1; + u16 supportIbuttonLess :1; + u16 supportedEncAlgo:1; + u16 supportEncryptedMfc :1; + u16 imageUploadSupported:1; + /* FW supports LUN based association and target port based */ + u16 supportSESCtrlInMultipathCfg:1; + /* association for the SES device connected in multipath mode */ +/* FW defines Jbod target Id within MR_PD_CFG_SEQ */ + u16 supportPdMapTargetId:1; + /* FW swaps relevant fields in MR_BBU_VPD_INFO_FIXED to + * provide the data in little endian order + */ + u16 FWSwapsBBUVPDInfo :1; + u16 reserved:8; + #endif + } adapterOperations4; + +u8 pad[0x800-0x7FE]; /* 0x7FE pad to 2K for expansion */ } __packed; /* @@ -1560,33 +1609,35 @@ struct megasas_header { 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 supportPdMapTargetId: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
[PATCH 10/11] megaraid_sas: Implement the PD Map support for SAS3.5 Generic Megaraid Controllers
From: rootUpdate Linux driver to use new pdTargetId field for JBOD target ID This patch is depending on patch 9 Signed-off-by: Sasikumar Chandrasekaran --- drivers/scsi/megaraid/megaraid_sas.h| 106 +--- drivers/scsi/megaraid/megaraid_sas_base.c | 5 +- drivers/scsi/megaraid/megaraid_sas_fusion.c | 11 ++- drivers/scsi/megaraid/megaraid_sas_fusion.h | 3 +- 4 files changed, 94 insertions(+), 31 deletions(-) diff --git a/drivers/scsi/megaraid/megaraid_sas.h b/drivers/scsi/megaraid/megaraid_sas.h index 40b8295..e4bb93d 100644 --- a/drivers/scsi/megaraid/megaraid_sas.h +++ b/drivers/scsi/megaraid/megaraid_sas.h @@ -1320,7 +1320,56 @@ 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 cpldInFlash:1; +#else + u8 cpldInFlash:1; + u8 reserved:7; +#endif + u8 reserved1[3]; + /* Null terminated string. Has the version + * information if cpldInFlash = FALSE + */ + u8 userCodeDefinition[12]; + } cpld; /* Valid only if upgradableCPLD is TRUE */ + + struct { + #if defined(__BIG_ENDIAN_BITFIELD) + u16 reserved:8; + u16 FWSwapsBBUVPDInfo :1; + u16 supportPdMapTargetId:1; + u16 supportSESCtrlInMultipathCfg:1; + u16 imageUploadSupported:1; + u16 supportEncryptedMfc :1; + u16 supportedEncAlgo:1; + u16 supportIbuttonLess :1; + u16 ctrlInfoExtSupported:1; + #else + + u16 ctrlInfoExtSupported:1; + u16 supportIbuttonLess :1; + u16 supportedEncAlgo:1; + u16 supportEncryptedMfc :1; + u16 imageUploadSupported:1; + /* FW supports LUN based association and target port based */ + u16 supportSESCtrlInMultipathCfg:1; + /* association for the SES device connected in multipath mode */ +/* FW defines Jbod target Id within MR_PD_CFG_SEQ */ + u16 supportPdMapTargetId:1; + /* FW swaps relevant fields in MR_BBU_VPD_INFO_FIXED to + * provide the data in little endian order + */ + u16 FWSwapsBBUVPDInfo :1; + u16 reserved:8; + #endif + } adapterOperations4; + +u8 pad[0x800-0x7FE]; /* 0x7FE pad to 2K for expansion */ } __packed; /* @@ -1560,33 +1609,35 @@ struct megasas_header { 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 supportPdMapTargetId: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;
[PATCH 10/11] megaraid_sas: Implement the PD Map support for SAS3.5 Generic Megaraid Controllers
From: root Update Linux driver to use new pdTargetId field for JBOD target ID This patch is depending on patch 9 Signed-off-by: Sasikumar Chandrasekaran --- drivers/scsi/megaraid/megaraid_sas.h| 106 +--- drivers/scsi/megaraid/megaraid_sas_base.c | 5 +- drivers/scsi/megaraid/megaraid_sas_fusion.c | 11 ++- drivers/scsi/megaraid/megaraid_sas_fusion.h | 3 +- 4 files changed, 94 insertions(+), 31 deletions(-) diff --git a/drivers/scsi/megaraid/megaraid_sas.h b/drivers/scsi/megaraid/megaraid_sas.h index 40b8295..e4bb93d 100644 --- a/drivers/scsi/megaraid/megaraid_sas.h +++ b/drivers/scsi/megaraid/megaraid_sas.h @@ -1320,7 +1320,56 @@ 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 cpldInFlash:1; +#else + u8 cpldInFlash:1; + u8 reserved:7; +#endif + u8 reserved1[3]; + /* Null terminated string. Has the version + * information if cpldInFlash = FALSE + */ + u8 userCodeDefinition[12]; + } cpld; /* Valid only if upgradableCPLD is TRUE */ + + struct { + #if defined(__BIG_ENDIAN_BITFIELD) + u16 reserved:8; + u16 FWSwapsBBUVPDInfo :1; + u16 supportPdMapTargetId:1; + u16 supportSESCtrlInMultipathCfg:1; + u16 imageUploadSupported:1; + u16 supportEncryptedMfc :1; + u16 supportedEncAlgo:1; + u16 supportIbuttonLess :1; + u16 ctrlInfoExtSupported:1; + #else + + u16 ctrlInfoExtSupported:1; + u16 supportIbuttonLess :1; + u16 supportedEncAlgo:1; + u16 supportEncryptedMfc :1; + u16 imageUploadSupported:1; + /* FW supports LUN based association and target port based */ + u16 supportSESCtrlInMultipathCfg:1; + /* association for the SES device connected in multipath mode */ +/* FW defines Jbod target Id within MR_PD_CFG_SEQ */ + u16 supportPdMapTargetId:1; + /* FW swaps relevant fields in MR_BBU_VPD_INFO_FIXED to + * provide the data in little endian order + */ + u16 FWSwapsBBUVPDInfo :1; + u16 reserved:8; + #endif + } adapterOperations4; + +u8 pad[0x800-0x7FE]; /* 0x7FE pad to 2K for expansion */ } __packed; /* @@ -1560,33 +1609,35 @@ struct megasas_header { 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 supportPdMapTargetId: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