mirror of
https://github.com/freebsd/freebsd-src
synced 2024-10-15 12:54:27 +00:00
mpi3mr: mpi headers update to latest
Reviewed by: imp Approved by: imp Differential revision: https://reviews.freebsd.org/D44428
This commit is contained in:
parent
3012fa8fae
commit
baabb91934
|
@ -1,7 +1,7 @@
|
|||
/*
|
||||
* SPDX-License-Identifier: BSD-2-Clause
|
||||
* SPDX-License-Identifier: BSD-2-Clause-FreeBSD
|
||||
*
|
||||
* Copyright (c) 2016-2023, Broadcom Inc. All rights reserved.
|
||||
* Copyright (c) 2016-2024, Broadcom Inc. All rights reserved.
|
||||
* Support: <fbsd-storage-driver.pdl@broadcom.com>
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/*
|
||||
* SPDX-License-Identifier: BSD-2-Clause
|
||||
* SPDX-License-Identifier: BSD-2-Clause-FreeBSD
|
||||
*
|
||||
* Copyright (c) 2016-2023, Broadcom Inc. All rights reserved.
|
||||
* Copyright (c) 2016-2024, Broadcom Inc. All rights reserved.
|
||||
* Support: <fbsd-storage-driver.pdl@broadcom.com>
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
@ -185,7 +185,7 @@ typedef struct _MPI3_CONFIG_PAGE_HEADER
|
|||
* Common definitions used by Configuration Pages *
|
||||
****************************************************************************/
|
||||
|
||||
/**** Defines for Negotiated Link Rates ****/
|
||||
/**** Defines for NegotiatedLinkRates ****/
|
||||
#define MPI3_SAS_NEG_LINK_RATE_LOGICAL_MASK (0xF0)
|
||||
#define MPI3_SAS_NEG_LINK_RATE_LOGICAL_SHIFT (4)
|
||||
#define MPI3_SAS_NEG_LINK_RATE_PHYSICAL_MASK (0x0F)
|
||||
|
@ -486,6 +486,7 @@ typedef struct _MPI3_MAN6_GPIO_ENTRY
|
|||
#define MPI3_MAN6_GPIO_EXTINT_PARAM1_FLAGS_SOURCE_GENERIC (0x00)
|
||||
#define MPI3_MAN6_GPIO_EXTINT_PARAM1_FLAGS_SOURCE_CABLE_MGMT (0x10)
|
||||
#define MPI3_MAN6_GPIO_EXTINT_PARAM1_FLAGS_SOURCE_ACTIVE_CABLE_OVERCURRENT (0x20)
|
||||
#define MPI3_MAN6_GPIO_EXTINT_PARAM1_FLAGS_ACK_REQUIRED (0x02)
|
||||
|
||||
#define MPI3_MAN6_GPIO_EXTINT_PARAM1_FLAGS_TRIGGER_MASK (0x01)
|
||||
#define MPI3_MAN6_GPIO_EXTINT_PARAM1_FLAGS_TRIGGER_EDGE (0x00)
|
||||
|
@ -1073,7 +1074,7 @@ typedef struct _MPI3_MAN_PAGE12
|
|||
#define MPI3_MAN12_FLAGS_SDATAOUT_TYPE_PUSH_PULL (0x0000)
|
||||
#define MPI3_MAN12_FLAGS_SDATAOUT_TYPE_OPEN_DRAIN (0x0001)
|
||||
|
||||
/**** Defines for the SioClkFreq field ****/
|
||||
/**** Defines for the SClockFreq field ****/
|
||||
#define MPI3_MAN12_SIO_CLK_FREQ_MIN (32) /* 32 Hz min SIO Clk Freq */
|
||||
#define MPI3_MAN12_SIO_CLK_FREQ_MAX (100000) /* 100 KHz max SIO Clk Freq */
|
||||
|
||||
|
@ -1306,7 +1307,7 @@ typedef struct _MPI3_MAN_PAGE20
|
|||
#define MPI3_MAN20_ALLOWEDPERSON_EHBA_ALLOWED (0x01)
|
||||
#define MPI3_MAN20_ALLOWEDPERSON_EHBA_NOT_ALLOWED (0x00)
|
||||
|
||||
/**** Defines for the NonpremuimFeatures field ****/
|
||||
/**** Defines for the NonpremiumFeatures field ****/
|
||||
#define MPI3_MAN20_NONPREMUIM_DISABLE_PD_DEGRADED_MASK (0x01)
|
||||
#define MPI3_MAN20_NONPREMUIM_DISABLE_PD_DEGRADED_ENABLED (0x00)
|
||||
#define MPI3_MAN20_NONPREMUIM_DISABLE_PD_DEGRADED_DISABLED (0x01)
|
||||
|
@ -1338,6 +1339,23 @@ typedef struct _MPI3_MAN_PAGE21
|
|||
#define MPI3_MAN21_FLAGS_SES_VPD_ASSOC_DEFAULT (0x00000000)
|
||||
#define MPI3_MAN21_FLAGS_SES_VPD_ASSOC_OEM_SPECIFIC (0x00000001)
|
||||
|
||||
/*****************************************************************************
|
||||
* Manufacturing Page 22 *
|
||||
****************************************************************************/
|
||||
|
||||
typedef struct _MPI3_MAN_PAGE22
|
||||
{
|
||||
MPI3_CONFIG_PAGE_HEADER Header; /* 0x00 */
|
||||
U32 Reserved08; /* 0x08 */
|
||||
U16 NumEUI64; /* 0x0C */
|
||||
U16 Reserved0E; /* 0x0E */
|
||||
U64 BaseEUI64; /* 0x10 */
|
||||
} MPI3_MAN_PAGE22, MPI3_POINTER PTR_MPI3_MAN_PAGE22,
|
||||
Mpi3ManPage22_t, MPI3_POINTER pMpi3ManPage22_t;
|
||||
|
||||
/**** Defines for the PageVersion field ****/
|
||||
#define MPI3_MAN22_PAGEVERSION (0x00)
|
||||
|
||||
/*****************************************************************************
|
||||
* Manufacturing Pages 32-63 (ProductSpecific) *
|
||||
****************************************************************************/
|
||||
|
@ -1434,13 +1452,21 @@ typedef struct _MPI3_IO_UNIT_PAGE2
|
|||
* IO Unit Page 3 *
|
||||
****************************************************************************/
|
||||
|
||||
typedef enum _MPI3_IOUNIT3_THRESHOLD
|
||||
{
|
||||
MPI3_IOUNIT3_THRESHOLD_WARNING = 0,
|
||||
MPI3_IOUNIT3_THRESHOLD_CRITICAL = 1,
|
||||
MPI3_IOUNIT3_THRESHOLD_FATAL = 2,
|
||||
MPI3_IOUNIT3_THRESHOLD_LOW = 3,
|
||||
MPI3_IOUNIT3_NUM_THRESHOLDS
|
||||
} MPI3_IOUNIT3_THRESHOLD;
|
||||
|
||||
typedef struct _MPI3_IO_UNIT3_SENSOR
|
||||
{
|
||||
U16 Flags; /* 0x00 */
|
||||
U8 ThresholdMargin; /* 0x02 */
|
||||
U8 Reserved03; /* 0x03 */
|
||||
U16 Threshold[3]; /* 0x04 */
|
||||
U16 Reserved0A; /* 0x0A */
|
||||
U16 Threshold[MPI3_IOUNIT3_NUM_THRESHOLDS]; /* 0x04 */
|
||||
U32 Reserved0C; /* 0x0C */
|
||||
U32 Reserved10; /* 0x10 */
|
||||
U32 Reserved14; /* 0x14 */
|
||||
|
@ -1448,6 +1474,7 @@ typedef struct _MPI3_IO_UNIT3_SENSOR
|
|||
Mpi3IOUnit3Sensor_t, MPI3_POINTER pMpi3IOUnit3Sensor_t;
|
||||
|
||||
/**** Defines for the Flags field ****/
|
||||
#define MPI3_IOUNIT3_SENSOR_FLAGS_LOW_THRESHOLD_VALID (0x0020)
|
||||
#define MPI3_IOUNIT3_SENSOR_FLAGS_FATAL_EVENT_ENABLED (0x0010)
|
||||
#define MPI3_IOUNIT3_SENSOR_FLAGS_FATAL_ACTION_ENABLED (0x0008)
|
||||
#define MPI3_IOUNIT3_SENSOR_FLAGS_CRITICAL_EVENT_ENABLED (0x0004)
|
||||
|
@ -1591,7 +1618,7 @@ typedef struct _MPI3_IO_UNIT_PAGE5
|
|||
#define MPI3_IOUNIT5_FLAGS_POWER_CAPABLE_SPINUP (0x02)
|
||||
#define MPI3_IOUNIT5_FLAGS_AUTO_PORT_ENABLE (0x01)
|
||||
|
||||
/**** Defines for the PHY field ****/
|
||||
/**** Defines for the Phy field ****/
|
||||
#define MPI3_IOUNIT5_PHY_SPINUP_GROUP_MASK (0x03)
|
||||
|
||||
/*****************************************************************************
|
||||
|
@ -1621,11 +1648,33 @@ typedef struct _MPI3_IO_UNIT_PAGE6
|
|||
#define MPI3_IOUNIT8_DIGEST_MAX (1)
|
||||
#endif /* MPI3_IOUNIT8_DIGEST_MAX */
|
||||
|
||||
typedef union _MPI3_IOUNIT8_DIGEST
|
||||
typedef union _MPI3_IOUNIT8_RAW_DIGEST
|
||||
{
|
||||
U32 Dword[16];
|
||||
U16 Word[32];
|
||||
U8 Byte[64];
|
||||
} MPI3_IOUNIT8_RAW_DIGEST, MPI3_POINTER PTR_MPI3_IOUNIT8_RAW_DIGEST,
|
||||
Mpi3IOUnit8RawDigest_t, MPI3_POINTER pMpi3IOUnit8RawDigest_t;
|
||||
|
||||
typedef struct _MPI3_IOUNIT8_METADATA_DIGEST
|
||||
{
|
||||
U8 SlotStatus; /* 0x00 */
|
||||
U8 Reserved01[3]; /* 0x01 */
|
||||
U32 Reserved04[3]; /* 0x04 */
|
||||
MPI3_IOUNIT8_RAW_DIGEST DigestData; /* 0x10 */
|
||||
} MPI3_IOUNIT8_METADATA_DIGEST, MPI3_POINTER PTR_MPI3_IOUNIT8_METADATA_DIGEST,
|
||||
Mpi3IOUnit8MetadataDigest_t, MPI3_POINTER pMpi3IOUnit8MetadataDigest_t;
|
||||
|
||||
/**** Defines for the SlotStatus field ****/
|
||||
#define MPI3_IOUNIT8_METADATA_DIGEST_SLOTSTATUS_UNUSED (0x00)
|
||||
#define MPI3_IOUNIT8_METADATA_DIGEST_SLOTSTATUS_UPDATE_PENDING (0x01)
|
||||
#define MPI3_IOUNIT8_METADATA_DIGEST_SLOTSTATUS_VALID (0x03)
|
||||
#define MPI3_IOUNIT8_METADATA_DIGEST_SLOTSTATUS_INVALID (0x07)
|
||||
|
||||
typedef union _MPI3_IOUNIT8_DIGEST
|
||||
{
|
||||
MPI3_IOUNIT8_RAW_DIGEST RawDigest[MPI3_IOUNIT8_DIGEST_MAX];
|
||||
MPI3_IOUNIT8_METADATA_DIGEST MetadataDigest[MPI3_IOUNIT8_DIGEST_MAX];
|
||||
} MPI3_IOUNIT8_DIGEST, MPI3_POINTER PTR_MPI3_IOUNIT8_DIGEST,
|
||||
Mpi3IOUnit8Digest_t, MPI3_POINTER pMpi3IOUnit8Digest_t;
|
||||
|
||||
|
@ -1633,8 +1682,9 @@ typedef struct _MPI3_IO_UNIT_PAGE8
|
|||
{
|
||||
MPI3_CONFIG_PAGE_HEADER Header; /* 0x00 */
|
||||
U8 SBMode; /* 0x08 */
|
||||
U8 SbState; /* 0x09 */
|
||||
U16 Reserved0A; /* 0x0A */
|
||||
U8 SBState; /* 0x09 */
|
||||
U8 Flags; /* 0x0A */
|
||||
U8 Reserved0A; /* 0x0B */
|
||||
U8 NumSlots; /* 0x0C */
|
||||
U8 SlotsAvailable; /* 0x0D */
|
||||
U8 CurrentKeyEncryptionAlgo; /* 0x0E */
|
||||
|
@ -1642,7 +1692,7 @@ typedef struct _MPI3_IO_UNIT_PAGE8
|
|||
MPI3_VERSION_UNION CurrentSvn; /* 0x10 */
|
||||
U32 Reserved14; /* 0x14 */
|
||||
U32 CurrentKey[128]; /* 0x18 */
|
||||
MPI3_IOUNIT8_DIGEST Digest[MPI3_IOUNIT8_DIGEST_MAX]; /* 0x218 */ /* variable length */
|
||||
MPI3_IOUNIT8_DIGEST Digest; /* 0x218 */ /* variable length */
|
||||
} MPI3_IO_UNIT_PAGE8, MPI3_POINTER PTR_MPI3_IO_UNIT_PAGE8,
|
||||
Mpi3IOUnitPage8_t, MPI3_POINTER pMpi3IOUnitPage8_t;
|
||||
|
||||
|
@ -1659,6 +1709,11 @@ typedef struct _MPI3_IO_UNIT_PAGE8
|
|||
#define MPI3_IOUNIT8_SBSTATE_KEY_UPDATE_PENDING (0x02)
|
||||
#define MPI3_IOUNIT8_SBSTATE_SECURE_BOOT_ENABLED (0x01)
|
||||
|
||||
/**** Defines for the Flags field ****/
|
||||
#define MPI3_IOUNIT8_FLAGS_DIGESTFORM_MASK (0x07)
|
||||
#define MPI3_IOUNIT8_FLAGS_DIGESTFORM_RAW (0x00)
|
||||
#define MPI3_IOUNIT8_FLAGS_DIGESTFORM_DIGEST_WITH_METADATA (0x01)
|
||||
|
||||
/*****************************************************************************
|
||||
* IO Unit Page 9 *
|
||||
****************************************************************************/
|
||||
|
@ -1908,6 +1963,38 @@ typedef struct _MPI3_IO_UNIT_PAGE15
|
|||
/**** Defines for the NumPowerBudgetData field ****/
|
||||
#define MPI3_IOUNIT15_NUMPOWERBUDGETDATA_POWER_BUDGETING_DISABLED (0x00)
|
||||
|
||||
/*****************************************************************************
|
||||
* IO Unit Page 16 *
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef MPI3_IOUNIT16_ERROR_MAX
|
||||
#define MPI3_IOUNIT16_ERROR_MAX (1)
|
||||
#endif /* MPI3_IOUNIT16_ERROR_MAX */
|
||||
|
||||
typedef struct _MPI3_IOUNIT16_ERROR
|
||||
{
|
||||
U32 Offset; /* 0x00 */
|
||||
U32 Reserved04; /* 0x04 */
|
||||
U64 Count; /* 0x08 */
|
||||
U64 Timestamp; /* 0x10 */
|
||||
} MPI3_IOUNIT16_ERROR, MPI3_POINTER PTR_MPI3_IOUNIT16_ERROR,
|
||||
Mpi3IOUnit16Error_t, MPI3_POINTER pMpi3IOUnit16Error_t;
|
||||
|
||||
typedef struct _MPI3_IO_UNIT_PAGE16
|
||||
{
|
||||
MPI3_CONFIG_PAGE_HEADER Header; /* 0x00 */
|
||||
U64 TotalErrorCount; /* 0x08 */
|
||||
U32 Reserved10[3]; /* 0x10 */
|
||||
U8 NumErrors; /* 0x1C */
|
||||
U8 MaxErrorsTracked; /* 0x1D */
|
||||
U16 Reserved1E; /* 0x1E */
|
||||
MPI3_IOUNIT16_ERROR Error[MPI3_IOUNIT16_ERROR_MAX]; /* 0x20 */ /* variable length */
|
||||
} MPI3_IO_UNIT_PAGE16, MPI3_POINTER PTR_MPI3_IO_UNIT_PAGE16,
|
||||
Mpi3IOUnitPage16_t, MPI3_POINTER pMpi3IOUnitPage16_t;
|
||||
|
||||
/**** Defines for the PageVersion field ****/
|
||||
#define MPI3_IOUNIT16_PAGEVERSION (0x00)
|
||||
|
||||
/*****************************************************************************
|
||||
* IOC Configuration Pages *
|
||||
****************************************************************************/
|
||||
|
@ -1973,7 +2060,8 @@ typedef struct _MPI3_IOC_PAGE2
|
|||
* Driver Configuration Pages *
|
||||
****************************************************************************/
|
||||
|
||||
/**** Defines for the Flags field ****/
|
||||
/**** Defines for the Flags field in Driver Pages 10, 20, and 30 ****/
|
||||
/**** NOT used in Driver Page 1 Flags field ****/
|
||||
#define MPI3_DRIVER_FLAGS_ADMINRAIDPD_BLOCKED (0x0010)
|
||||
#define MPI3_DRIVER_FLAGS_OOBRAIDPD_BLOCKED (0x0008)
|
||||
#define MPI3_DRIVER_FLAGS_OOBRAIDVD_BLOCKED (0x0004)
|
||||
|
@ -2006,7 +2094,7 @@ typedef struct _MPI3_ALLOWED_CMD_NVME
|
|||
} MPI3_ALLOWED_CMD_NVME, MPI3_POINTER PTR_MPI3_ALLOWED_CMD_NVME,
|
||||
Mpi3AllowedCmdNvme_t, MPI3_POINTER pMpi3AllowedCmdNvme_t;
|
||||
|
||||
/**** Defines for the CommandFlags field ****/
|
||||
/**** Defines for the NVMeCmdFlags field ****/
|
||||
#define MPI3_DRIVER_ALLOWEDCMD_NVMECMDFLAGS_SUBQ_TYPE_MASK (0x80)
|
||||
#define MPI3_DRIVER_ALLOWEDCMD_NVMECMDFLAGS_SUBQ_TYPE_IO (0x00)
|
||||
#define MPI3_DRIVER_ALLOWEDCMD_NVMECMDFLAGS_SUBQ_TYPE_ADMIN (0x80)
|
||||
|
@ -2057,6 +2145,8 @@ typedef struct _MPI3_DRIVER_PAGE0
|
|||
#define MPI3_DRIVER0_PAGEVERSION (0x00)
|
||||
|
||||
/**** Defines for the BSDOptions field ****/
|
||||
#define MPI3_DRIVER0_BSDOPTS_DEVICEEXPOSURE_DISABLE (0x00000020)
|
||||
#define MPI3_DRIVER0_BSDOPTS_WRITECACHE_DISABLE (0x00000010)
|
||||
#define MPI3_DRIVER0_BSDOPTS_HEADLESS_MODE_ENABLE (0x00000008)
|
||||
#define MPI3_DRIVER0_BSDOPTS_DIS_HII_CONFIG_UTIL (0x00000004)
|
||||
#define MPI3_DRIVER0_BSDOPTS_REGISTRATION_MASK (0x00000003)
|
||||
|
@ -2263,14 +2353,6 @@ typedef union _MPI3_SECURITY_NONCE
|
|||
} MPI3_SECURITY_NONCE, MPI3_POINTER PTR_MPI3_SECURITY_NONCE,
|
||||
Mpi3SecurityNonce_t, MPI3_POINTER pMpi3SecurityNonce_t;
|
||||
|
||||
typedef union _MPI3_SECURITY_ROOT_DIGEST
|
||||
{
|
||||
U32 Dword[16];
|
||||
U16 Word[32];
|
||||
U8 Byte[64];
|
||||
} MPI3_SECURITY_ROOT_DIGEST, MPI3_POINTER PTR_MPI3_SECURITY_ROOT_DIGEST,
|
||||
Mpi3SecurityRootDigest_t, MPI3_POINTER pMpi3SecurityRootDigest_t;
|
||||
|
||||
/*****************************************************************************
|
||||
* Security Page 0 *
|
||||
****************************************************************************/
|
||||
|
@ -2382,17 +2464,25 @@ typedef struct _MPI3_SECURITY_PAGE1
|
|||
#define MPI3_SECURITY2_TRUSTED_ROOT_MAX 1
|
||||
#endif /* MPI3_SECURITY2_TRUSTED_ROOT_MAX */
|
||||
|
||||
#ifndef MPI3_SECURITY2_ROOT_LEN
|
||||
#define MPI3_SECURITY2_ROOT_LEN 4
|
||||
#endif /* MPI3_SECURITY2_ROOT_LEN */
|
||||
|
||||
typedef struct _MPI3_SECURITY2_TRUSTED_ROOT
|
||||
{
|
||||
U8 Level; /* 0x00 */
|
||||
U8 HashAlgorithm; /* 0x01 */
|
||||
U16 TrustedRootFlags; /* 0x02 */
|
||||
U32 Reserved04[3]; /* 0x04 */
|
||||
MPI3_SECURITY_ROOT_DIGEST RootDigest; /* 0x10 */
|
||||
U8 Root[MPI3_SECURITY2_ROOT_LEN]; /* 0x10 */ /* variable length */
|
||||
} MPI3_SECURITY2_TRUSTED_ROOT, MPI3_POINTER PTR_MPI3_SECURITY2_TRUSTED_ROOT,
|
||||
Mpi3Security2TrustedRoot_t, MPI3_POINTER pMpi3Security2TrustedRoot_t;
|
||||
|
||||
/**** Defines for the TrustedRootFlags field ****/
|
||||
#define MPI3_SECURITY2_TRUSTEDROOT_TRUSTEDROOTFLAGS_ROOTFORM_MASK (0xF000)
|
||||
#define MPI3_SECURITY2_TRUSTEDROOT_TRUSTEDROOTFLAGS_ROOTFORM_SHIFT (12)
|
||||
#define MPI3_SECURITY2_TRUSTEDROOT_TRUSTEDROOTFLAGS_ROOTFORM_DIGEST (0x0000)
|
||||
#define MPI3_SECURITY2_TRUSTEDROOT_TRUSTEDROOTFLAGS_ROOTFORM_DERCERT (0x1000)
|
||||
#define MPI3_SECURITY2_TRUSTEDROOT_TRUSTEDROOTFLAGS_HASHALGOSOURCE_MASK (0x0006)
|
||||
#define MPI3_SECURITY2_TRUSTEDROOT_TRUSTEDROOTFLAGS_HASHALGOSOURCE_SHIFT (1)
|
||||
#define MPI3_SECURITY2_TRUSTEDROOT_TRUSTEDROOTFLAGS_HASHALGOSOURCE_HA_FIELD (0x0000)
|
||||
|
@ -2407,7 +2497,8 @@ typedef struct _MPI3_SECURITY_PAGE2
|
|||
MPI3_SECURITY_NONCE Nonce; /* 0x50 */
|
||||
U32 Reserved90[3]; /* 0x90 */
|
||||
U8 NumRoots; /* 0x9C */
|
||||
U8 Reserved9D[3]; /* 0x9D */
|
||||
U8 Reserved9D; /* 0x9D */
|
||||
U16 RootElementSize; /* 0x9E */
|
||||
MPI3_SECURITY2_TRUSTED_ROOT TrustedRoot[MPI3_SECURITY2_TRUSTED_ROOT_MAX]; /* 0xA0 */ /* variable length */
|
||||
} MPI3_SECURITY_PAGE2, MPI3_POINTER PTR_MPI3_SECURITY_PAGE2,
|
||||
Mpi3SecurityPage2_t, MPI3_POINTER pMpi3SecurityPage2_t;
|
||||
|
@ -3052,7 +3143,7 @@ typedef struct _MPI3_SAS_PHY_PAGE4
|
|||
* Common definitions used by PCIe Configuration Pages *
|
||||
****************************************************************************/
|
||||
|
||||
/**** Defines for Negotiated Link Rates ****/
|
||||
/**** Defines for NegotiatedLinkRates ****/
|
||||
#define MPI3_PCIE_LINK_RETIMERS_MASK (0x30)
|
||||
#define MPI3_PCIE_LINK_RETIMERS_SHIFT (4)
|
||||
#define MPI3_PCIE_NEG_LINK_RATE_MASK (0x0F)
|
||||
|
@ -3219,8 +3310,8 @@ typedef struct _MPI3_PCIE_IO_UNIT_PAGE1
|
|||
#define MPI3_PCIEIOUNIT1_CONTROL_FLAGS_PERST_OVERRIDE_BACKPLANE_ERROR (0x60000000)
|
||||
#define MPI3_PCIEIOUNIT1_CONTROL_FLAGS_REFCLK_OVERRIDE_MASK (0x1C000000)
|
||||
#define MPI3_PCIEIOUNIT1_CONTROL_FLAGS_REFCLK_OVERRIDE_NONE (0x00000000)
|
||||
#define MPI3_PCIEIOUNIT1_CONTROL_FLAGS_REFCLK_OVERRIDE_DEASSERT (0x04000000)
|
||||
#define MPI3_PCIEIOUNIT1_CONTROL_FLAGS_REFCLK_OVERRIDE_ASSERT (0x08000000)
|
||||
#define MPI3_PCIEIOUNIT1_CONTROL_FLAGS_REFCLK_OVERRIDE_ENABLE (0x04000000)
|
||||
#define MPI3_PCIEIOUNIT1_CONTROL_FLAGS_REFCLK_OVERRIDE_DISABLE (0x08000000)
|
||||
#define MPI3_PCIEIOUNIT1_CONTROL_FLAGS_REFCLK_OVERRIDE_BACKPLANE_ERROR (0x0C000000)
|
||||
#define MPI3_PCIEIOUNIT1_CONTROL_FLAGS_PARTIAL_CAPACITY_ENABLE (0x00000100)
|
||||
#define MPI3_PCIEIOUNIT1_CONTROL_FLAGS_LINK_OVERRIDE_DISABLE (0x00000080)
|
||||
|
@ -3362,12 +3453,14 @@ typedef struct _MPI3_PCIE_SWITCH_PAGE1
|
|||
/**** Defines for the PageVersion field ****/
|
||||
#define MPI3_PCIESWITCH1_PAGEVERSION (0x00)
|
||||
|
||||
/**** Defines for the FLAGS field ****/
|
||||
/**** Defines for the Flags field ****/
|
||||
#define MPI3_PCIESWITCH1_FLAGS_ASPMSTATE_MASK (0x0C)
|
||||
#define MPI3_PCIESWITCH1_FLAGS_ASPMSTATE_SHIFT (2)
|
||||
|
||||
/*** use MPI3_PCIE_ASPM_ENABLE_ defines for ASPMState field values ***/
|
||||
#define MPI3_PCIESWITCH1_FLAGS_ASPMSUPPORT_MASK (0x03)
|
||||
#define MPI3_PCIESWITCH1_FLAGS_ASPMSUPPORT_SHIFT (0)
|
||||
|
||||
/*** use MPI3_PCIE_ASPM_SUPPORT_ defines for ASPMSupport field values ***/
|
||||
|
||||
/**** Defines for the NegotiatedLinkRate field - use MPI3_PCIE_NEG_LINK_RATE_ defines ****/
|
||||
|
@ -3454,6 +3547,8 @@ typedef struct _MPI3_ENCLOSURE_PAGE0
|
|||
U16 SEPDevHandle; /* 0x1A */
|
||||
U8 ChassisSlot; /* 0x1C */
|
||||
U8 Reserved1D[3]; /* 0x1D */
|
||||
U32 ReceptacleIDs; /* 0x20 */
|
||||
U32 Reserved24; /* 0x24 */
|
||||
} MPI3_ENCLOSURE_PAGE0, MPI3_POINTER PTR_MPI3_ENCLOSURE_PAGE0,
|
||||
Mpi3EnclosurePage0_t, MPI3_POINTER pMpi3EnclosurePage0_t;
|
||||
|
||||
|
@ -3474,7 +3569,8 @@ typedef struct _MPI3_ENCLOSURE_PAGE0
|
|||
#define MPI3_ENCLS0_FLAGS_MNG_IOC_SES (0x0001)
|
||||
#define MPI3_ENCLS0_FLAGS_MNG_SES_ENCLOSURE (0x0002)
|
||||
|
||||
/**** Defines for the PhysicalPort field - use MPI3_DEVICE0_PHYPORT_ defines ****/
|
||||
/**** Defines for the ReceptacleIDs field ****/
|
||||
#define MPI3_ENCLS0_RECEPTACLEIDS_NOT_REPORTED (0x00000000)
|
||||
|
||||
/*****************************************************************************
|
||||
* Device Configuration Pages *
|
||||
|
@ -3577,7 +3673,7 @@ typedef struct _MPI3_DEVICE0_PCIE_FORMAT
|
|||
#define MPI3_DEVICE0_PCIE_CAP_ASPM_SHIFT (6)
|
||||
/*** use MPI3_PCIE_ASPM_SUPPORT_ defines for ASPM field values ***/
|
||||
|
||||
/**** Defines for the RecoverMethod field ****/
|
||||
/**** Defines for the RecoveryInfo field ****/
|
||||
#define MPI3_DEVICE0_PCIE_RECOVER_METHOD_MASK (0xE0)
|
||||
#define MPI3_DEVICE0_PCIE_RECOVER_METHOD_NS_MGMT (0x00)
|
||||
#define MPI3_DEVICE0_PCIE_RECOVER_METHOD_FORMAT (0x20)
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/*
|
||||
* SPDX-License-Identifier: BSD-2-Clause
|
||||
* SPDX-License-Identifier: BSD-2-Clause-FreeBSD
|
||||
*
|
||||
* Copyright (c) 2016-2023, Broadcom Inc. All rights reserved.
|
||||
* Copyright (c) 2016-2024, Broadcom Inc. All rights reserved.
|
||||
* Support: <fbsd-storage-driver.pdl@broadcom.com>
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
@ -38,7 +38,6 @@
|
|||
* Broadcom Inc. (Broadcom) MPI3MR Adapter FreeBSD
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef MPI30_IMAGE_H
|
||||
#define MPI30_IMAGE_H 1
|
||||
|
||||
|
@ -119,12 +118,19 @@ typedef struct _MPI3_COMPONENT_IMAGE_HEADER
|
|||
#define MPI3_IMAGE_HEADER_SIGNATURE1_RMC (0x20434D52) /* string "RMC " */
|
||||
#define MPI3_IMAGE_HEADER_SIGNATURE1_SMM (0x204D4D53) /* string "SMM " */
|
||||
#define MPI3_IMAGE_HEADER_SIGNATURE1_PSW (0x20575350) /* string "PSW " */
|
||||
|
||||
#define MPI3_IMAGE_HEADER_SIGNATURE1_CSW (0x20575343) /* string "CSW " */
|
||||
|
||||
/**** Definitions for Signature2 field ****/
|
||||
#define MPI3_IMAGE_HEADER_SIGNATURE2_VALUE (0x50584546)
|
||||
|
||||
/**** Definitions for Flags field ****/
|
||||
#define MPI3_IMAGE_HEADER_FLAGS_SIGNED_UEFI_MASK (0x00000300)
|
||||
#define MPI3_IMAGE_HEADER_FLAGS_SIGNED_UEFI_UNSPECIFIED (0x00000000)
|
||||
#define MPI3_IMAGE_HEADER_FLAGS_SIGNED_UEFI_NOT_SIGNED (0x00000100)
|
||||
#define MPI3_IMAGE_HEADER_FLAGS_SIGNED_UEFI_MICROSOFT_SIGNED (0x00000200)
|
||||
#define MPI3_IMAGE_HEADER_FLAGS_CERT_CHAIN_FORMAT_MASK (0x000000C0)
|
||||
#define MPI3_IMAGE_HEADER_FLAGS_CERT_CHAIN_FORMAT_DEVICE_CERT (0x00000000)
|
||||
#define MPI3_IMAGE_HEADER_FLAGS_CERT_CHAIN_FORMAT_ALIAS_CERT (0x00000040)
|
||||
#define MPI3_IMAGE_HEADER_FLAGS_DEVICE_KEY_BASIS_MASK (0x00000030)
|
||||
#define MPI3_IMAGE_HEADER_FLAGS_DEVICE_KEY_BASIS_CDI (0x00000000)
|
||||
#define MPI3_IMAGE_HEADER_FLAGS_DEVICE_KEY_BASIS_DI (0x00000010)
|
||||
|
@ -216,12 +222,14 @@ typedef struct _MPI3_CI_MANIFEST_MPI
|
|||
|
||||
/* defines for the ReleaseLevel field */
|
||||
#define MPI3_CI_MANIFEST_MPI_RELEASE_LEVEL_DEV (0x00)
|
||||
#define MPI3_CI_MANIFEST_MPI_RELEASE_LEVEL_PRE_PRODUCTION (0x08)
|
||||
#define MPI3_CI_MANIFEST_MPI_RELEASE_LEVEL_PREALPHA (0x10)
|
||||
#define MPI3_CI_MANIFEST_MPI_RELEASE_LEVEL_ALPHA (0x20)
|
||||
#define MPI3_CI_MANIFEST_MPI_RELEASE_LEVEL_BETA (0x30)
|
||||
#define MPI3_CI_MANIFEST_MPI_RELEASE_LEVEL_RC (0x40)
|
||||
#define MPI3_CI_MANIFEST_MPI_RELEASE_LEVEL_GCA (0x50)
|
||||
#define MPI3_CI_MANIFEST_MPI_RELEASE_LEVEL_POINT (0x60)
|
||||
#define MPI3_CI_MANIFEST_MPI_RELEASE_LEVEL_DIAG (0xF0)
|
||||
|
||||
/* defines for the Flags field */
|
||||
#define MPI3_CI_MANIFEST_MPI_FLAGS_DIAG_AUTHORIZATION (0x01)
|
||||
|
@ -314,9 +322,9 @@ typedef struct _MPI3_SUPPORTED_DEVICES_DATA
|
|||
} MPI3_SUPPORTED_DEVICES_DATA, MPI3_POINTER PTR_MPI3_SUPPORTED_DEVICES_DATA,
|
||||
Mpi3SupportedDevicesData_t, MPI3_POINTER pMpi3SupportedDevicesData_t;
|
||||
|
||||
#ifndef MPI3_ENCRYPTED_HASH_MAX
|
||||
#define MPI3_ENCRYPTED_HASH_MAX (1)
|
||||
#endif /* MPI3_ENCRYPTED_HASH_MAX */
|
||||
#ifndef MPI3_PUBLIC_KEY_MAX
|
||||
#define MPI3_PUBLIC_KEY_MAX (1)
|
||||
#endif /* MPI3_PUBLIC_KEY_MAX */
|
||||
|
||||
/* Encrypted Hash Entry Format */
|
||||
typedef struct _MPI3_ENCRYPTED_HASH_ENTRY
|
||||
|
@ -325,8 +333,10 @@ typedef struct _MPI3_ENCRYPTED_HASH_ENTRY
|
|||
U8 HashAlgorithm; /* 0x01 */
|
||||
U8 EncryptionAlgorithm; /* 0x02 */
|
||||
U8 Reserved03; /* 0x03 */
|
||||
U32 Reserved04; /* 0x04 */
|
||||
U32 EncryptedHash[MPI3_ENCRYPTED_HASH_MAX]; /* 0x08 */ /* variable length */
|
||||
U16 PublicKeySize; /* 0x04 */
|
||||
U16 SignatureSize; /* 0x06 */
|
||||
U32 PublicKey[MPI3_PUBLIC_KEY_MAX]; /* 0x08 */ /* variable length */
|
||||
/* Signature - offset of this field must be calculated */ /* variable length */
|
||||
} MPI3_ENCRYPTED_HASH_ENTRY, MPI3_POINTER PTR_MPI3_ENCRYPTED_HASH_ENTRY,
|
||||
Mpi3EncryptedHashEntry_t, MPI3_POINTER pMpi3EncryptedHashEntry_t;
|
||||
|
||||
|
@ -358,24 +368,9 @@ typedef struct _MPI3_ENCRYPTED_HASH_ENTRY
|
|||
#define MPI3_ENCRYPTION_ALGORITHM_ECDSA_P256 (0x07) /* NIST secp256r1 curve */
|
||||
#define MPI3_ENCRYPTION_ALGORITHM_ECDSA_P384 (0x08) /* NIST secp384r1 curve */
|
||||
#define MPI3_ENCRYPTION_ALGORITHM_ECDSA_P521 (0x09) /* NIST secp521r1 curve */
|
||||
|
||||
|
||||
#ifndef MPI3_PUBLIC_KEY_MAX
|
||||
#define MPI3_PUBLIC_KEY_MAX (1)
|
||||
#endif /* MPI3_PUBLIC_KEY_MAX */
|
||||
|
||||
/* Encrypted Key with Hash Entry Format */
|
||||
typedef struct _MPI3_ENCRYPTED_KEY_WITH_HASH_ENTRY
|
||||
{
|
||||
U8 HashImageType; /* 0x00 */
|
||||
U8 HashAlgorithm; /* 0x01 */
|
||||
U8 EncryptionAlgorithm; /* 0x02 */
|
||||
U8 Reserved03; /* 0x03 */
|
||||
U32 Reserved04; /* 0x04 */
|
||||
U32 PublicKey[MPI3_PUBLIC_KEY_MAX]; /* 0x08 */ /* variable length */
|
||||
/* EncryptedHash - offset of this field must be calculated */ /* variable length */
|
||||
} MPI3_ENCRYPTED_KEY_WITH_HASH_ENTRY, MPI3_POINTER PTR_MPI3_ENCRYPTED_KEY_WITH_HASH_ENTRY,
|
||||
Mpi3EncryptedKeyWithHashEntry_t, MPI3_POINTER pMpi3EncryptedKeyWithHashEntry_t;
|
||||
#define MPI3_ENCRYPTION_ALGORITHM_LMS_HSS (0x0A) /* Leighton-Micali Signature (LMS) -
|
||||
* Hierarchical Signature System (HSS)
|
||||
*/
|
||||
|
||||
#ifndef MPI3_ENCRYPTED_HASH_ENTRY_MAX
|
||||
#define MPI3_ENCRYPTED_HASH_ENTRY_MAX (1)
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/*
|
||||
* SPDX-License-Identifier: BSD-2-Clause
|
||||
* SPDX-License-Identifier: BSD-2-Clause-FreeBSD
|
||||
*
|
||||
* Copyright (c) 2016-2023, Broadcom Inc. All rights reserved.
|
||||
* Copyright (c) 2016-2024, Broadcom Inc. All rights reserved.
|
||||
* Support: <fbsd-storage-driver.pdl@broadcom.com>
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
@ -38,7 +38,6 @@
|
|||
* Broadcom Inc. (Broadcom) MPI3MR Adapter FreeBSD
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef MPI30_INIT_H
|
||||
#define MPI30_INIT_H 1
|
||||
|
||||
|
@ -78,7 +77,7 @@ typedef struct _MPI3_SCSI_IO_REQUEST
|
|||
U16 ChangeCount; /* 0x08 */
|
||||
U16 DevHandle; /* 0x0A */
|
||||
U32 Flags; /* 0x0C */
|
||||
U32 SkipCount; /* 0x10 */
|
||||
U32 IOCUseOnly10; /* 0x10 */
|
||||
U32 DataLength; /* 0x14 */
|
||||
U8 LUN[8]; /* 0x18 */
|
||||
MPI3_SCSI_IO_CDB_UNION CDB; /* 0x20 */
|
||||
|
@ -91,10 +90,12 @@ typedef struct _MPI3_SCSI_IO_REQUEST
|
|||
#define MPI3_SCSIIO_MSGFLAGS_DIVERT_TO_FIRMWARE (0x40)
|
||||
|
||||
/**** Defines for the Flags field ****/
|
||||
#define MPI3_SCSIIO_FLAGS_LARGE_CDB (0x60000000)
|
||||
#define MPI3_SCSIIO_FLAGS_LARGE_CDB_MASK (0x60000000)
|
||||
#define MPI3_SCSIIO_FLAGS_CDB_16_OR_LESS (0x00000000)
|
||||
#define MPI3_SCSIIO_FLAGS_CDB_GREATER_THAN_16 (0x20000000)
|
||||
#define MPI3_SCSIIO_FLAGS_CDB_IN_SEPARATE_BUFFER (0x40000000)
|
||||
#define MPI3_SCSIIO_FLAGS_CDB_PRODUCT_SPECIFIC (0x60000000)
|
||||
#define MPI3_SCSIIO_FLAGS_IOC_USE_ONLY_27_MASK (0x18000000)
|
||||
#define MPI3_SCSIIO_FLAGS_TASKATTRIBUTE_MASK (0x07000000)
|
||||
#define MPI3_SCSIIO_FLAGS_TASKATTRIBUTE_SIMPLEQ (0x00000000)
|
||||
#define MPI3_SCSIIO_FLAGS_TASKATTRIBUTE_HEADOFQ (0x01000000)
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/*
|
||||
* SPDX-License-Identifier: BSD-2-Clause
|
||||
* SPDX-License-Identifier: BSD-2-Clause-FreeBSD
|
||||
*
|
||||
* Copyright (c) 2016-2023, Broadcom Inc. All rights reserved.
|
||||
* Copyright (c) 2016-2024, Broadcom Inc. All rights reserved.
|
||||
* Support: <fbsd-storage-driver.pdl@broadcom.com>
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
@ -38,7 +38,6 @@
|
|||
* Broadcom Inc. (Broadcom) MPI3MR Adapter FreeBSD
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef MPI30_IOC_H
|
||||
#define MPI30_IOC_H 1
|
||||
|
||||
|
@ -76,6 +75,8 @@ typedef struct _MPI3_IOC_INIT_REQUEST
|
|||
Mpi3IOCInitRequest_t, MPI3_POINTER pMpi3IOCInitRequest_t;
|
||||
|
||||
/**** Defines for the MsgFlags field ****/
|
||||
#define MPI3_IOCINIT_MSGFLAGS_WRITESAMEDIVERT_SUPPORTED (0x08)
|
||||
#define MPI3_IOCINIT_MSGFLAGS_SCSIIOSTATUSREPLY_SUPPORTED (0x04)
|
||||
#define MPI3_IOCINIT_MSGFLAGS_HOSTMETADATA_MASK (0x03)
|
||||
#define MPI3_IOCINIT_MSGFLAGS_HOSTMETADATA_NOT_USED (0x00)
|
||||
#define MPI3_IOCINIT_MSGFLAGS_HOSTMETADATA_SEPARATED (0x01)
|
||||
|
@ -173,6 +174,8 @@ typedef struct _MPI3_IOC_FACTS_DATA
|
|||
U16 MaxIOThrottleGroup; /* 0x62 */
|
||||
U16 IOThrottleLow; /* 0x64 */
|
||||
U16 IOThrottleHigh; /* 0x66 */
|
||||
U32 DiagFdlSize; /* 0x68 */
|
||||
U32 DiagTtySize; /* 0x6C */
|
||||
} MPI3_IOC_FACTS_DATA, MPI3_POINTER PTR_MPI3_IOC_FACTS_DATA,
|
||||
Mpi3IOCFactsData_t, MPI3_POINTER pMpi3IOCFactsData_t;
|
||||
|
||||
|
@ -183,13 +186,13 @@ typedef struct _MPI3_IOC_FACTS_DATA
|
|||
#define MPI3_IOCFACTS_CAPABILITY_INT_COALESCE_MASK (0x00000600)
|
||||
#define MPI3_IOCFACTS_CAPABILITY_INT_COALESCE_FIXED_THRESHOLD (0x00000000)
|
||||
#define MPI3_IOCFACTS_CAPABILITY_INT_COALESCE_OUTSTANDING_IO (0x00000200)
|
||||
#define MPI3_IOCFACTS_CAPABILITY_COMPLETE_RESET_CAPABLE (0x00000100)
|
||||
#define MPI3_IOCFACTS_CAPABILITY_SEG_DIAG_TRACE_ENABLED (0x00000080)
|
||||
#define MPI3_IOCFACTS_CAPABILITY_SEG_DIAG_FW_ENABLED (0x00000040)
|
||||
#define MPI3_IOCFACTS_CAPABILITY_SEG_DIAG_DRIVER_ENABLED (0x00000020)
|
||||
#define MPI3_IOCFACTS_CAPABILITY_ADVANCED_HOST_PD_ENABLED (0x00000010)
|
||||
#define MPI3_IOCFACTS_CAPABILITY_RAID_CAPABLE (0x00000008)
|
||||
#define MPI3_IOCFACTS_CAPABILITY_MULTIPATH_ENABLED (0x00000002)
|
||||
#define MPI3_IOCFACTS_CAPABILITY_COMPLETE_RESET_SUPPORTED (0x00000100)
|
||||
#define MPI3_IOCFACTS_CAPABILITY_SEG_DIAG_TRACE_SUPPORTED (0x00000080)
|
||||
#define MPI3_IOCFACTS_CAPABILITY_SEG_DIAG_FW_SUPPORTED (0x00000040)
|
||||
#define MPI3_IOCFACTS_CAPABILITY_SEG_DIAG_DRIVER_SUPPORTED (0x00000020)
|
||||
#define MPI3_IOCFACTS_CAPABILITY_ADVANCED_HOST_PD_SUPPORTED (0x00000010)
|
||||
#define MPI3_IOCFACTS_CAPABILITY_RAID_SUPPORTED (0x00000008)
|
||||
#define MPI3_IOCFACTS_CAPABILITY_MULTIPATH_SUPPORTED (0x00000002)
|
||||
#define MPI3_IOCFACTS_CAPABILITY_COALESCE_CTRL_SUPPORTED (0x00000001)
|
||||
|
||||
/**** WhoInit values are defined under IOCInit Request Message definition ****/
|
||||
|
@ -237,6 +240,7 @@ typedef struct _MPI3_IOC_FACTS_DATA
|
|||
#define MPI3_IOCFACTS_FLAGS_SIGNED_NVDATA_REQUIRED (0x00010000)
|
||||
#define MPI3_IOCFACTS_FLAGS_DMA_ADDRESS_WIDTH_MASK (0x0000FF00)
|
||||
#define MPI3_IOCFACTS_FLAGS_DMA_ADDRESS_WIDTH_SHIFT (8)
|
||||
#define MPI3_IOCFACTS_FLAGS_MAX_REQ_PER_REPLY_QUEUE_LIMIT (0x00000040)
|
||||
#define MPI3_IOCFACTS_FLAGS_INITIAL_PORT_ENABLE_MASK (0x00000030)
|
||||
#define MPI3_IOCFACTS_FLAGS_INITIAL_PORT_ENABLE_NOT_STARTED (0x00000000)
|
||||
#define MPI3_IOCFACTS_FLAGS_INITIAL_PORT_ENABLE_IN_PROGRESS (0x00000010)
|
||||
|
@ -248,9 +252,15 @@ typedef struct _MPI3_IOC_FACTS_DATA
|
|||
/**** Defines for the IOThrottleDataLength field ****/
|
||||
#define MPI3_IOCFACTS_IO_THROTTLE_DATA_LENGTH_NOT_REQUIRED (0x0000)
|
||||
|
||||
/**** Defines for the IOThrottleDataLength field ****/
|
||||
/**** Defines for the MaxIOThrottleGroup field ****/
|
||||
#define MPI3_IOCFACTS_MAX_IO_THROTTLE_GROUP_NOT_REQUIRED (0x0000)
|
||||
|
||||
/**** Defines for the DiagFdlSize field ****/
|
||||
#define MPI3_IOCFACTS_DIAGFDLSIZE_NOT_SUPPORTED (0x00000000)
|
||||
|
||||
/**** Defines for the DiagTtySize field ****/
|
||||
#define MPI3_IOCFACTS_DIAGTTYSIZE_NOT_SUPPORTED (0x00000000)
|
||||
|
||||
/*****************************************************************************
|
||||
* Management Passthrough Request Message *
|
||||
****************************************************************************/
|
||||
|
@ -440,9 +450,9 @@ typedef struct _MPI3_EVENT_NOTIFICATION_REQUEST
|
|||
} MPI3_EVENT_NOTIFICATION_REQUEST, MPI3_POINTER PTR_MPI3_EVENT_NOTIFICATION_REQUEST,
|
||||
Mpi3EventNotificationRequest_t, MPI3_POINTER pMpi3EventNotificationRequest_t;
|
||||
|
||||
/**** Defines for the SASBroadcastPrimitiveMasks field - use MPI3_EVENT_PRIMITIVE_ values ****/
|
||||
/**** Defines for the SASBroadcastPrimitiveMasks field - use MPI3_EVENT_BROADCAST_PRIMITIVE_ values ****/
|
||||
|
||||
/**** Defines for the SASNotifyPrimitiveMasks field - use MPI3_EVENT_NOTIFY_ values ****/
|
||||
/**** Defines for the SASNotifyPrimitiveMasks field - use MPI3_EVENT_NOTIFY_PRIMITIVE_ values ****/
|
||||
|
||||
/**** Defines for the EventMasks field - use MPI3_EVENT_ values ****/
|
||||
|
||||
|
@ -716,7 +726,7 @@ typedef struct _MPI3_EVENT_SAS_TOPO_PHY_ENTRY
|
|||
{
|
||||
U16 AttachedDevHandle; /* 0x00 */
|
||||
U8 LinkRate; /* 0x02 */
|
||||
U8 Status; /* 0x03 */
|
||||
U8 PhyStatus; /* 0x03 */
|
||||
} MPI3_EVENT_SAS_TOPO_PHY_ENTRY, MPI3_POINTER PTR_MPI3_EVENT_SAS_TOPO_PHY_ENTRY,
|
||||
Mpi3EventSasTopoPhyEntry_t, MPI3_POINTER pMpi3EventSasTopoPhyEntry_t;
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/*
|
||||
* SPDX-License-Identifier: BSD-2-Clause
|
||||
* SPDX-License-Identifier: BSD-2-Clause-FreeBSD
|
||||
*
|
||||
* Copyright (c) 2016-2023, Broadcom Inc. All rights reserved.
|
||||
* Copyright (c) 2016-2024, Broadcom Inc. All rights reserved.
|
||||
* Support: <fbsd-storage-driver.pdl@broadcom.com>
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
@ -38,7 +38,6 @@
|
|||
* Broadcom Inc. (Broadcom) MPI3MR Adapter FreeBSD
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef MPI30_PCI_H
|
||||
#define MPI30_PCI_H 1
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/*
|
||||
* SPDX-License-Identifier: BSD-2-Clause
|
||||
* SPDX-License-Identifier: BSD-2-Clause-FreeBSD
|
||||
*
|
||||
* Copyright (c) 2016-2023, Broadcom Inc. All rights reserved.
|
||||
* Copyright (c) 2016-2024, Broadcom Inc. All rights reserved.
|
||||
* Support: <fbsd-storage-driver.pdl@broadcom.com>
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
@ -38,7 +38,6 @@
|
|||
* Broadcom Inc. (Broadcom) MPI3MR Adapter FreeBSD
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef MPI30_RAID_H
|
||||
#define MPI30_RAID_H 1
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/*
|
||||
* SPDX-License-Identifier: BSD-2-Clause
|
||||
* SPDX-License-Identifier: BSD-2-Clause-FreeBSD
|
||||
*
|
||||
* Copyright (c) 2016-2023, Broadcom Inc. All rights reserved.
|
||||
* Copyright (c) 2016-2024, Broadcom Inc. All rights reserved.
|
||||
* Support: <fbsd-storage-driver.pdl@broadcom.com>
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
@ -38,7 +38,6 @@
|
|||
* Broadcom Inc. (Broadcom) MPI3MR Adapter FreeBSD
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef MPI30_SAS_H
|
||||
#define MPI30_SAS_H 1
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/*
|
||||
* SPDX-License-Identifier: BSD-2-Clause
|
||||
* SPDX-License-Identifier: BSD-2-Clause-FreeBSD
|
||||
*
|
||||
* Copyright (c) 2016-2023, Broadcom Inc. All rights reserved.
|
||||
* Copyright (c) 2016-2024, Broadcom Inc. All rights reserved.
|
||||
* Support: <fbsd-storage-driver.pdl@broadcom.com>
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
@ -38,7 +38,6 @@
|
|||
* Broadcom Inc. (Broadcom) MPI3MR Adapter FreeBSD
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef MPI30_TARG_H
|
||||
#define MPI30_TARG_H 1
|
||||
|
||||
|
@ -191,7 +190,7 @@ typedef struct _MPI3_TARGET_ASSIST_REQUEST
|
|||
U16 QueueTag; /* 0x12 */
|
||||
U16 IoIndex; /* 0x14 */
|
||||
U16 InitiatorConnectionTag; /* 0x16 */
|
||||
U32 SkipCount; /* 0x18 */
|
||||
U32 IOCUseOnly18; /* 0x18 */
|
||||
U32 DataLength; /* 0x1C */
|
||||
U32 PortTransferLength; /* 0x20 */
|
||||
U32 PrimaryReferenceTag; /* 0x24 */
|
||||
|
@ -206,6 +205,8 @@ typedef struct _MPI3_TARGET_ASSIST_REQUEST
|
|||
#define MPI3_TARGET_ASSIST_MSGFLAGS_METASGL_VALID (0x80)
|
||||
|
||||
/**** Defines for the Flags field ****/
|
||||
#define MPI3_TARGET_ASSIST_FLAGS_IOC_USE_ONLY_23_MASK (0x00800000)
|
||||
#define MPI3_TARGET_ASSIST_FLAGS_IOC_USE_ONLY_22_MASK (0x00400000)
|
||||
#define MPI3_TARGET_ASSIST_FLAGS_REPOST_CMD_BUFFER (0x00200000)
|
||||
#define MPI3_TARGET_ASSIST_FLAGS_AUTO_STATUS (0x00100000)
|
||||
#define MPI3_TARGET_ASSIST_FLAGS_DATADIRECTION_MASK (0x000C0000)
|
||||
|
@ -243,6 +244,7 @@ typedef struct _MPI3_TARGET_STATUS_SEND_REQUEST
|
|||
Mpi3TargetStatusSendRequest_t, MPI3_POINTER pMpi3TargetStatusSendRequest_t;
|
||||
|
||||
/**** Defines for the Flags field ****/
|
||||
#define MPI3_TSS_FLAGS_IOC_USE_ONLY_6_MASK (0x0040)
|
||||
#define MPI3_TSS_FLAGS_REPOST_CMD_BUFFER (0x0020)
|
||||
#define MPI3_TSS_FLAGS_AUTO_SEND_GOOD_STATUS (0x0010)
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/*
|
||||
* SPDX-License-Identifier: BSD-2-Clause
|
||||
* SPDX-License-Identifier: BSD-2-Clause-FreeBSD
|
||||
*
|
||||
* Copyright (c) 2016-2023, Broadcom Inc. All rights reserved.
|
||||
* Copyright (c) 2016-2024, Broadcom Inc. All rights reserved.
|
||||
* Support: <fbsd-storage-driver.pdl@broadcom.com>
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
@ -38,7 +38,6 @@
|
|||
* Broadcom Inc. (Broadcom) MPI3MR Adapter FreeBSD
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef MPI30_TOOL_H
|
||||
#define MPI30_TOOL_H 1
|
||||
|
||||
|
@ -366,6 +365,7 @@ typedef struct _MPI3_DIAG_BUFFER_POST_REQUEST
|
|||
#define MPI3_DIAG_BUFFER_TYPE_FW (0x02)
|
||||
#define MPI3_DIAG_BUFFER_TYPE_DRIVER (0x10)
|
||||
#define MPI3_DIAG_BUFFER_TYPE_FDL (0x20)
|
||||
#define MPI3_DIAG_BUFFER_TYPE_TTY (0x30)
|
||||
#define MPI3_DIAG_BUFFER_MIN_PRODUCT_SPECIFIC (0xF0)
|
||||
#define MPI3_DIAG_BUFFER_MAX_PRODUCT_SPECIFIC (0xFF)
|
||||
|
||||
|
@ -388,7 +388,7 @@ typedef struct _MPI3_DRIVER_BUFFER_HEADER
|
|||
} MPI3_DRIVER_BUFFER_HEADER, MPI3_POINTER PTR_MPI3_DRIVER_BUFFER_HEADER,
|
||||
Mpi3DriverBufferHeader_t, MPI3_POINTER pMpi3DriverBufferHeader_t;
|
||||
|
||||
/**** Defines for the Type field ****/
|
||||
/**** Defines for the Signature field ****/
|
||||
#define MPI3_DRIVER_DIAG_BUFFER_HEADER_SIGNATURE_CIRCULAR (0x43495243)
|
||||
|
||||
/**** Defines for the Flags field ****/
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/*
|
||||
* SPDX-License-Identifier: BSD-2-Clause
|
||||
* SPDX-License-Identifier: BSD-2-Clause-FreeBSD
|
||||
*
|
||||
* Copyright (c) 2016-2023, Broadcom Inc. All rights reserved.
|
||||
* Copyright (c) 2016-2024, Broadcom Inc. All rights reserved.
|
||||
* Support: <fbsd-storage-driver.pdl@broadcom.com>
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
@ -37,9 +37,7 @@
|
|||
*
|
||||
* Broadcom Inc. (Broadcom) MPI3MR Adapter FreeBSD
|
||||
*
|
||||
*/
|
||||
|
||||
/*
|
||||
*
|
||||
* Version History
|
||||
* ---------------
|
||||
*
|
||||
|
@ -72,7 +70,11 @@
|
|||
* 09-02-22 03.00.27.00 Corresponds to Fusion-MPT MPI 3.0 Specification Rev 27.
|
||||
* 10-20-22 03.00.27.01 Corresponds to Fusion-MPT MPI 3.0 Specification Rev 27 - Interim Release 1.
|
||||
* 12-02-22 03.00.28.00 Corresponds to Fusion-MPT MPI 3.0 Specification Rev 28.
|
||||
* 02-24-22 03.00.29.00 Corresponds to Fusion-MPT MPI 3.0 Specification Rev 29.
|
||||
* 02-24-23 03.00.29.00 Corresponds to Fusion-MPT MPI 3.0 Specification Rev 29.
|
||||
* 05-19-23 03.00.30.00 Corresponds to Fusion-MPT MPI 3.0 Specification Rev 30.
|
||||
* 08-18-23 03.00.30.01 Corresponds to Fusion-MPT MPI 3.0 Specification Rev 30 - Interim Release 1.
|
||||
* 11-17-23 03.00.31.00 Corresponds to Fusion-MPT MPI 3.0 Specification Rev 31
|
||||
* 02-16-24 03.00.32.00 Corresponds to Fusion-MPT MPI 3.0 Specification Rev 32
|
||||
*/
|
||||
#ifndef MPI30_TRANSPORT_H
|
||||
#define MPI30_TRANSPORT_H 1
|
||||
|
@ -101,7 +103,7 @@ typedef union _MPI3_VERSION_UNION
|
|||
/****** Version constants for this revision ****/
|
||||
#define MPI3_VERSION_MAJOR (3)
|
||||
#define MPI3_VERSION_MINOR (0)
|
||||
#define MPI3_VERSION_UNIT (29)
|
||||
#define MPI3_VERSION_UNIT (32)
|
||||
#define MPI3_VERSION_DEV (0)
|
||||
|
||||
/****** DevHandle definitions *****/
|
||||
|
@ -425,15 +427,9 @@ typedef struct _MPI3_STATUS_REPLY_DESCRIPTOR
|
|||
} MPI3_STATUS_REPLY_DESCRIPTOR, MPI3_POINTER PTR_MPI3_STATUS_REPLY_DESCRIPTOR,
|
||||
Mpi3StatusReplyDescriptor_t, MPI3_POINTER pMpi3StatusReplyDescriptor_t;
|
||||
|
||||
/**** Defines for the IOCStatus field ****/
|
||||
#define MPI3_REPLY_DESCRIPT_STATUS_IOCSTATUS_LOGINFOAVAIL (0x8000)
|
||||
#define MPI3_REPLY_DESCRIPT_STATUS_IOCSTATUS_STATUS_MASK (0x7FFF)
|
||||
/**** Use MPI3_IOCSTATUS_ defines for the IOCStatus field ****/
|
||||
|
||||
/**** Defines for the IOCLogInfo field ****/
|
||||
#define MPI3_REPLY_DESCRIPT_STATUS_IOCLOGINFO_TYPE_MASK (0xF0000000)
|
||||
#define MPI3_REPLY_DESCRIPT_STATUS_IOCLOGINFO_TYPE_NO_INFO (0x00000000)
|
||||
#define MPI3_REPLY_DESCRIPT_STATUS_IOCLOGINFO_TYPE_SAS (0x30000000)
|
||||
#define MPI3_REPLY_DESCRIPT_STATUS_IOCLOGINFO_DATA_MASK (0x0FFFFFFF)
|
||||
/**** Use MPI3_IOCLOGINFO_ defines for the IOCLogInfo field ****/
|
||||
|
||||
/*****************************************************************************
|
||||
* Union of Reply Descriptors *
|
||||
|
@ -652,7 +648,6 @@ typedef struct _MPI3_DEFAULT_REPLY
|
|||
#define MPI3_FUNCTION_MAX_PRODUCT_SPECIFIC (0xFF) /* End of the product-specific range of function codes */
|
||||
|
||||
/**** Defines for IOCStatus ****/
|
||||
#define MPI3_IOCSTATUS_LOG_INFO_AVAIL_MASK (0x8000)
|
||||
#define MPI3_IOCSTATUS_LOG_INFO_AVAILABLE (0x8000)
|
||||
#define MPI3_IOCSTATUS_STATUS_MASK (0x7FFF)
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/*
|
||||
* SPDX-License-Identifier: BSD-2-Clause
|
||||
* SPDX-License-Identifier: BSD-2-Clause-FreeBSD
|
||||
*
|
||||
* Copyright (c) 2016-2023, Broadcom Inc. All rights reserved.
|
||||
* Copyright (c) 2016-2024, Broadcom Inc. All rights reserved.
|
||||
* Support: <fbsd-storage-driver.pdl@broadcom.com>
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
@ -38,7 +38,6 @@
|
|||
* Broadcom Inc. (Broadcom) MPI3MR Adapter FreeBSD
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef MPI30_TYPE_H
|
||||
#define MPI30_TYPE_H 1
|
||||
|
||||
|
|
|
@ -2268,7 +2268,7 @@ mpi3mr_display_ioc_info(struct mpi3mr_softc *sc)
|
|||
printf("Capabilities=(");
|
||||
|
||||
if (sc->facts.ioc_capabilities &
|
||||
MPI3_IOCFACTS_CAPABILITY_RAID_CAPABLE) {
|
||||
MPI3_IOCFACTS_CAPABILITY_RAID_SUPPORTED) {
|
||||
printf("RAID");
|
||||
i++;
|
||||
}
|
||||
|
@ -3888,7 +3888,7 @@ static void mpi3mr_sastopochg_evt_th(struct mpi3mr_softc *sc,
|
|||
handle = le16toh(topo_evt->PhyEntry[i].AttachedDevHandle);
|
||||
if (!handle)
|
||||
continue;
|
||||
reason_code = topo_evt->PhyEntry[i].Status &
|
||||
reason_code = topo_evt->PhyEntry[i].PhyStatus &
|
||||
MPI3_EVENT_SAS_TOPO_PHY_RC_MASK;
|
||||
tgtdev = mpi3mr_find_target_by_dev_handle(sc->cam_sc, handle);
|
||||
switch (reason_code) {
|
||||
|
@ -4279,10 +4279,9 @@ static void mpi3mr_process_admin_reply_desc(struct mpi3mr_softc *sc,
|
|||
status_desc = (Mpi3StatusReplyDescriptor_t *)reply_desc;
|
||||
host_tag = status_desc->HostTag;
|
||||
ioc_status = status_desc->IOCStatus;
|
||||
if (ioc_status &
|
||||
MPI3_REPLY_DESCRIPT_STATUS_IOCSTATUS_LOGINFOAVAIL)
|
||||
if (ioc_status & MPI3_IOCSTATUS_STATUS_MASK)
|
||||
ioc_loginfo = status_desc->IOCLogInfo;
|
||||
ioc_status &= MPI3_REPLY_DESCRIPT_STATUS_IOCSTATUS_STATUS_MASK;
|
||||
ioc_status &= MPI3_IOCSTATUS_STATUS_MASK;
|
||||
break;
|
||||
case MPI3_REPLY_DESCRIPT_FLAGS_TYPE_ADDRESS_REPLY:
|
||||
addr_desc = (Mpi3AddressReplyDescriptor_t *)reply_desc;
|
||||
|
@ -4292,10 +4291,9 @@ static void mpi3mr_process_admin_reply_desc(struct mpi3mr_softc *sc,
|
|||
goto out;
|
||||
host_tag = def_reply->HostTag;
|
||||
ioc_status = def_reply->IOCStatus;
|
||||
if (ioc_status &
|
||||
MPI3_REPLY_DESCRIPT_STATUS_IOCSTATUS_LOGINFOAVAIL)
|
||||
if (ioc_status & MPI3_IOCSTATUS_STATUS_MASK)
|
||||
ioc_loginfo = def_reply->IOCLogInfo;
|
||||
ioc_status &= MPI3_REPLY_DESCRIPT_STATUS_IOCSTATUS_STATUS_MASK;
|
||||
ioc_status &= MPI3_IOCSTATUS_STATUS_MASK;
|
||||
if (def_reply->Function == MPI3_FUNCTION_SCSI_IO) {
|
||||
scsi_reply = (Mpi3SCSIIOReply_t *)def_reply;
|
||||
sense_buf = mpi3mr_get_sensebuf_virt_addr(sc,
|
||||
|
@ -4496,10 +4494,9 @@ void mpi3mr_process_op_reply_desc(struct mpi3mr_softc *sc,
|
|||
status_desc = (Mpi3StatusReplyDescriptor_t *)reply_desc;
|
||||
host_tag = status_desc->HostTag;
|
||||
ioc_status = status_desc->IOCStatus;
|
||||
if (ioc_status &
|
||||
MPI3_REPLY_DESCRIPT_STATUS_IOCSTATUS_LOGINFOAVAIL)
|
||||
if (ioc_status & MPI3_IOCSTATUS_STATUS_MASK)
|
||||
ioc_loginfo = status_desc->IOCLogInfo;
|
||||
ioc_status &= MPI3_REPLY_DESCRIPT_STATUS_IOCSTATUS_STATUS_MASK;
|
||||
ioc_status &= MPI3_IOCSTATUS_STATUS_MASK;
|
||||
break;
|
||||
case MPI3_REPLY_DESCRIPT_FLAGS_TYPE_ADDRESS_REPLY:
|
||||
addr_desc = (Mpi3AddressReplyDescriptor_t *)reply_desc;
|
||||
|
@ -4523,10 +4520,9 @@ void mpi3mr_process_op_reply_desc(struct mpi3mr_softc *sc,
|
|||
resp_data = scsi_reply->ResponseData;
|
||||
sense_buf = mpi3mr_get_sensebuf_virt_addr(sc,
|
||||
scsi_reply->SenseDataBufferAddress);
|
||||
if (ioc_status &
|
||||
MPI3_REPLY_DESCRIPT_STATUS_IOCSTATUS_LOGINFOAVAIL)
|
||||
if (ioc_status & MPI3_IOCSTATUS_STATUS_MASK)
|
||||
ioc_loginfo = scsi_reply->IOCLogInfo;
|
||||
ioc_status &= MPI3_REPLY_DESCRIPT_STATUS_IOCSTATUS_STATUS_MASK;
|
||||
ioc_status &= MPI3_IOCSTATUS_STATUS_MASK;
|
||||
if (sense_state == MPI3_SCSI_STATE_SENSE_BUFF_Q_EMPTY)
|
||||
mpi3mr_dprint(sc, MPI3MR_ERROR, "Ran out of sense buffers\n");
|
||||
|
||||
|
@ -4728,7 +4724,7 @@ void mpi3mr_process_op_reply_desc(struct mpi3mr_softc *sc,
|
|||
csio->resid = cm->length - le32toh(xfer_count);
|
||||
case MPI3_IOCSTATUS_SCSI_RECOVERED_ERROR:
|
||||
case MPI3_IOCSTATUS_SUCCESS:
|
||||
if ((scsi_reply->IOCStatus & MPI3_REPLY_DESCRIPT_STATUS_IOCSTATUS_STATUS_MASK) ==
|
||||
if ((scsi_reply->IOCStatus & MPI3_IOCSTATUS_STATUS_MASK) ==
|
||||
MPI3_IOCSTATUS_SCSI_RECOVERED_ERROR)
|
||||
mpi3mr_dprint(sc, MPI3MR_XINFO, "func: %s line: %d recovered error\n", __func__, __LINE__);
|
||||
|
||||
|
|
|
@ -1560,7 +1560,7 @@ mpi3mr_sastopochg_evt_debug(struct mpi3mr_softc *sc,
|
|||
if (!handle)
|
||||
continue;
|
||||
phy_number = event_data->StartPhyNum + i;
|
||||
reason_code = event_data->PhyEntry[i].Status &
|
||||
reason_code = event_data->PhyEntry[i].PhyStatus &
|
||||
MPI3_EVENT_SAS_TOPO_PHY_RC_MASK;
|
||||
switch (reason_code) {
|
||||
case MPI3_EVENT_SAS_TOPO_PHY_RC_TARG_NOT_RESPONDING:
|
||||
|
@ -1613,7 +1613,7 @@ mpi3mr_process_sastopochg_evt(struct mpi3mr_softc *sc, struct mpi3mr_fw_event_wo
|
|||
continue;
|
||||
|
||||
target->link_rate = link_rate;
|
||||
reason_code = event_data->PhyEntry[i].Status &
|
||||
reason_code = event_data->PhyEntry[i].PhyStatus &
|
||||
MPI3_EVENT_SAS_TOPO_PHY_RC_MASK;
|
||||
|
||||
switch (reason_code) {
|
||||
|
|
Loading…
Reference in a new issue