Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/mpi3mr/mpi/mpi30_transport.h
/* | /* | ||||
* 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> | * Support: <fbsd-storage-driver.pdl@broadcom.com> | ||||
* | * | ||||
* Redistribution and use in source and binary forms, with or without | * Redistribution and use in source and binary forms, with or without | ||||
* modification, are permitted provided that the following conditions are | * modification, are permitted provided that the following conditions are | ||||
* met: | * met: | ||||
* | * | ||||
* 1. Redistributions of source code must retain the above copyright notice, | * 1. Redistributions of source code must retain the above copyright notice, | ||||
* this list of conditions and the following disclaimer. | * this list of conditions and the following disclaimer. | ||||
Show All 19 Lines | |||||
* The views and conclusions contained in the software and documentation are | * The views and conclusions contained in the software and documentation are | ||||
* those of the authors and should not be interpreted as representing | * those of the authors and should not be interpreted as representing | ||||
* official policies,either expressed or implied, of the FreeBSD Project. | * official policies,either expressed or implied, of the FreeBSD Project. | ||||
* | * | ||||
* Mail to: Broadcom Inc 1320 Ridder Park Dr, San Jose, CA 95131 | * Mail to: Broadcom Inc 1320 Ridder Park Dr, San Jose, CA 95131 | ||||
* | * | ||||
* Broadcom Inc. (Broadcom) MPI3MR Adapter FreeBSD | * Broadcom Inc. (Broadcom) MPI3MR Adapter FreeBSD | ||||
* | * | ||||
*/ | * | ||||
/* | |||||
* Version History | * Version History | ||||
* --------------- | * --------------- | ||||
* | * | ||||
* Date Version Description | * Date Version Description | ||||
* -------- ----------- ------------------------------------------------------ | * -------- ----------- ------------------------------------------------------ | ||||
* 11-30-18 03.00.00.08 Corresponds to Fusion-MPT MPI 3.0 Specification Rev H. | * 11-30-18 03.00.00.08 Corresponds to Fusion-MPT MPI 3.0 Specification Rev H. | ||||
* 02-08-19 03.00.00.09 Corresponds to Fusion-MPT MPI 3.0 Specification Rev I. | * 02-08-19 03.00.00.09 Corresponds to Fusion-MPT MPI 3.0 Specification Rev I. | ||||
* 05-03-19 03.00.00.10 Corresponds to Fusion-MPT MPI 3.0 Specification Rev J. | * 05-03-19 03.00.00.10 Corresponds to Fusion-MPT MPI 3.0 Specification Rev J. | ||||
* 08-30-19 03.00.00.12 Corresponds to Fusion-MPT MPI 3.0 Specification Rev L. | * 08-30-19 03.00.00.12 Corresponds to Fusion-MPT MPI 3.0 Specification Rev L. | ||||
Show All 15 Lines | |||||
* 10-23-21 03.00.23.01 Corresponds to Fusion-MPT MPI 3.0 Specification Rev 23 - Interim Release 1. | * 10-23-21 03.00.23.01 Corresponds to Fusion-MPT MPI 3.0 Specification Rev 23 - Interim Release 1. | ||||
* 12-03-21 03.00.24.00 Corresponds to Fusion-MPT MPI 3.0 Specification Rev 24. | * 12-03-21 03.00.24.00 Corresponds to Fusion-MPT MPI 3.0 Specification Rev 24. | ||||
* 02-25-22 03.00.25.00 Corresponds to Fusion-MPT MPI 3.0 Specification Rev 25. | * 02-25-22 03.00.25.00 Corresponds to Fusion-MPT MPI 3.0 Specification Rev 25. | ||||
* 06-03-22 03.00.26.00 Corresponds to Fusion-MPT MPI 3.0 Specification Rev 26. | * 06-03-22 03.00.26.00 Corresponds to Fusion-MPT MPI 3.0 Specification Rev 26. | ||||
* 08-09-22 03.00.26.01 Corresponds to Fusion-MPT MPI 3.0 Specification Rev 26 - Interim Release 1. | * 08-09-22 03.00.26.01 Corresponds to Fusion-MPT MPI 3.0 Specification Rev 26 - Interim Release 1. | ||||
* 09-02-22 03.00.27.00 Corresponds to Fusion-MPT MPI 3.0 Specification Rev 27. | * 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. | * 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. | * 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 | #ifndef MPI30_TRANSPORT_H | ||||
#define MPI30_TRANSPORT_H 1 | #define MPI30_TRANSPORT_H 1 | ||||
/***************************************************************************** | /***************************************************************************** | ||||
* Common version structure/union used in * | * Common version structure/union used in * | ||||
* messages and configuration pages * | * messages and configuration pages * | ||||
****************************************************************************/ | ****************************************************************************/ | ||||
Show All 12 Lines | typedef union _MPI3_VERSION_UNION | ||||
MPI3_VERSION_STRUCT Struct; | MPI3_VERSION_STRUCT Struct; | ||||
U32 Word; | U32 Word; | ||||
} MPI3_VERSION_UNION, MPI3_POINTER PTR_MPI3_VERSION_UNION, | } MPI3_VERSION_UNION, MPI3_POINTER PTR_MPI3_VERSION_UNION, | ||||
Mpi3VersionUnion_t, MPI3_POINTER pMpi3VersionUnion_t; | Mpi3VersionUnion_t, MPI3_POINTER pMpi3VersionUnion_t; | ||||
/****** Version constants for this revision ****/ | /****** Version constants for this revision ****/ | ||||
#define MPI3_VERSION_MAJOR (3) | #define MPI3_VERSION_MAJOR (3) | ||||
#define MPI3_VERSION_MINOR (0) | #define MPI3_VERSION_MINOR (0) | ||||
#define MPI3_VERSION_UNIT (29) | #define MPI3_VERSION_UNIT (32) | ||||
#define MPI3_VERSION_DEV (0) | #define MPI3_VERSION_DEV (0) | ||||
/****** DevHandle definitions *****/ | /****** DevHandle definitions *****/ | ||||
#define MPI3_DEVHANDLE_INVALID (0xFFFF) | #define MPI3_DEVHANDLE_INVALID (0xFFFF) | ||||
/***************************************************************************** | /***************************************************************************** | ||||
* System Interface Register Definitions * | * System Interface Register Definitions * | ||||
****************************************************************************/ | ****************************************************************************/ | ||||
▲ Show 20 Lines • Show All 307 Lines • ▼ Show 20 Lines | typedef struct _MPI3_STATUS_REPLY_DESCRIPTOR | ||||
U32 IOCLogInfo; /* 0x04 */ | U32 IOCLogInfo; /* 0x04 */ | ||||
U16 RequestQueueCI; /* 0x08 */ | U16 RequestQueueCI; /* 0x08 */ | ||||
U16 RequestQueueID; /* 0x0A */ | U16 RequestQueueID; /* 0x0A */ | ||||
U16 HostTag; /* 0x0C */ | U16 HostTag; /* 0x0C */ | ||||
U16 ReplyFlags; /* 0x0E */ | U16 ReplyFlags; /* 0x0E */ | ||||
} MPI3_STATUS_REPLY_DESCRIPTOR, MPI3_POINTER PTR_MPI3_STATUS_REPLY_DESCRIPTOR, | } MPI3_STATUS_REPLY_DESCRIPTOR, MPI3_POINTER PTR_MPI3_STATUS_REPLY_DESCRIPTOR, | ||||
Mpi3StatusReplyDescriptor_t, MPI3_POINTER pMpi3StatusReplyDescriptor_t; | Mpi3StatusReplyDescriptor_t, MPI3_POINTER pMpi3StatusReplyDescriptor_t; | ||||
/**** Defines for the IOCStatus field ****/ | /**** Use MPI3_IOCSTATUS_ defines for the IOCStatus field ****/ | ||||
#define MPI3_REPLY_DESCRIPT_STATUS_IOCSTATUS_LOGINFOAVAIL (0x8000) | |||||
#define MPI3_REPLY_DESCRIPT_STATUS_IOCSTATUS_STATUS_MASK (0x7FFF) | |||||
/**** Defines for the IOCLogInfo field ****/ | /**** Use MPI3_IOCLOGINFO_ 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) | |||||
/***************************************************************************** | /***************************************************************************** | ||||
* Union of Reply Descriptors * | * Union of Reply Descriptors * | ||||
****************************************************************************/ | ****************************************************************************/ | ||||
typedef union _MPI3_REPLY_DESCRIPTORS_UNION | typedef union _MPI3_REPLY_DESCRIPTORS_UNION | ||||
{ | { | ||||
MPI3_DEFAULT_REPLY_DESCRIPTOR Default; | MPI3_DEFAULT_REPLY_DESCRIPTOR Default; | ||||
MPI3_ADDRESS_REPLY_DESCRIPTOR AddressReply; | MPI3_ADDRESS_REPLY_DESCRIPTOR AddressReply; | ||||
▲ Show 20 Lines • Show All 202 Lines • ▼ Show 20 Lines | |||||
/* Miscellaneous functions */ | /* Miscellaneous functions */ | ||||
#define MPI3_FUNCTION_MIN_IOC_USE_ONLY (0xC0) /* Beginning of IOC Use Only range of function codes */ | #define MPI3_FUNCTION_MIN_IOC_USE_ONLY (0xC0) /* Beginning of IOC Use Only range of function codes */ | ||||
#define MPI3_FUNCTION_MAX_IOC_USE_ONLY (0xEF) /* End of IOC Use Only range of function codes */ | #define MPI3_FUNCTION_MAX_IOC_USE_ONLY (0xEF) /* End of IOC Use Only range of function codes */ | ||||
#define MPI3_FUNCTION_MIN_PRODUCT_SPECIFIC (0xF0) /* Beginning of the product-specific range of function codes */ | #define MPI3_FUNCTION_MIN_PRODUCT_SPECIFIC (0xF0) /* Beginning of the product-specific range of function codes */ | ||||
#define MPI3_FUNCTION_MAX_PRODUCT_SPECIFIC (0xFF) /* End of the product-specific range of function codes */ | #define MPI3_FUNCTION_MAX_PRODUCT_SPECIFIC (0xFF) /* End of the product-specific range of function codes */ | ||||
/**** Defines for IOCStatus ****/ | /**** Defines for IOCStatus ****/ | ||||
#define MPI3_IOCSTATUS_LOG_INFO_AVAIL_MASK (0x8000) | |||||
#define MPI3_IOCSTATUS_LOG_INFO_AVAILABLE (0x8000) | #define MPI3_IOCSTATUS_LOG_INFO_AVAILABLE (0x8000) | ||||
#define MPI3_IOCSTATUS_STATUS_MASK (0x7FFF) | #define MPI3_IOCSTATUS_STATUS_MASK (0x7FFF) | ||||
/* Common IOCStatus values for all replies */ | /* Common IOCStatus values for all replies */ | ||||
#define MPI3_IOCSTATUS_SUCCESS (0x0000) | #define MPI3_IOCSTATUS_SUCCESS (0x0000) | ||||
#define MPI3_IOCSTATUS_INVALID_FUNCTION (0x0001) | #define MPI3_IOCSTATUS_INVALID_FUNCTION (0x0001) | ||||
#define MPI3_IOCSTATUS_BUSY (0x0002) | #define MPI3_IOCSTATUS_BUSY (0x0002) | ||||
#define MPI3_IOCSTATUS_INVALID_SGL (0x0003) | #define MPI3_IOCSTATUS_INVALID_SGL (0x0003) | ||||
▲ Show 20 Lines • Show All 85 Lines • Show Last 20 Lines |