diff options
Diffstat (limited to 'drivers/scsi/mpt3sas/mpi/mpi2_cnfg.h')
-rw-r--r-- | drivers/scsi/mpt3sas/mpi/mpi2_cnfg.h | 94 |
1 files changed, 68 insertions, 26 deletions
diff --git a/drivers/scsi/mpt3sas/mpi/mpi2_cnfg.h b/drivers/scsi/mpt3sas/mpi/mpi2_cnfg.h index 5122920a961a..398fa6fde960 100644 --- a/drivers/scsi/mpt3sas/mpi/mpi2_cnfg.h +++ b/drivers/scsi/mpt3sas/mpi/mpi2_cnfg.h | |||
@@ -1,13 +1,13 @@ | |||
1 | /* SPDX-License-Identifier: GPL-2.0 */ | 1 | /* SPDX-License-Identifier: GPL-2.0 */ |
2 | /* | 2 | /* |
3 | * Copyright 2000-2015 Avago Technologies. All rights reserved. | 3 | * Copyright 2000-2020 Broadcom Inc. All rights reserved. |
4 | * | 4 | * |
5 | * | 5 | * |
6 | * Name: mpi2_cnfg.h | 6 | * Name: mpi2_cnfg.h |
7 | * Title: MPI Configuration messages and pages | 7 | * Title: MPI Configuration messages and pages |
8 | * Creation Date: November 10, 2006 | 8 | * Creation Date: November 10, 2006 |
9 | * | 9 | * |
10 | * mpi2_cnfg.h Version: 02.00.42 | 10 | * mpi2_cnfg.h Version: 02.00.46 |
11 | * | 11 | * |
12 | * NOTE: Names (typedefs, defines, etc.) beginning with an MPI25 or Mpi25 | 12 | * NOTE: Names (typedefs, defines, etc.) beginning with an MPI25 or Mpi25 |
13 | * prefix are for use only on MPI v2.5 products, and must not be used | 13 | * prefix are for use only on MPI v2.5 products, and must not be used |
@@ -231,6 +231,18 @@ | |||
231 | * Added NOIOB field to PCIe Device Page 2. | 231 | * Added NOIOB field to PCIe Device Page 2. |
232 | * Added MPI26_PCIEDEV2_CAP_DATA_BLK_ALIGN_AND_GRAN to | 232 | * Added MPI26_PCIEDEV2_CAP_DATA_BLK_ALIGN_AND_GRAN to |
233 | * the Capabilities field of PCIe Device Page 2. | 233 | * the Capabilities field of PCIe Device Page 2. |
234 | * 07-22-18 02.00.43 Added defines for SAS3916 and SAS3816. | ||
235 | * Added WRiteCache defines to IO Unit Page 1. | ||
236 | * Added MaxEnclosureLevel to BIOS Page 1. | ||
237 | * Added OEMRD to SAS Enclosure Page 1. | ||
238 | * Added DMDReportPCIe to PCIe IO Unit Page 1. | ||
239 | * Added Flags field and flags for Retimers to | ||
240 | * PCIe Switch Page 1. | ||
241 | * 08-02-18 02.00.44 Added Slotx2, Slotx4 to ManPage 7. | ||
242 | * 08-15-18 02.00.45 Added ProductSpecific field at end of IOC Page 1 | ||
243 | * 08-28-18 02.00.46 Added NVMs Write Cache flag to IOUnitPage1 | ||
244 | * Added DMDReport Delay Time defines to | ||
245 | * PCIeIOUnitPage1 | ||
234 | * -------------------------------------------------------------------------- | 246 | * -------------------------------------------------------------------------- |
235 | */ | 247 | */ |
236 | 248 | ||
@@ -568,8 +580,17 @@ typedef struct _MPI2_CONFIG_REPLY { | |||
568 | #define MPI26_MFGPAGE_DEVID_SAS3616 (0x00D1) | 580 | #define MPI26_MFGPAGE_DEVID_SAS3616 (0x00D1) |
569 | #define MPI26_MFGPAGE_DEVID_SAS3708 (0x00D2) | 581 | #define MPI26_MFGPAGE_DEVID_SAS3708 (0x00D2) |
570 | 582 | ||
571 | #define MPI26_MFGPAGE_DEVID_SAS3816 (0x00A1) | 583 | #define MPI26_MFGPAGE_DEVID_SEC_MASK_3916 (0x0003) |
572 | #define MPI26_MFGPAGE_DEVID_SAS3916 (0x00A0) | 584 | #define MPI26_MFGPAGE_DEVID_INVALID0_3916 (0x00E0) |
585 | #define MPI26_MFGPAGE_DEVID_CFG_SEC_3916 (0x00E1) | ||
586 | #define MPI26_MFGPAGE_DEVID_HARD_SEC_3916 (0x00E2) | ||
587 | #define MPI26_MFGPAGE_DEVID_INVALID1_3916 (0x00E3) | ||
588 | |||
589 | #define MPI26_MFGPAGE_DEVID_SEC_MASK_3816 (0x0003) | ||
590 | #define MPI26_MFGPAGE_DEVID_INVALID0_3816 (0x00E4) | ||
591 | #define MPI26_MFGPAGE_DEVID_CFG_SEC_3816 (0x00E5) | ||
592 | #define MPI26_MFGPAGE_DEVID_HARD_SEC_3816 (0x00E6) | ||
593 | #define MPI26_MFGPAGE_DEVID_INVALID1_3816 (0x00E7) | ||
573 | 594 | ||
574 | 595 | ||
575 | /*Manufacturing Page 0 */ | 596 | /*Manufacturing Page 0 */ |
@@ -932,7 +953,11 @@ typedef struct _MPI2_CONFIG_PAGE_IO_UNIT_1 { | |||
932 | 953 | ||
933 | #define MPI2_IOUNITPAGE1_PAGEVERSION (0x04) | 954 | #define MPI2_IOUNITPAGE1_PAGEVERSION (0x04) |
934 | 955 | ||
935 | /*IO Unit Page 1 Flags defines */ | 956 | /* IO Unit Page 1 Flags defines */ |
957 | #define MPI26_IOUNITPAGE1_NVME_WRCACHE_MASK (0x00030000) | ||
958 | #define MPI26_IOUNITPAGE1_NVME_WRCACHE_ENABLE (0x00000000) | ||
959 | #define MPI26_IOUNITPAGE1_NVME_WRCACHE_DISABLE (0x00010000) | ||
960 | #define MPI26_IOUNITPAGE1_NVME_WRCACHE_NO_CHANGE (0x00020000) | ||
936 | #define MPI2_IOUNITPAGE1_ATA_SECURITY_FREEZE_LOCK (0x00004000) | 961 | #define MPI2_IOUNITPAGE1_ATA_SECURITY_FREEZE_LOCK (0x00004000) |
937 | #define MPI25_IOUNITPAGE1_NEW_DEVICE_FAST_PATH_DISABLE (0x00002000) | 962 | #define MPI25_IOUNITPAGE1_NEW_DEVICE_FAST_PATH_DISABLE (0x00002000) |
938 | #define MPI25_IOUNITPAGE1_DISABLE_FAST_PATH (0x00001000) | 963 | #define MPI25_IOUNITPAGE1_DISABLE_FAST_PATH (0x00001000) |
@@ -1511,7 +1536,7 @@ typedef struct _MPI2_CONFIG_PAGE_BIOS_1 { | |||
1511 | U32 BiosOptions; /*0x04 */ | 1536 | U32 BiosOptions; /*0x04 */ |
1512 | U32 IOCSettings; /*0x08 */ | 1537 | U32 IOCSettings; /*0x08 */ |
1513 | U8 SSUTimeout; /*0x0C */ | 1538 | U8 SSUTimeout; /*0x0C */ |
1514 | U8 Reserved1; /*0x0D */ | 1539 | U8 MaxEnclosureLevel; /*0x0D */ |
1515 | U16 Reserved2; /*0x0E */ | 1540 | U16 Reserved2; /*0x0E */ |
1516 | U32 DeviceSettings; /*0x10 */ | 1541 | U32 DeviceSettings; /*0x10 */ |
1517 | U16 NumberOfDevices; /*0x14 */ | 1542 | U16 NumberOfDevices; /*0x14 */ |
@@ -1531,7 +1556,6 @@ typedef struct _MPI2_CONFIG_PAGE_BIOS_1 { | |||
1531 | #define MPI2_BIOSPAGE1_OPTIONS_ADVANCED_CONFIG (0x00004000) | 1556 | #define MPI2_BIOSPAGE1_OPTIONS_ADVANCED_CONFIG (0x00004000) |
1532 | 1557 | ||
1533 | #define MPI2_BIOSPAGE1_OPTIONS_PNS_MASK (0x00003800) | 1558 | #define MPI2_BIOSPAGE1_OPTIONS_PNS_MASK (0x00003800) |
1534 | #define MPI2_BIOSPAGE1_OPTIONS_PNS_MASK (0x00003800) | ||
1535 | #define MPI2_BIOSPAGE1_OPTIONS_PNS_PBDHL (0x00000000) | 1559 | #define MPI2_BIOSPAGE1_OPTIONS_PNS_PBDHL (0x00000000) |
1536 | #define MPI2_BIOSPAGE1_OPTIONS_PNS_ENCSLOSURE (0x00000800) | 1560 | #define MPI2_BIOSPAGE1_OPTIONS_PNS_ENCSLOSURE (0x00000800) |
1537 | #define MPI2_BIOSPAGE1_OPTIONS_PNS_LWWID (0x00001000) | 1561 | #define MPI2_BIOSPAGE1_OPTIONS_PNS_LWWID (0x00001000) |
@@ -3271,10 +3295,12 @@ typedef struct _MPI2_CONFIG_PAGE_SAS_ENCLOSURE_0 { | |||
3271 | U16 NumSlots; /*0x18 */ | 3295 | U16 NumSlots; /*0x18 */ |
3272 | U16 StartSlot; /*0x1A */ | 3296 | U16 StartSlot; /*0x1A */ |
3273 | U8 ChassisSlot; /*0x1C */ | 3297 | U8 ChassisSlot; /*0x1C */ |
3274 | U8 EnclosureLeve; /*0x1D */ | 3298 | U8 EnclosureLevel; /*0x1D */ |
3275 | U16 SEPDevHandle; /*0x1E */ | 3299 | U16 SEPDevHandle; /*0x1E */ |
3276 | U32 Reserved3; /*0x20 */ | 3300 | U8 OEMRD; /*0x20 */ |
3277 | U32 Reserved4; /*0x24 */ | 3301 | U8 Reserved1a; /*0x21 */ |
3302 | U16 Reserved2; /*0x22 */ | ||
3303 | U32 Reserved3; /*0x24 */ | ||
3278 | } MPI2_CONFIG_PAGE_SAS_ENCLOSURE_0, | 3304 | } MPI2_CONFIG_PAGE_SAS_ENCLOSURE_0, |
3279 | *PTR_MPI2_CONFIG_PAGE_SAS_ENCLOSURE_0, | 3305 | *PTR_MPI2_CONFIG_PAGE_SAS_ENCLOSURE_0, |
3280 | Mpi2SasEnclosurePage0_t, *pMpi2SasEnclosurePage0_t, | 3306 | Mpi2SasEnclosurePage0_t, *pMpi2SasEnclosurePage0_t, |
@@ -3285,6 +3311,8 @@ typedef struct _MPI2_CONFIG_PAGE_SAS_ENCLOSURE_0 { | |||
3285 | #define MPI2_SASENCLOSURE0_PAGEVERSION (0x04) | 3311 | #define MPI2_SASENCLOSURE0_PAGEVERSION (0x04) |
3286 | 3312 | ||
3287 | /*values for SAS Enclosure Page 0 Flags field */ | 3313 | /*values for SAS Enclosure Page 0 Flags field */ |
3314 | #define MPI26_SAS_ENCLS0_FLAGS_OEMRD_VALID (0x0080) | ||
3315 | #define MPI26_SAS_ENCLS0_FLAGS_OEMRD_COLLECTING (0x0040) | ||
3288 | #define MPI2_SAS_ENCLS0_FLAGS_CHASSIS_SLOT_VALID (0x0020) | 3316 | #define MPI2_SAS_ENCLS0_FLAGS_CHASSIS_SLOT_VALID (0x0020) |
3289 | #define MPI2_SAS_ENCLS0_FLAGS_ENCL_LEVEL_VALID (0x0010) | 3317 | #define MPI2_SAS_ENCLS0_FLAGS_ENCL_LEVEL_VALID (0x0010) |
3290 | #define MPI2_SAS_ENCLS0_FLAGS_MNG_MASK (0x000F) | 3318 | #define MPI2_SAS_ENCLS0_FLAGS_MNG_MASK (0x000F) |
@@ -3298,6 +3326,8 @@ typedef struct _MPI2_CONFIG_PAGE_SAS_ENCLOSURE_0 { | |||
3298 | #define MPI26_ENCLOSURE0_PAGEVERSION (0x04) | 3326 | #define MPI26_ENCLOSURE0_PAGEVERSION (0x04) |
3299 | 3327 | ||
3300 | /*Values for Enclosure Page 0 Flags field */ | 3328 | /*Values for Enclosure Page 0 Flags field */ |
3329 | #define MPI26_ENCLS0_FLAGS_OEMRD_VALID (0x0080) | ||
3330 | #define MPI26_ENCLS0_FLAGS_OEMRD_COLLECTING (0x0040) | ||
3301 | #define MPI26_ENCLS0_FLAGS_CHASSIS_SLOT_VALID (0x0020) | 3331 | #define MPI26_ENCLS0_FLAGS_CHASSIS_SLOT_VALID (0x0020) |
3302 | #define MPI26_ENCLS0_FLAGS_ENCL_LEVEL_VALID (0x0010) | 3332 | #define MPI26_ENCLS0_FLAGS_ENCL_LEVEL_VALID (0x0010) |
3303 | #define MPI26_ENCLS0_FLAGS_MNG_MASK (0x000F) | 3333 | #define MPI26_ENCLS0_FLAGS_MNG_MASK (0x000F) |
@@ -3696,8 +3726,9 @@ typedef struct _MPI26_PCIE_IO_UNIT1_PHY_DATA { | |||
3696 | Mpi26PCIeIOUnit1PhyData_t, *pMpi26PCIeIOUnit1PhyData_t; | 3726 | Mpi26PCIeIOUnit1PhyData_t, *pMpi26PCIeIOUnit1PhyData_t; |
3697 | 3727 | ||
3698 | /*values for LinkFlags */ | 3728 | /*values for LinkFlags */ |
3699 | #define MPI26_PCIEIOUNIT1_LINKFLAGS_DIS_SRIS (0x00) | 3729 | #define MPI26_PCIEIOUNIT1_LINKFLAGS_DIS_SEPARATE_REFCLK (0x00) |
3700 | #define MPI26_PCIEIOUNIT1_LINKFLAGS_EN_SRIS (0x01) | 3730 | #define MPI26_PCIEIOUNIT1_LINKFLAGS_SRIS_EN (0x01) |
3731 | #define MPI26_PCIEIOUNIT1_LINKFLAGS_SRNS_EN (0x02) | ||
3701 | 3732 | ||
3702 | /* | 3733 | /* |
3703 | *Host code (drivers, BIOS, utilities, etc.) should leave this define set to | 3734 | *Host code (drivers, BIOS, utilities, etc.) should leave this define set to |
@@ -3714,7 +3745,7 @@ typedef struct _MPI26_CONFIG_PAGE_PIOUNIT_1 { | |||
3714 | U16 AdditionalControlFlags; /*0x0C */ | 3745 | U16 AdditionalControlFlags; /*0x0C */ |
3715 | U16 NVMeMaxQueueDepth; /*0x0E */ | 3746 | U16 NVMeMaxQueueDepth; /*0x0E */ |
3716 | U8 NumPhys; /*0x10 */ | 3747 | U8 NumPhys; /*0x10 */ |
3717 | U8 Reserved1; /*0x11 */ | 3748 | U8 DMDReportPCIe; /*0x11 */ |
3718 | U16 Reserved2; /*0x12 */ | 3749 | U16 Reserved2; /*0x12 */ |
3719 | MPI26_PCIE_IO_UNIT1_PHY_DATA | 3750 | MPI26_PCIE_IO_UNIT1_PHY_DATA |
3720 | PhyData[MPI26_PCIE_IOUNIT1_PHY_MAX];/*0x14 */ | 3751 | PhyData[MPI26_PCIE_IOUNIT1_PHY_MAX];/*0x14 */ |
@@ -3736,6 +3767,12 @@ typedef struct _MPI26_CONFIG_PAGE_PIOUNIT_1 { | |||
3736 | #define MPI26_PCIEIOUNIT1_MAX_RATE_8_0 (0x40) | 3767 | #define MPI26_PCIEIOUNIT1_MAX_RATE_8_0 (0x40) |
3737 | #define MPI26_PCIEIOUNIT1_MAX_RATE_16_0 (0x50) | 3768 | #define MPI26_PCIEIOUNIT1_MAX_RATE_16_0 (0x50) |
3738 | 3769 | ||
3770 | /*values for PCIe IO Unit Page 1 DMDReportPCIe */ | ||
3771 | #define MPI26_PCIEIOUNIT1_DMDRPT_UNIT_MASK (0x80) | ||
3772 | #define MPI26_PCIEIOUNIT1_DMDRPT_UNIT_1_SEC (0x00) | ||
3773 | #define MPI26_PCIEIOUNIT1_DMDRPT_UNIT_16_SEC (0x80) | ||
3774 | #define MPI26_PCIEIOUNIT1_DMDRPT_DELAY_TIME_MASK (0x7F) | ||
3775 | |||
3739 | /*see mpi2_pci.h for values for PCIe IO Unit Page 0 ControllerPhyDeviceInfo | 3776 | /*see mpi2_pci.h for values for PCIe IO Unit Page 0 ControllerPhyDeviceInfo |
3740 | *values | 3777 | *values |
3741 | */ | 3778 | */ |
@@ -3788,6 +3825,9 @@ typedef struct _MPI26_CONFIG_PAGE_PSWITCH_1 { | |||
3788 | 3825 | ||
3789 | /*use MPI26_PCIE_NEG_LINK_RATE_ defines for the NegotiatedLinkRate field */ | 3826 | /*use MPI26_PCIE_NEG_LINK_RATE_ defines for the NegotiatedLinkRate field */ |
3790 | 3827 | ||
3828 | /* defines for the Flags field */ | ||
3829 | #define MPI26_PCIESWITCH1_2_RETIMER_PRESENCE (0x0002) | ||
3830 | #define MPI26_PCIESWITCH1_RETIMER_PRESENCE (0x0001) | ||
3791 | 3831 | ||
3792 | /**************************************************************************** | 3832 | /**************************************************************************** |
3793 | * PCIe Device Config Pages (MPI v2.6 and later) | 3833 | * PCIe Device Config Pages (MPI v2.6 and later) |
@@ -3849,19 +3889,21 @@ typedef struct _MPI26_CONFIG_PAGE_PCIEDEV_0 { | |||
3849 | *field | 3889 | *field |
3850 | */ | 3890 | */ |
3851 | 3891 | ||
3852 | /*values for PCIe Device Page 0 Flags field */ | 3892 | /*values for PCIe Device Page 0 Flags field*/ |
3853 | #define MPI26_PCIEDEV0_FLAGS_UNAUTHORIZED_DEVICE (0x8000) | 3893 | #define MPI26_PCIEDEV0_FLAGS_2_RETIMER_PRESENCE (0x00020000) |
3854 | #define MPI26_PCIEDEV0_FLAGS_ENABLED_FAST_PATH (0x4000) | 3894 | #define MPI26_PCIEDEV0_FLAGS_RETIMER_PRESENCE (0x00010000) |
3855 | #define MPI26_PCIEDEV0_FLAGS_FAST_PATH_CAPABLE (0x2000) | 3895 | #define MPI26_PCIEDEV0_FLAGS_UNAUTHORIZED_DEVICE (0x00008000) |
3856 | #define MPI26_PCIEDEV0_FLAGS_ASYNCHRONOUS_NOTIFICATION (0x0400) | 3896 | #define MPI26_PCIEDEV0_FLAGS_ENABLED_FAST_PATH (0x00004000) |
3857 | #define MPI26_PCIEDEV0_FLAGS_ATA_SW_PRESERVATION (0x0200) | 3897 | #define MPI26_PCIEDEV0_FLAGS_FAST_PATH_CAPABLE (0x00002000) |
3858 | #define MPI26_PCIEDEV0_FLAGS_UNSUPPORTED_DEVICE (0x0100) | 3898 | #define MPI26_PCIEDEV0_FLAGS_ASYNCHRONOUS_NOTIFICATION (0x00000400) |
3859 | #define MPI26_PCIEDEV0_FLAGS_ATA_48BIT_LBA_SUPPORTED (0x0080) | 3899 | #define MPI26_PCIEDEV0_FLAGS_ATA_SW_PRESERVATION (0x00000200) |
3860 | #define MPI26_PCIEDEV0_FLAGS_ATA_SMART_SUPPORTED (0x0040) | 3900 | #define MPI26_PCIEDEV0_FLAGS_UNSUPPORTED_DEVICE (0x00000100) |
3861 | #define MPI26_PCIEDEV0_FLAGS_ATA_NCQ_SUPPORTED (0x0020) | 3901 | #define MPI26_PCIEDEV0_FLAGS_ATA_48BIT_LBA_SUPPORTED (0x00000080) |
3862 | #define MPI26_PCIEDEV0_FLAGS_ATA_FUA_SUPPORTED (0x0010) | 3902 | #define MPI26_PCIEDEV0_FLAGS_ATA_SMART_SUPPORTED (0x00000040) |
3863 | #define MPI26_PCIEDEV0_FLAGS_ENCL_LEVEL_VALID (0x0002) | 3903 | #define MPI26_PCIEDEV0_FLAGS_ATA_NCQ_SUPPORTED (0x00000020) |
3864 | #define MPI26_PCIEDEV0_FLAGS_DEVICE_PRESENT (0x0001) | 3904 | #define MPI26_PCIEDEV0_FLAGS_ATA_FUA_SUPPORTED (0x00000010) |
3905 | #define MPI26_PCIEDEV0_FLAGS_ENCL_LEVEL_VALID (0x00000002) | ||
3906 | #define MPI26_PCIEDEV0_FLAGS_DEVICE_PRESENT (0x00000001) | ||
3865 | 3907 | ||
3866 | /* values for PCIe Device Page 0 SupportedLinkRates field */ | 3908 | /* values for PCIe Device Page 0 SupportedLinkRates field */ |
3867 | #define MPI26_PCIEDEV0_LINK_RATE_16_0_SUPPORTED (0x08) | 3909 | #define MPI26_PCIEDEV0_LINK_RATE_16_0_SUPPORTED (0x08) |