162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Copyright 2000-2020 Broadcom Inc. All rights reserved. 462306a36Sopenharmony_ci * 562306a36Sopenharmony_ci * 662306a36Sopenharmony_ci * Name: mpi2_ioc.h 762306a36Sopenharmony_ci * Title: MPI IOC, Port, Event, FW Download, and FW Upload messages 862306a36Sopenharmony_ci * Creation Date: October 11, 2006 962306a36Sopenharmony_ci * 1062306a36Sopenharmony_ci * mpi2_ioc.h Version: 02.00.37 1162306a36Sopenharmony_ci * 1262306a36Sopenharmony_ci * NOTE: Names (typedefs, defines, etc.) beginning with an MPI25 or Mpi25 1362306a36Sopenharmony_ci * prefix are for use only on MPI v2.5 products, and must not be used 1462306a36Sopenharmony_ci * with MPI v2.0 products. Unless otherwise noted, names beginning with 1562306a36Sopenharmony_ci * MPI2 or Mpi2 are for use with both MPI v2.0 and MPI v2.5 products. 1662306a36Sopenharmony_ci * 1762306a36Sopenharmony_ci * Version History 1862306a36Sopenharmony_ci * --------------- 1962306a36Sopenharmony_ci * 2062306a36Sopenharmony_ci * Date Version Description 2162306a36Sopenharmony_ci * -------- -------- ------------------------------------------------------ 2262306a36Sopenharmony_ci * 04-30-07 02.00.00 Corresponds to Fusion-MPT MPI Specification Rev A. 2362306a36Sopenharmony_ci * 06-04-07 02.00.01 In IOCFacts Reply structure, renamed MaxDevices to 2462306a36Sopenharmony_ci * MaxTargets. 2562306a36Sopenharmony_ci * Added TotalImageSize field to FWDownload Request. 2662306a36Sopenharmony_ci * Added reserved words to FWUpload Request. 2762306a36Sopenharmony_ci * 06-26-07 02.00.02 Added IR Configuration Change List Event. 2862306a36Sopenharmony_ci * 08-31-07 02.00.03 Removed SystemReplyQueueDepth field from the IOCInit 2962306a36Sopenharmony_ci * request and replaced it with 3062306a36Sopenharmony_ci * ReplyDescriptorPostQueueDepth and ReplyFreeQueueDepth. 3162306a36Sopenharmony_ci * Replaced the MinReplyQueueDepth field of the IOCFacts 3262306a36Sopenharmony_ci * reply with MaxReplyDescriptorPostQueueDepth. 3362306a36Sopenharmony_ci * Added MPI2_RDPQ_DEPTH_MIN define to specify the minimum 3462306a36Sopenharmony_ci * depth for the Reply Descriptor Post Queue. 3562306a36Sopenharmony_ci * Added SASAddress field to Initiator Device Table 3662306a36Sopenharmony_ci * Overflow Event data. 3762306a36Sopenharmony_ci * 10-31-07 02.00.04 Added ReasonCode MPI2_EVENT_SAS_INIT_RC_NOT_RESPONDING 3862306a36Sopenharmony_ci * for SAS Initiator Device Status Change Event data. 3962306a36Sopenharmony_ci * Modified Reason Code defines for SAS Topology Change 4062306a36Sopenharmony_ci * List Event data, including adding a bit for PHY Vacant 4162306a36Sopenharmony_ci * status, and adding a mask for the Reason Code. 4262306a36Sopenharmony_ci * Added define for 4362306a36Sopenharmony_ci * MPI2_EVENT_SAS_TOPO_ES_DELAY_NOT_RESPONDING. 4462306a36Sopenharmony_ci * Added define for MPI2_EXT_IMAGE_TYPE_MEGARAID. 4562306a36Sopenharmony_ci * 12-18-07 02.00.05 Added Boot Status defines for the IOCExceptions field of 4662306a36Sopenharmony_ci * the IOCFacts Reply. 4762306a36Sopenharmony_ci * Removed MPI2_IOCFACTS_CAPABILITY_EXTENDED_BUFFER define. 4862306a36Sopenharmony_ci * Moved MPI2_VERSION_UNION to mpi2.h. 4962306a36Sopenharmony_ci * Changed MPI2_EVENT_NOTIFICATION_REQUEST to use masks 5062306a36Sopenharmony_ci * instead of enables, and added SASBroadcastPrimitiveMasks 5162306a36Sopenharmony_ci * field. 5262306a36Sopenharmony_ci * Added Log Entry Added Event and related structure. 5362306a36Sopenharmony_ci * 02-29-08 02.00.06 Added define MPI2_IOCFACTS_CAPABILITY_INTEGRATED_RAID. 5462306a36Sopenharmony_ci * Removed define MPI2_IOCFACTS_PROTOCOL_SMP_TARGET. 5562306a36Sopenharmony_ci * Added MaxVolumes and MaxPersistentEntries fields to 5662306a36Sopenharmony_ci * IOCFacts reply. 5762306a36Sopenharmony_ci * Added ProtocalFlags and IOCCapabilities fields to 5862306a36Sopenharmony_ci * MPI2_FW_IMAGE_HEADER. 5962306a36Sopenharmony_ci * Removed MPI2_PORTENABLE_FLAGS_ENABLE_SINGLE_PORT. 6062306a36Sopenharmony_ci * 03-03-08 02.00.07 Fixed MPI2_FW_IMAGE_HEADER by changing Reserved26 to 6162306a36Sopenharmony_ci * a U16 (from a U32). 6262306a36Sopenharmony_ci * Removed extra 's' from EventMasks name. 6362306a36Sopenharmony_ci * 06-27-08 02.00.08 Fixed an offset in a comment. 6462306a36Sopenharmony_ci * 10-02-08 02.00.09 Removed SystemReplyFrameSize from MPI2_IOC_INIT_REQUEST. 6562306a36Sopenharmony_ci * Removed CurReplyFrameSize from MPI2_IOC_FACTS_REPLY and 6662306a36Sopenharmony_ci * renamed MinReplyFrameSize to ReplyFrameSize. 6762306a36Sopenharmony_ci * Added MPI2_IOCFACTS_EXCEPT_IR_FOREIGN_CONFIG_MAX. 6862306a36Sopenharmony_ci * Added two new RAIDOperation values for Integrated RAID 6962306a36Sopenharmony_ci * Operations Status Event data. 7062306a36Sopenharmony_ci * Added four new IR Configuration Change List Event data 7162306a36Sopenharmony_ci * ReasonCode values. 7262306a36Sopenharmony_ci * Added two new ReasonCode defines for SAS Device Status 7362306a36Sopenharmony_ci * Change Event data. 7462306a36Sopenharmony_ci * Added three new DiscoveryStatus bits for the SAS 7562306a36Sopenharmony_ci * Discovery event data. 7662306a36Sopenharmony_ci * Added Multiplexing Status Change bit to the PhyStatus 7762306a36Sopenharmony_ci * field of the SAS Topology Change List event data. 7862306a36Sopenharmony_ci * Removed define for MPI2_INIT_IMAGE_BOOTFLAGS_XMEMCOPY. 7962306a36Sopenharmony_ci * BootFlags are now product-specific. 8062306a36Sopenharmony_ci * Added defines for the indivdual signature bytes 8162306a36Sopenharmony_ci * for MPI2_INIT_IMAGE_FOOTER. 8262306a36Sopenharmony_ci * 01-19-09 02.00.10 Added MPI2_IOCFACTS_CAPABILITY_EVENT_REPLAY define. 8362306a36Sopenharmony_ci * Added MPI2_EVENT_SAS_DISC_DS_DOWNSTREAM_INITIATOR 8462306a36Sopenharmony_ci * define. 8562306a36Sopenharmony_ci * Added MPI2_EVENT_SAS_DEV_STAT_RC_SATA_INIT_FAILURE 8662306a36Sopenharmony_ci * define. 8762306a36Sopenharmony_ci * Removed MPI2_EVENT_SAS_DISC_DS_SATA_INIT_FAILURE define. 8862306a36Sopenharmony_ci * 05-06-09 02.00.11 Added MPI2_IOCFACTS_CAPABILITY_RAID_ACCELERATOR define. 8962306a36Sopenharmony_ci * Added MPI2_IOCFACTS_CAPABILITY_MSI_X_INDEX define. 9062306a36Sopenharmony_ci * Added two new reason codes for SAS Device Status Change 9162306a36Sopenharmony_ci * Event. 9262306a36Sopenharmony_ci * Added new event: SAS PHY Counter. 9362306a36Sopenharmony_ci * 07-30-09 02.00.12 Added GPIO Interrupt event define and structure. 9462306a36Sopenharmony_ci * Added MPI2_IOCFACTS_CAPABILITY_EXTENDED_BUFFER define. 9562306a36Sopenharmony_ci * Added new product id family for 2208. 9662306a36Sopenharmony_ci * 10-28-09 02.00.13 Added HostMSIxVectors field to MPI2_IOC_INIT_REQUEST. 9762306a36Sopenharmony_ci * Added MaxMSIxVectors field to MPI2_IOC_FACTS_REPLY. 9862306a36Sopenharmony_ci * Added MinDevHandle field to MPI2_IOC_FACTS_REPLY. 9962306a36Sopenharmony_ci * Added MPI2_IOCFACTS_CAPABILITY_HOST_BASED_DISCOVERY. 10062306a36Sopenharmony_ci * Added MPI2_EVENT_HOST_BASED_DISCOVERY_PHY define. 10162306a36Sopenharmony_ci * Added MPI2_EVENT_SAS_TOPO_ES_NO_EXPANDER define. 10262306a36Sopenharmony_ci * Added Host Based Discovery Phy Event data. 10362306a36Sopenharmony_ci * Added defines for ProductID Product field 10462306a36Sopenharmony_ci * (MPI2_FW_HEADER_PID_). 10562306a36Sopenharmony_ci * Modified values for SAS ProductID Family 10662306a36Sopenharmony_ci * (MPI2_FW_HEADER_PID_FAMILY_). 10762306a36Sopenharmony_ci * 02-10-10 02.00.14 Added SAS Quiesce Event structure and defines. 10862306a36Sopenharmony_ci * Added PowerManagementControl Request structures and 10962306a36Sopenharmony_ci * defines. 11062306a36Sopenharmony_ci * 05-12-10 02.00.15 Marked Task Set Full Event as obsolete. 11162306a36Sopenharmony_ci * Added MPI2_EVENT_SAS_TOPO_LR_UNSUPPORTED_PHY define. 11262306a36Sopenharmony_ci * 11-10-10 02.00.16 Added MPI2_FW_DOWNLOAD_ITYPE_MIN_PRODUCT_SPECIFIC. 11362306a36Sopenharmony_ci * 02-23-11 02.00.17 Added SAS NOTIFY Primitive event, and added 11462306a36Sopenharmony_ci * SASNotifyPrimitiveMasks field to 11562306a36Sopenharmony_ci * MPI2_EVENT_NOTIFICATION_REQUEST. 11662306a36Sopenharmony_ci * Added Temperature Threshold Event. 11762306a36Sopenharmony_ci * Added Host Message Event. 11862306a36Sopenharmony_ci * Added Send Host Message request and reply. 11962306a36Sopenharmony_ci * 05-25-11 02.00.18 For Extended Image Header, added 12062306a36Sopenharmony_ci * MPI2_EXT_IMAGE_TYPE_MIN_PRODUCT_SPECIFIC and 12162306a36Sopenharmony_ci * MPI2_EXT_IMAGE_TYPE_MAX_PRODUCT_SPECIFIC defines. 12262306a36Sopenharmony_ci * Deprecated MPI2_EXT_IMAGE_TYPE_MAX define. 12362306a36Sopenharmony_ci * 08-24-11 02.00.19 Added PhysicalPort field to 12462306a36Sopenharmony_ci * MPI2_EVENT_DATA_SAS_DEVICE_STATUS_CHANGE structure. 12562306a36Sopenharmony_ci * Marked MPI2_PM_CONTROL_FEATURE_PCIE_LINK as obsolete. 12662306a36Sopenharmony_ci * 11-18-11 02.00.20 Incorporating additions for MPI v2.5. 12762306a36Sopenharmony_ci * 03-29-12 02.00.21 Added a product specific range to event values. 12862306a36Sopenharmony_ci * 07-26-12 02.00.22 Added MPI2_IOCFACTS_EXCEPT_PARTIAL_MEMORY_FAILURE. 12962306a36Sopenharmony_ci * Added ElapsedSeconds field to 13062306a36Sopenharmony_ci * MPI2_EVENT_DATA_IR_OPERATION_STATUS. 13162306a36Sopenharmony_ci * 08-19-13 02.00.23 For IOCInit, added MPI2_IOCINIT_MSGFLAG_RDPQ_ARRAY_MODE 13262306a36Sopenharmony_ci * and MPI2_IOC_INIT_RDPQ_ARRAY_ENTRY. 13362306a36Sopenharmony_ci * Added MPI2_IOCFACTS_CAPABILITY_RDPQ_ARRAY_CAPABLE. 13462306a36Sopenharmony_ci * Added MPI2_FW_DOWNLOAD_ITYPE_PUBLIC_KEY. 13562306a36Sopenharmony_ci * Added Encrypted Hash Extended Image. 13662306a36Sopenharmony_ci * 12-05-13 02.00.24 Added MPI25_HASH_IMAGE_TYPE_BIOS. 13762306a36Sopenharmony_ci * 11-18-14 02.00.25 Updated copyright information. 13862306a36Sopenharmony_ci * 03-16-15 02.00.26 Updated for MPI v2.6. 13962306a36Sopenharmony_ci * Added MPI2_EVENT_ACTIVE_CABLE_EXCEPTION and 14062306a36Sopenharmony_ci * MPI26_EVENT_DATA_ACTIVE_CABLE_EXCEPT. 14162306a36Sopenharmony_ci * Added MPI26_FW_HEADER_PID_FAMILY_3324_SAS and 14262306a36Sopenharmony_ci * MPI26_FW_HEADER_PID_FAMILY_3516_SAS. 14362306a36Sopenharmony_ci * Added MPI26_CTRL_OP_SHUTDOWN. 14462306a36Sopenharmony_ci * 08-25-15 02.00.27 Added IC ARCH Class based signature defines. 14562306a36Sopenharmony_ci * Added MPI26_EVENT_PCIE_ENUM_ES_RESOURCES_EXHAUSTED event. 14662306a36Sopenharmony_ci * Added ConigurationFlags field to IOCInit message to 14762306a36Sopenharmony_ci * support NVMe SGL format control. 14862306a36Sopenharmony_ci * Added PCIe SRIOV support. 14962306a36Sopenharmony_ci * 02-17-16 02.00.28 Added SAS 4 22.5 gbs speed support. 15062306a36Sopenharmony_ci * Added PCIe 4 16.0 GT/sec speec support. 15162306a36Sopenharmony_ci * Removed AHCI support. 15262306a36Sopenharmony_ci * Removed SOP support. 15362306a36Sopenharmony_ci * 07-01-16 02.00.29 Added Archclass for 4008 product. 15462306a36Sopenharmony_ci * Added IOCException MPI2_IOCFACTS_EXCEPT_PCIE_DISABLED 15562306a36Sopenharmony_ci * 08-23-16 02.00.30 Added new defines for the ImageType field of FWDownload 15662306a36Sopenharmony_ci * Request Message. 15762306a36Sopenharmony_ci * Added new defines for the ImageType field of FWUpload 15862306a36Sopenharmony_ci * Request Message. 15962306a36Sopenharmony_ci * Added new values for the RegionType field in the Layout 16062306a36Sopenharmony_ci * Data sections of the FLASH Layout Extended Image Data. 16162306a36Sopenharmony_ci * Added new defines for the ReasonCode field of 16262306a36Sopenharmony_ci * Active Cable Exception Event. 16362306a36Sopenharmony_ci * Added MPI2_EVENT_ENCL_DEVICE_STATUS_CHANGE and 16462306a36Sopenharmony_ci * MPI26_EVENT_DATA_ENCL_DEV_STATUS_CHANGE. 16562306a36Sopenharmony_ci * 11-23-16 02.00.31 Added MPI2_EVENT_SAS_DEVICE_DISCOVERY_ERROR and 16662306a36Sopenharmony_ci * MPI25_EVENT_DATA_SAS_DEVICE_DISCOVERY_ERROR. 16762306a36Sopenharmony_ci * 02-02-17 02.00.32 Added MPI2_FW_DOWNLOAD_ITYPE_CBB_BACKUP. 16862306a36Sopenharmony_ci * Added MPI25_EVENT_DATA_ACTIVE_CABLE_EXCEPT and related 16962306a36Sopenharmony_ci * defines for the ReasonCode field. 17062306a36Sopenharmony_ci * 06-13-17 02.00.33 Added MPI2_FW_DOWNLOAD_ITYPE_CPLD. 17162306a36Sopenharmony_ci * 09-29-17 02.00.34 Added MPI26_EVENT_PCIDEV_STAT_RC_PCIE_HOT_RESET_FAILED 17262306a36Sopenharmony_ci * to the ReasonCode field in PCIe Device Status Change 17362306a36Sopenharmony_ci * Event Data. 17462306a36Sopenharmony_ci * 07-22-18 02.00.35 Added FW_DOWNLOAD_ITYPE_CPLD and _PSOC. 17562306a36Sopenharmony_ci * Moved FW image definitions ionto new mpi2_image,h 17662306a36Sopenharmony_ci * 08-14-18 02.00.36 Fixed definition of MPI2_FW_DOWNLOAD_ITYPE_PSOC (0x16) 17762306a36Sopenharmony_ci * 09-07-18 02.00.37 Added MPI26_EVENT_PCIE_TOPO_PI_16_LANES 17862306a36Sopenharmony_ci * 10-02-19 02.00.38 Added MPI26_IOCINIT_CFGFLAGS_COREDUMP_ENABLE 17962306a36Sopenharmony_ci * Added MPI26_IOCFACTS_CAPABILITY_COREDUMP_ENABLED 18062306a36Sopenharmony_ci * Added MPI2_FW_DOWNLOAD_ITYPE_COREDUMP 18162306a36Sopenharmony_ci * Added MPI2_FW_UPLOAD_ITYPE_COREDUMP 18262306a36Sopenharmony_ci * -------------------------------------------------------------------------- 18362306a36Sopenharmony_ci */ 18462306a36Sopenharmony_ci 18562306a36Sopenharmony_ci#ifndef MPI2_IOC_H 18662306a36Sopenharmony_ci#define MPI2_IOC_H 18762306a36Sopenharmony_ci 18862306a36Sopenharmony_ci/***************************************************************************** 18962306a36Sopenharmony_ci* 19062306a36Sopenharmony_ci* IOC Messages 19162306a36Sopenharmony_ci* 19262306a36Sopenharmony_ci*****************************************************************************/ 19362306a36Sopenharmony_ci 19462306a36Sopenharmony_ci/**************************************************************************** 19562306a36Sopenharmony_ci* IOCInit message 19662306a36Sopenharmony_ci****************************************************************************/ 19762306a36Sopenharmony_ci 19862306a36Sopenharmony_ci/*IOCInit Request message */ 19962306a36Sopenharmony_citypedef struct _MPI2_IOC_INIT_REQUEST { 20062306a36Sopenharmony_ci U8 WhoInit; /*0x00 */ 20162306a36Sopenharmony_ci U8 Reserved1; /*0x01 */ 20262306a36Sopenharmony_ci U8 ChainOffset; /*0x02 */ 20362306a36Sopenharmony_ci U8 Function; /*0x03 */ 20462306a36Sopenharmony_ci U16 Reserved2; /*0x04 */ 20562306a36Sopenharmony_ci U8 Reserved3; /*0x06 */ 20662306a36Sopenharmony_ci U8 MsgFlags; /*0x07 */ 20762306a36Sopenharmony_ci U8 VP_ID; /*0x08 */ 20862306a36Sopenharmony_ci U8 VF_ID; /*0x09 */ 20962306a36Sopenharmony_ci U16 Reserved4; /*0x0A */ 21062306a36Sopenharmony_ci U16 MsgVersion; /*0x0C */ 21162306a36Sopenharmony_ci U16 HeaderVersion; /*0x0E */ 21262306a36Sopenharmony_ci U32 Reserved5; /*0x10 */ 21362306a36Sopenharmony_ci U16 ConfigurationFlags; /* 0x14 */ 21462306a36Sopenharmony_ci U8 HostPageSize; /*0x16 */ 21562306a36Sopenharmony_ci U8 HostMSIxVectors; /*0x17 */ 21662306a36Sopenharmony_ci U16 Reserved8; /*0x18 */ 21762306a36Sopenharmony_ci U16 SystemRequestFrameSize; /*0x1A */ 21862306a36Sopenharmony_ci U16 ReplyDescriptorPostQueueDepth; /*0x1C */ 21962306a36Sopenharmony_ci U16 ReplyFreeQueueDepth; /*0x1E */ 22062306a36Sopenharmony_ci U32 SenseBufferAddressHigh; /*0x20 */ 22162306a36Sopenharmony_ci U32 SystemReplyAddressHigh; /*0x24 */ 22262306a36Sopenharmony_ci U64 SystemRequestFrameBaseAddress; /*0x28 */ 22362306a36Sopenharmony_ci U64 ReplyDescriptorPostQueueAddress; /*0x30 */ 22462306a36Sopenharmony_ci U64 ReplyFreeQueueAddress; /*0x38 */ 22562306a36Sopenharmony_ci U64 TimeStamp; /*0x40 */ 22662306a36Sopenharmony_ci} MPI2_IOC_INIT_REQUEST, *PTR_MPI2_IOC_INIT_REQUEST, 22762306a36Sopenharmony_ci Mpi2IOCInitRequest_t, *pMpi2IOCInitRequest_t; 22862306a36Sopenharmony_ci 22962306a36Sopenharmony_ci/*WhoInit values */ 23062306a36Sopenharmony_ci#define MPI2_WHOINIT_NOT_INITIALIZED (0x00) 23162306a36Sopenharmony_ci#define MPI2_WHOINIT_SYSTEM_BIOS (0x01) 23262306a36Sopenharmony_ci#define MPI2_WHOINIT_ROM_BIOS (0x02) 23362306a36Sopenharmony_ci#define MPI2_WHOINIT_PCI_PEER (0x03) 23462306a36Sopenharmony_ci#define MPI2_WHOINIT_HOST_DRIVER (0x04) 23562306a36Sopenharmony_ci#define MPI2_WHOINIT_MANUFACTURER (0x05) 23662306a36Sopenharmony_ci 23762306a36Sopenharmony_ci/* MsgFlags */ 23862306a36Sopenharmony_ci#define MPI2_IOCINIT_MSGFLAG_RDPQ_ARRAY_MODE (0x01) 23962306a36Sopenharmony_ci 24062306a36Sopenharmony_ci 24162306a36Sopenharmony_ci/*MsgVersion */ 24262306a36Sopenharmony_ci#define MPI2_IOCINIT_MSGVERSION_MAJOR_MASK (0xFF00) 24362306a36Sopenharmony_ci#define MPI2_IOCINIT_MSGVERSION_MAJOR_SHIFT (8) 24462306a36Sopenharmony_ci#define MPI2_IOCINIT_MSGVERSION_MINOR_MASK (0x00FF) 24562306a36Sopenharmony_ci#define MPI2_IOCINIT_MSGVERSION_MINOR_SHIFT (0) 24662306a36Sopenharmony_ci 24762306a36Sopenharmony_ci/*HeaderVersion */ 24862306a36Sopenharmony_ci#define MPI2_IOCINIT_HDRVERSION_UNIT_MASK (0xFF00) 24962306a36Sopenharmony_ci#define MPI2_IOCINIT_HDRVERSION_UNIT_SHIFT (8) 25062306a36Sopenharmony_ci#define MPI2_IOCINIT_HDRVERSION_DEV_MASK (0x00FF) 25162306a36Sopenharmony_ci#define MPI2_IOCINIT_HDRVERSION_DEV_SHIFT (0) 25262306a36Sopenharmony_ci 25362306a36Sopenharmony_ci/*ConfigurationFlags */ 25462306a36Sopenharmony_ci#define MPI26_IOCINIT_CFGFLAGS_NVME_SGL_FORMAT (0x0001) 25562306a36Sopenharmony_ci#define MPI26_IOCINIT_CFGFLAGS_COREDUMP_ENABLE (0x0002) 25662306a36Sopenharmony_ci 25762306a36Sopenharmony_ci/*minimum depth for a Reply Descriptor Post Queue */ 25862306a36Sopenharmony_ci#define MPI2_RDPQ_DEPTH_MIN (16) 25962306a36Sopenharmony_ci 26062306a36Sopenharmony_ci/* Reply Descriptor Post Queue Array Entry */ 26162306a36Sopenharmony_citypedef struct _MPI2_IOC_INIT_RDPQ_ARRAY_ENTRY { 26262306a36Sopenharmony_ci U64 RDPQBaseAddress; /* 0x00 */ 26362306a36Sopenharmony_ci U32 Reserved1; /* 0x08 */ 26462306a36Sopenharmony_ci U32 Reserved2; /* 0x0C */ 26562306a36Sopenharmony_ci} MPI2_IOC_INIT_RDPQ_ARRAY_ENTRY, 26662306a36Sopenharmony_ci*PTR_MPI2_IOC_INIT_RDPQ_ARRAY_ENTRY, 26762306a36Sopenharmony_ciMpi2IOCInitRDPQArrayEntry, *pMpi2IOCInitRDPQArrayEntry; 26862306a36Sopenharmony_ci 26962306a36Sopenharmony_ci 27062306a36Sopenharmony_ci/*IOCInit Reply message */ 27162306a36Sopenharmony_citypedef struct _MPI2_IOC_INIT_REPLY { 27262306a36Sopenharmony_ci U8 WhoInit; /*0x00 */ 27362306a36Sopenharmony_ci U8 Reserved1; /*0x01 */ 27462306a36Sopenharmony_ci U8 MsgLength; /*0x02 */ 27562306a36Sopenharmony_ci U8 Function; /*0x03 */ 27662306a36Sopenharmony_ci U16 Reserved2; /*0x04 */ 27762306a36Sopenharmony_ci U8 Reserved3; /*0x06 */ 27862306a36Sopenharmony_ci U8 MsgFlags; /*0x07 */ 27962306a36Sopenharmony_ci U8 VP_ID; /*0x08 */ 28062306a36Sopenharmony_ci U8 VF_ID; /*0x09 */ 28162306a36Sopenharmony_ci U16 Reserved4; /*0x0A */ 28262306a36Sopenharmony_ci U16 Reserved5; /*0x0C */ 28362306a36Sopenharmony_ci U16 IOCStatus; /*0x0E */ 28462306a36Sopenharmony_ci U32 IOCLogInfo; /*0x10 */ 28562306a36Sopenharmony_ci} MPI2_IOC_INIT_REPLY, *PTR_MPI2_IOC_INIT_REPLY, 28662306a36Sopenharmony_ci Mpi2IOCInitReply_t, *pMpi2IOCInitReply_t; 28762306a36Sopenharmony_ci 28862306a36Sopenharmony_ci/**************************************************************************** 28962306a36Sopenharmony_ci* IOCFacts message 29062306a36Sopenharmony_ci****************************************************************************/ 29162306a36Sopenharmony_ci 29262306a36Sopenharmony_ci/*IOCFacts Request message */ 29362306a36Sopenharmony_citypedef struct _MPI2_IOC_FACTS_REQUEST { 29462306a36Sopenharmony_ci U16 Reserved1; /*0x00 */ 29562306a36Sopenharmony_ci U8 ChainOffset; /*0x02 */ 29662306a36Sopenharmony_ci U8 Function; /*0x03 */ 29762306a36Sopenharmony_ci U16 Reserved2; /*0x04 */ 29862306a36Sopenharmony_ci U8 Reserved3; /*0x06 */ 29962306a36Sopenharmony_ci U8 MsgFlags; /*0x07 */ 30062306a36Sopenharmony_ci U8 VP_ID; /*0x08 */ 30162306a36Sopenharmony_ci U8 VF_ID; /*0x09 */ 30262306a36Sopenharmony_ci U16 Reserved4; /*0x0A */ 30362306a36Sopenharmony_ci} MPI2_IOC_FACTS_REQUEST, *PTR_MPI2_IOC_FACTS_REQUEST, 30462306a36Sopenharmony_ci Mpi2IOCFactsRequest_t, *pMpi2IOCFactsRequest_t; 30562306a36Sopenharmony_ci 30662306a36Sopenharmony_ci/*IOCFacts Reply message */ 30762306a36Sopenharmony_citypedef struct _MPI2_IOC_FACTS_REPLY { 30862306a36Sopenharmony_ci U16 MsgVersion; /*0x00 */ 30962306a36Sopenharmony_ci U8 MsgLength; /*0x02 */ 31062306a36Sopenharmony_ci U8 Function; /*0x03 */ 31162306a36Sopenharmony_ci U16 HeaderVersion; /*0x04 */ 31262306a36Sopenharmony_ci U8 IOCNumber; /*0x06 */ 31362306a36Sopenharmony_ci U8 MsgFlags; /*0x07 */ 31462306a36Sopenharmony_ci U8 VP_ID; /*0x08 */ 31562306a36Sopenharmony_ci U8 VF_ID; /*0x09 */ 31662306a36Sopenharmony_ci U16 Reserved1; /*0x0A */ 31762306a36Sopenharmony_ci U16 IOCExceptions; /*0x0C */ 31862306a36Sopenharmony_ci U16 IOCStatus; /*0x0E */ 31962306a36Sopenharmony_ci U32 IOCLogInfo; /*0x10 */ 32062306a36Sopenharmony_ci U8 MaxChainDepth; /*0x14 */ 32162306a36Sopenharmony_ci U8 WhoInit; /*0x15 */ 32262306a36Sopenharmony_ci U8 NumberOfPorts; /*0x16 */ 32362306a36Sopenharmony_ci U8 MaxMSIxVectors; /*0x17 */ 32462306a36Sopenharmony_ci U16 RequestCredit; /*0x18 */ 32562306a36Sopenharmony_ci U16 ProductID; /*0x1A */ 32662306a36Sopenharmony_ci U32 IOCCapabilities; /*0x1C */ 32762306a36Sopenharmony_ci MPI2_VERSION_UNION FWVersion; /*0x20 */ 32862306a36Sopenharmony_ci U16 IOCRequestFrameSize; /*0x24 */ 32962306a36Sopenharmony_ci U16 IOCMaxChainSegmentSize; /*0x26 */ 33062306a36Sopenharmony_ci U16 MaxInitiators; /*0x28 */ 33162306a36Sopenharmony_ci U16 MaxTargets; /*0x2A */ 33262306a36Sopenharmony_ci U16 MaxSasExpanders; /*0x2C */ 33362306a36Sopenharmony_ci U16 MaxEnclosures; /*0x2E */ 33462306a36Sopenharmony_ci U16 ProtocolFlags; /*0x30 */ 33562306a36Sopenharmony_ci U16 HighPriorityCredit; /*0x32 */ 33662306a36Sopenharmony_ci U16 MaxReplyDescriptorPostQueueDepth; /*0x34 */ 33762306a36Sopenharmony_ci U8 ReplyFrameSize; /*0x36 */ 33862306a36Sopenharmony_ci U8 MaxVolumes; /*0x37 */ 33962306a36Sopenharmony_ci U16 MaxDevHandle; /*0x38 */ 34062306a36Sopenharmony_ci U16 MaxPersistentEntries; /*0x3A */ 34162306a36Sopenharmony_ci U16 MinDevHandle; /*0x3C */ 34262306a36Sopenharmony_ci U8 CurrentHostPageSize; /* 0x3E */ 34362306a36Sopenharmony_ci U8 Reserved4; /* 0x3F */ 34462306a36Sopenharmony_ci U8 SGEModifierMask; /*0x40 */ 34562306a36Sopenharmony_ci U8 SGEModifierValue; /*0x41 */ 34662306a36Sopenharmony_ci U8 SGEModifierShift; /*0x42 */ 34762306a36Sopenharmony_ci U8 Reserved5; /*0x43 */ 34862306a36Sopenharmony_ci} MPI2_IOC_FACTS_REPLY, *PTR_MPI2_IOC_FACTS_REPLY, 34962306a36Sopenharmony_ci Mpi2IOCFactsReply_t, *pMpi2IOCFactsReply_t; 35062306a36Sopenharmony_ci 35162306a36Sopenharmony_ci/*MsgVersion */ 35262306a36Sopenharmony_ci#define MPI2_IOCFACTS_MSGVERSION_MAJOR_MASK (0xFF00) 35362306a36Sopenharmony_ci#define MPI2_IOCFACTS_MSGVERSION_MAJOR_SHIFT (8) 35462306a36Sopenharmony_ci#define MPI2_IOCFACTS_MSGVERSION_MINOR_MASK (0x00FF) 35562306a36Sopenharmony_ci#define MPI2_IOCFACTS_MSGVERSION_MINOR_SHIFT (0) 35662306a36Sopenharmony_ci 35762306a36Sopenharmony_ci/*HeaderVersion */ 35862306a36Sopenharmony_ci#define MPI2_IOCFACTS_HDRVERSION_UNIT_MASK (0xFF00) 35962306a36Sopenharmony_ci#define MPI2_IOCFACTS_HDRVERSION_UNIT_SHIFT (8) 36062306a36Sopenharmony_ci#define MPI2_IOCFACTS_HDRVERSION_DEV_MASK (0x00FF) 36162306a36Sopenharmony_ci#define MPI2_IOCFACTS_HDRVERSION_DEV_SHIFT (0) 36262306a36Sopenharmony_ci 36362306a36Sopenharmony_ci/*IOCExceptions */ 36462306a36Sopenharmony_ci#define MPI2_IOCFACTS_EXCEPT_PCIE_DISABLED (0x0400) 36562306a36Sopenharmony_ci#define MPI2_IOCFACTS_EXCEPT_PARTIAL_MEMORY_FAILURE (0x0200) 36662306a36Sopenharmony_ci#define MPI2_IOCFACTS_EXCEPT_IR_FOREIGN_CONFIG_MAX (0x0100) 36762306a36Sopenharmony_ci 36862306a36Sopenharmony_ci#define MPI2_IOCFACTS_EXCEPT_BOOTSTAT_MASK (0x00E0) 36962306a36Sopenharmony_ci#define MPI2_IOCFACTS_EXCEPT_BOOTSTAT_GOOD (0x0000) 37062306a36Sopenharmony_ci#define MPI2_IOCFACTS_EXCEPT_BOOTSTAT_BACKUP (0x0020) 37162306a36Sopenharmony_ci#define MPI2_IOCFACTS_EXCEPT_BOOTSTAT_RESTORED (0x0040) 37262306a36Sopenharmony_ci#define MPI2_IOCFACTS_EXCEPT_BOOTSTAT_CORRUPT_BACKUP (0x0060) 37362306a36Sopenharmony_ci 37462306a36Sopenharmony_ci#define MPI2_IOCFACTS_EXCEPT_METADATA_UNSUPPORTED (0x0010) 37562306a36Sopenharmony_ci#define MPI2_IOCFACTS_EXCEPT_MANUFACT_CHECKSUM_FAIL (0x0008) 37662306a36Sopenharmony_ci#define MPI2_IOCFACTS_EXCEPT_FW_CHECKSUM_FAIL (0x0004) 37762306a36Sopenharmony_ci#define MPI2_IOCFACTS_EXCEPT_RAID_CONFIG_INVALID (0x0002) 37862306a36Sopenharmony_ci#define MPI2_IOCFACTS_EXCEPT_CONFIG_CHECKSUM_FAIL (0x0001) 37962306a36Sopenharmony_ci 38062306a36Sopenharmony_ci/*defines for WhoInit field are after the IOCInit Request */ 38162306a36Sopenharmony_ci 38262306a36Sopenharmony_ci/*ProductID field uses MPI2_FW_HEADER_PID_ */ 38362306a36Sopenharmony_ci 38462306a36Sopenharmony_ci/*IOCCapabilities */ 38562306a36Sopenharmony_ci#define MPI26_IOCFACTS_CAPABILITY_COREDUMP_ENABLED (0x00200000) 38662306a36Sopenharmony_ci#define MPI26_IOCFACTS_CAPABILITY_PCIE_SRIOV (0x00100000) 38762306a36Sopenharmony_ci#define MPI26_IOCFACTS_CAPABILITY_ATOMIC_REQ (0x00080000) 38862306a36Sopenharmony_ci#define MPI2_IOCFACTS_CAPABILITY_RDPQ_ARRAY_CAPABLE (0x00040000) 38962306a36Sopenharmony_ci#define MPI25_IOCFACTS_CAPABILITY_FAST_PATH_CAPABLE (0x00020000) 39062306a36Sopenharmony_ci#define MPI2_IOCFACTS_CAPABILITY_HOST_BASED_DISCOVERY (0x00010000) 39162306a36Sopenharmony_ci#define MPI2_IOCFACTS_CAPABILITY_MSI_X_INDEX (0x00008000) 39262306a36Sopenharmony_ci#define MPI2_IOCFACTS_CAPABILITY_RAID_ACCELERATOR (0x00004000) 39362306a36Sopenharmony_ci#define MPI2_IOCFACTS_CAPABILITY_EVENT_REPLAY (0x00002000) 39462306a36Sopenharmony_ci#define MPI2_IOCFACTS_CAPABILITY_INTEGRATED_RAID (0x00001000) 39562306a36Sopenharmony_ci#define MPI2_IOCFACTS_CAPABILITY_TLR (0x00000800) 39662306a36Sopenharmony_ci#define MPI2_IOCFACTS_CAPABILITY_MULTICAST (0x00000100) 39762306a36Sopenharmony_ci#define MPI2_IOCFACTS_CAPABILITY_BIDIRECTIONAL_TARGET (0x00000080) 39862306a36Sopenharmony_ci#define MPI2_IOCFACTS_CAPABILITY_EEDP (0x00000040) 39962306a36Sopenharmony_ci#define MPI2_IOCFACTS_CAPABILITY_EXTENDED_BUFFER (0x00000020) 40062306a36Sopenharmony_ci#define MPI2_IOCFACTS_CAPABILITY_SNAPSHOT_BUFFER (0x00000010) 40162306a36Sopenharmony_ci#define MPI2_IOCFACTS_CAPABILITY_DIAG_TRACE_BUFFER (0x00000008) 40262306a36Sopenharmony_ci#define MPI2_IOCFACTS_CAPABILITY_TASK_SET_FULL_HANDLING (0x00000004) 40362306a36Sopenharmony_ci 40462306a36Sopenharmony_ci/*ProtocolFlags */ 40562306a36Sopenharmony_ci#define MPI2_IOCFACTS_PROTOCOL_NVME_DEVICES (0x0008) 40662306a36Sopenharmony_ci#define MPI2_IOCFACTS_PROTOCOL_SCSI_INITIATOR (0x0002) 40762306a36Sopenharmony_ci#define MPI2_IOCFACTS_PROTOCOL_SCSI_TARGET (0x0001) 40862306a36Sopenharmony_ci 40962306a36Sopenharmony_ci/**************************************************************************** 41062306a36Sopenharmony_ci* PortFacts message 41162306a36Sopenharmony_ci****************************************************************************/ 41262306a36Sopenharmony_ci 41362306a36Sopenharmony_ci/*PortFacts Request message */ 41462306a36Sopenharmony_citypedef struct _MPI2_PORT_FACTS_REQUEST { 41562306a36Sopenharmony_ci U16 Reserved1; /*0x00 */ 41662306a36Sopenharmony_ci U8 ChainOffset; /*0x02 */ 41762306a36Sopenharmony_ci U8 Function; /*0x03 */ 41862306a36Sopenharmony_ci U16 Reserved2; /*0x04 */ 41962306a36Sopenharmony_ci U8 PortNumber; /*0x06 */ 42062306a36Sopenharmony_ci U8 MsgFlags; /*0x07 */ 42162306a36Sopenharmony_ci U8 VP_ID; /*0x08 */ 42262306a36Sopenharmony_ci U8 VF_ID; /*0x09 */ 42362306a36Sopenharmony_ci U16 Reserved3; /*0x0A */ 42462306a36Sopenharmony_ci} MPI2_PORT_FACTS_REQUEST, *PTR_MPI2_PORT_FACTS_REQUEST, 42562306a36Sopenharmony_ci Mpi2PortFactsRequest_t, *pMpi2PortFactsRequest_t; 42662306a36Sopenharmony_ci 42762306a36Sopenharmony_ci/*PortFacts Reply message */ 42862306a36Sopenharmony_citypedef struct _MPI2_PORT_FACTS_REPLY { 42962306a36Sopenharmony_ci U16 Reserved1; /*0x00 */ 43062306a36Sopenharmony_ci U8 MsgLength; /*0x02 */ 43162306a36Sopenharmony_ci U8 Function; /*0x03 */ 43262306a36Sopenharmony_ci U16 Reserved2; /*0x04 */ 43362306a36Sopenharmony_ci U8 PortNumber; /*0x06 */ 43462306a36Sopenharmony_ci U8 MsgFlags; /*0x07 */ 43562306a36Sopenharmony_ci U8 VP_ID; /*0x08 */ 43662306a36Sopenharmony_ci U8 VF_ID; /*0x09 */ 43762306a36Sopenharmony_ci U16 Reserved3; /*0x0A */ 43862306a36Sopenharmony_ci U16 Reserved4; /*0x0C */ 43962306a36Sopenharmony_ci U16 IOCStatus; /*0x0E */ 44062306a36Sopenharmony_ci U32 IOCLogInfo; /*0x10 */ 44162306a36Sopenharmony_ci U8 Reserved5; /*0x14 */ 44262306a36Sopenharmony_ci U8 PortType; /*0x15 */ 44362306a36Sopenharmony_ci U16 Reserved6; /*0x16 */ 44462306a36Sopenharmony_ci U16 MaxPostedCmdBuffers; /*0x18 */ 44562306a36Sopenharmony_ci U16 Reserved7; /*0x1A */ 44662306a36Sopenharmony_ci} MPI2_PORT_FACTS_REPLY, *PTR_MPI2_PORT_FACTS_REPLY, 44762306a36Sopenharmony_ci Mpi2PortFactsReply_t, *pMpi2PortFactsReply_t; 44862306a36Sopenharmony_ci 44962306a36Sopenharmony_ci/*PortType values */ 45062306a36Sopenharmony_ci#define MPI2_PORTFACTS_PORTTYPE_INACTIVE (0x00) 45162306a36Sopenharmony_ci#define MPI2_PORTFACTS_PORTTYPE_FC (0x10) 45262306a36Sopenharmony_ci#define MPI2_PORTFACTS_PORTTYPE_ISCSI (0x20) 45362306a36Sopenharmony_ci#define MPI2_PORTFACTS_PORTTYPE_SAS_PHYSICAL (0x30) 45462306a36Sopenharmony_ci#define MPI2_PORTFACTS_PORTTYPE_SAS_VIRTUAL (0x31) 45562306a36Sopenharmony_ci#define MPI2_PORTFACTS_PORTTYPE_TRI_MODE (0x40) 45662306a36Sopenharmony_ci 45762306a36Sopenharmony_ci 45862306a36Sopenharmony_ci/**************************************************************************** 45962306a36Sopenharmony_ci* PortEnable message 46062306a36Sopenharmony_ci****************************************************************************/ 46162306a36Sopenharmony_ci 46262306a36Sopenharmony_ci/*PortEnable Request message */ 46362306a36Sopenharmony_citypedef struct _MPI2_PORT_ENABLE_REQUEST { 46462306a36Sopenharmony_ci U16 Reserved1; /*0x00 */ 46562306a36Sopenharmony_ci U8 ChainOffset; /*0x02 */ 46662306a36Sopenharmony_ci U8 Function; /*0x03 */ 46762306a36Sopenharmony_ci U8 Reserved2; /*0x04 */ 46862306a36Sopenharmony_ci U8 PortFlags; /*0x05 */ 46962306a36Sopenharmony_ci U8 Reserved3; /*0x06 */ 47062306a36Sopenharmony_ci U8 MsgFlags; /*0x07 */ 47162306a36Sopenharmony_ci U8 VP_ID; /*0x08 */ 47262306a36Sopenharmony_ci U8 VF_ID; /*0x09 */ 47362306a36Sopenharmony_ci U16 Reserved4; /*0x0A */ 47462306a36Sopenharmony_ci} MPI2_PORT_ENABLE_REQUEST, *PTR_MPI2_PORT_ENABLE_REQUEST, 47562306a36Sopenharmony_ci Mpi2PortEnableRequest_t, *pMpi2PortEnableRequest_t; 47662306a36Sopenharmony_ci 47762306a36Sopenharmony_ci/*PortEnable Reply message */ 47862306a36Sopenharmony_citypedef struct _MPI2_PORT_ENABLE_REPLY { 47962306a36Sopenharmony_ci U16 Reserved1; /*0x00 */ 48062306a36Sopenharmony_ci U8 MsgLength; /*0x02 */ 48162306a36Sopenharmony_ci U8 Function; /*0x03 */ 48262306a36Sopenharmony_ci U8 Reserved2; /*0x04 */ 48362306a36Sopenharmony_ci U8 PortFlags; /*0x05 */ 48462306a36Sopenharmony_ci U8 Reserved3; /*0x06 */ 48562306a36Sopenharmony_ci U8 MsgFlags; /*0x07 */ 48662306a36Sopenharmony_ci U8 VP_ID; /*0x08 */ 48762306a36Sopenharmony_ci U8 VF_ID; /*0x09 */ 48862306a36Sopenharmony_ci U16 Reserved4; /*0x0A */ 48962306a36Sopenharmony_ci U16 Reserved5; /*0x0C */ 49062306a36Sopenharmony_ci U16 IOCStatus; /*0x0E */ 49162306a36Sopenharmony_ci U32 IOCLogInfo; /*0x10 */ 49262306a36Sopenharmony_ci} MPI2_PORT_ENABLE_REPLY, *PTR_MPI2_PORT_ENABLE_REPLY, 49362306a36Sopenharmony_ci Mpi2PortEnableReply_t, *pMpi2PortEnableReply_t; 49462306a36Sopenharmony_ci 49562306a36Sopenharmony_ci/**************************************************************************** 49662306a36Sopenharmony_ci* EventNotification message 49762306a36Sopenharmony_ci****************************************************************************/ 49862306a36Sopenharmony_ci 49962306a36Sopenharmony_ci/*EventNotification Request message */ 50062306a36Sopenharmony_ci#define MPI2_EVENT_NOTIFY_EVENTMASK_WORDS (4) 50162306a36Sopenharmony_ci 50262306a36Sopenharmony_citypedef struct _MPI2_EVENT_NOTIFICATION_REQUEST { 50362306a36Sopenharmony_ci U16 Reserved1; /*0x00 */ 50462306a36Sopenharmony_ci U8 ChainOffset; /*0x02 */ 50562306a36Sopenharmony_ci U8 Function; /*0x03 */ 50662306a36Sopenharmony_ci U16 Reserved2; /*0x04 */ 50762306a36Sopenharmony_ci U8 Reserved3; /*0x06 */ 50862306a36Sopenharmony_ci U8 MsgFlags; /*0x07 */ 50962306a36Sopenharmony_ci U8 VP_ID; /*0x08 */ 51062306a36Sopenharmony_ci U8 VF_ID; /*0x09 */ 51162306a36Sopenharmony_ci U16 Reserved4; /*0x0A */ 51262306a36Sopenharmony_ci U32 Reserved5; /*0x0C */ 51362306a36Sopenharmony_ci U32 Reserved6; /*0x10 */ 51462306a36Sopenharmony_ci U32 EventMasks[MPI2_EVENT_NOTIFY_EVENTMASK_WORDS]; /*0x14 */ 51562306a36Sopenharmony_ci U16 SASBroadcastPrimitiveMasks; /*0x24 */ 51662306a36Sopenharmony_ci U16 SASNotifyPrimitiveMasks; /*0x26 */ 51762306a36Sopenharmony_ci U32 Reserved8; /*0x28 */ 51862306a36Sopenharmony_ci} MPI2_EVENT_NOTIFICATION_REQUEST, 51962306a36Sopenharmony_ci *PTR_MPI2_EVENT_NOTIFICATION_REQUEST, 52062306a36Sopenharmony_ci Mpi2EventNotificationRequest_t, 52162306a36Sopenharmony_ci *pMpi2EventNotificationRequest_t; 52262306a36Sopenharmony_ci 52362306a36Sopenharmony_ci/*EventNotification Reply message */ 52462306a36Sopenharmony_citypedef struct _MPI2_EVENT_NOTIFICATION_REPLY { 52562306a36Sopenharmony_ci U16 EventDataLength; /*0x00 */ 52662306a36Sopenharmony_ci U8 MsgLength; /*0x02 */ 52762306a36Sopenharmony_ci U8 Function; /*0x03 */ 52862306a36Sopenharmony_ci U16 Reserved1; /*0x04 */ 52962306a36Sopenharmony_ci U8 AckRequired; /*0x06 */ 53062306a36Sopenharmony_ci U8 MsgFlags; /*0x07 */ 53162306a36Sopenharmony_ci U8 VP_ID; /*0x08 */ 53262306a36Sopenharmony_ci U8 VF_ID; /*0x09 */ 53362306a36Sopenharmony_ci U16 Reserved2; /*0x0A */ 53462306a36Sopenharmony_ci U16 Reserved3; /*0x0C */ 53562306a36Sopenharmony_ci U16 IOCStatus; /*0x0E */ 53662306a36Sopenharmony_ci U32 IOCLogInfo; /*0x10 */ 53762306a36Sopenharmony_ci U16 Event; /*0x14 */ 53862306a36Sopenharmony_ci U16 Reserved4; /*0x16 */ 53962306a36Sopenharmony_ci U32 EventContext; /*0x18 */ 54062306a36Sopenharmony_ci U32 EventData[]; /*0x1C */ 54162306a36Sopenharmony_ci} MPI2_EVENT_NOTIFICATION_REPLY, *PTR_MPI2_EVENT_NOTIFICATION_REPLY, 54262306a36Sopenharmony_ci Mpi2EventNotificationReply_t, 54362306a36Sopenharmony_ci *pMpi2EventNotificationReply_t; 54462306a36Sopenharmony_ci 54562306a36Sopenharmony_ci/*AckRequired */ 54662306a36Sopenharmony_ci#define MPI2_EVENT_NOTIFICATION_ACK_NOT_REQUIRED (0x00) 54762306a36Sopenharmony_ci#define MPI2_EVENT_NOTIFICATION_ACK_REQUIRED (0x01) 54862306a36Sopenharmony_ci 54962306a36Sopenharmony_ci/*Event */ 55062306a36Sopenharmony_ci#define MPI2_EVENT_LOG_DATA (0x0001) 55162306a36Sopenharmony_ci#define MPI2_EVENT_STATE_CHANGE (0x0002) 55262306a36Sopenharmony_ci#define MPI2_EVENT_HARD_RESET_RECEIVED (0x0005) 55362306a36Sopenharmony_ci#define MPI2_EVENT_EVENT_CHANGE (0x000A) 55462306a36Sopenharmony_ci#define MPI2_EVENT_TASK_SET_FULL (0x000E) /*obsolete */ 55562306a36Sopenharmony_ci#define MPI2_EVENT_SAS_DEVICE_STATUS_CHANGE (0x000F) 55662306a36Sopenharmony_ci#define MPI2_EVENT_IR_OPERATION_STATUS (0x0014) 55762306a36Sopenharmony_ci#define MPI2_EVENT_SAS_DISCOVERY (0x0016) 55862306a36Sopenharmony_ci#define MPI2_EVENT_SAS_BROADCAST_PRIMITIVE (0x0017) 55962306a36Sopenharmony_ci#define MPI2_EVENT_SAS_INIT_DEVICE_STATUS_CHANGE (0x0018) 56062306a36Sopenharmony_ci#define MPI2_EVENT_SAS_INIT_TABLE_OVERFLOW (0x0019) 56162306a36Sopenharmony_ci#define MPI2_EVENT_SAS_TOPOLOGY_CHANGE_LIST (0x001C) 56262306a36Sopenharmony_ci#define MPI2_EVENT_SAS_ENCL_DEVICE_STATUS_CHANGE (0x001D) 56362306a36Sopenharmony_ci#define MPI2_EVENT_ENCL_DEVICE_STATUS_CHANGE (0x001D) 56462306a36Sopenharmony_ci#define MPI2_EVENT_IR_VOLUME (0x001E) 56562306a36Sopenharmony_ci#define MPI2_EVENT_IR_PHYSICAL_DISK (0x001F) 56662306a36Sopenharmony_ci#define MPI2_EVENT_IR_CONFIGURATION_CHANGE_LIST (0x0020) 56762306a36Sopenharmony_ci#define MPI2_EVENT_LOG_ENTRY_ADDED (0x0021) 56862306a36Sopenharmony_ci#define MPI2_EVENT_SAS_PHY_COUNTER (0x0022) 56962306a36Sopenharmony_ci#define MPI2_EVENT_GPIO_INTERRUPT (0x0023) 57062306a36Sopenharmony_ci#define MPI2_EVENT_HOST_BASED_DISCOVERY_PHY (0x0024) 57162306a36Sopenharmony_ci#define MPI2_EVENT_SAS_QUIESCE (0x0025) 57262306a36Sopenharmony_ci#define MPI2_EVENT_SAS_NOTIFY_PRIMITIVE (0x0026) 57362306a36Sopenharmony_ci#define MPI2_EVENT_TEMP_THRESHOLD (0x0027) 57462306a36Sopenharmony_ci#define MPI2_EVENT_HOST_MESSAGE (0x0028) 57562306a36Sopenharmony_ci#define MPI2_EVENT_POWER_PERFORMANCE_CHANGE (0x0029) 57662306a36Sopenharmony_ci#define MPI2_EVENT_PCIE_DEVICE_STATUS_CHANGE (0x0030) 57762306a36Sopenharmony_ci#define MPI2_EVENT_PCIE_ENUMERATION (0x0031) 57862306a36Sopenharmony_ci#define MPI2_EVENT_PCIE_TOPOLOGY_CHANGE_LIST (0x0032) 57962306a36Sopenharmony_ci#define MPI2_EVENT_PCIE_LINK_COUNTER (0x0033) 58062306a36Sopenharmony_ci#define MPI2_EVENT_ACTIVE_CABLE_EXCEPTION (0x0034) 58162306a36Sopenharmony_ci#define MPI2_EVENT_SAS_DEVICE_DISCOVERY_ERROR (0x0035) 58262306a36Sopenharmony_ci#define MPI2_EVENT_MIN_PRODUCT_SPECIFIC (0x006E) 58362306a36Sopenharmony_ci#define MPI2_EVENT_MAX_PRODUCT_SPECIFIC (0x007F) 58462306a36Sopenharmony_ci 58562306a36Sopenharmony_ci/*Log Entry Added Event data */ 58662306a36Sopenharmony_ci 58762306a36Sopenharmony_ci/*the following structure matches MPI2_LOG_0_ENTRY in mpi2_cnfg.h */ 58862306a36Sopenharmony_ci#define MPI2_EVENT_DATA_LOG_DATA_LENGTH (0x1C) 58962306a36Sopenharmony_ci 59062306a36Sopenharmony_citypedef struct _MPI2_EVENT_DATA_LOG_ENTRY_ADDED { 59162306a36Sopenharmony_ci U64 TimeStamp; /*0x00 */ 59262306a36Sopenharmony_ci U32 Reserved1; /*0x08 */ 59362306a36Sopenharmony_ci U16 LogSequence; /*0x0C */ 59462306a36Sopenharmony_ci U16 LogEntryQualifier; /*0x0E */ 59562306a36Sopenharmony_ci U8 VP_ID; /*0x10 */ 59662306a36Sopenharmony_ci U8 VF_ID; /*0x11 */ 59762306a36Sopenharmony_ci U16 Reserved2; /*0x12 */ 59862306a36Sopenharmony_ci U8 LogData[MPI2_EVENT_DATA_LOG_DATA_LENGTH]; /*0x14 */ 59962306a36Sopenharmony_ci} MPI2_EVENT_DATA_LOG_ENTRY_ADDED, 60062306a36Sopenharmony_ci *PTR_MPI2_EVENT_DATA_LOG_ENTRY_ADDED, 60162306a36Sopenharmony_ci Mpi2EventDataLogEntryAdded_t, 60262306a36Sopenharmony_ci *pMpi2EventDataLogEntryAdded_t; 60362306a36Sopenharmony_ci 60462306a36Sopenharmony_ci/*GPIO Interrupt Event data */ 60562306a36Sopenharmony_ci 60662306a36Sopenharmony_citypedef struct _MPI2_EVENT_DATA_GPIO_INTERRUPT { 60762306a36Sopenharmony_ci U8 GPIONum; /*0x00 */ 60862306a36Sopenharmony_ci U8 Reserved1; /*0x01 */ 60962306a36Sopenharmony_ci U16 Reserved2; /*0x02 */ 61062306a36Sopenharmony_ci} MPI2_EVENT_DATA_GPIO_INTERRUPT, 61162306a36Sopenharmony_ci *PTR_MPI2_EVENT_DATA_GPIO_INTERRUPT, 61262306a36Sopenharmony_ci Mpi2EventDataGpioInterrupt_t, 61362306a36Sopenharmony_ci *pMpi2EventDataGpioInterrupt_t; 61462306a36Sopenharmony_ci 61562306a36Sopenharmony_ci/*Temperature Threshold Event data */ 61662306a36Sopenharmony_ci 61762306a36Sopenharmony_citypedef struct _MPI2_EVENT_DATA_TEMPERATURE { 61862306a36Sopenharmony_ci U16 Status; /*0x00 */ 61962306a36Sopenharmony_ci U8 SensorNum; /*0x02 */ 62062306a36Sopenharmony_ci U8 Reserved1; /*0x03 */ 62162306a36Sopenharmony_ci U16 CurrentTemperature; /*0x04 */ 62262306a36Sopenharmony_ci U16 Reserved2; /*0x06 */ 62362306a36Sopenharmony_ci U32 Reserved3; /*0x08 */ 62462306a36Sopenharmony_ci U32 Reserved4; /*0x0C */ 62562306a36Sopenharmony_ci} MPI2_EVENT_DATA_TEMPERATURE, 62662306a36Sopenharmony_ci *PTR_MPI2_EVENT_DATA_TEMPERATURE, 62762306a36Sopenharmony_ci Mpi2EventDataTemperature_t, *pMpi2EventDataTemperature_t; 62862306a36Sopenharmony_ci 62962306a36Sopenharmony_ci/*Temperature Threshold Event data Status bits */ 63062306a36Sopenharmony_ci#define MPI2_EVENT_TEMPERATURE3_EXCEEDED (0x0008) 63162306a36Sopenharmony_ci#define MPI2_EVENT_TEMPERATURE2_EXCEEDED (0x0004) 63262306a36Sopenharmony_ci#define MPI2_EVENT_TEMPERATURE1_EXCEEDED (0x0002) 63362306a36Sopenharmony_ci#define MPI2_EVENT_TEMPERATURE0_EXCEEDED (0x0001) 63462306a36Sopenharmony_ci 63562306a36Sopenharmony_ci/*Host Message Event data */ 63662306a36Sopenharmony_ci 63762306a36Sopenharmony_citypedef struct _MPI2_EVENT_DATA_HOST_MESSAGE { 63862306a36Sopenharmony_ci U8 SourceVF_ID; /*0x00 */ 63962306a36Sopenharmony_ci U8 Reserved1; /*0x01 */ 64062306a36Sopenharmony_ci U16 Reserved2; /*0x02 */ 64162306a36Sopenharmony_ci U32 Reserved3; /*0x04 */ 64262306a36Sopenharmony_ci U32 HostData[]; /*0x08 */ 64362306a36Sopenharmony_ci} MPI2_EVENT_DATA_HOST_MESSAGE, *PTR_MPI2_EVENT_DATA_HOST_MESSAGE, 64462306a36Sopenharmony_ci Mpi2EventDataHostMessage_t, *pMpi2EventDataHostMessage_t; 64562306a36Sopenharmony_ci 64662306a36Sopenharmony_ci/*Power Performance Change Event data */ 64762306a36Sopenharmony_ci 64862306a36Sopenharmony_citypedef struct _MPI2_EVENT_DATA_POWER_PERF_CHANGE { 64962306a36Sopenharmony_ci U8 CurrentPowerMode; /*0x00 */ 65062306a36Sopenharmony_ci U8 PreviousPowerMode; /*0x01 */ 65162306a36Sopenharmony_ci U16 Reserved1; /*0x02 */ 65262306a36Sopenharmony_ci} MPI2_EVENT_DATA_POWER_PERF_CHANGE, 65362306a36Sopenharmony_ci *PTR_MPI2_EVENT_DATA_POWER_PERF_CHANGE, 65462306a36Sopenharmony_ci Mpi2EventDataPowerPerfChange_t, 65562306a36Sopenharmony_ci *pMpi2EventDataPowerPerfChange_t; 65662306a36Sopenharmony_ci 65762306a36Sopenharmony_ci/*defines for CurrentPowerMode and PreviousPowerMode fields */ 65862306a36Sopenharmony_ci#define MPI2_EVENT_PM_INIT_MASK (0xC0) 65962306a36Sopenharmony_ci#define MPI2_EVENT_PM_INIT_UNAVAILABLE (0x00) 66062306a36Sopenharmony_ci#define MPI2_EVENT_PM_INIT_HOST (0x40) 66162306a36Sopenharmony_ci#define MPI2_EVENT_PM_INIT_IO_UNIT (0x80) 66262306a36Sopenharmony_ci#define MPI2_EVENT_PM_INIT_PCIE_DPA (0xC0) 66362306a36Sopenharmony_ci 66462306a36Sopenharmony_ci#define MPI2_EVENT_PM_MODE_MASK (0x07) 66562306a36Sopenharmony_ci#define MPI2_EVENT_PM_MODE_UNAVAILABLE (0x00) 66662306a36Sopenharmony_ci#define MPI2_EVENT_PM_MODE_UNKNOWN (0x01) 66762306a36Sopenharmony_ci#define MPI2_EVENT_PM_MODE_FULL_POWER (0x04) 66862306a36Sopenharmony_ci#define MPI2_EVENT_PM_MODE_REDUCED_POWER (0x05) 66962306a36Sopenharmony_ci#define MPI2_EVENT_PM_MODE_STANDBY (0x06) 67062306a36Sopenharmony_ci 67162306a36Sopenharmony_ci/* Active Cable Exception Event data */ 67262306a36Sopenharmony_ci 67362306a36Sopenharmony_citypedef struct _MPI26_EVENT_DATA_ACTIVE_CABLE_EXCEPT { 67462306a36Sopenharmony_ci U32 ActiveCablePowerRequirement; /* 0x00 */ 67562306a36Sopenharmony_ci U8 ReasonCode; /* 0x04 */ 67662306a36Sopenharmony_ci U8 ReceptacleID; /* 0x05 */ 67762306a36Sopenharmony_ci U16 Reserved1; /* 0x06 */ 67862306a36Sopenharmony_ci} MPI25_EVENT_DATA_ACTIVE_CABLE_EXCEPT, 67962306a36Sopenharmony_ci *PTR_MPI25_EVENT_DATA_ACTIVE_CABLE_EXCEPT, 68062306a36Sopenharmony_ci Mpi25EventDataActiveCableExcept_t, 68162306a36Sopenharmony_ci *pMpi25EventDataActiveCableExcept_t, 68262306a36Sopenharmony_ci MPI26_EVENT_DATA_ACTIVE_CABLE_EXCEPT, 68362306a36Sopenharmony_ci *PTR_MPI26_EVENT_DATA_ACTIVE_CABLE_EXCEPT, 68462306a36Sopenharmony_ci Mpi26EventDataActiveCableExcept_t, 68562306a36Sopenharmony_ci *pMpi26EventDataActiveCableExcept_t; 68662306a36Sopenharmony_ci 68762306a36Sopenharmony_ci/*MPI2.5 defines for the ReasonCode field */ 68862306a36Sopenharmony_ci#define MPI25_EVENT_ACTIVE_CABLE_INSUFFICIENT_POWER (0x00) 68962306a36Sopenharmony_ci#define MPI25_EVENT_ACTIVE_CABLE_PRESENT (0x01) 69062306a36Sopenharmony_ci#define MPI25_EVENT_ACTIVE_CABLE_DEGRADED (0x02) 69162306a36Sopenharmony_ci 69262306a36Sopenharmony_ci/* defines for ReasonCode field */ 69362306a36Sopenharmony_ci#define MPI26_EVENT_ACTIVE_CABLE_INSUFFICIENT_POWER (0x00) 69462306a36Sopenharmony_ci#define MPI26_EVENT_ACTIVE_CABLE_PRESENT (0x01) 69562306a36Sopenharmony_ci#define MPI26_EVENT_ACTIVE_CABLE_DEGRADED (0x02) 69662306a36Sopenharmony_ci 69762306a36Sopenharmony_ci/*Hard Reset Received Event data */ 69862306a36Sopenharmony_ci 69962306a36Sopenharmony_citypedef struct _MPI2_EVENT_DATA_HARD_RESET_RECEIVED { 70062306a36Sopenharmony_ci U8 Reserved1; /*0x00 */ 70162306a36Sopenharmony_ci U8 Port; /*0x01 */ 70262306a36Sopenharmony_ci U16 Reserved2; /*0x02 */ 70362306a36Sopenharmony_ci} MPI2_EVENT_DATA_HARD_RESET_RECEIVED, 70462306a36Sopenharmony_ci *PTR_MPI2_EVENT_DATA_HARD_RESET_RECEIVED, 70562306a36Sopenharmony_ci Mpi2EventDataHardResetReceived_t, 70662306a36Sopenharmony_ci *pMpi2EventDataHardResetReceived_t; 70762306a36Sopenharmony_ci 70862306a36Sopenharmony_ci/*Task Set Full Event data */ 70962306a36Sopenharmony_ci/* this event is obsolete */ 71062306a36Sopenharmony_ci 71162306a36Sopenharmony_citypedef struct _MPI2_EVENT_DATA_TASK_SET_FULL { 71262306a36Sopenharmony_ci U16 DevHandle; /*0x00 */ 71362306a36Sopenharmony_ci U16 CurrentDepth; /*0x02 */ 71462306a36Sopenharmony_ci} MPI2_EVENT_DATA_TASK_SET_FULL, *PTR_MPI2_EVENT_DATA_TASK_SET_FULL, 71562306a36Sopenharmony_ci Mpi2EventDataTaskSetFull_t, *pMpi2EventDataTaskSetFull_t; 71662306a36Sopenharmony_ci 71762306a36Sopenharmony_ci/*SAS Device Status Change Event data */ 71862306a36Sopenharmony_ci 71962306a36Sopenharmony_citypedef struct _MPI2_EVENT_DATA_SAS_DEVICE_STATUS_CHANGE { 72062306a36Sopenharmony_ci U16 TaskTag; /*0x00 */ 72162306a36Sopenharmony_ci U8 ReasonCode; /*0x02 */ 72262306a36Sopenharmony_ci U8 PhysicalPort; /*0x03 */ 72362306a36Sopenharmony_ci U8 ASC; /*0x04 */ 72462306a36Sopenharmony_ci U8 ASCQ; /*0x05 */ 72562306a36Sopenharmony_ci U16 DevHandle; /*0x06 */ 72662306a36Sopenharmony_ci U32 Reserved2; /*0x08 */ 72762306a36Sopenharmony_ci U64 SASAddress; /*0x0C */ 72862306a36Sopenharmony_ci U8 LUN[8]; /*0x14 */ 72962306a36Sopenharmony_ci} MPI2_EVENT_DATA_SAS_DEVICE_STATUS_CHANGE, 73062306a36Sopenharmony_ci *PTR_MPI2_EVENT_DATA_SAS_DEVICE_STATUS_CHANGE, 73162306a36Sopenharmony_ci Mpi2EventDataSasDeviceStatusChange_t, 73262306a36Sopenharmony_ci *pMpi2EventDataSasDeviceStatusChange_t; 73362306a36Sopenharmony_ci 73462306a36Sopenharmony_ci/*SAS Device Status Change Event data ReasonCode values */ 73562306a36Sopenharmony_ci#define MPI2_EVENT_SAS_DEV_STAT_RC_SMART_DATA (0x05) 73662306a36Sopenharmony_ci#define MPI2_EVENT_SAS_DEV_STAT_RC_UNSUPPORTED (0x07) 73762306a36Sopenharmony_ci#define MPI2_EVENT_SAS_DEV_STAT_RC_INTERNAL_DEVICE_RESET (0x08) 73862306a36Sopenharmony_ci#define MPI2_EVENT_SAS_DEV_STAT_RC_TASK_ABORT_INTERNAL (0x09) 73962306a36Sopenharmony_ci#define MPI2_EVENT_SAS_DEV_STAT_RC_ABORT_TASK_SET_INTERNAL (0x0A) 74062306a36Sopenharmony_ci#define MPI2_EVENT_SAS_DEV_STAT_RC_CLEAR_TASK_SET_INTERNAL (0x0B) 74162306a36Sopenharmony_ci#define MPI2_EVENT_SAS_DEV_STAT_RC_QUERY_TASK_INTERNAL (0x0C) 74262306a36Sopenharmony_ci#define MPI2_EVENT_SAS_DEV_STAT_RC_ASYNC_NOTIFICATION (0x0D) 74362306a36Sopenharmony_ci#define MPI2_EVENT_SAS_DEV_STAT_RC_CMP_INTERNAL_DEV_RESET (0x0E) 74462306a36Sopenharmony_ci#define MPI2_EVENT_SAS_DEV_STAT_RC_CMP_TASK_ABORT_INTERNAL (0x0F) 74562306a36Sopenharmony_ci#define MPI2_EVENT_SAS_DEV_STAT_RC_SATA_INIT_FAILURE (0x10) 74662306a36Sopenharmony_ci#define MPI2_EVENT_SAS_DEV_STAT_RC_EXPANDER_REDUCED_FUNCTIONALITY (0x11) 74762306a36Sopenharmony_ci#define MPI2_EVENT_SAS_DEV_STAT_RC_CMP_EXPANDER_REDUCED_FUNCTIONALITY (0x12) 74862306a36Sopenharmony_ci 74962306a36Sopenharmony_ci/*Integrated RAID Operation Status Event data */ 75062306a36Sopenharmony_ci 75162306a36Sopenharmony_citypedef struct _MPI2_EVENT_DATA_IR_OPERATION_STATUS { 75262306a36Sopenharmony_ci U16 VolDevHandle; /*0x00 */ 75362306a36Sopenharmony_ci U16 Reserved1; /*0x02 */ 75462306a36Sopenharmony_ci U8 RAIDOperation; /*0x04 */ 75562306a36Sopenharmony_ci U8 PercentComplete; /*0x05 */ 75662306a36Sopenharmony_ci U16 Reserved2; /*0x06 */ 75762306a36Sopenharmony_ci U32 ElapsedSeconds; /*0x08 */ 75862306a36Sopenharmony_ci} MPI2_EVENT_DATA_IR_OPERATION_STATUS, 75962306a36Sopenharmony_ci *PTR_MPI2_EVENT_DATA_IR_OPERATION_STATUS, 76062306a36Sopenharmony_ci Mpi2EventDataIrOperationStatus_t, 76162306a36Sopenharmony_ci *pMpi2EventDataIrOperationStatus_t; 76262306a36Sopenharmony_ci 76362306a36Sopenharmony_ci/*Integrated RAID Operation Status Event data RAIDOperation values */ 76462306a36Sopenharmony_ci#define MPI2_EVENT_IR_RAIDOP_RESYNC (0x00) 76562306a36Sopenharmony_ci#define MPI2_EVENT_IR_RAIDOP_ONLINE_CAP_EXPANSION (0x01) 76662306a36Sopenharmony_ci#define MPI2_EVENT_IR_RAIDOP_CONSISTENCY_CHECK (0x02) 76762306a36Sopenharmony_ci#define MPI2_EVENT_IR_RAIDOP_BACKGROUND_INIT (0x03) 76862306a36Sopenharmony_ci#define MPI2_EVENT_IR_RAIDOP_MAKE_DATA_CONSISTENT (0x04) 76962306a36Sopenharmony_ci 77062306a36Sopenharmony_ci/*Integrated RAID Volume Event data */ 77162306a36Sopenharmony_ci 77262306a36Sopenharmony_citypedef struct _MPI2_EVENT_DATA_IR_VOLUME { 77362306a36Sopenharmony_ci U16 VolDevHandle; /*0x00 */ 77462306a36Sopenharmony_ci U8 ReasonCode; /*0x02 */ 77562306a36Sopenharmony_ci U8 Reserved1; /*0x03 */ 77662306a36Sopenharmony_ci U32 NewValue; /*0x04 */ 77762306a36Sopenharmony_ci U32 PreviousValue; /*0x08 */ 77862306a36Sopenharmony_ci} MPI2_EVENT_DATA_IR_VOLUME, *PTR_MPI2_EVENT_DATA_IR_VOLUME, 77962306a36Sopenharmony_ci Mpi2EventDataIrVolume_t, *pMpi2EventDataIrVolume_t; 78062306a36Sopenharmony_ci 78162306a36Sopenharmony_ci/*Integrated RAID Volume Event data ReasonCode values */ 78262306a36Sopenharmony_ci#define MPI2_EVENT_IR_VOLUME_RC_SETTINGS_CHANGED (0x01) 78362306a36Sopenharmony_ci#define MPI2_EVENT_IR_VOLUME_RC_STATUS_FLAGS_CHANGED (0x02) 78462306a36Sopenharmony_ci#define MPI2_EVENT_IR_VOLUME_RC_STATE_CHANGED (0x03) 78562306a36Sopenharmony_ci 78662306a36Sopenharmony_ci/*Integrated RAID Physical Disk Event data */ 78762306a36Sopenharmony_ci 78862306a36Sopenharmony_citypedef struct _MPI2_EVENT_DATA_IR_PHYSICAL_DISK { 78962306a36Sopenharmony_ci U16 Reserved1; /*0x00 */ 79062306a36Sopenharmony_ci U8 ReasonCode; /*0x02 */ 79162306a36Sopenharmony_ci U8 PhysDiskNum; /*0x03 */ 79262306a36Sopenharmony_ci U16 PhysDiskDevHandle; /*0x04 */ 79362306a36Sopenharmony_ci U16 Reserved2; /*0x06 */ 79462306a36Sopenharmony_ci U16 Slot; /*0x08 */ 79562306a36Sopenharmony_ci U16 EnclosureHandle; /*0x0A */ 79662306a36Sopenharmony_ci U32 NewValue; /*0x0C */ 79762306a36Sopenharmony_ci U32 PreviousValue; /*0x10 */ 79862306a36Sopenharmony_ci} MPI2_EVENT_DATA_IR_PHYSICAL_DISK, 79962306a36Sopenharmony_ci *PTR_MPI2_EVENT_DATA_IR_PHYSICAL_DISK, 80062306a36Sopenharmony_ci Mpi2EventDataIrPhysicalDisk_t, 80162306a36Sopenharmony_ci *pMpi2EventDataIrPhysicalDisk_t; 80262306a36Sopenharmony_ci 80362306a36Sopenharmony_ci/*Integrated RAID Physical Disk Event data ReasonCode values */ 80462306a36Sopenharmony_ci#define MPI2_EVENT_IR_PHYSDISK_RC_SETTINGS_CHANGED (0x01) 80562306a36Sopenharmony_ci#define MPI2_EVENT_IR_PHYSDISK_RC_STATUS_FLAGS_CHANGED (0x02) 80662306a36Sopenharmony_ci#define MPI2_EVENT_IR_PHYSDISK_RC_STATE_CHANGED (0x03) 80762306a36Sopenharmony_ci 80862306a36Sopenharmony_ci/*Integrated RAID Configuration Change List Event data */ 80962306a36Sopenharmony_ci 81062306a36Sopenharmony_ci/* 81162306a36Sopenharmony_ci *Host code (drivers, BIOS, utilities, etc.) should leave this define set to 81262306a36Sopenharmony_ci *one and check NumElements at runtime. 81362306a36Sopenharmony_ci */ 81462306a36Sopenharmony_ci#ifndef MPI2_EVENT_IR_CONFIG_ELEMENT_COUNT 81562306a36Sopenharmony_ci#define MPI2_EVENT_IR_CONFIG_ELEMENT_COUNT (1) 81662306a36Sopenharmony_ci#endif 81762306a36Sopenharmony_ci 81862306a36Sopenharmony_citypedef struct _MPI2_EVENT_IR_CONFIG_ELEMENT { 81962306a36Sopenharmony_ci U16 ElementFlags; /*0x00 */ 82062306a36Sopenharmony_ci U16 VolDevHandle; /*0x02 */ 82162306a36Sopenharmony_ci U8 ReasonCode; /*0x04 */ 82262306a36Sopenharmony_ci U8 PhysDiskNum; /*0x05 */ 82362306a36Sopenharmony_ci U16 PhysDiskDevHandle; /*0x06 */ 82462306a36Sopenharmony_ci} MPI2_EVENT_IR_CONFIG_ELEMENT, *PTR_MPI2_EVENT_IR_CONFIG_ELEMENT, 82562306a36Sopenharmony_ci Mpi2EventIrConfigElement_t, *pMpi2EventIrConfigElement_t; 82662306a36Sopenharmony_ci 82762306a36Sopenharmony_ci/*IR Configuration Change List Event data ElementFlags values */ 82862306a36Sopenharmony_ci#define MPI2_EVENT_IR_CHANGE_EFLAGS_ELEMENT_TYPE_MASK (0x000F) 82962306a36Sopenharmony_ci#define MPI2_EVENT_IR_CHANGE_EFLAGS_VOLUME_ELEMENT (0x0000) 83062306a36Sopenharmony_ci#define MPI2_EVENT_IR_CHANGE_EFLAGS_VOLPHYSDISK_ELEMENT (0x0001) 83162306a36Sopenharmony_ci#define MPI2_EVENT_IR_CHANGE_EFLAGS_HOTSPARE_ELEMENT (0x0002) 83262306a36Sopenharmony_ci 83362306a36Sopenharmony_ci/*IR Configuration Change List Event data ReasonCode values */ 83462306a36Sopenharmony_ci#define MPI2_EVENT_IR_CHANGE_RC_ADDED (0x01) 83562306a36Sopenharmony_ci#define MPI2_EVENT_IR_CHANGE_RC_REMOVED (0x02) 83662306a36Sopenharmony_ci#define MPI2_EVENT_IR_CHANGE_RC_NO_CHANGE (0x03) 83762306a36Sopenharmony_ci#define MPI2_EVENT_IR_CHANGE_RC_HIDE (0x04) 83862306a36Sopenharmony_ci#define MPI2_EVENT_IR_CHANGE_RC_UNHIDE (0x05) 83962306a36Sopenharmony_ci#define MPI2_EVENT_IR_CHANGE_RC_VOLUME_CREATED (0x06) 84062306a36Sopenharmony_ci#define MPI2_EVENT_IR_CHANGE_RC_VOLUME_DELETED (0x07) 84162306a36Sopenharmony_ci#define MPI2_EVENT_IR_CHANGE_RC_PD_CREATED (0x08) 84262306a36Sopenharmony_ci#define MPI2_EVENT_IR_CHANGE_RC_PD_DELETED (0x09) 84362306a36Sopenharmony_ci 84462306a36Sopenharmony_citypedef struct _MPI2_EVENT_DATA_IR_CONFIG_CHANGE_LIST { 84562306a36Sopenharmony_ci U8 NumElements; /*0x00 */ 84662306a36Sopenharmony_ci U8 Reserved1; /*0x01 */ 84762306a36Sopenharmony_ci U8 Reserved2; /*0x02 */ 84862306a36Sopenharmony_ci U8 ConfigNum; /*0x03 */ 84962306a36Sopenharmony_ci U32 Flags; /*0x04 */ 85062306a36Sopenharmony_ci MPI2_EVENT_IR_CONFIG_ELEMENT 85162306a36Sopenharmony_ci ConfigElement[MPI2_EVENT_IR_CONFIG_ELEMENT_COUNT];/*0x08 */ 85262306a36Sopenharmony_ci} MPI2_EVENT_DATA_IR_CONFIG_CHANGE_LIST, 85362306a36Sopenharmony_ci *PTR_MPI2_EVENT_DATA_IR_CONFIG_CHANGE_LIST, 85462306a36Sopenharmony_ci Mpi2EventDataIrConfigChangeList_t, 85562306a36Sopenharmony_ci *pMpi2EventDataIrConfigChangeList_t; 85662306a36Sopenharmony_ci 85762306a36Sopenharmony_ci/*IR Configuration Change List Event data Flags values */ 85862306a36Sopenharmony_ci#define MPI2_EVENT_IR_CHANGE_FLAGS_FOREIGN_CONFIG (0x00000001) 85962306a36Sopenharmony_ci 86062306a36Sopenharmony_ci/*SAS Discovery Event data */ 86162306a36Sopenharmony_ci 86262306a36Sopenharmony_citypedef struct _MPI2_EVENT_DATA_SAS_DISCOVERY { 86362306a36Sopenharmony_ci U8 Flags; /*0x00 */ 86462306a36Sopenharmony_ci U8 ReasonCode; /*0x01 */ 86562306a36Sopenharmony_ci U8 PhysicalPort; /*0x02 */ 86662306a36Sopenharmony_ci U8 Reserved1; /*0x03 */ 86762306a36Sopenharmony_ci U32 DiscoveryStatus; /*0x04 */ 86862306a36Sopenharmony_ci} MPI2_EVENT_DATA_SAS_DISCOVERY, 86962306a36Sopenharmony_ci *PTR_MPI2_EVENT_DATA_SAS_DISCOVERY, 87062306a36Sopenharmony_ci Mpi2EventDataSasDiscovery_t, *pMpi2EventDataSasDiscovery_t; 87162306a36Sopenharmony_ci 87262306a36Sopenharmony_ci/*SAS Discovery Event data Flags values */ 87362306a36Sopenharmony_ci#define MPI2_EVENT_SAS_DISC_DEVICE_CHANGE (0x02) 87462306a36Sopenharmony_ci#define MPI2_EVENT_SAS_DISC_IN_PROGRESS (0x01) 87562306a36Sopenharmony_ci 87662306a36Sopenharmony_ci/*SAS Discovery Event data ReasonCode values */ 87762306a36Sopenharmony_ci#define MPI2_EVENT_SAS_DISC_RC_STARTED (0x01) 87862306a36Sopenharmony_ci#define MPI2_EVENT_SAS_DISC_RC_COMPLETED (0x02) 87962306a36Sopenharmony_ci 88062306a36Sopenharmony_ci/*SAS Discovery Event data DiscoveryStatus values */ 88162306a36Sopenharmony_ci#define MPI2_EVENT_SAS_DISC_DS_MAX_ENCLOSURES_EXCEED (0x80000000) 88262306a36Sopenharmony_ci#define MPI2_EVENT_SAS_DISC_DS_MAX_EXPANDERS_EXCEED (0x40000000) 88362306a36Sopenharmony_ci#define MPI2_EVENT_SAS_DISC_DS_MAX_DEVICES_EXCEED (0x20000000) 88462306a36Sopenharmony_ci#define MPI2_EVENT_SAS_DISC_DS_MAX_TOPO_PHYS_EXCEED (0x10000000) 88562306a36Sopenharmony_ci#define MPI2_EVENT_SAS_DISC_DS_DOWNSTREAM_INITIATOR (0x08000000) 88662306a36Sopenharmony_ci#define MPI2_EVENT_SAS_DISC_DS_MULTI_SUBTRACTIVE_SUBTRACTIVE (0x00008000) 88762306a36Sopenharmony_ci#define MPI2_EVENT_SAS_DISC_DS_EXP_MULTI_SUBTRACTIVE (0x00004000) 88862306a36Sopenharmony_ci#define MPI2_EVENT_SAS_DISC_DS_MULTI_PORT_DOMAIN (0x00002000) 88962306a36Sopenharmony_ci#define MPI2_EVENT_SAS_DISC_DS_TABLE_TO_SUBTRACTIVE_LINK (0x00001000) 89062306a36Sopenharmony_ci#define MPI2_EVENT_SAS_DISC_DS_UNSUPPORTED_DEVICE (0x00000800) 89162306a36Sopenharmony_ci#define MPI2_EVENT_SAS_DISC_DS_TABLE_LINK (0x00000400) 89262306a36Sopenharmony_ci#define MPI2_EVENT_SAS_DISC_DS_SUBTRACTIVE_LINK (0x00000200) 89362306a36Sopenharmony_ci#define MPI2_EVENT_SAS_DISC_DS_SMP_CRC_ERROR (0x00000100) 89462306a36Sopenharmony_ci#define MPI2_EVENT_SAS_DISC_DS_SMP_FUNCTION_FAILED (0x00000080) 89562306a36Sopenharmony_ci#define MPI2_EVENT_SAS_DISC_DS_INDEX_NOT_EXIST (0x00000040) 89662306a36Sopenharmony_ci#define MPI2_EVENT_SAS_DISC_DS_OUT_ROUTE_ENTRIES (0x00000020) 89762306a36Sopenharmony_ci#define MPI2_EVENT_SAS_DISC_DS_SMP_TIMEOUT (0x00000010) 89862306a36Sopenharmony_ci#define MPI2_EVENT_SAS_DISC_DS_MULTIPLE_PORTS (0x00000004) 89962306a36Sopenharmony_ci#define MPI2_EVENT_SAS_DISC_DS_UNADDRESSABLE_DEVICE (0x00000002) 90062306a36Sopenharmony_ci#define MPI2_EVENT_SAS_DISC_DS_LOOP_DETECTED (0x00000001) 90162306a36Sopenharmony_ci 90262306a36Sopenharmony_ci/*SAS Broadcast Primitive Event data */ 90362306a36Sopenharmony_ci 90462306a36Sopenharmony_citypedef struct _MPI2_EVENT_DATA_SAS_BROADCAST_PRIMITIVE { 90562306a36Sopenharmony_ci U8 PhyNum; /*0x00 */ 90662306a36Sopenharmony_ci U8 Port; /*0x01 */ 90762306a36Sopenharmony_ci U8 PortWidth; /*0x02 */ 90862306a36Sopenharmony_ci U8 Primitive; /*0x03 */ 90962306a36Sopenharmony_ci} MPI2_EVENT_DATA_SAS_BROADCAST_PRIMITIVE, 91062306a36Sopenharmony_ci *PTR_MPI2_EVENT_DATA_SAS_BROADCAST_PRIMITIVE, 91162306a36Sopenharmony_ci Mpi2EventDataSasBroadcastPrimitive_t, 91262306a36Sopenharmony_ci *pMpi2EventDataSasBroadcastPrimitive_t; 91362306a36Sopenharmony_ci 91462306a36Sopenharmony_ci/*defines for the Primitive field */ 91562306a36Sopenharmony_ci#define MPI2_EVENT_PRIMITIVE_CHANGE (0x01) 91662306a36Sopenharmony_ci#define MPI2_EVENT_PRIMITIVE_SES (0x02) 91762306a36Sopenharmony_ci#define MPI2_EVENT_PRIMITIVE_EXPANDER (0x03) 91862306a36Sopenharmony_ci#define MPI2_EVENT_PRIMITIVE_ASYNCHRONOUS_EVENT (0x04) 91962306a36Sopenharmony_ci#define MPI2_EVENT_PRIMITIVE_RESERVED3 (0x05) 92062306a36Sopenharmony_ci#define MPI2_EVENT_PRIMITIVE_RESERVED4 (0x06) 92162306a36Sopenharmony_ci#define MPI2_EVENT_PRIMITIVE_CHANGE0_RESERVED (0x07) 92262306a36Sopenharmony_ci#define MPI2_EVENT_PRIMITIVE_CHANGE1_RESERVED (0x08) 92362306a36Sopenharmony_ci 92462306a36Sopenharmony_ci/*SAS Notify Primitive Event data */ 92562306a36Sopenharmony_ci 92662306a36Sopenharmony_citypedef struct _MPI2_EVENT_DATA_SAS_NOTIFY_PRIMITIVE { 92762306a36Sopenharmony_ci U8 PhyNum; /*0x00 */ 92862306a36Sopenharmony_ci U8 Port; /*0x01 */ 92962306a36Sopenharmony_ci U8 Reserved1; /*0x02 */ 93062306a36Sopenharmony_ci U8 Primitive; /*0x03 */ 93162306a36Sopenharmony_ci} MPI2_EVENT_DATA_SAS_NOTIFY_PRIMITIVE, 93262306a36Sopenharmony_ci *PTR_MPI2_EVENT_DATA_SAS_NOTIFY_PRIMITIVE, 93362306a36Sopenharmony_ci Mpi2EventDataSasNotifyPrimitive_t, 93462306a36Sopenharmony_ci *pMpi2EventDataSasNotifyPrimitive_t; 93562306a36Sopenharmony_ci 93662306a36Sopenharmony_ci/*defines for the Primitive field */ 93762306a36Sopenharmony_ci#define MPI2_EVENT_NOTIFY_ENABLE_SPINUP (0x01) 93862306a36Sopenharmony_ci#define MPI2_EVENT_NOTIFY_POWER_LOSS_EXPECTED (0x02) 93962306a36Sopenharmony_ci#define MPI2_EVENT_NOTIFY_RESERVED1 (0x03) 94062306a36Sopenharmony_ci#define MPI2_EVENT_NOTIFY_RESERVED2 (0x04) 94162306a36Sopenharmony_ci 94262306a36Sopenharmony_ci/*SAS Initiator Device Status Change Event data */ 94362306a36Sopenharmony_ci 94462306a36Sopenharmony_citypedef struct _MPI2_EVENT_DATA_SAS_INIT_DEV_STATUS_CHANGE { 94562306a36Sopenharmony_ci U8 ReasonCode; /*0x00 */ 94662306a36Sopenharmony_ci U8 PhysicalPort; /*0x01 */ 94762306a36Sopenharmony_ci U16 DevHandle; /*0x02 */ 94862306a36Sopenharmony_ci U64 SASAddress; /*0x04 */ 94962306a36Sopenharmony_ci} MPI2_EVENT_DATA_SAS_INIT_DEV_STATUS_CHANGE, 95062306a36Sopenharmony_ci *PTR_MPI2_EVENT_DATA_SAS_INIT_DEV_STATUS_CHANGE, 95162306a36Sopenharmony_ci Mpi2EventDataSasInitDevStatusChange_t, 95262306a36Sopenharmony_ci *pMpi2EventDataSasInitDevStatusChange_t; 95362306a36Sopenharmony_ci 95462306a36Sopenharmony_ci/*SAS Initiator Device Status Change event ReasonCode values */ 95562306a36Sopenharmony_ci#define MPI2_EVENT_SAS_INIT_RC_ADDED (0x01) 95662306a36Sopenharmony_ci#define MPI2_EVENT_SAS_INIT_RC_NOT_RESPONDING (0x02) 95762306a36Sopenharmony_ci 95862306a36Sopenharmony_ci/*SAS Initiator Device Table Overflow Event data */ 95962306a36Sopenharmony_ci 96062306a36Sopenharmony_citypedef struct _MPI2_EVENT_DATA_SAS_INIT_TABLE_OVERFLOW { 96162306a36Sopenharmony_ci U16 MaxInit; /*0x00 */ 96262306a36Sopenharmony_ci U16 CurrentInit; /*0x02 */ 96362306a36Sopenharmony_ci U64 SASAddress; /*0x04 */ 96462306a36Sopenharmony_ci} MPI2_EVENT_DATA_SAS_INIT_TABLE_OVERFLOW, 96562306a36Sopenharmony_ci *PTR_MPI2_EVENT_DATA_SAS_INIT_TABLE_OVERFLOW, 96662306a36Sopenharmony_ci Mpi2EventDataSasInitTableOverflow_t, 96762306a36Sopenharmony_ci *pMpi2EventDataSasInitTableOverflow_t; 96862306a36Sopenharmony_ci 96962306a36Sopenharmony_ci/*SAS Topology Change List Event data */ 97062306a36Sopenharmony_ci 97162306a36Sopenharmony_ci/* 97262306a36Sopenharmony_ci *Host code (drivers, BIOS, utilities, etc.) should leave this define set to 97362306a36Sopenharmony_ci *one and check NumEntries at runtime. 97462306a36Sopenharmony_ci */ 97562306a36Sopenharmony_ci#ifndef MPI2_EVENT_SAS_TOPO_PHY_COUNT 97662306a36Sopenharmony_ci#define MPI2_EVENT_SAS_TOPO_PHY_COUNT (1) 97762306a36Sopenharmony_ci#endif 97862306a36Sopenharmony_ci 97962306a36Sopenharmony_citypedef struct _MPI2_EVENT_SAS_TOPO_PHY_ENTRY { 98062306a36Sopenharmony_ci U16 AttachedDevHandle; /*0x00 */ 98162306a36Sopenharmony_ci U8 LinkRate; /*0x02 */ 98262306a36Sopenharmony_ci U8 PhyStatus; /*0x03 */ 98362306a36Sopenharmony_ci} MPI2_EVENT_SAS_TOPO_PHY_ENTRY, *PTR_MPI2_EVENT_SAS_TOPO_PHY_ENTRY, 98462306a36Sopenharmony_ci Mpi2EventSasTopoPhyEntry_t, *pMpi2EventSasTopoPhyEntry_t; 98562306a36Sopenharmony_ci 98662306a36Sopenharmony_citypedef struct _MPI2_EVENT_DATA_SAS_TOPOLOGY_CHANGE_LIST { 98762306a36Sopenharmony_ci U16 EnclosureHandle; /*0x00 */ 98862306a36Sopenharmony_ci U16 ExpanderDevHandle; /*0x02 */ 98962306a36Sopenharmony_ci U8 NumPhys; /*0x04 */ 99062306a36Sopenharmony_ci U8 Reserved1; /*0x05 */ 99162306a36Sopenharmony_ci U16 Reserved2; /*0x06 */ 99262306a36Sopenharmony_ci U8 NumEntries; /*0x08 */ 99362306a36Sopenharmony_ci U8 StartPhyNum; /*0x09 */ 99462306a36Sopenharmony_ci U8 ExpStatus; /*0x0A */ 99562306a36Sopenharmony_ci U8 PhysicalPort; /*0x0B */ 99662306a36Sopenharmony_ci MPI2_EVENT_SAS_TOPO_PHY_ENTRY 99762306a36Sopenharmony_ci PHY[MPI2_EVENT_SAS_TOPO_PHY_COUNT]; /*0x0C */ 99862306a36Sopenharmony_ci} MPI2_EVENT_DATA_SAS_TOPOLOGY_CHANGE_LIST, 99962306a36Sopenharmony_ci *PTR_MPI2_EVENT_DATA_SAS_TOPOLOGY_CHANGE_LIST, 100062306a36Sopenharmony_ci Mpi2EventDataSasTopologyChangeList_t, 100162306a36Sopenharmony_ci *pMpi2EventDataSasTopologyChangeList_t; 100262306a36Sopenharmony_ci 100362306a36Sopenharmony_ci/*values for the ExpStatus field */ 100462306a36Sopenharmony_ci#define MPI2_EVENT_SAS_TOPO_ES_NO_EXPANDER (0x00) 100562306a36Sopenharmony_ci#define MPI2_EVENT_SAS_TOPO_ES_ADDED (0x01) 100662306a36Sopenharmony_ci#define MPI2_EVENT_SAS_TOPO_ES_NOT_RESPONDING (0x02) 100762306a36Sopenharmony_ci#define MPI2_EVENT_SAS_TOPO_ES_RESPONDING (0x03) 100862306a36Sopenharmony_ci#define MPI2_EVENT_SAS_TOPO_ES_DELAY_NOT_RESPONDING (0x04) 100962306a36Sopenharmony_ci 101062306a36Sopenharmony_ci/*defines for the LinkRate field */ 101162306a36Sopenharmony_ci#define MPI2_EVENT_SAS_TOPO_LR_CURRENT_MASK (0xF0) 101262306a36Sopenharmony_ci#define MPI2_EVENT_SAS_TOPO_LR_CURRENT_SHIFT (4) 101362306a36Sopenharmony_ci#define MPI2_EVENT_SAS_TOPO_LR_PREV_MASK (0x0F) 101462306a36Sopenharmony_ci#define MPI2_EVENT_SAS_TOPO_LR_PREV_SHIFT (0) 101562306a36Sopenharmony_ci 101662306a36Sopenharmony_ci#define MPI2_EVENT_SAS_TOPO_LR_UNKNOWN_LINK_RATE (0x00) 101762306a36Sopenharmony_ci#define MPI2_EVENT_SAS_TOPO_LR_PHY_DISABLED (0x01) 101862306a36Sopenharmony_ci#define MPI2_EVENT_SAS_TOPO_LR_NEGOTIATION_FAILED (0x02) 101962306a36Sopenharmony_ci#define MPI2_EVENT_SAS_TOPO_LR_SATA_OOB_COMPLETE (0x03) 102062306a36Sopenharmony_ci#define MPI2_EVENT_SAS_TOPO_LR_PORT_SELECTOR (0x04) 102162306a36Sopenharmony_ci#define MPI2_EVENT_SAS_TOPO_LR_SMP_RESET_IN_PROGRESS (0x05) 102262306a36Sopenharmony_ci#define MPI2_EVENT_SAS_TOPO_LR_UNSUPPORTED_PHY (0x06) 102362306a36Sopenharmony_ci#define MPI2_EVENT_SAS_TOPO_LR_RATE_1_5 (0x08) 102462306a36Sopenharmony_ci#define MPI2_EVENT_SAS_TOPO_LR_RATE_3_0 (0x09) 102562306a36Sopenharmony_ci#define MPI2_EVENT_SAS_TOPO_LR_RATE_6_0 (0x0A) 102662306a36Sopenharmony_ci#define MPI25_EVENT_SAS_TOPO_LR_RATE_12_0 (0x0B) 102762306a36Sopenharmony_ci#define MPI26_EVENT_SAS_TOPO_LR_RATE_22_5 (0x0C) 102862306a36Sopenharmony_ci 102962306a36Sopenharmony_ci/*values for the PhyStatus field */ 103062306a36Sopenharmony_ci#define MPI2_EVENT_SAS_TOPO_PHYSTATUS_VACANT (0x80) 103162306a36Sopenharmony_ci#define MPI2_EVENT_SAS_TOPO_PS_MULTIPLEX_CHANGE (0x10) 103262306a36Sopenharmony_ci/*values for the PhyStatus ReasonCode sub-field */ 103362306a36Sopenharmony_ci#define MPI2_EVENT_SAS_TOPO_RC_MASK (0x0F) 103462306a36Sopenharmony_ci#define MPI2_EVENT_SAS_TOPO_RC_TARG_ADDED (0x01) 103562306a36Sopenharmony_ci#define MPI2_EVENT_SAS_TOPO_RC_TARG_NOT_RESPONDING (0x02) 103662306a36Sopenharmony_ci#define MPI2_EVENT_SAS_TOPO_RC_PHY_CHANGED (0x03) 103762306a36Sopenharmony_ci#define MPI2_EVENT_SAS_TOPO_RC_NO_CHANGE (0x04) 103862306a36Sopenharmony_ci#define MPI2_EVENT_SAS_TOPO_RC_DELAY_NOT_RESPONDING (0x05) 103962306a36Sopenharmony_ci 104062306a36Sopenharmony_ci/*SAS Enclosure Device Status Change Event data */ 104162306a36Sopenharmony_ci 104262306a36Sopenharmony_citypedef struct _MPI2_EVENT_DATA_SAS_ENCL_DEV_STATUS_CHANGE { 104362306a36Sopenharmony_ci U16 EnclosureHandle; /*0x00 */ 104462306a36Sopenharmony_ci U8 ReasonCode; /*0x02 */ 104562306a36Sopenharmony_ci U8 PhysicalPort; /*0x03 */ 104662306a36Sopenharmony_ci U64 EnclosureLogicalID; /*0x04 */ 104762306a36Sopenharmony_ci U16 NumSlots; /*0x0C */ 104862306a36Sopenharmony_ci U16 StartSlot; /*0x0E */ 104962306a36Sopenharmony_ci U32 PhyBits; /*0x10 */ 105062306a36Sopenharmony_ci} MPI2_EVENT_DATA_SAS_ENCL_DEV_STATUS_CHANGE, 105162306a36Sopenharmony_ci *PTR_MPI2_EVENT_DATA_SAS_ENCL_DEV_STATUS_CHANGE, 105262306a36Sopenharmony_ci Mpi2EventDataSasEnclDevStatusChange_t, 105362306a36Sopenharmony_ci *pMpi2EventDataSasEnclDevStatusChange_t, 105462306a36Sopenharmony_ci MPI26_EVENT_DATA_ENCL_DEV_STATUS_CHANGE, 105562306a36Sopenharmony_ci *PTR_MPI26_EVENT_DATA_ENCL_DEV_STATUS_CHANGE, 105662306a36Sopenharmony_ci Mpi26EventDataEnclDevStatusChange_t, 105762306a36Sopenharmony_ci *pMpi26EventDataEnclDevStatusChange_t; 105862306a36Sopenharmony_ci 105962306a36Sopenharmony_ci/*SAS Enclosure Device Status Change event ReasonCode values */ 106062306a36Sopenharmony_ci#define MPI2_EVENT_SAS_ENCL_RC_ADDED (0x01) 106162306a36Sopenharmony_ci#define MPI2_EVENT_SAS_ENCL_RC_NOT_RESPONDING (0x02) 106262306a36Sopenharmony_ci 106362306a36Sopenharmony_ci/*Enclosure Device Status Change event ReasonCode values */ 106462306a36Sopenharmony_ci#define MPI26_EVENT_ENCL_RC_ADDED (0x01) 106562306a36Sopenharmony_ci#define MPI26_EVENT_ENCL_RC_NOT_RESPONDING (0x02) 106662306a36Sopenharmony_ci 106762306a36Sopenharmony_ci 106862306a36Sopenharmony_citypedef struct _MPI25_EVENT_DATA_SAS_DEVICE_DISCOVERY_ERROR { 106962306a36Sopenharmony_ci U16 DevHandle; /*0x00 */ 107062306a36Sopenharmony_ci U8 ReasonCode; /*0x02 */ 107162306a36Sopenharmony_ci U8 PhysicalPort; /*0x03 */ 107262306a36Sopenharmony_ci U32 Reserved1[2]; /*0x04 */ 107362306a36Sopenharmony_ci U64 SASAddress; /*0x0C */ 107462306a36Sopenharmony_ci U32 Reserved2[2]; /*0x14 */ 107562306a36Sopenharmony_ci} MPI25_EVENT_DATA_SAS_DEVICE_DISCOVERY_ERROR, 107662306a36Sopenharmony_ci *PTR_MPI25_EVENT_DATA_SAS_DEVICE_DISCOVERY_ERROR, 107762306a36Sopenharmony_ci Mpi25EventDataSasDeviceDiscoveryError_t, 107862306a36Sopenharmony_ci *pMpi25EventDataSasDeviceDiscoveryError_t; 107962306a36Sopenharmony_ci 108062306a36Sopenharmony_ci/*SAS Device Discovery Error Event data ReasonCode values */ 108162306a36Sopenharmony_ci#define MPI25_EVENT_SAS_DISC_ERR_SMP_FAILED (0x01) 108262306a36Sopenharmony_ci#define MPI25_EVENT_SAS_DISC_ERR_SMP_TIMEOUT (0x02) 108362306a36Sopenharmony_ci 108462306a36Sopenharmony_ci/*SAS PHY Counter Event data */ 108562306a36Sopenharmony_ci 108662306a36Sopenharmony_citypedef struct _MPI2_EVENT_DATA_SAS_PHY_COUNTER { 108762306a36Sopenharmony_ci U64 TimeStamp; /*0x00 */ 108862306a36Sopenharmony_ci U32 Reserved1; /*0x08 */ 108962306a36Sopenharmony_ci U8 PhyEventCode; /*0x0C */ 109062306a36Sopenharmony_ci U8 PhyNum; /*0x0D */ 109162306a36Sopenharmony_ci U16 Reserved2; /*0x0E */ 109262306a36Sopenharmony_ci U32 PhyEventInfo; /*0x10 */ 109362306a36Sopenharmony_ci U8 CounterType; /*0x14 */ 109462306a36Sopenharmony_ci U8 ThresholdWindow; /*0x15 */ 109562306a36Sopenharmony_ci U8 TimeUnits; /*0x16 */ 109662306a36Sopenharmony_ci U8 Reserved3; /*0x17 */ 109762306a36Sopenharmony_ci U32 EventThreshold; /*0x18 */ 109862306a36Sopenharmony_ci U16 ThresholdFlags; /*0x1C */ 109962306a36Sopenharmony_ci U16 Reserved4; /*0x1E */ 110062306a36Sopenharmony_ci} MPI2_EVENT_DATA_SAS_PHY_COUNTER, 110162306a36Sopenharmony_ci *PTR_MPI2_EVENT_DATA_SAS_PHY_COUNTER, 110262306a36Sopenharmony_ci Mpi2EventDataSasPhyCounter_t, 110362306a36Sopenharmony_ci *pMpi2EventDataSasPhyCounter_t; 110462306a36Sopenharmony_ci 110562306a36Sopenharmony_ci/*use MPI2_SASPHY3_EVENT_CODE_ values from mpi2_cnfg.h 110662306a36Sopenharmony_ci *for the PhyEventCode field */ 110762306a36Sopenharmony_ci 110862306a36Sopenharmony_ci/*use MPI2_SASPHY3_COUNTER_TYPE_ values from mpi2_cnfg.h 110962306a36Sopenharmony_ci *for the CounterType field */ 111062306a36Sopenharmony_ci 111162306a36Sopenharmony_ci/*use MPI2_SASPHY3_TIME_UNITS_ values from mpi2_cnfg.h 111262306a36Sopenharmony_ci *for the TimeUnits field */ 111362306a36Sopenharmony_ci 111462306a36Sopenharmony_ci/*use MPI2_SASPHY3_TFLAGS_ values from mpi2_cnfg.h 111562306a36Sopenharmony_ci *for the ThresholdFlags field */ 111662306a36Sopenharmony_ci 111762306a36Sopenharmony_ci/*SAS Quiesce Event data */ 111862306a36Sopenharmony_ci 111962306a36Sopenharmony_citypedef struct _MPI2_EVENT_DATA_SAS_QUIESCE { 112062306a36Sopenharmony_ci U8 ReasonCode; /*0x00 */ 112162306a36Sopenharmony_ci U8 Reserved1; /*0x01 */ 112262306a36Sopenharmony_ci U16 Reserved2; /*0x02 */ 112362306a36Sopenharmony_ci U32 Reserved3; /*0x04 */ 112462306a36Sopenharmony_ci} MPI2_EVENT_DATA_SAS_QUIESCE, 112562306a36Sopenharmony_ci *PTR_MPI2_EVENT_DATA_SAS_QUIESCE, 112662306a36Sopenharmony_ci Mpi2EventDataSasQuiesce_t, *pMpi2EventDataSasQuiesce_t; 112762306a36Sopenharmony_ci 112862306a36Sopenharmony_ci/*SAS Quiesce Event data ReasonCode values */ 112962306a36Sopenharmony_ci#define MPI2_EVENT_SAS_QUIESCE_RC_STARTED (0x01) 113062306a36Sopenharmony_ci#define MPI2_EVENT_SAS_QUIESCE_RC_COMPLETED (0x02) 113162306a36Sopenharmony_ci 113262306a36Sopenharmony_ci/*Host Based Discovery Phy Event data */ 113362306a36Sopenharmony_ci 113462306a36Sopenharmony_citypedef struct _MPI2_EVENT_HBD_PHY_SAS { 113562306a36Sopenharmony_ci U8 Flags; /*0x00 */ 113662306a36Sopenharmony_ci U8 NegotiatedLinkRate; /*0x01 */ 113762306a36Sopenharmony_ci U8 PhyNum; /*0x02 */ 113862306a36Sopenharmony_ci U8 PhysicalPort; /*0x03 */ 113962306a36Sopenharmony_ci U32 Reserved1; /*0x04 */ 114062306a36Sopenharmony_ci U8 InitialFrame[28]; /*0x08 */ 114162306a36Sopenharmony_ci} MPI2_EVENT_HBD_PHY_SAS, *PTR_MPI2_EVENT_HBD_PHY_SAS, 114262306a36Sopenharmony_ci Mpi2EventHbdPhySas_t, *pMpi2EventHbdPhySas_t; 114362306a36Sopenharmony_ci 114462306a36Sopenharmony_ci/*values for the Flags field */ 114562306a36Sopenharmony_ci#define MPI2_EVENT_HBD_SAS_FLAGS_FRAME_VALID (0x02) 114662306a36Sopenharmony_ci#define MPI2_EVENT_HBD_SAS_FLAGS_SATA_FRAME (0x01) 114762306a36Sopenharmony_ci 114862306a36Sopenharmony_ci/*use MPI2_SAS_NEG_LINK_RATE_ defines from mpi2_cnfg.h 114962306a36Sopenharmony_ci *for the NegotiatedLinkRate field */ 115062306a36Sopenharmony_ci 115162306a36Sopenharmony_citypedef union _MPI2_EVENT_HBD_DESCRIPTOR { 115262306a36Sopenharmony_ci MPI2_EVENT_HBD_PHY_SAS Sas; 115362306a36Sopenharmony_ci} MPI2_EVENT_HBD_DESCRIPTOR, *PTR_MPI2_EVENT_HBD_DESCRIPTOR, 115462306a36Sopenharmony_ci Mpi2EventHbdDescriptor_t, *pMpi2EventHbdDescriptor_t; 115562306a36Sopenharmony_ci 115662306a36Sopenharmony_citypedef struct _MPI2_EVENT_DATA_HBD_PHY { 115762306a36Sopenharmony_ci U8 DescriptorType; /*0x00 */ 115862306a36Sopenharmony_ci U8 Reserved1; /*0x01 */ 115962306a36Sopenharmony_ci U16 Reserved2; /*0x02 */ 116062306a36Sopenharmony_ci U32 Reserved3; /*0x04 */ 116162306a36Sopenharmony_ci MPI2_EVENT_HBD_DESCRIPTOR Descriptor; /*0x08 */ 116262306a36Sopenharmony_ci} MPI2_EVENT_DATA_HBD_PHY, *PTR_MPI2_EVENT_DATA_HBD_PHY, 116362306a36Sopenharmony_ci Mpi2EventDataHbdPhy_t, 116462306a36Sopenharmony_ci *pMpi2EventDataMpi2EventDataHbdPhy_t; 116562306a36Sopenharmony_ci 116662306a36Sopenharmony_ci/*values for the DescriptorType field */ 116762306a36Sopenharmony_ci#define MPI2_EVENT_HBD_DT_SAS (0x01) 116862306a36Sopenharmony_ci 116962306a36Sopenharmony_ci 117062306a36Sopenharmony_ci/*PCIe Device Status Change Event data (MPI v2.6 and later) */ 117162306a36Sopenharmony_ci 117262306a36Sopenharmony_citypedef struct _MPI26_EVENT_DATA_PCIE_DEVICE_STATUS_CHANGE { 117362306a36Sopenharmony_ci U16 TaskTag; /*0x00 */ 117462306a36Sopenharmony_ci U8 ReasonCode; /*0x02 */ 117562306a36Sopenharmony_ci U8 PhysicalPort; /*0x03 */ 117662306a36Sopenharmony_ci U8 ASC; /*0x04 */ 117762306a36Sopenharmony_ci U8 ASCQ; /*0x05 */ 117862306a36Sopenharmony_ci U16 DevHandle; /*0x06 */ 117962306a36Sopenharmony_ci U32 Reserved2; /*0x08 */ 118062306a36Sopenharmony_ci U64 WWID; /*0x0C */ 118162306a36Sopenharmony_ci U8 LUN[8]; /*0x14 */ 118262306a36Sopenharmony_ci} MPI26_EVENT_DATA_PCIE_DEVICE_STATUS_CHANGE, 118362306a36Sopenharmony_ci *PTR_MPI26_EVENT_DATA_PCIE_DEVICE_STATUS_CHANGE, 118462306a36Sopenharmony_ci Mpi26EventDataPCIeDeviceStatusChange_t, 118562306a36Sopenharmony_ci *pMpi26EventDataPCIeDeviceStatusChange_t; 118662306a36Sopenharmony_ci 118762306a36Sopenharmony_ci/*PCIe Device Status Change Event data ReasonCode values */ 118862306a36Sopenharmony_ci#define MPI26_EVENT_PCIDEV_STAT_RC_SMART_DATA (0x05) 118962306a36Sopenharmony_ci#define MPI26_EVENT_PCIDEV_STAT_RC_UNSUPPORTED (0x07) 119062306a36Sopenharmony_ci#define MPI26_EVENT_PCIDEV_STAT_RC_INTERNAL_DEVICE_RESET (0x08) 119162306a36Sopenharmony_ci#define MPI26_EVENT_PCIDEV_STAT_RC_TASK_ABORT_INTERNAL (0x09) 119262306a36Sopenharmony_ci#define MPI26_EVENT_PCIDEV_STAT_RC_ABORT_TASK_SET_INTERNAL (0x0A) 119362306a36Sopenharmony_ci#define MPI26_EVENT_PCIDEV_STAT_RC_CLEAR_TASK_SET_INTERNAL (0x0B) 119462306a36Sopenharmony_ci#define MPI26_EVENT_PCIDEV_STAT_RC_QUERY_TASK_INTERNAL (0x0C) 119562306a36Sopenharmony_ci#define MPI26_EVENT_PCIDEV_STAT_RC_ASYNC_NOTIFICATION (0x0D) 119662306a36Sopenharmony_ci#define MPI26_EVENT_PCIDEV_STAT_RC_CMP_INTERNAL_DEV_RESET (0x0E) 119762306a36Sopenharmony_ci#define MPI26_EVENT_PCIDEV_STAT_RC_CMP_TASK_ABORT_INTERNAL (0x0F) 119862306a36Sopenharmony_ci#define MPI26_EVENT_PCIDEV_STAT_RC_DEV_INIT_FAILURE (0x10) 119962306a36Sopenharmony_ci#define MPI26_EVENT_PCIDEV_STAT_RC_PCIE_HOT_RESET_FAILED (0x11) 120062306a36Sopenharmony_ci 120162306a36Sopenharmony_ci 120262306a36Sopenharmony_ci/*PCIe Enumeration Event data (MPI v2.6 and later) */ 120362306a36Sopenharmony_ci 120462306a36Sopenharmony_citypedef struct _MPI26_EVENT_DATA_PCIE_ENUMERATION { 120562306a36Sopenharmony_ci U8 Flags; /*0x00 */ 120662306a36Sopenharmony_ci U8 ReasonCode; /*0x01 */ 120762306a36Sopenharmony_ci U8 PhysicalPort; /*0x02 */ 120862306a36Sopenharmony_ci U8 Reserved1; /*0x03 */ 120962306a36Sopenharmony_ci U32 EnumerationStatus; /*0x04 */ 121062306a36Sopenharmony_ci} MPI26_EVENT_DATA_PCIE_ENUMERATION, 121162306a36Sopenharmony_ci *PTR_MPI26_EVENT_DATA_PCIE_ENUMERATION, 121262306a36Sopenharmony_ci Mpi26EventDataPCIeEnumeration_t, 121362306a36Sopenharmony_ci *pMpi26EventDataPCIeEnumeration_t; 121462306a36Sopenharmony_ci 121562306a36Sopenharmony_ci/*PCIe Enumeration Event data Flags values */ 121662306a36Sopenharmony_ci#define MPI26_EVENT_PCIE_ENUM_DEVICE_CHANGE (0x02) 121762306a36Sopenharmony_ci#define MPI26_EVENT_PCIE_ENUM_IN_PROGRESS (0x01) 121862306a36Sopenharmony_ci 121962306a36Sopenharmony_ci/*PCIe Enumeration Event data ReasonCode values */ 122062306a36Sopenharmony_ci#define MPI26_EVENT_PCIE_ENUM_RC_STARTED (0x01) 122162306a36Sopenharmony_ci#define MPI26_EVENT_PCIE_ENUM_RC_COMPLETED (0x02) 122262306a36Sopenharmony_ci 122362306a36Sopenharmony_ci/*PCIe Enumeration Event data EnumerationStatus values */ 122462306a36Sopenharmony_ci#define MPI26_EVENT_PCIE_ENUM_ES_MAX_SWITCHES_EXCEED (0x40000000) 122562306a36Sopenharmony_ci#define MPI26_EVENT_PCIE_ENUM_ES_MAX_DEVICES_EXCEED (0x20000000) 122662306a36Sopenharmony_ci#define MPI26_EVENT_PCIE_ENUM_ES_RESOURCES_EXHAUSTED (0x10000000) 122762306a36Sopenharmony_ci 122862306a36Sopenharmony_ci 122962306a36Sopenharmony_ci/*PCIe Topology Change List Event data (MPI v2.6 and later) */ 123062306a36Sopenharmony_ci 123162306a36Sopenharmony_ci/* 123262306a36Sopenharmony_ci *Host code (drivers, BIOS, utilities, etc.) should leave this define set to 123362306a36Sopenharmony_ci *one and check NumEntries at runtime. 123462306a36Sopenharmony_ci */ 123562306a36Sopenharmony_ci#ifndef MPI26_EVENT_PCIE_TOPO_PORT_COUNT 123662306a36Sopenharmony_ci#define MPI26_EVENT_PCIE_TOPO_PORT_COUNT (1) 123762306a36Sopenharmony_ci#endif 123862306a36Sopenharmony_ci 123962306a36Sopenharmony_citypedef struct _MPI26_EVENT_PCIE_TOPO_PORT_ENTRY { 124062306a36Sopenharmony_ci U16 AttachedDevHandle; /*0x00 */ 124162306a36Sopenharmony_ci U8 PortStatus; /*0x02 */ 124262306a36Sopenharmony_ci U8 Reserved1; /*0x03 */ 124362306a36Sopenharmony_ci U8 CurrentPortInfo; /*0x04 */ 124462306a36Sopenharmony_ci U8 Reserved2; /*0x05 */ 124562306a36Sopenharmony_ci U8 PreviousPortInfo; /*0x06 */ 124662306a36Sopenharmony_ci U8 Reserved3; /*0x07 */ 124762306a36Sopenharmony_ci} MPI26_EVENT_PCIE_TOPO_PORT_ENTRY, 124862306a36Sopenharmony_ci *PTR_MPI26_EVENT_PCIE_TOPO_PORT_ENTRY, 124962306a36Sopenharmony_ci Mpi26EventPCIeTopoPortEntry_t, 125062306a36Sopenharmony_ci *pMpi26EventPCIeTopoPortEntry_t; 125162306a36Sopenharmony_ci 125262306a36Sopenharmony_ci/*PCIe Topology Change List Event data PortStatus values */ 125362306a36Sopenharmony_ci#define MPI26_EVENT_PCIE_TOPO_PS_DEV_ADDED (0x01) 125462306a36Sopenharmony_ci#define MPI26_EVENT_PCIE_TOPO_PS_NOT_RESPONDING (0x02) 125562306a36Sopenharmony_ci#define MPI26_EVENT_PCIE_TOPO_PS_PORT_CHANGED (0x03) 125662306a36Sopenharmony_ci#define MPI26_EVENT_PCIE_TOPO_PS_NO_CHANGE (0x04) 125762306a36Sopenharmony_ci#define MPI26_EVENT_PCIE_TOPO_PS_DELAY_NOT_RESPONDING (0x05) 125862306a36Sopenharmony_ci 125962306a36Sopenharmony_ci/*PCIe Topology Change List Event data defines for CurrentPortInfo and 126062306a36Sopenharmony_ci *PreviousPortInfo 126162306a36Sopenharmony_ci */ 126262306a36Sopenharmony_ci#define MPI26_EVENT_PCIE_TOPO_PI_LANE_MASK (0xF0) 126362306a36Sopenharmony_ci#define MPI26_EVENT_PCIE_TOPO_PI_LANES_UNKNOWN (0x00) 126462306a36Sopenharmony_ci#define MPI26_EVENT_PCIE_TOPO_PI_1_LANE (0x10) 126562306a36Sopenharmony_ci#define MPI26_EVENT_PCIE_TOPO_PI_2_LANES (0x20) 126662306a36Sopenharmony_ci#define MPI26_EVENT_PCIE_TOPO_PI_4_LANES (0x30) 126762306a36Sopenharmony_ci#define MPI26_EVENT_PCIE_TOPO_PI_8_LANES (0x40) 126862306a36Sopenharmony_ci#define MPI26_EVENT_PCIE_TOPO_PI_16_LANES (0x50) 126962306a36Sopenharmony_ci 127062306a36Sopenharmony_ci#define MPI26_EVENT_PCIE_TOPO_PI_RATE_MASK (0x0F) 127162306a36Sopenharmony_ci#define MPI26_EVENT_PCIE_TOPO_PI_RATE_UNKNOWN (0x00) 127262306a36Sopenharmony_ci#define MPI26_EVENT_PCIE_TOPO_PI_RATE_DISABLED (0x01) 127362306a36Sopenharmony_ci#define MPI26_EVENT_PCIE_TOPO_PI_RATE_2_5 (0x02) 127462306a36Sopenharmony_ci#define MPI26_EVENT_PCIE_TOPO_PI_RATE_5_0 (0x03) 127562306a36Sopenharmony_ci#define MPI26_EVENT_PCIE_TOPO_PI_RATE_8_0 (0x04) 127662306a36Sopenharmony_ci#define MPI26_EVENT_PCIE_TOPO_PI_RATE_16_0 (0x05) 127762306a36Sopenharmony_ci 127862306a36Sopenharmony_citypedef struct _MPI26_EVENT_DATA_PCIE_TOPOLOGY_CHANGE_LIST { 127962306a36Sopenharmony_ci U16 EnclosureHandle; /*0x00 */ 128062306a36Sopenharmony_ci U16 SwitchDevHandle; /*0x02 */ 128162306a36Sopenharmony_ci U8 NumPorts; /*0x04 */ 128262306a36Sopenharmony_ci U8 Reserved1; /*0x05 */ 128362306a36Sopenharmony_ci U16 Reserved2; /*0x06 */ 128462306a36Sopenharmony_ci U8 NumEntries; /*0x08 */ 128562306a36Sopenharmony_ci U8 StartPortNum; /*0x09 */ 128662306a36Sopenharmony_ci U8 SwitchStatus; /*0x0A */ 128762306a36Sopenharmony_ci U8 PhysicalPort; /*0x0B */ 128862306a36Sopenharmony_ci MPI26_EVENT_PCIE_TOPO_PORT_ENTRY 128962306a36Sopenharmony_ci PortEntry[MPI26_EVENT_PCIE_TOPO_PORT_COUNT]; /*0x0C */ 129062306a36Sopenharmony_ci} MPI26_EVENT_DATA_PCIE_TOPOLOGY_CHANGE_LIST, 129162306a36Sopenharmony_ci *PTR_MPI26_EVENT_DATA_PCIE_TOPOLOGY_CHANGE_LIST, 129262306a36Sopenharmony_ci Mpi26EventDataPCIeTopologyChangeList_t, 129362306a36Sopenharmony_ci *pMpi26EventDataPCIeTopologyChangeList_t; 129462306a36Sopenharmony_ci 129562306a36Sopenharmony_ci/*PCIe Topology Change List Event data SwitchStatus values */ 129662306a36Sopenharmony_ci#define MPI26_EVENT_PCIE_TOPO_SS_NO_PCIE_SWITCH (0x00) 129762306a36Sopenharmony_ci#define MPI26_EVENT_PCIE_TOPO_SS_ADDED (0x01) 129862306a36Sopenharmony_ci#define MPI26_EVENT_PCIE_TOPO_SS_NOT_RESPONDING (0x02) 129962306a36Sopenharmony_ci#define MPI26_EVENT_PCIE_TOPO_SS_RESPONDING (0x03) 130062306a36Sopenharmony_ci#define MPI26_EVENT_PCIE_TOPO_SS_DELAY_NOT_RESPONDING (0x04) 130162306a36Sopenharmony_ci 130262306a36Sopenharmony_ci/*PCIe Link Counter Event data (MPI v2.6 and later) */ 130362306a36Sopenharmony_ci 130462306a36Sopenharmony_citypedef struct _MPI26_EVENT_DATA_PCIE_LINK_COUNTER { 130562306a36Sopenharmony_ci U64 TimeStamp; /*0x00 */ 130662306a36Sopenharmony_ci U32 Reserved1; /*0x08 */ 130762306a36Sopenharmony_ci U8 LinkEventCode; /*0x0C */ 130862306a36Sopenharmony_ci U8 LinkNum; /*0x0D */ 130962306a36Sopenharmony_ci U16 Reserved2; /*0x0E */ 131062306a36Sopenharmony_ci U32 LinkEventInfo; /*0x10 */ 131162306a36Sopenharmony_ci U8 CounterType; /*0x14 */ 131262306a36Sopenharmony_ci U8 ThresholdWindow; /*0x15 */ 131362306a36Sopenharmony_ci U8 TimeUnits; /*0x16 */ 131462306a36Sopenharmony_ci U8 Reserved3; /*0x17 */ 131562306a36Sopenharmony_ci U32 EventThreshold; /*0x18 */ 131662306a36Sopenharmony_ci U16 ThresholdFlags; /*0x1C */ 131762306a36Sopenharmony_ci U16 Reserved4; /*0x1E */ 131862306a36Sopenharmony_ci} MPI26_EVENT_DATA_PCIE_LINK_COUNTER, 131962306a36Sopenharmony_ci *PTR_MPI26_EVENT_DATA_PCIE_LINK_COUNTER, 132062306a36Sopenharmony_ci Mpi26EventDataPcieLinkCounter_t, *pMpi26EventDataPcieLinkCounter_t; 132162306a36Sopenharmony_ci 132262306a36Sopenharmony_ci 132362306a36Sopenharmony_ci/*use MPI26_PCIELINK3_EVTCODE_ values from mpi2_cnfg.h for the LinkEventCode 132462306a36Sopenharmony_ci *field 132562306a36Sopenharmony_ci */ 132662306a36Sopenharmony_ci 132762306a36Sopenharmony_ci/*use MPI26_PCIELINK3_COUNTER_TYPE_ values from mpi2_cnfg.h for the CounterType 132862306a36Sopenharmony_ci *field 132962306a36Sopenharmony_ci */ 133062306a36Sopenharmony_ci 133162306a36Sopenharmony_ci/*use MPI26_PCIELINK3_TIME_UNITS_ values from mpi2_cnfg.h for the TimeUnits 133262306a36Sopenharmony_ci *field 133362306a36Sopenharmony_ci */ 133462306a36Sopenharmony_ci 133562306a36Sopenharmony_ci/*use MPI26_PCIELINK3_TFLAGS_ values from mpi2_cnfg.h for the ThresholdFlags 133662306a36Sopenharmony_ci *field 133762306a36Sopenharmony_ci */ 133862306a36Sopenharmony_ci 133962306a36Sopenharmony_ci/**************************************************************************** 134062306a36Sopenharmony_ci* EventAck message 134162306a36Sopenharmony_ci****************************************************************************/ 134262306a36Sopenharmony_ci 134362306a36Sopenharmony_ci/*EventAck Request message */ 134462306a36Sopenharmony_citypedef struct _MPI2_EVENT_ACK_REQUEST { 134562306a36Sopenharmony_ci U16 Reserved1; /*0x00 */ 134662306a36Sopenharmony_ci U8 ChainOffset; /*0x02 */ 134762306a36Sopenharmony_ci U8 Function; /*0x03 */ 134862306a36Sopenharmony_ci U16 Reserved2; /*0x04 */ 134962306a36Sopenharmony_ci U8 Reserved3; /*0x06 */ 135062306a36Sopenharmony_ci U8 MsgFlags; /*0x07 */ 135162306a36Sopenharmony_ci U8 VP_ID; /*0x08 */ 135262306a36Sopenharmony_ci U8 VF_ID; /*0x09 */ 135362306a36Sopenharmony_ci U16 Reserved4; /*0x0A */ 135462306a36Sopenharmony_ci U16 Event; /*0x0C */ 135562306a36Sopenharmony_ci U16 Reserved5; /*0x0E */ 135662306a36Sopenharmony_ci U32 EventContext; /*0x10 */ 135762306a36Sopenharmony_ci} MPI2_EVENT_ACK_REQUEST, *PTR_MPI2_EVENT_ACK_REQUEST, 135862306a36Sopenharmony_ci Mpi2EventAckRequest_t, *pMpi2EventAckRequest_t; 135962306a36Sopenharmony_ci 136062306a36Sopenharmony_ci/*EventAck Reply message */ 136162306a36Sopenharmony_citypedef struct _MPI2_EVENT_ACK_REPLY { 136262306a36Sopenharmony_ci U16 Reserved1; /*0x00 */ 136362306a36Sopenharmony_ci U8 MsgLength; /*0x02 */ 136462306a36Sopenharmony_ci U8 Function; /*0x03 */ 136562306a36Sopenharmony_ci U16 Reserved2; /*0x04 */ 136662306a36Sopenharmony_ci U8 Reserved3; /*0x06 */ 136762306a36Sopenharmony_ci U8 MsgFlags; /*0x07 */ 136862306a36Sopenharmony_ci U8 VP_ID; /*0x08 */ 136962306a36Sopenharmony_ci U8 VF_ID; /*0x09 */ 137062306a36Sopenharmony_ci U16 Reserved4; /*0x0A */ 137162306a36Sopenharmony_ci U16 Reserved5; /*0x0C */ 137262306a36Sopenharmony_ci U16 IOCStatus; /*0x0E */ 137362306a36Sopenharmony_ci U32 IOCLogInfo; /*0x10 */ 137462306a36Sopenharmony_ci} MPI2_EVENT_ACK_REPLY, *PTR_MPI2_EVENT_ACK_REPLY, 137562306a36Sopenharmony_ci Mpi2EventAckReply_t, *pMpi2EventAckReply_t; 137662306a36Sopenharmony_ci 137762306a36Sopenharmony_ci/**************************************************************************** 137862306a36Sopenharmony_ci* SendHostMessage message 137962306a36Sopenharmony_ci****************************************************************************/ 138062306a36Sopenharmony_ci 138162306a36Sopenharmony_ci/*SendHostMessage Request message */ 138262306a36Sopenharmony_citypedef struct _MPI2_SEND_HOST_MESSAGE_REQUEST { 138362306a36Sopenharmony_ci U16 HostDataLength; /*0x00 */ 138462306a36Sopenharmony_ci U8 ChainOffset; /*0x02 */ 138562306a36Sopenharmony_ci U8 Function; /*0x03 */ 138662306a36Sopenharmony_ci U16 Reserved1; /*0x04 */ 138762306a36Sopenharmony_ci U8 Reserved2; /*0x06 */ 138862306a36Sopenharmony_ci U8 MsgFlags; /*0x07 */ 138962306a36Sopenharmony_ci U8 VP_ID; /*0x08 */ 139062306a36Sopenharmony_ci U8 VF_ID; /*0x09 */ 139162306a36Sopenharmony_ci U16 Reserved3; /*0x0A */ 139262306a36Sopenharmony_ci U8 Reserved4; /*0x0C */ 139362306a36Sopenharmony_ci U8 DestVF_ID; /*0x0D */ 139462306a36Sopenharmony_ci U16 Reserved5; /*0x0E */ 139562306a36Sopenharmony_ci U32 Reserved6; /*0x10 */ 139662306a36Sopenharmony_ci U32 Reserved7; /*0x14 */ 139762306a36Sopenharmony_ci U32 Reserved8; /*0x18 */ 139862306a36Sopenharmony_ci U32 Reserved9; /*0x1C */ 139962306a36Sopenharmony_ci U32 Reserved10; /*0x20 */ 140062306a36Sopenharmony_ci U32 HostData[]; /*0x24 */ 140162306a36Sopenharmony_ci} MPI2_SEND_HOST_MESSAGE_REQUEST, 140262306a36Sopenharmony_ci *PTR_MPI2_SEND_HOST_MESSAGE_REQUEST, 140362306a36Sopenharmony_ci Mpi2SendHostMessageRequest_t, 140462306a36Sopenharmony_ci *pMpi2SendHostMessageRequest_t; 140562306a36Sopenharmony_ci 140662306a36Sopenharmony_ci/*SendHostMessage Reply message */ 140762306a36Sopenharmony_citypedef struct _MPI2_SEND_HOST_MESSAGE_REPLY { 140862306a36Sopenharmony_ci U16 HostDataLength; /*0x00 */ 140962306a36Sopenharmony_ci U8 MsgLength; /*0x02 */ 141062306a36Sopenharmony_ci U8 Function; /*0x03 */ 141162306a36Sopenharmony_ci U16 Reserved1; /*0x04 */ 141262306a36Sopenharmony_ci U8 Reserved2; /*0x06 */ 141362306a36Sopenharmony_ci U8 MsgFlags; /*0x07 */ 141462306a36Sopenharmony_ci U8 VP_ID; /*0x08 */ 141562306a36Sopenharmony_ci U8 VF_ID; /*0x09 */ 141662306a36Sopenharmony_ci U16 Reserved3; /*0x0A */ 141762306a36Sopenharmony_ci U16 Reserved4; /*0x0C */ 141862306a36Sopenharmony_ci U16 IOCStatus; /*0x0E */ 141962306a36Sopenharmony_ci U32 IOCLogInfo; /*0x10 */ 142062306a36Sopenharmony_ci} MPI2_SEND_HOST_MESSAGE_REPLY, *PTR_MPI2_SEND_HOST_MESSAGE_REPLY, 142162306a36Sopenharmony_ci Mpi2SendHostMessageReply_t, *pMpi2SendHostMessageReply_t; 142262306a36Sopenharmony_ci 142362306a36Sopenharmony_ci/**************************************************************************** 142462306a36Sopenharmony_ci* FWDownload message 142562306a36Sopenharmony_ci****************************************************************************/ 142662306a36Sopenharmony_ci 142762306a36Sopenharmony_ci/*MPI v2.0 FWDownload Request message */ 142862306a36Sopenharmony_citypedef struct _MPI2_FW_DOWNLOAD_REQUEST { 142962306a36Sopenharmony_ci U8 ImageType; /*0x00 */ 143062306a36Sopenharmony_ci U8 Reserved1; /*0x01 */ 143162306a36Sopenharmony_ci U8 ChainOffset; /*0x02 */ 143262306a36Sopenharmony_ci U8 Function; /*0x03 */ 143362306a36Sopenharmony_ci U16 Reserved2; /*0x04 */ 143462306a36Sopenharmony_ci U8 Reserved3; /*0x06 */ 143562306a36Sopenharmony_ci U8 MsgFlags; /*0x07 */ 143662306a36Sopenharmony_ci U8 VP_ID; /*0x08 */ 143762306a36Sopenharmony_ci U8 VF_ID; /*0x09 */ 143862306a36Sopenharmony_ci U16 Reserved4; /*0x0A */ 143962306a36Sopenharmony_ci U32 TotalImageSize; /*0x0C */ 144062306a36Sopenharmony_ci U32 Reserved5; /*0x10 */ 144162306a36Sopenharmony_ci MPI2_MPI_SGE_UNION SGL; /*0x14 */ 144262306a36Sopenharmony_ci} MPI2_FW_DOWNLOAD_REQUEST, *PTR_MPI2_FW_DOWNLOAD_REQUEST, 144362306a36Sopenharmony_ci Mpi2FWDownloadRequest, *pMpi2FWDownloadRequest; 144462306a36Sopenharmony_ci 144562306a36Sopenharmony_ci#define MPI2_FW_DOWNLOAD_MSGFLGS_LAST_SEGMENT (0x01) 144662306a36Sopenharmony_ci 144762306a36Sopenharmony_ci#define MPI2_FW_DOWNLOAD_ITYPE_FW (0x01) 144862306a36Sopenharmony_ci#define MPI2_FW_DOWNLOAD_ITYPE_BIOS (0x02) 144962306a36Sopenharmony_ci#define MPI2_FW_DOWNLOAD_ITYPE_MANUFACTURING (0x06) 145062306a36Sopenharmony_ci#define MPI2_FW_DOWNLOAD_ITYPE_CONFIG_1 (0x07) 145162306a36Sopenharmony_ci#define MPI2_FW_DOWNLOAD_ITYPE_CONFIG_2 (0x08) 145262306a36Sopenharmony_ci#define MPI2_FW_DOWNLOAD_ITYPE_MEGARAID (0x09) 145362306a36Sopenharmony_ci#define MPI2_FW_DOWNLOAD_ITYPE_COMPLETE (0x0A) 145462306a36Sopenharmony_ci#define MPI2_FW_DOWNLOAD_ITYPE_COMMON_BOOT_BLOCK (0x0B) 145562306a36Sopenharmony_ci#define MPI2_FW_DOWNLOAD_ITYPE_PUBLIC_KEY (0x0C) 145662306a36Sopenharmony_ci#define MPI2_FW_DOWNLOAD_ITYPE_CBB_BACKUP (0x0D) 145762306a36Sopenharmony_ci#define MPI2_FW_DOWNLOAD_ITYPE_SBR (0x0E) 145862306a36Sopenharmony_ci#define MPI2_FW_DOWNLOAD_ITYPE_SBR_BACKUP (0x0F) 145962306a36Sopenharmony_ci#define MPI2_FW_DOWNLOAD_ITYPE_HIIM (0x10) 146062306a36Sopenharmony_ci#define MPI2_FW_DOWNLOAD_ITYPE_HIIA (0x11) 146162306a36Sopenharmony_ci#define MPI2_FW_DOWNLOAD_ITYPE_CTLR (0x12) 146262306a36Sopenharmony_ci#define MPI2_FW_DOWNLOAD_ITYPE_IMR_FIRMWARE (0x13) 146362306a36Sopenharmony_ci#define MPI2_FW_DOWNLOAD_ITYPE_MR_NVDATA (0x14) 146462306a36Sopenharmony_ci/*MPI v2.6 and newer */ 146562306a36Sopenharmony_ci#define MPI2_FW_DOWNLOAD_ITYPE_CPLD (0x15) 146662306a36Sopenharmony_ci#define MPI2_FW_DOWNLOAD_ITYPE_PSOC (0x16) 146762306a36Sopenharmony_ci#define MPI2_FW_DOWNLOAD_ITYPE_COREDUMP (0x17) 146862306a36Sopenharmony_ci#define MPI2_FW_DOWNLOAD_ITYPE_MIN_PRODUCT_SPECIFIC (0xF0) 146962306a36Sopenharmony_ci 147062306a36Sopenharmony_ci/*MPI v2.0 FWDownload TransactionContext Element */ 147162306a36Sopenharmony_citypedef struct _MPI2_FW_DOWNLOAD_TCSGE { 147262306a36Sopenharmony_ci U8 Reserved1; /*0x00 */ 147362306a36Sopenharmony_ci U8 ContextSize; /*0x01 */ 147462306a36Sopenharmony_ci U8 DetailsLength; /*0x02 */ 147562306a36Sopenharmony_ci U8 Flags; /*0x03 */ 147662306a36Sopenharmony_ci U32 Reserved2; /*0x04 */ 147762306a36Sopenharmony_ci U32 ImageOffset; /*0x08 */ 147862306a36Sopenharmony_ci U32 ImageSize; /*0x0C */ 147962306a36Sopenharmony_ci} MPI2_FW_DOWNLOAD_TCSGE, *PTR_MPI2_FW_DOWNLOAD_TCSGE, 148062306a36Sopenharmony_ci Mpi2FWDownloadTCSGE_t, *pMpi2FWDownloadTCSGE_t; 148162306a36Sopenharmony_ci 148262306a36Sopenharmony_ci/*MPI v2.5 FWDownload Request message */ 148362306a36Sopenharmony_citypedef struct _MPI25_FW_DOWNLOAD_REQUEST { 148462306a36Sopenharmony_ci U8 ImageType; /*0x00 */ 148562306a36Sopenharmony_ci U8 Reserved1; /*0x01 */ 148662306a36Sopenharmony_ci U8 ChainOffset; /*0x02 */ 148762306a36Sopenharmony_ci U8 Function; /*0x03 */ 148862306a36Sopenharmony_ci U16 Reserved2; /*0x04 */ 148962306a36Sopenharmony_ci U8 Reserved3; /*0x06 */ 149062306a36Sopenharmony_ci U8 MsgFlags; /*0x07 */ 149162306a36Sopenharmony_ci U8 VP_ID; /*0x08 */ 149262306a36Sopenharmony_ci U8 VF_ID; /*0x09 */ 149362306a36Sopenharmony_ci U16 Reserved4; /*0x0A */ 149462306a36Sopenharmony_ci U32 TotalImageSize; /*0x0C */ 149562306a36Sopenharmony_ci U32 Reserved5; /*0x10 */ 149662306a36Sopenharmony_ci U32 Reserved6; /*0x14 */ 149762306a36Sopenharmony_ci U32 ImageOffset; /*0x18 */ 149862306a36Sopenharmony_ci U32 ImageSize; /*0x1C */ 149962306a36Sopenharmony_ci MPI25_SGE_IO_UNION SGL; /*0x20 */ 150062306a36Sopenharmony_ci} MPI25_FW_DOWNLOAD_REQUEST, *PTR_MPI25_FW_DOWNLOAD_REQUEST, 150162306a36Sopenharmony_ci Mpi25FWDownloadRequest, *pMpi25FWDownloadRequest; 150262306a36Sopenharmony_ci 150362306a36Sopenharmony_ci/*FWDownload Reply message */ 150462306a36Sopenharmony_citypedef struct _MPI2_FW_DOWNLOAD_REPLY { 150562306a36Sopenharmony_ci U8 ImageType; /*0x00 */ 150662306a36Sopenharmony_ci U8 Reserved1; /*0x01 */ 150762306a36Sopenharmony_ci U8 MsgLength; /*0x02 */ 150862306a36Sopenharmony_ci U8 Function; /*0x03 */ 150962306a36Sopenharmony_ci U16 Reserved2; /*0x04 */ 151062306a36Sopenharmony_ci U8 Reserved3; /*0x06 */ 151162306a36Sopenharmony_ci U8 MsgFlags; /*0x07 */ 151262306a36Sopenharmony_ci U8 VP_ID; /*0x08 */ 151362306a36Sopenharmony_ci U8 VF_ID; /*0x09 */ 151462306a36Sopenharmony_ci U16 Reserved4; /*0x0A */ 151562306a36Sopenharmony_ci U16 Reserved5; /*0x0C */ 151662306a36Sopenharmony_ci U16 IOCStatus; /*0x0E */ 151762306a36Sopenharmony_ci U32 IOCLogInfo; /*0x10 */ 151862306a36Sopenharmony_ci} MPI2_FW_DOWNLOAD_REPLY, *PTR_MPI2_FW_DOWNLOAD_REPLY, 151962306a36Sopenharmony_ci Mpi2FWDownloadReply_t, *pMpi2FWDownloadReply_t; 152062306a36Sopenharmony_ci 152162306a36Sopenharmony_ci/**************************************************************************** 152262306a36Sopenharmony_ci* FWUpload message 152362306a36Sopenharmony_ci****************************************************************************/ 152462306a36Sopenharmony_ci 152562306a36Sopenharmony_ci/*MPI v2.0 FWUpload Request message */ 152662306a36Sopenharmony_citypedef struct _MPI2_FW_UPLOAD_REQUEST { 152762306a36Sopenharmony_ci U8 ImageType; /*0x00 */ 152862306a36Sopenharmony_ci U8 Reserved1; /*0x01 */ 152962306a36Sopenharmony_ci U8 ChainOffset; /*0x02 */ 153062306a36Sopenharmony_ci U8 Function; /*0x03 */ 153162306a36Sopenharmony_ci U16 Reserved2; /*0x04 */ 153262306a36Sopenharmony_ci U8 Reserved3; /*0x06 */ 153362306a36Sopenharmony_ci U8 MsgFlags; /*0x07 */ 153462306a36Sopenharmony_ci U8 VP_ID; /*0x08 */ 153562306a36Sopenharmony_ci U8 VF_ID; /*0x09 */ 153662306a36Sopenharmony_ci U16 Reserved4; /*0x0A */ 153762306a36Sopenharmony_ci U32 Reserved5; /*0x0C */ 153862306a36Sopenharmony_ci U32 Reserved6; /*0x10 */ 153962306a36Sopenharmony_ci MPI2_MPI_SGE_UNION SGL; /*0x14 */ 154062306a36Sopenharmony_ci} MPI2_FW_UPLOAD_REQUEST, *PTR_MPI2_FW_UPLOAD_REQUEST, 154162306a36Sopenharmony_ci Mpi2FWUploadRequest_t, *pMpi2FWUploadRequest_t; 154262306a36Sopenharmony_ci 154362306a36Sopenharmony_ci#define MPI2_FW_UPLOAD_ITYPE_FW_CURRENT (0x00) 154462306a36Sopenharmony_ci#define MPI2_FW_UPLOAD_ITYPE_FW_FLASH (0x01) 154562306a36Sopenharmony_ci#define MPI2_FW_UPLOAD_ITYPE_BIOS_FLASH (0x02) 154662306a36Sopenharmony_ci#define MPI2_FW_UPLOAD_ITYPE_FW_BACKUP (0x05) 154762306a36Sopenharmony_ci#define MPI2_FW_UPLOAD_ITYPE_MANUFACTURING (0x06) 154862306a36Sopenharmony_ci#define MPI2_FW_UPLOAD_ITYPE_CONFIG_1 (0x07) 154962306a36Sopenharmony_ci#define MPI2_FW_UPLOAD_ITYPE_CONFIG_2 (0x08) 155062306a36Sopenharmony_ci#define MPI2_FW_UPLOAD_ITYPE_MEGARAID (0x09) 155162306a36Sopenharmony_ci#define MPI2_FW_UPLOAD_ITYPE_COMPLETE (0x0A) 155262306a36Sopenharmony_ci#define MPI2_FW_UPLOAD_ITYPE_COMMON_BOOT_BLOCK (0x0B) 155362306a36Sopenharmony_ci#define MPI2_FW_UPLOAD_ITYPE_CBB_BACKUP (0x0D) 155462306a36Sopenharmony_ci#define MPI2_FW_UPLOAD_ITYPE_SBR (0x0E) 155562306a36Sopenharmony_ci#define MPI2_FW_UPLOAD_ITYPE_SBR_BACKUP (0x0F) 155662306a36Sopenharmony_ci#define MPI2_FW_UPLOAD_ITYPE_HIIM (0x10) 155762306a36Sopenharmony_ci#define MPI2_FW_UPLOAD_ITYPE_HIIA (0x11) 155862306a36Sopenharmony_ci#define MPI2_FW_UPLOAD_ITYPE_CTLR (0x12) 155962306a36Sopenharmony_ci#define MPI2_FW_UPLOAD_ITYPE_IMR_FIRMWARE (0x13) 156062306a36Sopenharmony_ci#define MPI2_FW_UPLOAD_ITYPE_MR_NVDATA (0x14) 156162306a36Sopenharmony_ci 156262306a36Sopenharmony_ci 156362306a36Sopenharmony_ci/*MPI v2.0 FWUpload TransactionContext Element */ 156462306a36Sopenharmony_citypedef struct _MPI2_FW_UPLOAD_TCSGE { 156562306a36Sopenharmony_ci U8 Reserved1; /*0x00 */ 156662306a36Sopenharmony_ci U8 ContextSize; /*0x01 */ 156762306a36Sopenharmony_ci U8 DetailsLength; /*0x02 */ 156862306a36Sopenharmony_ci U8 Flags; /*0x03 */ 156962306a36Sopenharmony_ci U32 Reserved2; /*0x04 */ 157062306a36Sopenharmony_ci U32 ImageOffset; /*0x08 */ 157162306a36Sopenharmony_ci U32 ImageSize; /*0x0C */ 157262306a36Sopenharmony_ci} MPI2_FW_UPLOAD_TCSGE, *PTR_MPI2_FW_UPLOAD_TCSGE, 157362306a36Sopenharmony_ci Mpi2FWUploadTCSGE_t, *pMpi2FWUploadTCSGE_t; 157462306a36Sopenharmony_ci 157562306a36Sopenharmony_ci/*MPI v2.5 FWUpload Request message */ 157662306a36Sopenharmony_citypedef struct _MPI25_FW_UPLOAD_REQUEST { 157762306a36Sopenharmony_ci U8 ImageType; /*0x00 */ 157862306a36Sopenharmony_ci U8 Reserved1; /*0x01 */ 157962306a36Sopenharmony_ci U8 ChainOffset; /*0x02 */ 158062306a36Sopenharmony_ci U8 Function; /*0x03 */ 158162306a36Sopenharmony_ci U16 Reserved2; /*0x04 */ 158262306a36Sopenharmony_ci U8 Reserved3; /*0x06 */ 158362306a36Sopenharmony_ci U8 MsgFlags; /*0x07 */ 158462306a36Sopenharmony_ci U8 VP_ID; /*0x08 */ 158562306a36Sopenharmony_ci U8 VF_ID; /*0x09 */ 158662306a36Sopenharmony_ci U16 Reserved4; /*0x0A */ 158762306a36Sopenharmony_ci U32 Reserved5; /*0x0C */ 158862306a36Sopenharmony_ci U32 Reserved6; /*0x10 */ 158962306a36Sopenharmony_ci U32 Reserved7; /*0x14 */ 159062306a36Sopenharmony_ci U32 ImageOffset; /*0x18 */ 159162306a36Sopenharmony_ci U32 ImageSize; /*0x1C */ 159262306a36Sopenharmony_ci MPI25_SGE_IO_UNION SGL; /*0x20 */ 159362306a36Sopenharmony_ci} MPI25_FW_UPLOAD_REQUEST, *PTR_MPI25_FW_UPLOAD_REQUEST, 159462306a36Sopenharmony_ci Mpi25FWUploadRequest_t, *pMpi25FWUploadRequest_t; 159562306a36Sopenharmony_ci 159662306a36Sopenharmony_ci/*FWUpload Reply message */ 159762306a36Sopenharmony_citypedef struct _MPI2_FW_UPLOAD_REPLY { 159862306a36Sopenharmony_ci U8 ImageType; /*0x00 */ 159962306a36Sopenharmony_ci U8 Reserved1; /*0x01 */ 160062306a36Sopenharmony_ci U8 MsgLength; /*0x02 */ 160162306a36Sopenharmony_ci U8 Function; /*0x03 */ 160262306a36Sopenharmony_ci U16 Reserved2; /*0x04 */ 160362306a36Sopenharmony_ci U8 Reserved3; /*0x06 */ 160462306a36Sopenharmony_ci U8 MsgFlags; /*0x07 */ 160562306a36Sopenharmony_ci U8 VP_ID; /*0x08 */ 160662306a36Sopenharmony_ci U8 VF_ID; /*0x09 */ 160762306a36Sopenharmony_ci U16 Reserved4; /*0x0A */ 160862306a36Sopenharmony_ci U16 Reserved5; /*0x0C */ 160962306a36Sopenharmony_ci U16 IOCStatus; /*0x0E */ 161062306a36Sopenharmony_ci U32 IOCLogInfo; /*0x10 */ 161162306a36Sopenharmony_ci U32 ActualImageSize; /*0x14 */ 161262306a36Sopenharmony_ci} MPI2_FW_UPLOAD_REPLY, *PTR_MPI2_FW_UPLOAD_REPLY, 161362306a36Sopenharmony_ci Mpi2FWUploadReply_t, *pMPi2FWUploadReply_t; 161462306a36Sopenharmony_ci 161562306a36Sopenharmony_ci 161662306a36Sopenharmony_ci/**************************************************************************** 161762306a36Sopenharmony_ci* PowerManagementControl message 161862306a36Sopenharmony_ci****************************************************************************/ 161962306a36Sopenharmony_ci 162062306a36Sopenharmony_ci/*PowerManagementControl Request message */ 162162306a36Sopenharmony_citypedef struct _MPI2_PWR_MGMT_CONTROL_REQUEST { 162262306a36Sopenharmony_ci U8 Feature; /*0x00 */ 162362306a36Sopenharmony_ci U8 Reserved1; /*0x01 */ 162462306a36Sopenharmony_ci U8 ChainOffset; /*0x02 */ 162562306a36Sopenharmony_ci U8 Function; /*0x03 */ 162662306a36Sopenharmony_ci U16 Reserved2; /*0x04 */ 162762306a36Sopenharmony_ci U8 Reserved3; /*0x06 */ 162862306a36Sopenharmony_ci U8 MsgFlags; /*0x07 */ 162962306a36Sopenharmony_ci U8 VP_ID; /*0x08 */ 163062306a36Sopenharmony_ci U8 VF_ID; /*0x09 */ 163162306a36Sopenharmony_ci U16 Reserved4; /*0x0A */ 163262306a36Sopenharmony_ci U8 Parameter1; /*0x0C */ 163362306a36Sopenharmony_ci U8 Parameter2; /*0x0D */ 163462306a36Sopenharmony_ci U8 Parameter3; /*0x0E */ 163562306a36Sopenharmony_ci U8 Parameter4; /*0x0F */ 163662306a36Sopenharmony_ci U32 Reserved5; /*0x10 */ 163762306a36Sopenharmony_ci U32 Reserved6; /*0x14 */ 163862306a36Sopenharmony_ci} MPI2_PWR_MGMT_CONTROL_REQUEST, *PTR_MPI2_PWR_MGMT_CONTROL_REQUEST, 163962306a36Sopenharmony_ci Mpi2PwrMgmtControlRequest_t, *pMpi2PwrMgmtControlRequest_t; 164062306a36Sopenharmony_ci 164162306a36Sopenharmony_ci/*defines for the Feature field */ 164262306a36Sopenharmony_ci#define MPI2_PM_CONTROL_FEATURE_DA_PHY_POWER_COND (0x01) 164362306a36Sopenharmony_ci#define MPI2_PM_CONTROL_FEATURE_PORT_WIDTH_MODULATION (0x02) 164462306a36Sopenharmony_ci#define MPI2_PM_CONTROL_FEATURE_PCIE_LINK (0x03) /*obsolete */ 164562306a36Sopenharmony_ci#define MPI2_PM_CONTROL_FEATURE_IOC_SPEED (0x04) 164662306a36Sopenharmony_ci#define MPI2_PM_CONTROL_FEATURE_GLOBAL_PWR_MGMT_MODE (0x05) 164762306a36Sopenharmony_ci#define MPI2_PM_CONTROL_FEATURE_MIN_PRODUCT_SPECIFIC (0x80) 164862306a36Sopenharmony_ci#define MPI2_PM_CONTROL_FEATURE_MAX_PRODUCT_SPECIFIC (0xFF) 164962306a36Sopenharmony_ci 165062306a36Sopenharmony_ci/*parameter usage for the MPI2_PM_CONTROL_FEATURE_DA_PHY_POWER_COND Feature */ 165162306a36Sopenharmony_ci/*Parameter1 contains a PHY number */ 165262306a36Sopenharmony_ci/*Parameter2 indicates power condition action using these defines */ 165362306a36Sopenharmony_ci#define MPI2_PM_CONTROL_PARAM2_PARTIAL (0x01) 165462306a36Sopenharmony_ci#define MPI2_PM_CONTROL_PARAM2_SLUMBER (0x02) 165562306a36Sopenharmony_ci#define MPI2_PM_CONTROL_PARAM2_EXIT_PWR_MGMT (0x03) 165662306a36Sopenharmony_ci/*Parameter3 and Parameter4 are reserved */ 165762306a36Sopenharmony_ci 165862306a36Sopenharmony_ci/*parameter usage for the MPI2_PM_CONTROL_FEATURE_PORT_WIDTH_MODULATION 165962306a36Sopenharmony_ci * Feature */ 166062306a36Sopenharmony_ci/*Parameter1 contains SAS port width modulation group number */ 166162306a36Sopenharmony_ci/*Parameter2 indicates IOC action using these defines */ 166262306a36Sopenharmony_ci#define MPI2_PM_CONTROL_PARAM2_REQUEST_OWNERSHIP (0x01) 166362306a36Sopenharmony_ci#define MPI2_PM_CONTROL_PARAM2_CHANGE_MODULATION (0x02) 166462306a36Sopenharmony_ci#define MPI2_PM_CONTROL_PARAM2_RELINQUISH_OWNERSHIP (0x03) 166562306a36Sopenharmony_ci/*Parameter3 indicates desired modulation level using these defines */ 166662306a36Sopenharmony_ci#define MPI2_PM_CONTROL_PARAM3_25_PERCENT (0x00) 166762306a36Sopenharmony_ci#define MPI2_PM_CONTROL_PARAM3_50_PERCENT (0x01) 166862306a36Sopenharmony_ci#define MPI2_PM_CONTROL_PARAM3_75_PERCENT (0x02) 166962306a36Sopenharmony_ci#define MPI2_PM_CONTROL_PARAM3_100_PERCENT (0x03) 167062306a36Sopenharmony_ci/*Parameter4 is reserved */ 167162306a36Sopenharmony_ci 167262306a36Sopenharmony_ci/*this next set (_PCIE_LINK) is obsolete */ 167362306a36Sopenharmony_ci/*parameter usage for the MPI2_PM_CONTROL_FEATURE_PCIE_LINK Feature */ 167462306a36Sopenharmony_ci/*Parameter1 indicates desired PCIe link speed using these defines */ 167562306a36Sopenharmony_ci#define MPI2_PM_CONTROL_PARAM1_PCIE_2_5_GBPS (0x00) /*obsolete */ 167662306a36Sopenharmony_ci#define MPI2_PM_CONTROL_PARAM1_PCIE_5_0_GBPS (0x01) /*obsolete */ 167762306a36Sopenharmony_ci#define MPI2_PM_CONTROL_PARAM1_PCIE_8_0_GBPS (0x02) /*obsolete */ 167862306a36Sopenharmony_ci/*Parameter2 indicates desired PCIe link width using these defines */ 167962306a36Sopenharmony_ci#define MPI2_PM_CONTROL_PARAM2_WIDTH_X1 (0x01) /*obsolete */ 168062306a36Sopenharmony_ci#define MPI2_PM_CONTROL_PARAM2_WIDTH_X2 (0x02) /*obsolete */ 168162306a36Sopenharmony_ci#define MPI2_PM_CONTROL_PARAM2_WIDTH_X4 (0x04) /*obsolete */ 168262306a36Sopenharmony_ci#define MPI2_PM_CONTROL_PARAM2_WIDTH_X8 (0x08) /*obsolete */ 168362306a36Sopenharmony_ci/*Parameter3 and Parameter4 are reserved */ 168462306a36Sopenharmony_ci 168562306a36Sopenharmony_ci/*parameter usage for the MPI2_PM_CONTROL_FEATURE_IOC_SPEED Feature */ 168662306a36Sopenharmony_ci/*Parameter1 indicates desired IOC hardware clock speed using these defines */ 168762306a36Sopenharmony_ci#define MPI2_PM_CONTROL_PARAM1_FULL_IOC_SPEED (0x01) 168862306a36Sopenharmony_ci#define MPI2_PM_CONTROL_PARAM1_HALF_IOC_SPEED (0x02) 168962306a36Sopenharmony_ci#define MPI2_PM_CONTROL_PARAM1_QUARTER_IOC_SPEED (0x04) 169062306a36Sopenharmony_ci#define MPI2_PM_CONTROL_PARAM1_EIGHTH_IOC_SPEED (0x08) 169162306a36Sopenharmony_ci/*Parameter2, Parameter3, and Parameter4 are reserved */ 169262306a36Sopenharmony_ci 169362306a36Sopenharmony_ci/*parameter usage for the MPI2_PM_CONTROL_FEATURE_GLOBAL_PWR_MGMT_MODE Feature*/ 169462306a36Sopenharmony_ci/*Parameter1 indicates host action regarding global power management mode */ 169562306a36Sopenharmony_ci#define MPI2_PM_CONTROL_PARAM1_TAKE_CONTROL (0x01) 169662306a36Sopenharmony_ci#define MPI2_PM_CONTROL_PARAM1_CHANGE_GLOBAL_MODE (0x02) 169762306a36Sopenharmony_ci#define MPI2_PM_CONTROL_PARAM1_RELEASE_CONTROL (0x03) 169862306a36Sopenharmony_ci/*Parameter2 indicates the requested global power management mode */ 169962306a36Sopenharmony_ci#define MPI2_PM_CONTROL_PARAM2_FULL_PWR_PERF (0x01) 170062306a36Sopenharmony_ci#define MPI2_PM_CONTROL_PARAM2_REDUCED_PWR_PERF (0x08) 170162306a36Sopenharmony_ci#define MPI2_PM_CONTROL_PARAM2_STANDBY (0x40) 170262306a36Sopenharmony_ci/*Parameter3 and Parameter4 are reserved */ 170362306a36Sopenharmony_ci 170462306a36Sopenharmony_ci/*PowerManagementControl Reply message */ 170562306a36Sopenharmony_citypedef struct _MPI2_PWR_MGMT_CONTROL_REPLY { 170662306a36Sopenharmony_ci U8 Feature; /*0x00 */ 170762306a36Sopenharmony_ci U8 Reserved1; /*0x01 */ 170862306a36Sopenharmony_ci U8 MsgLength; /*0x02 */ 170962306a36Sopenharmony_ci U8 Function; /*0x03 */ 171062306a36Sopenharmony_ci U16 Reserved2; /*0x04 */ 171162306a36Sopenharmony_ci U8 Reserved3; /*0x06 */ 171262306a36Sopenharmony_ci U8 MsgFlags; /*0x07 */ 171362306a36Sopenharmony_ci U8 VP_ID; /*0x08 */ 171462306a36Sopenharmony_ci U8 VF_ID; /*0x09 */ 171562306a36Sopenharmony_ci U16 Reserved4; /*0x0A */ 171662306a36Sopenharmony_ci U16 Reserved5; /*0x0C */ 171762306a36Sopenharmony_ci U16 IOCStatus; /*0x0E */ 171862306a36Sopenharmony_ci U32 IOCLogInfo; /*0x10 */ 171962306a36Sopenharmony_ci} MPI2_PWR_MGMT_CONTROL_REPLY, *PTR_MPI2_PWR_MGMT_CONTROL_REPLY, 172062306a36Sopenharmony_ci Mpi2PwrMgmtControlReply_t, *pMpi2PwrMgmtControlReply_t; 172162306a36Sopenharmony_ci 172262306a36Sopenharmony_ci/**************************************************************************** 172362306a36Sopenharmony_ci* IO Unit Control messages (MPI v2.6 and later only.) 172462306a36Sopenharmony_ci****************************************************************************/ 172562306a36Sopenharmony_ci 172662306a36Sopenharmony_ci/* IO Unit Control Request Message */ 172762306a36Sopenharmony_citypedef struct _MPI26_IOUNIT_CONTROL_REQUEST { 172862306a36Sopenharmony_ci U8 Operation; /* 0x00 */ 172962306a36Sopenharmony_ci U8 Reserved1; /* 0x01 */ 173062306a36Sopenharmony_ci U8 ChainOffset; /* 0x02 */ 173162306a36Sopenharmony_ci U8 Function; /* 0x03 */ 173262306a36Sopenharmony_ci U16 DevHandle; /* 0x04 */ 173362306a36Sopenharmony_ci U8 IOCParameter; /* 0x06 */ 173462306a36Sopenharmony_ci U8 MsgFlags; /* 0x07 */ 173562306a36Sopenharmony_ci U8 VP_ID; /* 0x08 */ 173662306a36Sopenharmony_ci U8 VF_ID; /* 0x09 */ 173762306a36Sopenharmony_ci U16 Reserved3; /* 0x0A */ 173862306a36Sopenharmony_ci U16 Reserved4; /* 0x0C */ 173962306a36Sopenharmony_ci U8 PhyNum; /* 0x0E */ 174062306a36Sopenharmony_ci U8 PrimFlags; /* 0x0F */ 174162306a36Sopenharmony_ci U32 Primitive; /* 0x10 */ 174262306a36Sopenharmony_ci U8 LookupMethod; /* 0x14 */ 174362306a36Sopenharmony_ci U8 Reserved5; /* 0x15 */ 174462306a36Sopenharmony_ci U16 SlotNumber; /* 0x16 */ 174562306a36Sopenharmony_ci U64 LookupAddress; /* 0x18 */ 174662306a36Sopenharmony_ci U32 IOCParameterValue; /* 0x20 */ 174762306a36Sopenharmony_ci U32 Reserved7; /* 0x24 */ 174862306a36Sopenharmony_ci U32 Reserved8; /* 0x28 */ 174962306a36Sopenharmony_ci} MPI26_IOUNIT_CONTROL_REQUEST, 175062306a36Sopenharmony_ci *PTR_MPI26_IOUNIT_CONTROL_REQUEST, 175162306a36Sopenharmony_ci Mpi26IoUnitControlRequest_t, 175262306a36Sopenharmony_ci *pMpi26IoUnitControlRequest_t; 175362306a36Sopenharmony_ci 175462306a36Sopenharmony_ci/* values for the Operation field */ 175562306a36Sopenharmony_ci#define MPI26_CTRL_OP_CLEAR_ALL_PERSISTENT (0x02) 175662306a36Sopenharmony_ci#define MPI26_CTRL_OP_SAS_PHY_LINK_RESET (0x06) 175762306a36Sopenharmony_ci#define MPI26_CTRL_OP_SAS_PHY_HARD_RESET (0x07) 175862306a36Sopenharmony_ci#define MPI26_CTRL_OP_PHY_CLEAR_ERROR_LOG (0x08) 175962306a36Sopenharmony_ci#define MPI26_CTRL_OP_LINK_CLEAR_ERROR_LOG (0x09) 176062306a36Sopenharmony_ci#define MPI26_CTRL_OP_SAS_SEND_PRIMITIVE (0x0A) 176162306a36Sopenharmony_ci#define MPI26_CTRL_OP_FORCE_FULL_DISCOVERY (0x0B) 176262306a36Sopenharmony_ci#define MPI26_CTRL_OP_REMOVE_DEVICE (0x0D) 176362306a36Sopenharmony_ci#define MPI26_CTRL_OP_LOOKUP_MAPPING (0x0E) 176462306a36Sopenharmony_ci#define MPI26_CTRL_OP_SET_IOC_PARAMETER (0x0F) 176562306a36Sopenharmony_ci#define MPI26_CTRL_OP_ENABLE_FP_DEVICE (0x10) 176662306a36Sopenharmony_ci#define MPI26_CTRL_OP_DISABLE_FP_DEVICE (0x11) 176762306a36Sopenharmony_ci#define MPI26_CTRL_OP_ENABLE_FP_ALL (0x12) 176862306a36Sopenharmony_ci#define MPI26_CTRL_OP_DISABLE_FP_ALL (0x13) 176962306a36Sopenharmony_ci#define MPI26_CTRL_OP_DEV_ENABLE_NCQ (0x14) 177062306a36Sopenharmony_ci#define MPI26_CTRL_OP_DEV_DISABLE_NCQ (0x15) 177162306a36Sopenharmony_ci#define MPI26_CTRL_OP_SHUTDOWN (0x16) 177262306a36Sopenharmony_ci#define MPI26_CTRL_OP_DEV_ENABLE_PERSIST_CONNECTION (0x17) 177362306a36Sopenharmony_ci#define MPI26_CTRL_OP_DEV_DISABLE_PERSIST_CONNECTION (0x18) 177462306a36Sopenharmony_ci#define MPI26_CTRL_OP_DEV_CLOSE_PERSIST_CONNECTION (0x19) 177562306a36Sopenharmony_ci#define MPI26_CTRL_OP_ENABLE_NVME_SGL_FORMAT (0x1A) 177662306a36Sopenharmony_ci#define MPI26_CTRL_OP_DISABLE_NVME_SGL_FORMAT (0x1B) 177762306a36Sopenharmony_ci#define MPI26_CTRL_OP_PRODUCT_SPECIFIC_MIN (0x80) 177862306a36Sopenharmony_ci 177962306a36Sopenharmony_ci/* values for the PrimFlags field */ 178062306a36Sopenharmony_ci#define MPI26_CTRL_PRIMFLAGS_SINGLE (0x08) 178162306a36Sopenharmony_ci#define MPI26_CTRL_PRIMFLAGS_TRIPLE (0x02) 178262306a36Sopenharmony_ci#define MPI26_CTRL_PRIMFLAGS_REDUNDANT (0x01) 178362306a36Sopenharmony_ci 178462306a36Sopenharmony_ci/* values for the LookupMethod field */ 178562306a36Sopenharmony_ci#define MPI26_CTRL_LOOKUP_METHOD_WWID_ADDRESS (0x01) 178662306a36Sopenharmony_ci#define MPI26_CTRL_LOOKUP_METHOD_ENCLOSURE_SLOT (0x02) 178762306a36Sopenharmony_ci#define MPI26_CTRL_LOOKUP_METHOD_SAS_DEVICE_NAME (0x03) 178862306a36Sopenharmony_ci 178962306a36Sopenharmony_ci 179062306a36Sopenharmony_ci/* IO Unit Control Reply Message */ 179162306a36Sopenharmony_citypedef struct _MPI26_IOUNIT_CONTROL_REPLY { 179262306a36Sopenharmony_ci U8 Operation; /* 0x00 */ 179362306a36Sopenharmony_ci U8 Reserved1; /* 0x01 */ 179462306a36Sopenharmony_ci U8 MsgLength; /* 0x02 */ 179562306a36Sopenharmony_ci U8 Function; /* 0x03 */ 179662306a36Sopenharmony_ci U16 DevHandle; /* 0x04 */ 179762306a36Sopenharmony_ci U8 IOCParameter; /* 0x06 */ 179862306a36Sopenharmony_ci U8 MsgFlags; /* 0x07 */ 179962306a36Sopenharmony_ci U8 VP_ID; /* 0x08 */ 180062306a36Sopenharmony_ci U8 VF_ID; /* 0x09 */ 180162306a36Sopenharmony_ci U16 Reserved3; /* 0x0A */ 180262306a36Sopenharmony_ci U16 Reserved4; /* 0x0C */ 180362306a36Sopenharmony_ci U16 IOCStatus; /* 0x0E */ 180462306a36Sopenharmony_ci U32 IOCLogInfo; /* 0x10 */ 180562306a36Sopenharmony_ci} MPI26_IOUNIT_CONTROL_REPLY, 180662306a36Sopenharmony_ci *PTR_MPI26_IOUNIT_CONTROL_REPLY, 180762306a36Sopenharmony_ci Mpi26IoUnitControlReply_t, 180862306a36Sopenharmony_ci *pMpi26IoUnitControlReply_t; 180962306a36Sopenharmony_ci 181062306a36Sopenharmony_ci 181162306a36Sopenharmony_ci#endif 1812