FreeBSD kernel pms device code
saproto.h File Reference

The file defines the function delcaration for internal used function. More...

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

GLOBAL agsaTimerDesc_tsiTimerAdd (agsaRoot_t *agRoot, bit32 timeout, agsaCallback_t pfnTimeout, bit32 Event, void *pParm)
 add a timer More...
 
GLOBAL void siTimerRemove (agsaRoot_t *agRoot, agsaTimerDesc_t *pTimer)
 remove a valid timer More...
 
GLOBAL void siTimerRemoveAll (agsaRoot_t *agRoot)
 remove all valid timer More...
 
GLOBAL bit32 siConfiguration (agsaRoot_t *agRoot, mpiConfig_t *mpiConfig, agsaHwConfig_t *hwConfig, agsaSwConfig_t *swConfig)
 Routine to do SPC configuration with default or specified values. More...
 
GLOBAL bit32 mpiInitialize (agsaRoot_t *agRoot, mpiMemReq_t *memoryAllocated, mpiConfig_t *config)
 
GLOBAL bit32 mpiWaitForConfigTable (agsaRoot_t *agRoot, spc_configMainDescriptor_t *config)
 Reading and Writing the Configuration Table. More...
 
GLOBAL void mpiUpdateIBQueueCfgTable (agsaRoot_t *agRoot, spc_inboundQueueDescriptor_t *inQueueCfg, bit32 QueueTableOffset, bit8 pcibar)
 Writing to the inbound queue of the Configuration Table. More...
 
GLOBAL void mpiUpdateOBQueueCfgTable (agsaRoot_t *agRoot, spc_outboundQueueDescriptor_t *outQueueCfg, bit32 QueueTableOffset, bit8 pcibar)
 Writing to the inbound queue of the Configuration Table. More...
 
GLOBAL void mpiUpdateFatalErrorTable (agsaRoot_t *agRoot, bit32 FerrTableOffset, bit32 lowerBaseAddress, bit32 upperBaseAddress, bit32 length, bit8 pcibar)
 
GLOBAL bit32 mpiGetPCIBarIndex (agsaRoot_t *agRoot, bit32 pciBar)
 
GLOBAL bit32 mpiUnInitConfigTable (agsaRoot_t *agRoot)
 
GLOBAL void mpiReadGSTable (agsaRoot_t *agRoot, spc_GSTableDescriptor_t *mpiGSTable)
 
GLOBAL void siInitResources (agsaRoot_t *agRoot, agsaMemoryRequirement_t *memoryAllocated, agsaHwConfig_t *hwConfig, agsaSwConfig_t *swConfig, bit32 usecsPerTick)
 
GLOBAL void mpiReadCALTable (agsaRoot_t *agRoot, spc_SPASTable_t *mpiCALTable, bit32 index)
 Reading the Phy Analog Setup Register Table. More...
 
GLOBAL void mpiWriteCALTable (agsaRoot_t *agRoot, spc_SPASTable_t *mpiCALTable, bit32 index)
 
GLOBAL void mpiWriteCALAll (agsaRoot_t *agRoot, agsaPhyAnalogSetupTable_t *mpiCALTable)
 Writing the Phy Analog Setup Register Table. More...
 
GLOBAL void mpiWrIntVecTable (agsaRoot_t *agRoot, mpiConfig_t *config)
 
GLOBAL void mpiWrAnalogSetupTable (agsaRoot_t *agRoot, mpiConfig_t *config)
 
GLOBAL void mpiWrPhyAttrbTable (agsaRoot_t *agRoot, sasPhyAttribute_t *phyAttrib)
 
GLOBAL bit32 siPhyStopCB (agsaRoot_t *agRoot, bit32 phyId, bit32 status, agsaContext_t *agContext, bit32 portId, bit32 npipps)
 CallBack Routine to stop a Phy. More...
 
GLOBAL void siPortInvalid (agsaRoot_t *agRoot, agsaPort_t *pPort)
 Invalid a port. More...
 
GLOBAL agsaDeviceDesc_tsiPortSASDeviceAdd (agsaRoot_t *agRoot, agsaPort_t *pPort, agsaSASIdentify_t sasIdentify, bit32 sasInitiator, bit32 smpTimeout, bit32 itNexusTimeout, bit32 firstBurstSize, bit8 dTypeSRate, bit32 flag)
 Add a SAS device to the discovery list of the port. More...
 
GLOBAL void siPortDeviceRemove (agsaRoot_t *agRoot, agsaPort_t *pPort, agsaDeviceDesc_t *pDevice, bit32 unmap)
 The function to remove a device descriptor. More...
 
GLOBAL agsaDeviceDesc_tsiPortSATADeviceAdd (agsaRoot_t *agRoot, agsaPort_t *pPort, agsaDeviceDesc_t *pSTPBridge, bit8 *pSignature, bit8 pm, bit8 pmField, bit32 smpReqTimeout, bit32 itNexusTimeout, bit32 firstBurstSize, bit8 dTypeSRate, bit32 flag)
 Add a SATA device to the discovery list of the port. More...
 
GLOBAL void siPortDeviceListRemove (agsaRoot_t *agRoot, agsaPort_t *pPort, agsaDeviceDesc_t *pDevice)
 The function to remove a device descriptor. More...
 
GLOBAL void siSATASignatureCpy (bit8 *pDstSignature, bit8 *pSrcSignature)
 copy a SATA signature to another More...
 
GLOBAL bit32 siBar4Shift (agsaRoot_t *agRoot, bit32 shiftValue)
 Function to do BAR shifting. More...
 
GLOBAL bit32 siSoftReset (agsaRoot_t *agRoot, bit32 signature)
 
GLOBAL bit32 siSpcSoftReset (agsaRoot_t *agRoot, bit32 signature)
 Function to soft/FW reset the SPC. More...
 
GLOBAL void siChipReset (agsaRoot_t *agRoot)
 Generic Reset. More...
 
GLOBAL bit32 siChipResetV (agsaRoot_t *agRoot, bit32 signature)
 Function to Reset the SPC V Hardware. More...
 
GLOBAL void siChipResetSpc (agsaRoot_t *agRoot)
 Function to Reset the SPC Hardware. More...
 
GLOBAL void siPrintBuffer (bit32 debugLevel, siPrintType type, char *header, void *a, bit32 length)
 
int siIsHexDigit (char a)
 Check for Hex digit. More...
 
GLOBAL FORCEINLINE void * si_memcpy (void *dst, void *src, bit32 count)
 memcopy More...
 
GLOBAL FORCEINLINE void * si_memset (void *s, int c, bit32 n)
 memset More...
 
GLOBAL void siDumpActiveIORequests (agsaRoot_t *agRoot, bit32 count)
 siDumpActiveIORequests More...
 
GLOBAL void siClearActiveIORequests (agsaRoot_t *agRoot)
 saCountActiveIORequests More...
 
GLOBAL void siCountActiveIORequestsOnDevice (agsaRoot_t *agRoot, bit32 device)
 siCountActiveIORequestsOnDevice count all active IO's More...
 
GLOBAL void siClearActiveIORequestsOnDevice (agsaRoot_t *agRoot, bit32 device)
 siCountActiveIORequestsOnDevice count all active IO's More...
 
GLOBAL void siEventPhyUpRcvd (agsaRoot_t *agRoot, bit32 phyId, agsaSASIdentify_t *agSASIdentify, bit32 portId, bit32 npipps, bit8 linkRate)
 Routine to handle for received Phy Up event. More...
 
GLOBAL void siEventSATASignatureRcvd (agsaRoot_t *agRoot, bit32 phyId, void *pMsg, bit32 portId, bit32 npipps, bit8 linkRate)
 Routine to handle for received SATA signature event. More...
 
GLOBAL FORCEINLINE void siIODone (agsaRoot_t *agRoot, agsaIORequestDesc_t *pRequest, bit32 status, bit32 sspTag)
 Routine to handle successfully completed IO event. More...
 
GLOBAL void siAbnormal (agsaRoot_t *agRoot, agsaIORequestDesc_t *pRequest, bit32 status, bit32 param, bit32 sspTag)
 Routine to handle abnormal completed IO/SMP event. More...
 
GLOBAL void siDifAbnormal (agsaRoot_t *agRoot, agsaIORequestDesc_t *pRequest, bit32 status, bit32 param, bit32 sspTag, bit32 *pMsg1)
 Routine to handle abnormal DIF completed IO/SMP event. More...
 
GLOBAL void siEventSSPResponseWtDataRcvd (agsaRoot_t *agRoot, agsaIORequestDesc_t *pRequest, agsaSSPResponseInfoUnit_t *pRespIU, bit32 param, bit32 sspTag)
 Routine to handle for received SAS with data payload event. More...
 
GLOBAL void siSMPRespRcvd (agsaRoot_t *agRoot, agsaSMPCompletionRsp_t *pIomb, bit32 payloadSize, bit32 tag)
 Routine to handle for received SMP response event. More...
 
GLOBAL void siEventSATAResponseWtDataRcvd (agsaRoot_t *agRoot, agsaIORequestDesc_t *pRequest, bit32 *agFirstDword, bit32 *pResp, bit32 lengthResp)
 Routine to handle for received SATA with data payload event. More...
 
GLOBAL bit32 siRemoveDevHandle (agsaRoot_t *agRoot, agsaDevHandle_t *agDevHandle)
 Function for target to remove stale initiator device handle. More...
 
GLOBAL FORCEINLINE bit32 mpiParseOBIomb (agsaRoot_t *agRoot, bit32 *pMsg1, mpiMsgCategory_t category, bit16 opcode)
 Process Outbound IOMB Message. More...
 
GLOBAL bit32 mpiEchoRsp (agsaRoot_t *agRoot, agsaEchoRsp_t *pIomb)
 Process Outbound IOMB Message. More...
 
GLOBAL bit32 mpiGetNVMDataRsp (agsaRoot_t *agRoot, agsaGetNVMDataRsp_t *pIomb)
 Get NVM Data Response. More...
 
GLOBAL bit32 mpiHWevent (agsaRoot_t *agRoot, agsaHWEvent_SPC_OUB_t *pIomb)
 Hardware Event Response from SPC. More...
 
GLOBAL bit32 mpiPhyStartEvent (agsaRoot_t *agRoot, agsaHWEvent_Phy_OUB_t *pIomb)
 Phy Event Response from SPCv. More...
 
GLOBAL bit32 mpiPhyStopEvent (agsaRoot_t *agRoot, agsaHWEvent_Phy_OUB_t *pIomb)
 
GLOBAL bit32 mpiSMPCompletion (agsaRoot_t *agRoot, agsaSMPCompletionRsp_t *pIomb)
 SPC MPI SMP Completion. More...
 
GLOBAL bit32 mpiGetDevInfoRspSpc (agsaRoot_t *agRoot, agsaGetDevInfoRsp_t *pIomb)
 Get Device Information Response. More...
 
GLOBAL bit32 mpiGetPhyProfileRsp (agsaRoot_t *agRoot, agsaGetPhyProfileRspV_t *pIomb)
 Get Phy Profile Response SPCv. More...
 
GLOBAL bit32 mpiSetPhyProfileRsp (agsaRoot_t *agRoot, agsaSetPhyProfileRspV_t *pIomb)
 
GLOBAL bit32 mpiGetDevInfoRsp (agsaRoot_t *agRoot, agsaGetDevInfoRspV_t *pIomb)
 Get Device Information Response. More...
 
GLOBAL bit32 mpiGetDevHandleRsp (agsaRoot_t *agRoot, agsaGetDevHandleRsp_t *pIomb)
 SPC MPI Get Device Handle Command Response. More...
 
GLOBAL bit32 mpiPhyCntrlRsp (agsaRoot_t *agRoot, agsaLocalPhyCntrlRsp_t *pIomb)
 SPC MPI Phy Control Command Response. More...
 
GLOBAL bit32 mpiDeviceRegRsp (agsaRoot_t *agRoot, agsaDeviceRegistrationRsp_t *pIomb)
 SPC MPI Device Register Command Response. More...
 
GLOBAL bit32 mpiDeregDevHandleRsp (agsaRoot_t *agRoot, agsaDeregDevHandleRsp_t *pIomb)
 SPC MPI Deregister Device Command Response. More...
 
GLOBAL FORCEINLINE bit32 mpiSSPCompletion (agsaRoot_t *agRoot, bit32 *pIomb)
 SPC MPI SSP Completion. More...
 
GLOBAL FORCEINLINE bit32 mpiSATACompletion (agsaRoot_t *agRoot, bit32 *pIomb)
 SPC MPI SATA Completion. More...
 
GLOBAL bit32 mpiSSPEvent (agsaRoot_t *agRoot, agsaSSPEventRsp_t *pIomb)
 SPC MPI SSP Event. More...
 
GLOBAL bit32 mpiSATAEvent (agsaRoot_t *agRoot, agsaSATAEventRsp_t *pIomb)
 SPC MPI SATA Event. More...
 
GLOBAL bit32 mpiFwFlashUpdateRsp (agsaRoot_t *agRoot, agsaFwFlashUpdateRsp_t *payload)
 SPC FW_FLASH_UPDATE Respond. More...
 
GLOBAL bit32 mpiFwExtFlashUpdateRsp (agsaRoot_t *agRoot, agsaFwFlashOpExtRsp_t *payload)
 
GLOBAL bit32 mpiSetNVMDataRsp (agsaRoot_t *agRoot, agsaSetNVMDataRsp_t *pIomb)
 Set NVM Data Response. More...
 
GLOBAL bit32 mpiSSPAbortRsp (agsaRoot_t *agRoot, agsaSSPAbortRsp_t *pIomb)
 SPC MPI SSP ABORT Response. More...
 
GLOBAL bit32 mpiSATAAbortRsp (agsaRoot_t *agRoot, agsaSATAAbortRsp_t *pIomb)
 SPC MPI SATA ABORT Response. More...
 
GLOBAL bit32 mpiGPIORsp (agsaRoot_t *agRoot, agsaGPIORsp_t *pIomb)
 Set GPIO Response. More...
 
GLOBAL bit32 mpiGPIOEventRsp (agsaRoot_t *agRoot, agsaGPIOEvent_t *pIomb)
 Set GPIO Event Response. More...
 
GLOBAL bit32 mpiSASDiagStartEndRsp (agsaRoot_t *agRoot, agsaSASDiagStartEndRsp_t *pIomb)
 SAS Diagnostic Start/End Response. More...
 
GLOBAL bit32 mpiSASDiagExecuteRsp (agsaRoot_t *agRoot, agsaSASDiagExecuteRsp_t *pIomb)
 SAS Diagnostic Execute Response. More...
 
GLOBAL bit32 mpiGeneralEventRsp (agsaRoot_t *agRoot, agsaGeneralEventRsp_t *pIomb)
 SAS General Event Notification Response. More...
 
GLOBAL bit32 mpiSSPReqReceivedNotify (agsaRoot_t *agRoot, agsaSSPReqReceivedNotify_t *pMsg1)
 SPC MPI SSP Request Received Event (target mode) More...
 
GLOBAL bit32 mpiDeviceHandleArrived (agsaRoot_t *agRoot, agsaDeviceHandleArrivedNotify_t *pMsg1)
 SPC MPI Device Handle Arrived Event (target mode) More...
 
GLOBAL bit32 mpiGetTimeStampRsp (agsaRoot_t *agRoot, agsaGetTimeStampRsp_t *pIomb)
 Get Time Stamp Response. More...
 
GLOBAL bit32 mpiSASHwEventAckRsp (agsaRoot_t *agRoot, agsaSASHwEventAckRsp_t *pIomb)
 SAS HW Event Ack Response. More...
 
GLOBAL bit32 mpiSetDevInfoRsp (agsaRoot_t *agRoot, agsaSetDeviceInfoRsp_t *pIomb)
 Set Device Information Response. More...
 
GLOBAL bit32 mpiSetDeviceStateRsp (agsaRoot_t *agRoot, agsaSetDeviceStateRsp_t *pIomb)
 Set Device State Response. More...
 
GLOBAL bit32 mpiGetDeviceStateRsp (agsaRoot_t *agRoot, agsaGetDeviceStateRsp_t *pIomb)
 Get Device State Response. More...
 
GLOBAL bit32 mpiSasReInitializeRsp (agsaRoot_t *agRoot, agsaSasReInitializeRsp_t *pIomb)
 SAS ReInitialize Response. More...
 
GLOBAL bit32 mpiSetControllerConfigRsp (agsaRoot_t *agRoot, agsaSetControllerConfigRsp_t *pIomb)
 SAS Set Controller Config Response. More...
 
GLOBAL bit32 mpiGetControllerConfigRsp (agsaRoot_t *agRoot, agsaGetControllerConfigRsp_t *pIomb)
 SAS Get Controller Config Response. More...
 
GLOBAL bit32 mpiKekManagementRsp (agsaRoot_t *agRoot, agsaKekManagementRsp_t *pIomb)
 KEK Management Response. More...
 
GLOBAL bit32 mpiDekManagementRsp (agsaRoot_t *agRoot, agsaDekManagementRsp_t *pIomb)
 DEK Management Response. More...
 
GLOBAL bit32 mpiOperatorManagementRsp (agsaRoot_t *agRoot, agsaOperatorMangmenRsp_t *pIomb)
 Operator Management Response. More...
 
GLOBAL bit32 mpiBistRsp (agsaRoot_t *agRoot, agsaEncryptBistRsp_t *pIomb)
 
GLOBAL bit32 mpiSetOperatorRsp (agsaRoot_t *agRoot, agsaSetOperatorRsp_t *pIomb)
 Set Operator Response. More...
 
GLOBAL bit32 mpiGetOperatorRsp (agsaRoot_t *agRoot, agsaGetOperatorRsp_t *pIomb)
 Get Operator Response. More...
 
GLOBAL bit32 mpiDifEncOffloadRsp (agsaRoot_t *agRoot, agsaDifEncOffloadRspV_t *pIomb)
 DifEncOffload Response. More...
 
GLOBAL bit32 mpiGetVHistRsp (agsaRoot_t *agRoot, agsaGetVHistCapRsp_t *pIomb)
 
GLOBAL bit32 mpiBuildCmd (agsaRoot_t *agRoot, bit32 *payload, mpiMsgCategory_t category, bit16 opcode, bit16 size, bit32 queueNum)
 Build a IOMB command and send to SPC. More...
 
GLOBAL bit32 mpiVHistCapCmd (agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 queueNum, bit32 Channel, bit32 NumBitLo, bit32 NumBitHi, bit32 PcieAddrLo, bit32 PcieAddrHi, bit32 ByteCount)
 
GLOBAL bit32 mpiEchoCmd (agsaRoot_t *agRoot, bit32 queueNum, agsaContext_t *agContext, void *echoPayload)
 SPC MPI ECHO Command. More...
 
GLOBAL bit32 mpiGetPhyProfileCmd (agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 Operation, bit32 PhyId, void *agCB)
 Get Phy Profile Command SPCv. More...
 
GLOBAL bit32 mpiSetPhyProfileCmd (agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 Operation, bit32 PhyId, bit32 length, void *buffer)
 
GLOBAL bit32 mpiPhyStartCmd (agsaRoot_t *agRoot, bit32 tag, bit32 phyId, agsaPhyConfig_t *agPhyConfig, agsaSASIdentify_t *agSASIdentify, bit32 queueNum)
 SPC MPI Phy Start Command. More...
 
GLOBAL bit32 mpiPhyStopCmd (agsaRoot_t *agRoot, bit32 tag, bit32 phyId, bit32 queueNum)
 SPC MPI Phy Stop Command. More...
 
GLOBAL bit32 mpiSMPCmd (agsaRoot_t *agRoot, void *pIomb, bit16 opcode, agsaSMPCmd_t *payload, bit8 inq, bit8 outq)
 SPC MPI SMP Request Command. More...
 
GLOBAL bit32 mpiDeregDevHandleCmd (agsaRoot_t *agRoot, agsaContext_t *agContext, agsaDeviceDesc_t *pDevice, bit32 deviceId, bit32 portId, bit32 queueNum)
 SPC MPI Deregister Device Handle Command. More...
 
GLOBAL bit32 mpiGetDeviceHandleCmd (agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 portId, bit32 flags, bit32 maxDevs, bit32 queueNum, bit32 skipCount)
 SPC MPI Get Device Handle Command. More...
 
GLOBAL bit32 mpiLocalPhyControlCmd (agsaRoot_t *agRoot, bit32 tag, bit32 phyId, bit32 operation, bit32 queueNum)
 SPC MPI LOCAL PHY CONTROL Command. More...
 
GLOBAL bit32 mpiGetDeviceInfoCmd (agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 deviceid, bit32 option, bit32 queueNum)
 Get Device Information Command. More...
 
GLOBAL bit32 mpiDevHandleAcceptCmd (agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 ctag, bit32 deviceId, bit32 action, bit32 flag, bit32 itlnx, bit32 queueNum)
 Device Handle Accept Command. More...
 
GLOBAL bit32 mpiPortControlRsp (agsaRoot_t *agRoot, agsaPortControlRsp_t *pIomb)
 Port Control Response. More...
 
GLOBAL bit32 mpiSMPAbortRsp (agsaRoot_t *agRoot, agsaSMPAbortRsp_t *pIomb)
 SPC MPI SMP ABORT Response. More...
 
GLOBAL bit32 siGetRegisterDumpGSM (agsaRoot_t *agRoot, void *destinationAddress, bit32 regDumpNum, bit32 regDumpOffset, bit32 len)
 Initiate a GET REGISTER DUMP from GSM command. More...
 
GLOBAL bit32 mpiNVMReadRegDumpCmd (agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 queueNum, bit32 cpuId, bit32 cOffset, bit32 addrHi, bit32 addrLo, bit32 len)
 SPC READ REGISTER DUMP Command. More...
 
GLOBAL bit32 mpiDeviceHandleRemoval (agsaRoot_t *agRoot, agsaDeviceHandleRemoval_t *pMsg1)
 SPC MPI Device Handle Arrived Event (target mode) More...
 
GLOBAL bit32 mpiGetNVMDCmd (agsaRoot_t *agRoot, agsaContext_t *agContext, agsaNVMDData_t *NVMDInfo, bit32 queueNum)
 Get NVM Data command. More...
 
GLOBAL bit32 mpiSetNVMDCmd (agsaRoot_t *agRoot, agsaContext_t *agContext, agsaNVMDData_t *NVMDInfo, bit32 queueNum)
 Set NVM Data Command. More...
 
GLOBAL bit32 mpiSetDeviceInfoCmd (agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 deviceid, bit32 option, bit32 queueNum, bit32 param, ossaSetDeviceInfoCB_t agCB)
 Set Device Information Command. More...
 
GLOBAL bit32 mpiSetDeviceStateCmd (agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 deviceId, bit32 nds, bit32 queueNum)
 Set Device State command. More...
 
GLOBAL bit32 mpiGetDeviceStateCmd (agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 deviceId, bit32 queueNum)
 Get Device State command. More...
 
GLOBAL bit32 mpiSasReinitializeCmd (agsaRoot_t *agRoot, agsaContext_t *agContext, agsaSASReconfig_t *agSASConfig, bit32 queueNum)
 SAS ReInitialize command. More...
 
GLOBAL bit32 mpiSGpioRsp (agsaRoot_t *agRoot, agsaSGpioRsp_t *pInIomb)
 serial GPIO Response More...
 
GLOBAL bit32 mpiPCIeDiagExecuteRsp (agsaRoot_t *agRoot, void *pInIomb)
 PCIE Diagnostics Response. More...
 
GLOBAL bit32 mpiGetDFEDataRsp (agsaRoot_t *agRoot, void *pInIomb)
 Get DFE Data command Response. More...
 
GLOBAL bit32 mpiGetVisDataRsp (agsaRoot_t *agRoot, void *pIomb)
 
GLOBAL bit32 mpiSetControllerConfigCmd (agsaRoot_t *agRoot, agsaContext_t *agContext, agsaSetControllerConfigCmd_t *agControllerConfig, bit32 queueNum, bit8 modePageContext)
 SAS Set Controller Configuration Command. More...
 
GLOBAL bit32 mpiGetControllerConfigCmd (agsaRoot_t *agRoot, agsaContext_t *agContext, agsaGetControllerConfigCmd_t *agControllerConfig, bit32 queueNum)
 SAS Get Controller Configuration Command. More...
 
GLOBAL bit32 mpiKekManagementCmd (agsaRoot_t *agRoot, agsaContext_t *agContext, agsaKekManagementCmd_t *agKekMgmt, bit32 queueNum)
 SAS Encryption KEK command. More...
 
GLOBAL bit32 mpiDekManagementCmd (agsaRoot_t *agRoot, agsaContext_t *agContext, agsaDekManagementCmd_t *agDekMgmt, bit32 queueNum)
 SAS Encryption DEK management command. More...
 
GLOBAL bit32 mpiOperatorManagementCmd (agsaRoot_t *agRoot, bit32 queueNum, agsaContext_t *agContext, agsaOperatorMangmentCmd_t *operatorcode)
 This command sends operator management command. More...
 
GLOBAL bit32 mpiEncryptBistCmd (agsaRoot_t *agRoot, bit32 queueNum, agsaContext_t *agContext, agsaEncryptBist_t *bist)
 This command sends encrypt self test command. More...
 
GLOBAL bit32 mpiSetOperatorCmd (agsaRoot_t *agRoot, bit32 queueNum, agsaContext_t *agContext, agsaSetOperatorCmd_t *operatorcode)
 This command sends set operator command. More...
 
GLOBAL bit32 mpiGetOperatorCmd (agsaRoot_t *agRoot, bit32 queueNum, agsaContext_t *agContext, agsaGetOperatorCmd_t *operatorcode)
 This command sends get operator command. More...
 
GLOBAL bit32 mpiDIFEncryptionOffloadCmd (agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 queueNum, bit32 op, agsaDifEncPayload_t *agDifEncOffload, ossaDIFEncryptionOffloadStartCB_t agCB)
 
bit32 siOurMSIXInterrupt (agsaRoot_t *agRoot, bit32 interruptVectorIndex)
 Function to process MSIX interrupts. More...
 
void siDisableMSIXInterrupts (agsaRoot_t *agRoot, bit32 interruptVectorIndex)
 Function to disable MSIX interrupts. More...
 
void siReenableMSIXInterrupts (agsaRoot_t *agRoot, bit32 interruptVectorIndex)
 Function to reenable MSIX interrupts. More...
 
bit32 siOurMSIInterrupt (agsaRoot_t *agRoot, bit32 interruptVectorIndex)
 Function to process MSI interrupts. More...
 
void siDisableMSIInterrupts (agsaRoot_t *agRoot, bit32 interruptVectorIndex)
 Function to disable MSI interrupts. More...
 
void siReenableMSIInterrupts (agsaRoot_t *agRoot, bit32 interruptVectorIndex)
 Function to reenable MSI interrupts. More...
 
bit32 siOurLegacyInterrupt (agsaRoot_t *agRoot, bit32 interruptVectorIndex)
 Function to process Legacy interrupts. More...
 
void siDisableLegacyInterrupts (agsaRoot_t *agRoot, bit32 interruptVectorIndex)
 Function to process Legacy interrupts. More...
 
void siReenableLegacyInterrupts (agsaRoot_t *agRoot, bit32 interruptVectorIndex)
 Function to reenable Legacy interrupts. More...
 
bit32 siOurMSIX_V_Interrupt (agsaRoot_t *agRoot, bit32 interruptVectorIndex)
 Function to process MSIX V interrupts. More...
 
bit32 siOurMSI_V_Interrupt (agsaRoot_t *agRoot, bit32 interruptVectorIndex)
 Function to process MSI V interrupts. More...
 
bit32 siOurLegacy_V_Interrupt (agsaRoot_t *agRoot, bit32 interruptVectorIndex)
 Function to process Legacy V interrupts. More...
 
void siDisableMSIX_V_Interrupts (agsaRoot_t *agRoot, bit32 interruptVectorIndex)
 Function to disable MSIX V interrupts. More...
 
void siDisableMSI_V_Interrupts (agsaRoot_t *agRoot, bit32 interruptVectorIndex)
 Function to disable MSI V interrupts. More...
 
void siDisableLegacy_V_Interrupts (agsaRoot_t *agRoot, bit32 interruptVectorIndex)
 Function to process Legacy V interrupts. More...
 
void siReenableMSIX_V_Interrupts (agsaRoot_t *agRoot, bit32 interruptVectorIndex)
 Function to reenable MSIX interrupts. More...
 
void siReenableMSI_V_Interrupts (agsaRoot_t *agRoot, bit32 interruptVectorIndex)
 Function to reenable MSI V interrupts. More...
 
void siReenableLegacy_V_Interrupts (agsaRoot_t *agRoot, bit32 interruptVectorIndex)
 Function to reenable Legacy V interrupts. More...
 
GLOBAL void siUpdateBarOffsetTable (agsaRoot_t *agRoot, bit32 Spc_Type)
 
GLOBAL void siPciCpyMem (agsaRoot_t *agRoot, bit32 soffset, const void *dst, bit32 DWcount, bit32 busBaseNumber)
 
GLOBAL void siHalRegWriteExt (agsaRoot_t *agRoot, bit32 generic, bit32 regOffset, bit32 regValue)
 
GLOBAL bit32 siHalRegReadExt (agsaRoot_t *agRoot, bit32 generic, bit32 regOffset)
 
GLOBAL bit32 siGetTableOffset (agsaRoot_t *agRoot, bit32 TableOffsetInTable)
 
GLOBAL bit32 siGetPciBar (agsaRoot_t *agRoot)
 
GLOBAL bit32 siScratchDump (agsaRoot_t *agRoot)
 
void si_macro_check (agsaRoot_t *agRoot)
 
GLOBAL bit32 si_check_V_HDA (agsaRoot_t *agRoot)
 
GLOBAL bit32 si_check_V_Ready (agsaRoot_t *agRoot)
 
GLOBAL void siPCITriger (agsaRoot_t *agRoot)
 
GLOBAL void siCheckQs (agsaRoot_t *agRoot)
 
GLOBAL bit32 smIsCfg_V_ANY (agsaRoot_t *agRoot)
 
GLOBAL bit32 smIS_SPC (agsaRoot_t *agRoot)
 
GLOBAL bit32 smIS_HIL (agsaRoot_t *agRoot)
 
GLOBAL bit32 smIS_SPC6V (agsaRoot_t *agRoot)
 
GLOBAL bit32 smIS_SPC12V (agsaRoot_t *agRoot)
 
GLOBAL bit32 smIS_SPCV (agsaRoot_t *agRoot)
 
GLOBAL bit32 smIS_ENCRYPT (agsaRoot_t *agRoot)
 
GLOBAL bit32 smIS_SPCV_2_IOP (agsaRoot_t *agRoot)
 

Detailed Description

The file defines the function delcaration for internal used function.

Definition in file saproto.h.

Function Documentation

◆ mpiBistRsp()

◆ mpiBuildCmd()

GLOBAL bit32 mpiBuildCmd ( agsaRoot_t agRoot,
bit32 payload,
mpiMsgCategory_t  category,
bit16  opcode,
bit16  size,
bit32  queueNum 
)

Build a IOMB command and send to SPC.

Build an IOMB if there is a free message buffer and Send it to SPC

Parameters
agRootHandles for this instance of SAS/SATA hardware
payloadPointer of payload in the IOMB
categoryCategory of IOMB
opcodeOpcode of IOMB
sizeSize of IOMB
queueNumInbound/outbound queue number
Returns
If the MPI command is sent to SPC successfully
  • AGSA_RC_SUCCESS the MPI command is successfully
  • AGSA_RC_BUSY the SPC is no resource, cannot send now
  • AGSA_RC_FAILURE the MPI command is failure

Definition at line 94 of file sampicmd.c.

References agNULL, AGSA_MAX_INBOUND_Q, AGSA_MAX_OUTBOUND_Q, AGSA_RC_BUSY, AGSA_RC_FAILURE, AGSA_RC_SUCCESS, hpDBG_VERY_LOUD, agsaLLRoot_s::inboundQueue, LL_IOREQ_IBQ0_LOCK, MPI_IB_NUM_MASK, MPI_OB_NUM_MASK, MPI_OB_SHIFT, mpiMsgFreeGet(), mpiMsgProduce(), agsaQueueConfig_s::numOutboundQueues, ossaSingleThreadedEnter(), ossaSingleThreadedLeave(), mpiICQueue_s::priority, agsaLLRoot_s::QueueConfig, SA_ASSERT, SA_DBG1, agsaContext_s::sdkData, si_memcpy(), smTraceFuncEnter, and smTraceFuncExit.

Referenced by mpiDekManagementCmd(), mpiDeregDevHandleCmd(), mpiDevHandleAcceptCmd(), mpiDIFEncryptionOffloadCmd(), mpiEchoCmd(), mpiEncryptBistCmd(), mpiGetControllerConfigCmd(), mpiGetDeviceHandleCmd(), mpiGetDeviceInfoCmd(), mpiGetDeviceStateCmd(), mpiGetNVMDCmd(), mpiGetOperatorCmd(), mpiGetPhyProfileCmd(), mpiKekManagementCmd(), mpiLocalPhyControlCmd(), mpiNVMReadRegDumpCmd(), mpiOperatorManagementCmd(), mpiPhyStartCmd(), mpiPhyStopCmd(), mpiSasReinitializeCmd(), mpiSetControllerConfigCmd(), mpiSetDeviceInfoCmd(), mpiSetDeviceStateCmd(), mpiSetNVMDCmd(), mpiSetOperatorCmd(), mpiSetPhyProfileCmd(), mpiVHistCapCmd(), saGetDFEData(), saGetTimeStamp(), saGpioEventSetup(), saGpioPinSetup(), saGpioRead(), saGpioWrite(), saHwEventAck(), saPCIeDiagExecute(), saPortControl(), saRegisterNewDevice(), saSASDiagExecute(), saSASDiagStartEnd(), saSgpio(), and saSMPAbort().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mpiDekManagementCmd()

GLOBAL bit32 mpiDekManagementCmd ( agsaRoot_t agRoot,
agsaContext_t agContext,
agsaDekManagementCmd_t agDekMgmt,
bit32  queueNum 
)

SAS Encryption DEK management command.

This command updates one or more DEK in a controller that supports encryption.

Parameters
agRootHandles for this instance of SAS/SATA LLL
agContextContext for the Get Nexus State command
agDekMgmtDEK information that will be sent to the controller
queueNumQueue Number of inbound/outbound queue
Returns
If the MPI command is sent to SPC successfully
  • AGSA_RC_SUCCESS the MPI command is successfully
  • AGSA_RC_BUSY the SPC is no resource, cannot send now
  • AGSA_RC_FAILURE the MPI command is failure

Definition at line 2372 of file sampicmd.c.

References agsaIOMap_s::agContext, agFALSE, agNULL, AGSA_RC_BUSY, AGSA_RC_SUCCESS, agTRUE, agsaDekManagementCmd_s::dekIndex, agsaLLRoot_s::freeIORequests, hpDBG_VERY_LOUD, agsaIORequestDesc_s::HTag, agsaLLRoot_s::IOMap, IOMB_SIZE64, agsaIOMap_s::IORequest, agsaDekManagementCmd_s::KEKIDX_Reserved_TBLS_DSOP, agsaIORequestDesc_s::linkNode, LL_IOREQ_LOCKEQ_LOCK, MARK_OFF, MPI_CATEGORY_SAS_SATA, mpiBuildCmd(), OPC_INB_DEK_MANAGEMENT, ossaSingleThreadedEnter(), ossaSingleThreadedLeave(), agsaDekManagementCmd_s::Reserved_DBF_TBL_SIZE, SA_ASSERT, SA_DBG1, SA_DBG3, saLlistIOAdd, saLlistIOGetHead, saLlistIORemove, agsaContext_s::sdkData, smTraceFuncEnter, smTraceFuncExit, agsaDekManagementCmd_s::tableAddrHi, agsaDekManagementCmd_s::tableAddrLo, agsaDekManagementCmd_s::tableEntries, agsaDekManagementCmd_s::tag, agsaIOMap_s::Tag, and agsaIORequestDesc_s::valid.

Referenced by saEncryptDekCacheInvalidate(), and saEncryptDekCacheUpdate().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mpiDekManagementRsp()

◆ mpiDeregDevHandleCmd()

GLOBAL bit32 mpiDeregDevHandleCmd ( agsaRoot_t agRoot,
agsaContext_t agContext,
agsaDeviceDesc_t pDevice,
bit32  deviceId,
bit32  portId,
bit32  queueNum 
)

SPC MPI Deregister Device Handle Command.

This command used to deregister(remove) the device handle.

Parameters
agRootHandles for this instance of SAS/SATA LLL
agDevHandleDevice Handle
deviceIdindex of device
portIdindex of port
queueNumIQ/OQ number
Returns
If the MPI command is sent to SPC successfully
  • AGSA_RC_SUCCESS the MPI command is successfully
  • AGSA_RC_BUSY the SPC is no resource, cannot send now
  • AGSA_RC_FAILURE the MPI command is failure

Definition at line 965 of file sampicmd.c.

References agsaIOMap_s::agContext, agFALSE, agNULL, AGSA_RC_BUSY, AGSA_RC_SUCCESS, agTRUE, agsaLLRoot_s::freeIORequests, hpDBG_VERY_LOUD, agsaIORequestDesc_s::HTag, agsaLLRoot_s::IOMap, IOMB_SIZE64, agsaIOMap_s::IORequest, agsaIORequestDesc_s::linkNode, LL_IOREQ_LOCKEQ_LOCK, MARK_OFF, MPI_CATEGORY_SAS_SATA, mpiBuildCmd(), OPC_INB_DEREG_DEV_HANDLE, OSSA_OFFSET_OF, ossaSingleThreadedEnter(), ossaSingleThreadedLeave(), agsaIORequestDesc_s::pDevice, SA_ASSERT, SA_DBG1, SA_DBG3, saLlistIOAdd, saLlistIOGetHead, saLlistIORemove, agsaContext_s::sdkData, si_memset(), smTraceFuncEnter, smTraceFuncExit, agsaIOMap_s::Tag, and agsaIORequestDesc_s::valid.

Referenced by saDeregisterDeviceHandle().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mpiDeregDevHandleRsp()

◆ mpiDevHandleAcceptCmd()

GLOBAL bit32 mpiDevHandleAcceptCmd ( agsaRoot_t agRoot,
agsaContext_t agContext,
bit32  ctag,
bit32  deviceId,
bit32  action,
bit32  flag,
bit32  itlnx,
bit32  queueNum 
)

Device Handle Accept Command.

This command is Device Handle Accept IOMB to SPC.

Parameters
agRootHandles for this instance of SAS/SATA LLL
agContextContext for the set VPD command
ctagcontroller tag
deviceIddevice Id
actionaction
queueNumqueue Number
Returns
If the MPI command is sent to SPC successfully
  • AGSA_RC_SUCCESS the MPI command is successfully
  • AGSA_RC_BUSY the SPC is no resource, cannot send now
  • AGSA_RC_FAILURE the MPI command is failure

Definition at line 1222 of file sampicmd.c.

References agsaIOMap_s::agContext, agFALSE, agNULL, AGSA_RC_BUSY, AGSA_RC_SUCCESS, agsaLLRoot_s::freeIORequests, agsaLLRoot_s::freeReservedRequests, hpDBG_VERY_LOUD, agsaIORequestDesc_s::HTag, agsaLLRoot_s::IOMap, IOMB_SIZE64, agsaIOMap_s::IORequest, agsaIORequestDesc_s::linkNode, LL_IOREQ_LOCKEQ_LOCK, MARK_OFF, MPI_CATEGORY_SAS_SATA, mpiBuildCmd(), OPC_INB_DEV_HANDLE_ACCEPT, OSSA_OFFSET_OF, ossaSingleThreadedEnter(), ossaSingleThreadedLeave(), SA_ASSERT, SA_DBG1, SA_DBG2, SA_RESERVED_REQUEST_COUNT, saLlistIOAdd, saLlistIOGetCount, saLlistIOGetHead, saLlistIORemove, agsaContext_s::sdkData, SHIFT1, SHIFT16, SHIFT17, SHIFT20, SHIFT24, si_memset(), smTraceFuncEnter, smTraceFuncExit, agsaIOMap_s::Tag, and agsaIORequestDesc_s::valid.

Referenced by mpiDeviceHandleArrived().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mpiDeviceHandleArrived()

GLOBAL bit32 mpiDeviceHandleArrived ( agsaRoot_t agRoot,
agsaDeviceHandleArrivedNotify_t pMsg1 
)

SPC MPI Device Handle Arrived Event (target mode)

This function handles the Device Handle Arrived Event.

Parameters
agRootHandles for this instance of SAS/SATA LLL
pMsg1pointer of Message
Returns
The read value

Definition at line 5355 of file sampirsp.c.

References agFALSE, agNULL, AGSA_RC_FAILURE, AGSA_RC_SUCCESS, agTRUE, agsaSASDeviceInfo_s::commonDevInfo, Conrate_SPC_MASK, Conrate_SPC_SHIFT, Conrate_V_MASK, Conrate_V_SHIFT, DEVICE_ID_BITS, agsaDeviceMap_s::DeviceHandle, agsaDeviceMap_s::DeviceIdFromFW, agsaLLRoot_s::DeviceMap, agsaDeviceDesc_s::DeviceMapIndex, agsaSASIdentify_s::deviceType_addressFrameType, agsaDeviceDesc_s::devInfo, agsaDeviceInfo_s::devType_S_Rate, agsaDeviceInfo_s::flag, agsaLLRoot_s::freePorts, hpDBG_VERY_LOUD, agsaSASDeviceInfo_s::initiator_ssp_stp_smp, agsaDeviceDesc_s::initiatorDevHandle, agsaDeviceInfo_s::it_NexusTimeout, ITL_TO_DEFAULT, agsaPort_s::linkNode, LL_PORT_LOCK, mpiDevHandleAcceptCmd(), agsaSASDeviceInfo_s::numOfPhys, agsaContext_s::osData, OSSA_OFFSET_OF, OSSA_RC_ACCEPT, ossaDeviceHandleAccept(), ossaSingleThreadedEnter(), ossaSingleThreadedLeave(), agsaPort_s::portContext, agsaPortMap_s::PortContext, agsaPort_s::portId, agsaPortMap_s::PortID, PortId_SPC_MASK, PortId_V_MASK, agsaLLRoot_s::PortMap, agsaPortMap_s::PortStatus, PROTOCOL_BITS, PROTOCOL_SHIFT, SA_ASSERT, SA_DBG1, SA_DBG2, SA_DBG3, SA_IDFRM_SMP_BIT, SA_IDFRM_SSP_BIT, saLlistAdd, saLlistGetHead, saLlistRemove, agsaDeviceInfo_s::sasAddressHi, agsaSASIdentify_s::sasAddressHi, agsaDeviceInfo_s::sasAddressLo, agsaSASIdentify_s::sasAddressLo, agsaDeviceHandleArrivedNotify_s::sasAddrHi, agsaDeviceHandleArrivedNotify_s::sasAddrLow, agsaSASSATADevInfo_s::sasDeviceInfo, agsaContext_s::sdkData, SHIFT16, si_memset(), siPortSASDeviceAdd(), smIS_SPCV(), SMP_TO_DEFAULT, smTraceFuncEnter, smTraceFuncExit, agsaPort_s::status, agsaPort_s::tobedeleted, and agsaLLRoot_s::validPorts.

Referenced by mpiParseOBIomb().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mpiDeviceHandleRemoval()

◆ mpiDeviceRegRsp()

GLOBAL bit32 mpiDeviceRegRsp ( agsaRoot_t agRoot,
agsaDeviceRegistrationRsp_t pIomb 
)

SPC MPI Device Register Command Response.

This function handles the response of Device Register Command.

Parameters
agRootHandles for this instance of SAS/SATA hardware
pIombpointer of Message
Returns
The read value

Definition at line 2188 of file sampirsp.c.

References agsaIOMap_s::agContext, agFALSE, agNULL, AGSA_RC_FAILURE, AGSA_RC_SUCCESS, DEVICE_ID_BITS, agsaDeviceMap_s::DeviceHandle, agsaDeviceMap_s::DeviceIdFromFW, agsaLLRoot_s::DeviceMap, agsaDeviceDesc_s::DeviceMapIndex, agsaLLRoot_s::DeviceRegistrationCB, agsaLLRoot_s::freeIORequests, agsaLLRoot_s::freeReservedRequests, hpDBG_VERY_LOUD, agsaLLRoot_s::IOMap, agsaIOMap_s::IORequest, agsaIORequestDesc_s::linkNode, LL_IOREQ_LOCKEQ_LOCK, MARK_OFF, MAX_IO_DEVICE_ENTRIES, MPI_ERR_DEVICE_ALREADY_REGISTERED, MPI_ERR_DEVICE_HANDLE_UNAVAILABLE, MPI_ERR_DEVICE_TYPE_NOT_VALID, MPI_ERR_PHY_ID_ALREADY_REGISTERED, MPI_ERR_PHY_ID_INVALID, MPI_ERR_PORT_INVALID_PORT_ID, MPI_ERR_PORT_STATE_NOT_VALID, NULL, OS_ASSERT, OSSA_FAILURE_DEVICE_ALREADY_REGISTERED, OSSA_FAILURE_DEVICE_TYPE_NOT_VALID, OSSA_FAILURE_INVALID_PHY_ID, OSSA_FAILURE_OUT_OF_RESOURCE, OSSA_FAILURE_PHY_ID_ALREADY_REGISTERED, OSSA_FAILURE_PORT_ID_OUT_OF_RANGE, OSSA_FAILURE_PORT_NOT_VALID_STATE, OSSA_OFFSET_OF, OSSA_SUCCESS, ossaSingleThreadedEnter(), ossaSingleThreadedLeave(), agsaIORequestDesc_s::pDevice, agsaDeviceDesc_s::pPort, SA_ASSERT, SA_DBG1, SA_DBG3, SA_RESERVED_REQUEST_COUNT, saLlistIOAdd, saLlistIOGetCount, agsaContext_s::sdkData, siPortDeviceListRemove(), siPortDeviceRemove(), smIS_SPCV(), smTraceFuncEnter, smTraceFuncExit, status, agsaDeviceRegistrationRsp_s::tag, agsaIOMap_s::Tag, agsaDeviceDesc_s::targetDevHandle, and agsaIORequestDesc_s::valid.

Referenced by mpiParseOBIomb().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mpiDifEncOffloadRsp()

◆ mpiDIFEncryptionOffloadCmd()

GLOBAL bit32 mpiDIFEncryptionOffloadCmd ( agsaRoot_t agRoot,
agsaContext_t agContext,
bit32  queueNum,
bit32  op,
agsaDifEncPayload_t agDifEncOffload,
ossaDIFEncryptionOffloadStartCB_t  agCB 
)

Definition at line 2790 of file sampicmd.c.

References agsaIOMap_s::agContext, agFALSE, agNULL, AGSA_ENCRYPT_XTS_Mode, AGSA_RC_BUSY, AGSA_RC_FAILURE, AGSA_RC_SUCCESS, agsaEncryptCipherModeXTS, agTRUE, agsaEncrypt_s::cipherMode, agsaIORequestDesc_s::completionCB, agsaEncryptDek_s::dekIndex, agsaEncrypt_s::dekInfo, agsaEncryptDek_s::dekTable, agsaDifEncPayload_s::dif, agsaDif_s::DIFPerLAAddrHi, agsaDif_s::DIFPerLAAddrLo, agsaDif_s::DIFPerLARegion0SecCount, agsaDifEncPayload_s::DstDL, agsaDifEncPayload_s::DstSgl, agsaDifEncOffloadCmd_s::DstSgl, agsaDifEncPayload_s::encrypt, agsaEncrypt_s::EncryptionPerLAAddrHi, agsaEncrypt_s::EncryptionPerLAAddrLo, agsaEncrypt_s::EncryptionPerLRegion0SecCount, flags, agsaDif_s::flags, agsaLLRoot_s::freeIORequests, hpDBG_VERY_LOUD, agsaIORequestDesc_s::HTag, agsaDif_s::initialIOSeed, agsaLLRoot_s::IOMap, IOMB_SIZE128, agsaIOMap_s::IORequest, agsaEncrypt_s::kekIndex, agsaEncrypt_s::keyTag_W0, agsaEncrypt_s::keyTag_W1, agsaEncrypt_s::keyTagCheck, agsaIORequestDesc_s::linkNode, LL_IOREQ_LOCKEQ_LOCK, MARK_OFF, MPI_CATEGORY_SAS_SATA, mpiBuildCmd(), OPC_INB_DIF_ENC_OFFLOAD_CMD, OSSA_OFFSET_OF, ossaSingleThreadedEnter(), ossaSingleThreadedLeave(), SA_ASSERT, SA_DBG1, SA_DBG3, saLlistIOAdd, saLlistIOGetHead, saLlistIORemove, agsaContext_s::sdkData, agsaEncrypt_s::sectorSizeIndex, SHIFT1, SHIFT16, SHIFT2, SHIFT24, SHIFT4, SHIFT5, SHIFT8, si_memcpy(), si_memset(), smIS_SPCV(), smTraceFuncEnter, smTraceFuncExit, agsaDifEncPayload_s::SrcDL, agsaDifEncPayload_s::SrcSgl, agsaDifEncOffloadCmd_s::SrcSgl, agsaIOMap_s::Tag, agsaEncrypt_s::tweakVal_W0, agsaEncrypt_s::tweakVal_W1, agsaEncrypt_s::tweakVal_W2, agsaEncrypt_s::tweakVal_W3, agsaDif_s::udrtArray, agsaDif_s::udtArray, and agsaIORequestDesc_s::valid.

Referenced by saDIFEncryptionOffloadStart().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mpiEchoCmd()

GLOBAL bit32 mpiEchoCmd ( agsaRoot_t agRoot,
bit32  queueNum,
agsaContext_t agContext,
void *  echoPayload 
)

SPC MPI ECHO Command.

This command used to test that MPI between host and SPC IOP is operational.

Parameters
agRootHandles for this instance of SAS/SATA LLL
queueNumInbound/outbound queue number
tagTag of this IOMB
echoPayloadPointer to the ECHO payload of inbound IOMB
Returns
If the MPI command is sent to SPC successfully
  • AGSA_RC_SUCCESS the MPI command is successfully
  • AGSA_RC_BUSY the SPC is no resource, cannot send now
  • AGSA_RC_FAILURE the MPI command is failure

Definition at line 189 of file sampicmd.c.

References agsaIOMap_s::agContext, agFALSE, agNULL, AGSA_RC_BUSY, AGSA_RC_SUCCESS, agTRUE, agsaLLRoot_s::freeIORequests, hpDBG_VERY_LOUD, agsaIORequestDesc_s::HTag, agsaLLRoot_s::IOMap, IOMB_SIZE64, agsaIOMap_s::IORequest, agsaIORequestDesc_s::linkNode, LL_IOREQ_LOCKEQ_LOCK, MARK_OFF, MPI_CATEGORY_SAS_SATA, mpiBuildCmd(), OPC_INB_ECHO, OSSA_OFFSET_OF, ossaSingleThreadedEnter(), ossaSingleThreadedLeave(), agsaEchoCmd_s::payload, SA_ASSERT, SA_DBG1, SA_DBG3, saLlistIOAdd, saLlistIOGetHead, saLlistIORemove, agsaContext_s::sdkData, si_memcpy(), smTraceFuncEnter, smTraceFuncExit, agsaIOMap_s::Tag, and agsaIORequestDesc_s::valid.

Referenced by saEchoCommand().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mpiEchoRsp()

GLOBAL bit32 mpiEchoRsp ( agsaRoot_t agRoot,
agsaEchoRsp_t pIomb 
)

Process Outbound IOMB Message.

Process Outbound IOMB from SPC

Parameters
agRootHandles for this instance of SAS/SATA LL Layer
pMsg1Pointer of Response IOMB message 1
categorycategory of outbpond IOMB header
opcodeOpcode of Outbound IOMB header
bcbuffer count of IOMB header
Returns
success or fail

ECHO Response

This routine handles the response of ECHO Command

Parameters
agRootHandles for this instance of SAS/SATA LLL
pIombPointer of IOMB Mesage
Returns
sucess or fail

Definition at line 678 of file sampirsp.c.

References agsaIOMap_s::agContext, agFALSE, agNULL, AGSA_RC_FAILURE, AGSA_RC_SUCCESS, agsaLLRoot_s::freeIORequests, agsaLLRoot_s::freeReservedRequests, hpDBG_VERY_LOUD, agsaLLRoot_s::IOMap, agsaIOMap_s::IORequest, agsaIORequestDesc_s::linkNode, LL_IOREQ_LOCKEQ_LOCK, MARK_OFF, OSSA_OFFSET_OF, ossaEchoCB(), ossaSingleThreadedEnter(), ossaSingleThreadedLeave(), agsaEchoRsp_s::payload, SA_ASSERT, SA_DBG1, SA_DBG3, SA_RESERVED_REQUEST_COUNT, saLlistIOAdd, saLlistIOGetCount, agsaContext_s::sdkData, smTraceFuncEnter, smTraceFuncExit, agsaEchoRsp_s::tag, agsaIOMap_s::Tag, and agsaIORequestDesc_s::valid.

Referenced by mpiParseOBIomb().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mpiEncryptBistCmd()

GLOBAL bit32 mpiEncryptBistCmd ( agsaRoot_t agRoot,
bit32  queueNum,
agsaContext_t agContext,
agsaEncryptBist_t bist 
)

This command sends encrypt self test command.

Parameters
agRootHandles for this instance of SAS/SATA LLL
agContextContext
queueNumQueue Number of inbound/outbound queue
Returns
If the MPI command is sent to SPC successfully
  • AGSA_RC_SUCCESS the MPI command is successfully
  • AGSA_RC_BUSY the SPC is no resource, cannot send now
  • AGSA_RC_FAILURE the MPI command is failure

Definition at line 2545 of file sampicmd.c.

References agsaIOMap_s::agContext, agFALSE, agNULL, AGSA_RC_BUSY, AGSA_RC_SUCCESS, agTRUE, agsaLLRoot_s::freeIORequests, hpDBG_VERY_LOUD, agsaIORequestDesc_s::HTag, agsaLLRoot_s::IOMap, IOMB_SIZE64, agsaIOMap_s::IORequest, agsaIORequestDesc_s::linkNode, LL_IOREQ_LOCKEQ_LOCK, MARK_OFF, MPI_CATEGORY_SAS_SATA, mpiBuildCmd(), OPC_INB_ENC_TEST_EXECUTE, ossaSingleThreadedEnter(), ossaSingleThreadedLeave(), agsaEncryptBist_s::r_subop, SA_ASSERT, SA_DBG1, saLlistIOAdd, saLlistIOGetHead, saLlistIORemove, agsaContext_s::sdkData, smTraceFuncEnter, smTraceFuncExit, agsaEncryptBist_s::tag, agsaIOMap_s::Tag, agsaEncryptBist_s::testDiscption, and agsaIORequestDesc_s::valid.

Referenced by saEncryptSelftestExecute().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mpiFwExtFlashUpdateRsp()

◆ mpiFwFlashUpdateRsp()

GLOBAL bit32 mpiFwFlashUpdateRsp ( agsaRoot_t agRoot,
agsaFwFlashUpdateRsp_t payload 
)

SPC FW_FLASH_UPDATE Respond.

This command sends FW Flash Update Status to TD layer.

Parameters
agRootHandles for this instance of SAS/SATA LL
payloadFW download response payload
Returns
If the MPI command is sent to SPC successfully
  • AGSA_RC_SUCCESS the MPI command is successfully
  • AGSA_RC_FAILURE the MPI command is failure

Definition at line 591 of file saioctlcmd.c.

References agsaIOMap_s::agContext, agFALSE, agNULL, AGSA_RC_SUCCESS, agsaLLRoot_s::freeIORequests, agsaLLRoot_s::freeReservedRequests, hpDBG_VERY_LOUD, agsaLLRoot_s::IOMap, agsaIOMap_s::IORequest, agsaIORequestDesc_s::linkNode, LL_IOREQ_LOCKEQ_LOCK, MARK_OFF, OSSA_OFFSET_OF, ossaFwFlashUpdateCB(), ossaSingleThreadedEnter(), ossaSingleThreadedLeave(), SA_ASSERT, SA_DBG1, SA_RESERVED_REQUEST_COUNT, saLlistIOAdd, saLlistIOGetCount, agsaContext_s::sdkData, smTraceFuncEnter, smTraceFuncExit, status, agsaIOMap_s::Tag, and agsaIORequestDesc_s::valid.

Referenced by mpiParseOBIomb().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mpiGeneralEventRsp()

GLOBAL bit32 mpiGeneralEventRsp ( agsaRoot_t agRoot,
agsaGeneralEventRsp_t pIomb 
)

SAS General Event Notification Response.

This routine handles the response of Inbound IOMB Command with error case

Parameters
agRootHandles for this instance of SAS/SATA LLL
pIombPointer of IOMB Mesage
Returns
sucess or fail

Definition at line 4936 of file sampirsp.c.

References agsaIOMap_s::agContext, agFALSE, agNULL, AGSA_MAX_VALID_PORTS, AGSA_RC_FAILURE, AGSA_RC_SUCCESS, agsaHWEventEncrypt_s::encryptOperation, flags, agsaLLRoot_s::freeIORequests, agsaLLRoot_s::freeReservedRequests, GEN_EVENT_DS_IN_NON_OPERATIONAL, GEN_EVENT_DS_IN_RECOVERY, GEN_EVENT_DS_INVALID, GEN_EVENT_INBOUND_IOMB_OPC_NOT_SUPPORTED, GEN_EVENT_IO_XFER_READ_COMPL_ERR, GEN_EVENT_IOMB_INVALID_OBID, GEN_EVENT_IOMB_V_BIT_NOT_SET, GENERAL_EVENT_PAYLOAD, hpDBG_VERY_LOUD, agsaGeneralEventRsp_s::inbIOMBpayload, agsaLLRoot_s::IOMap, agsaIOMap_s::IORequest, agsaIORequestDesc_s::linkNode, LL_IOREQ_LOCKEQ_LOCK, MARK_OFF, agsaSwConfig_s::maxActiveIOs, NULL, OPC_INB_DEREG_DEV_HANDLE, OPC_INB_DEV_HANDLE_ACCEPT, OPC_INB_ECHO, OPC_INB_ENC_TEST_EXECUTE, OPC_INB_FW_FLASH_UPDATE, OPC_INB_FW_PROFILE, OPC_INB_GET_DEV_HANDLE, OPC_INB_GET_DEVICE_STATE, OPC_INB_GET_NVMD_DATA, OPC_INB_GET_OPERATOR, OPC_INB_GET_TIME_STAMP, OPC_INB_GPIO, OPC_INB_KEK_MANAGEMENT, OPC_INB_LOCAL_PHY_CONTROL, OPC_INB_OPR_MGMT, OPC_INB_PHYSTART, OPC_INB_PHYSTOP, OPC_INB_PORT_CONTROL, OPC_INB_SAS_DIAG_EXECUTE, OPC_INB_SAS_DIAG_MODE_START_END, OPC_INB_SAS_HW_EVENT_ACK, OPC_INB_SAS_RE_INITIALIZE, OPC_INB_SATA_ABORT, OPC_INB_SATA_DIF_ENC_OPSTART, OPC_INB_SATA_HOST_OPSTART, OPC_INB_SET_DEV_INFO, OPC_INB_SET_DEVICE_STATE, OPC_INB_SET_NVMD_DATA, OPC_INB_SET_OPERATOR, OPC_INB_SMP_ABORT, OPC_INB_SMP_REQUEST, OPC_INB_SPC_GET_DEV_INFO, OPC_INB_SPC_REG_DEV, OPC_INB_SSP_ABORT, OPC_INB_SSP_DIF_ENC_OPSTART, OPC_INB_SSPINIEXTIOSTART, OPC_INB_SSPINIIOSTART, OPC_INB_SSPINITMSTART, OPC_INB_SSPTGTIOSTART, OPC_INB_SSPTGTRSPSTART, OPCODE_BITS, OSSA_HW_ENCRYPT_KEK_UPDATE, OSSA_HW_ENCRYPT_KEK_UPDATE_AND_STORE, OSSA_HW_ENCRYPT_OPERATOR_MANAGEMENT, OSSA_HW_ENCRYPT_TEST_EXECUTE, OSSA_HW_EVENT_ENCRYPTION, OSSA_INVALID_ENCRYPTION_SECURITY_MODE, OSSA_OFFSET_OF, ossaGeneralEvent(), ossaGetOperatorCB(), ossaHwCB(), ossaOperatorManagementCB(), ossaSetOperatorCB(), ossaSingleThreadedEnter(), ossaSingleThreadedLeave(), agsaIORequestDesc_s::pDevice, agsaDeviceDesc_s::pendingIORequests, agsaIORequestDesc_s::pIORequestContext, SA_ASSERT, SA_DBG1, SA_DBG3, SA_RESERVED_REQUEST_COUNT, saLlistIOAdd, saLlistIOGetCount, saLlistIORemove, agsaContext_s::sdkData, si_memset(), smTraceFuncEnter, smTraceFuncExit, status, agsaHWEventEncrypt_s::status, agsaLLRoot_s::swConfig, agsaIOMap_s::Tag, and agsaIORequestDesc_s::valid.

Referenced by mpiParseOBIomb().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mpiGetControllerConfigCmd()

GLOBAL bit32 mpiGetControllerConfigCmd ( agsaRoot_t agRoot,
agsaContext_t agContext,
agsaGetControllerConfigCmd_t agControllerConfig,
bit32  queueNum 
)

SAS Get Controller Configuration Command.

This command retrieves the contents of a controller mode page.

Parameters
agRootHandles for this instance of SAS/SATA LLL
agContextContext for the Get Nexus State command
agControllerConfigMode page to retrieve from the controller
queueNumQueue Number of inbound/outbound queue
Returns
If the MPI command is sent to SPC successfully
  • AGSA_RC_SUCCESS the MPI command is successfully
  • AGSA_RC_BUSY the SPC is no resource, cannot send now
  • AGSA_RC_FAILURE the MPI command is failure

Definition at line 2198 of file sampicmd.c.

References agsaIOMap_s::agContext, agFALSE, agNULL, AGSA_RC_BUSY, AGSA_RC_SUCCESS, agTRUE, agsaLLRoot_s::freeIORequests, hpDBG_VERY_LOUD, agsaIORequestDesc_s::HTag, agsaLLRoot_s::IOMap, IOMB_SIZE64, agsaIOMap_s::IORequest, agsaIORequestDesc_s::linkNode, LL_IOREQ_LOCKEQ_LOCK, MARK_OFF, MPI_CATEGORY_SAS_SATA, mpiBuildCmd(), OPC_INB_GET_CONTROLLER_CONFIG, ossaSingleThreadedEnter(), ossaSingleThreadedLeave(), agsaGetControllerConfigCmd_s::pageCode, SA_ASSERT, SA_DBG1, SA_DBG3, saLlistIOAdd, saLlistIOGetHead, saLlistIORemove, agsaContext_s::sdkData, smTraceFuncEnter, smTraceFuncExit, agsaGetControllerConfigCmd_s::tag, agsaIOMap_s::Tag, and agsaIORequestDesc_s::valid.

Referenced by saGetControllerConfig().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mpiGetControllerConfigRsp()

GLOBAL bit32 mpiGetControllerConfigRsp ( agsaRoot_t agRoot,
agsaGetControllerConfigRsp_t pIomb 
)

◆ mpiGetDevHandleRsp()

◆ mpiGetDeviceHandleCmd()

GLOBAL bit32 mpiGetDeviceHandleCmd ( agsaRoot_t agRoot,
agsaContext_t agContext,
bit32  portId,
bit32  flags,
bit32  maxDevs,
bit32  queueNum,
bit32  skipCount 
)

SPC MPI Get Device Handle Command.

This command used to get device handle.

Parameters
agRootHandles for this instance of SAS/SATA LLL
agContextContext of Device Handle Command
portIdindex of port
flagsflags
maxDevsMaximum Device Handles
queueNumIQ/OQ number
skipCountskip device entry count
Returns
If the MPI command is sent to SPC successfully
  • AGSA_RC_SUCCESS the MPI command is successfully
  • AGSA_RC_BUSY the SPC is no resource, cannot send now
  • AGSA_RC_FAILURE the MPI command is failure

Definition at line 1058 of file sampicmd.c.

References agsaIOMap_s::agContext, agFALSE, agNULL, AGSA_RC_BUSY, AGSA_RC_SUCCESS, agTRUE, flags, agsaLLRoot_s::freeIORequests, agsaLLRoot_s::freeReservedRequests, hpDBG_VERY_LOUD, agsaIORequestDesc_s::HTag, agsaLLRoot_s::IOMap, IOMB_SIZE64, agsaIOMap_s::IORequest, agsaIORequestDesc_s::linkNode, LL_IOREQ_LOCKEQ_LOCK, MARK_OFF, MPI_CATEGORY_SAS_SATA, mpiBuildCmd(), OPC_INB_GET_DEV_HANDLE, OSSA_OFFSET_OF, ossaSingleThreadedEnter(), ossaSingleThreadedLeave(), PORTID_MASK, SA_ASSERT, SA_DBG1, SA_DBG3, SA_RESERVED_REQUEST_COUNT, saLlistIOAdd, saLlistIOGetCount, saLlistIOGetHead, saLlistIORemove, agsaContext_s::sdkData, SHIFT24, SHIFT8, si_memset(), smTraceFuncEnter, smTraceFuncExit, agsaIOMap_s::Tag, and agsaIORequestDesc_s::valid.

Referenced by saGetDeviceHandles().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mpiGetDeviceInfoCmd()

GLOBAL bit32 mpiGetDeviceInfoCmd ( agsaRoot_t agRoot,
agsaContext_t agContext,
bit32  deviceid,
bit32  option,
bit32  queueNum 
)

Get Device Information Command.

This command is get # of phys and support speeds from SPC.

Parameters
agRootHandles for this instance of SAS/SATA LLL
agDevHandleHandle of device
deviceidDevice Id
optonoprion
Returns
If the MPI command is sent to SPC successfully
  • AGSA_RC_SUCCESS the MPI command is successfully
  • AGSA_RC_BUSY the SPC is no resource, cannot send now
  • AGSA_RC_FAILURE the MPI command is failure

Definition at line 541 of file sampicmd.c.

References agsaIOMap_s::agContext, agFALSE, agNULL, AGSA_RC_BUSY, AGSA_RC_FAILURE, AGSA_RC_SUCCESS, agTRUE, agsaIORequestDesc_s::DeviceInfoCmdOption, agsaLLRoot_s::freeIORequests, hpDBG_VERY_LOUD, agsaIORequestDesc_s::HTag, agsaLLRoot_s::IOMap, IOMB_SIZE64, agsaIOMap_s::IORequest, agsaIORequestDesc_s::linkNode, LL_IOREQ_LOCKEQ_LOCK, MARK_OFF, MPI_CATEGORY_SAS_SATA, mpiBuildCmd(), OPC_INB_GET_DEV_INFO, OPC_INB_SPC_GET_DEV_INFO, OSSA_OFFSET_OF, ossaSingleThreadedEnter(), ossaSingleThreadedLeave(), SA_ASSERT, SA_DBG1, SA_DBG3, saLlistIOAdd, saLlistIOGetHead, saLlistIORemove, agsaContext_s::sdkData, si_memset(), smIS_SPC(), smTraceFuncEnter, smTraceFuncExit, agsaIOMap_s::Tag, and agsaIORequestDesc_s::valid.

Referenced by saGetDeviceInfo().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mpiGetDeviceStateCmd()

GLOBAL bit32 mpiGetDeviceStateCmd ( agsaRoot_t agRoot,
agsaContext_t agContext,
bit32  deviceId,
bit32  queueNum 
)

Get Device State command.

This command is get device State to SPC.

Parameters
agRootHandles for this instance of SAS/SATA LLL
agContextContext for the Get Nexus State command
deviceIdDeviceId
queueNumQueue Number of inbound/outbound queue
Returns
If the MPI command is sent to SPC successfully
  • AGSA_RC_SUCCESS the MPI command is successfully
  • AGSA_RC_BUSY the SPC is no resource, cannot send now
  • AGSA_RC_FAILURE the MPI command is failure

Definition at line 1890 of file sampicmd.c.

References agsaIOMap_s::agContext, agFALSE, agNULL, AGSA_RC_BUSY, AGSA_RC_SUCCESS, agTRUE, agsaLLRoot_s::freeIORequests, agsaLLRoot_s::freeReservedRequests, hpDBG_VERY_LOUD, agsaIORequestDesc_s::HTag, agsaLLRoot_s::IOMap, IOMB_SIZE64, agsaIOMap_s::IORequest, agsaIORequestDesc_s::linkNode, LL_IOREQ_LOCKEQ_LOCK, MARK_OFF, MPI_CATEGORY_SAS_SATA, mpiBuildCmd(), OPC_INB_GET_DEVICE_STATE, OSSA_OFFSET_OF, ossaSingleThreadedEnter(), ossaSingleThreadedLeave(), SA_ASSERT, SA_DBG1, SA_DBG3, SA_RESERVED_REQUEST_COUNT, saLlistIOAdd, saLlistIOGetCount, saLlistIOGetHead, saLlistIORemove, agsaContext_s::sdkData, si_memset(), smTraceFuncEnter, smTraceFuncExit, agsaIOMap_s::Tag, and agsaIORequestDesc_s::valid.

Referenced by saGetDeviceState().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mpiGetDeviceStateRsp()

◆ mpiGetDevInfoRsp()

GLOBAL bit32 mpiGetDevInfoRsp ( agsaRoot_t agRoot,
agsaGetDevInfoRspV_t pIomb 
)

Get Device Information Response.

This routine handles the response of Get Device Info Command Response

Parameters
agRootHandles for this instance of SAS/SATA LLL
pIombPointer of IOMB Message
Returns
sucess or fail

Definition at line 3088 of file sampirsp.c.

References agsaIOMap_s::agContext, agFALSE, agNULL, AGSA_RC_FAILURE, AGSA_RC_SUCCESS, agsaSATADeviceInfo_s::commonDevInfo, agsaSASDeviceInfo_s::commonDevInfo, DEV_TYPE_BITS, DEVICE_ID_BITS, agsaDeviceMap_s::DeviceHandle, agsaIORequestDesc_s::DeviceInfoCmdOption, agsaLLRoot_s::DeviceMap, agsaDeviceDesc_s::devInfo, agsaDeviceInfo_s::devType_S_Rate, FIRST_BURST, FIRST_BURST_MCN, agsaDeviceInfo_s::firstBurstSize, agsaDeviceInfo_s::flag, FLAG_VBITS, agsaLLRoot_s::freeIORequests, agsaLLRoot_s::freeReservedRequests, hpDBG_VERY_LOUD, agsaDeviceDesc_s::initiatorDevHandle, agsaLLRoot_s::IOMap, agsaIOMap_s::IORequest, agsaDeviceInfo_s::it_NexusTimeout, agsaIORequestDesc_s::linkNode, LL_IOREQ_LOCKEQ_LOCK, MARK_OFF, NEXUSTO_VBITS, OSSA_DEV_INFO_INVALID_HANDLE, OSSA_DEV_INFO_NO_EXTENDED_INFO, OSSA_OFFSET_OF, ossaGetDeviceInfoCB(), ossaSingleThreadedEnter(), ossaSingleThreadedLeave(), SA_ASSERT, SA_DBG1, SA_DBG3, SA_RESERVED_REQUEST_COUNT, saLlistIOAdd, saLlistIOGetCount, agsaDeviceInfo_s::sasAddressHi, agsaDeviceInfo_s::sasAddressLo, agsaGetDevInfoRspV_s::sasAddrHi, agsaGetDevInfoRspV_s::sasAddrLow, agsaSASSATADevInfo_s::sasDeviceInfo, agsaSASSATADevInfo_s::sataDeviceInfo, agsaContext_s::sdkData, SHIFT16, SHIFT24, SHIFT28, SHIFT30, SHIFT8, si_memcpy(), si_memset(), agsaDeviceInfo_s::smpTimeout, SMPTO_VBITS, smTraceFuncEnter, smTraceFuncExit, status, agsaIOMap_s::Tag, agsaDeviceDesc_s::targetDevHandle, and agsaIORequestDesc_s::valid.

Referenced by mpiParseOBIomb().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mpiGetDevInfoRspSpc()

GLOBAL bit32 mpiGetDevInfoRspSpc ( agsaRoot_t agRoot,
agsaGetDevInfoRsp_t pIomb 
)

Get Device Information Response.

This routine handles the response of Get Device Info Command Response

Parameters
agRootHandles for this instance of SAS/SATA LLL
pIombPointer of IOMB Message
Returns
sucess or fail

Definition at line 3320 of file sampirsp.c.

References agsaIOMap_s::agContext, agFALSE, agNULL, AGSA_RC_FAILURE, AGSA_RC_SUCCESS, agsaSATADeviceInfo_s::commonDevInfo, agsaSASDeviceInfo_s::commonDevInfo, DEV_TYPE_BITS, DEVICE_ID_BITS, agsaDeviceMap_s::DeviceHandle, agsaLLRoot_s::DeviceMap, agsaDeviceDesc_s::devInfo, agsaDeviceInfo_s::devType_S_Rate, FIRST_BURST, agsaDeviceInfo_s::firstBurstSize, agsaDeviceInfo_s::flag, FLAG_BITS, agsaLLRoot_s::freeIORequests, agsaLLRoot_s::freeReservedRequests, hpDBG_VERY_LOUD, agsaDeviceDesc_s::initiatorDevHandle, agsaLLRoot_s::IOMap, agsaIOMap_s::IORequest, agsaDeviceInfo_s::it_NexusTimeout, LINK_RATE_BITS, agsaIORequestDesc_s::linkNode, LL_IOREQ_LOCKEQ_LOCK, MARK_OFF, NEXUSTO_BITS, OSSA_DEV_INFO_INVALID_HANDLE, OSSA_DEV_INFO_NO_EXTENDED_INFO, OSSA_OFFSET_OF, ossaGetDeviceInfoCB(), ossaSingleThreadedEnter(), ossaSingleThreadedLeave(), SA_ASSERT, SA_DBG1, SA_DBG2, SA_DBG3, SA_RESERVED_REQUEST_COUNT, saLlistIOAdd, saLlistIOGetCount, agsaDeviceInfo_s::sasAddressHi, agsaDeviceInfo_s::sasAddressLo, agsaGetDevInfoRspSpc_s::sasAddrHi, agsaGetDevInfoRspSpc_s::sasAddrLow, agsaSASSATADevInfo_s::sasDeviceInfo, agsaSASSATADevInfo_s::sataDeviceInfo, agsaContext_s::sdkData, SHIFT16, SHIFT24, SHIFT28, SHIFT4, SHIFT8, agsaDeviceInfo_s::smpTimeout, SMPTO_BITS, smTraceFuncEnter, smTraceFuncExit, status, agsaIOMap_s::Tag, agsaDeviceDesc_s::targetDevHandle, and agsaIORequestDesc_s::valid.

Referenced by mpiParseOBIomb().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mpiGetDFEDataRsp()

◆ mpiGetNVMDataRsp()

◆ mpiGetNVMDCmd()

GLOBAL bit32 mpiGetNVMDCmd ( agsaRoot_t agRoot,
agsaContext_t agContext,
agsaNVMDData_t NVMDInfo,
bit32  queueNum 
)

Get NVM Data command.

This command is get NVM Data from SPC.

Parameters
agRootHandles for this instance of SAS/SATA LLL
agContextContext for the VPD command
VPDInfoPointer of VPD Information
queueNumQueue Number of inbound/outbound queue
Returns
If the MPI command is sent to SPC successfully
  • AGSA_RC_SUCCESS the MPI command is successfully
  • AGSA_RC_BUSY the SPC is no resource, cannot send now
  • AGSA_RC_FAILURE the MPI command is failure

Definition at line 1462 of file sampicmd.c.

References agsaIOMap_s::agContext, agFALSE, agNULL, AGSA_NVMD_AAP1_REG_FLASH, AGSA_NVMD_CONFIG_SEEPROM, AGSA_NVMD_EXPANSION_ROM, AGSA_NVMD_IOP_REG_FLASH, AGSA_NVMD_TWI_DEVICES, AGSA_NVMD_VPD_FLASH, AGSA_RC_BUSY, AGSA_RC_FAILURE, AGSA_RC_SUCCESS, agTRUE, agsaNVMDData_s::dataOffsetAddress, agsaNVMDData_s::directLen, agsaLLRoot_s::freeIORequests, hpDBG_VERY_LOUD, agsaIORequestDesc_s::HTag, agsaNVMDData_s::indirectAddrLower32, agsaNVMDData_s::indirectAddrUpper32, agsaNVMDData_s::indirectLen, agsaNVMDData_s::indirectPayload, agsaLLRoot_s::IOMap, IOMB_SIZE64, agsaIOMap_s::IORequest, agsaIORequestDesc_s::linkNode, LL_IOREQ_LOCKEQ_LOCK, MARK_OFF, MPI_CATEGORY_SAS_SATA, mpiBuildCmd(), agsaNVMDData_s::NVMDevice, OPC_INB_GET_NVMD_DATA, OSSA_NVMD_MODE_ERROR, OSSA_OFFSET_OF, ossaGetNVMDResponseCB(), ossaSingleThreadedEnter(), ossaSingleThreadedLeave(), SA_ASSERT, SA_DBG1, SA_DBG3, saLlistIOAdd, saLlistIOGetHead, saLlistIORemove, agsaContext_s::sdkData, SHIFT12, SHIFT16, SHIFT24, SHIFT31, SHIFT4, SHIFT8, si_memset(), smTraceFuncEnter, smTraceFuncExit, agsaIOMap_s::Tag, agsaNVMDData_s::TWIBusNumber, agsaNVMDData_s::TWIDeviceAddress, agsaNVMDData_s::TWIDeviceAddressSize, agsaNVMDData_s::TWIDevicePageSize, and agsaIORequestDesc_s::valid.

Referenced by saGetNVMDCommand().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mpiGetOperatorCmd()

GLOBAL bit32 mpiGetOperatorCmd ( agsaRoot_t agRoot,
bit32  queueNum,
agsaContext_t agContext,
agsaGetOperatorCmd_t operatorcode 
)

This command sends get operator command.

Parameters
agRootHandles for this instance of SAS/SATA LLL
agContextContext
queueNumQueue Number of inbound/outbound queue
Returns
If the MPI command is sent to SPC successfully
  • AGSA_RC_SUCCESS the MPI command is successfully
  • AGSA_RC_BUSY the SPC is no resource, cannot send now
  • AGSA_RC_FAILURE the MPI command is failure

Definition at line 2722 of file sampicmd.c.

References agsaIOMap_s::agContext, agFALSE, agNULL, AGSA_RC_BUSY, AGSA_RC_SUCCESS, agTRUE, agsaLLRoot_s::freeIORequests, hpDBG_VERY_LOUD, agsaIORequestDesc_s::HTag, agsaLLRoot_s::IOMap, IOMB_SIZE64, agsaIOMap_s::IORequest, agsaIORequestDesc_s::linkNode, LL_IOREQ_LOCKEQ_LOCK, MARK_OFF, MPI_CATEGORY_SAS_SATA, mpiBuildCmd(), OPC_INB_GET_OPERATOR, ossaSingleThreadedEnter(), ossaSingleThreadedLeave(), SA_ASSERT, SA_DBG1, saLlistIOAdd, saLlistIOGetHead, saLlistIORemove, agsaContext_s::sdkData, smTraceFuncEnter, smTraceFuncExit, agsaGetOperatorCmd_s::tag, agsaIOMap_s::Tag, and agsaIORequestDesc_s::valid.

Referenced by saGetOperator().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mpiGetOperatorRsp()

GLOBAL bit32 mpiGetOperatorRsp ( agsaRoot_t agRoot,
agsaGetOperatorRsp_t pIomb 
)

Get Operator Response.

This routine handles the response of the Operator management message

Parameters
agRootHandles for this instance of SAS/SATA LLL
pIombPointer of IOMB Mesage
Returns
sucess or fail

Definition at line 7543 of file sampirsp.c.

References agsaIOMap_s::agContext, agFALSE, agNULL, AGSA_RC_FAILURE, AGSA_RC_SUCCESS, agsaLLRoot_s::freeIORequests, agsaLLRoot_s::freeReservedRequests, hpDBG_VERY_LOUD, agsaID_s::ID, agsaLLRoot_s::IOMap, agsaIOMap_s::IORequest, agsaIORequestDesc_s::linkNode, LL_IOREQ_LOCKEQ_LOCK, MARK_OFF, OSSA_OFFSET_OF, ossaGetOperatorCB(), ossaSingleThreadedEnter(), ossaSingleThreadedLeave(), SA_ASSERT, SA_DBG1, SA_DBG2, SA_RESERVED_REQUEST_COUNT, saLlistIOAdd, saLlistIOGetCount, agsaContext_s::sdkData, SHIFT8, si_memset(), smTraceFuncEnter, smTraceFuncExit, status, agsaIOMap_s::Tag, and agsaIORequestDesc_s::valid.

Referenced by mpiParseOBIomb().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mpiGetPCIBarIndex()

◆ mpiGetPhyProfileCmd()

GLOBAL bit32 mpiGetPhyProfileCmd ( agsaRoot_t agRoot,
agsaContext_t agContext,
bit32  Operation,
bit32  PhyId,
void *  agCB 
)

Get Phy Profile Command SPCv.

This command is get # of phys and support speeds from SPCV.

Parameters
agRootHandles for this instance of SAS/SATA LLL
agDevHandleHandle of device
Returns
If the MPI command is sent to SPC successfully
  • AGSA_RC_SUCCESS the MPI command is successfully
  • AGSA_RC_BUSY the SPC is no resource, cannot send now
  • AGSA_RC_FAILURE the MPI command is failure

Definition at line 283 of file sampicmd.c.

References agsaIOMap_s::agContext, agFALSE, agNULL, AGSA_RC_BUSY, AGSA_RC_SUCCESS, agTRUE, agsaIORequestDesc_s::completionCB, agsaLLRoot_s::freeIORequests, hpDBG_VERY_LOUD, agsaIORequestDesc_s::HTag, agsaLLRoot_s::IOMap, IOMB_SIZE128, agsaIOMap_s::IORequest, agsaIORequestDesc_s::linkNode, LL_IOREQ_LOCKEQ_LOCK, MARK_OFF, MPI_CATEGORY_SAS_SATA, mpiBuildCmd(), OPC_INB_GET_PHY_PROFILE, OSSA_OFFSET_OF, ossaSingleThreadedEnter(), ossaSingleThreadedLeave(), SA_ASSERT, SA_DBG1, SA_DBG3, saLlistAdd, saLlistGetHead, saLlistRemove, agsaContext_s::sdkData, SHIFT8, si_memset(), smTraceFuncEnter, smTraceFuncExit, agsaIOMap_s::Tag, and agsaIORequestDesc_s::valid.

Referenced by saGetPhyProfile().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mpiGetPhyProfileRsp()

GLOBAL bit32 mpiGetPhyProfileRsp ( agsaRoot_t agRoot,
agsaGetPhyProfileRspV_t pIomb 
)

Get Phy Profile Response SPCv.

This routine handles the response of Get Phy Profile Command Response

Parameters
agRootHandles for this instance of SAS/SATA LLL
pIombPointer of IOMB Message
Returns
sucess or fail SPC only

Definition at line 2686 of file sampirsp.c.

References agsaIOMap_s::agContext, agFALSE, agNULL, AGSA_PHY_RATE_CONTROL_PAGE, AGSA_PHY_SNW3_PAGE, AGSA_RC_FAILURE, AGSA_RC_SUCCESS, AGSA_SAS_PHY_ANALOG_SETTINGS_PAGE, AGSA_SAS_PHY_BW_COUNTERS_PAGE, AGSA_SAS_PHY_ERR_COUNTERS_CLR_PAGE, AGSA_SAS_PHY_ERR_COUNTERS_PAGE, AGSA_SAS_PHY_GENERAL_STATUS_PAGE, AGSA_SAS_PHY_OPEN_REJECT_RETRY_BACKOFF_THRESHOLD_PAGE, agsaPhyErrCountersPage_s::codeViolation, agsaIORequestDesc_s::completionCB, agsaPhyAnalogSettingsPage_s::Dword0, agsaSASPhyOpenRejectRetryBackOffThresholdPage_s::Dword0, agsaPhyRateControlPage_s::Dword0, agsaSASPhyGeneralStatusPage_s::Dword0, agsaPhyAnalogSettingsPage_s::Dword1, agsaSASPhyOpenRejectRetryBackOffThresholdPage_s::Dword1, agsaPhyRateControlPage_s::Dword1, agsaSASPhyGeneralStatusPage_s::Dword1, agsaPhyAnalogSettingsPage_s::Dword2, agsaSASPhyOpenRejectRetryBackOffThresholdPage_s::Dword2, agsaPhyRateControlPage_s::Dword2, agsaPhyAnalogSettingsPage_s::Dword3, agsaSASPhyOpenRejectRetryBackOffThresholdPage_s::Dword3, agsaPhyAnalogSettingsPage_s::Dword4, agsaLLRoot_s::freeIORequests, agsaLLRoot_s::freeReservedRequests, hpDBG_VERY_LOUD, agsaPhyErrCountersPage_s::inboundCRCError, agsaPhyErrCountersPage_s::invalidDword, agsaLLRoot_s::IOMap, agsaIOMap_s::IORequest, agsaIORequestDesc_s::linkNode, LL_IOREQ_LOCKEQ_LOCK, agsaPhyErrCountersPage_s::lossOfDwordSynch, agsaPhySNW3Page_s::LSNW3, MARK_OFF, OSSA_OFFSET_OF, ossaGetPhyProfileCB(), ossaSingleThreadedEnter(), ossaSingleThreadedLeave(), agsaPhyErrCountersPage_s::phyResetProblem, agsaPhySNW3Page_s::RSNW3, agsaPhyErrCountersPage_s::runningDisparityError, agsaPhyBWCountersPage_s::RXBWCounter, SA_ASSERT, SA_DBG1, SA_DBG3, SA_RESERVED_REQUEST_COUNT, saLlistIOAdd, saLlistIOGetCount, agsaContext_s::sdkData, SHIFT8, smTraceFuncEnter, smTraceFuncExit, status, agsaIOMap_s::Tag, agsaPhyBWCountersPage_s::TXBWCounter, and agsaIORequestDesc_s::valid.

Referenced by mpiParseOBIomb().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mpiGetTimeStampRsp()

GLOBAL bit32 mpiGetTimeStampRsp ( agsaRoot_t agRoot,
agsaGetTimeStampRsp_t pIomb 
)

Get Time Stamp Response.

This routine handles the response of Get Time Stamp Command

Parameters
agRootHandles for this instance of SAS/SATA LLL
pIombPointer of IOMB Mesage
Returns
sucess or fail

Definition at line 5586 of file sampirsp.c.

References agsaIOMap_s::agContext, agFALSE, agNULL, AGSA_RC_FAILURE, AGSA_RC_SUCCESS, agsaLLRoot_s::freeIORequests, agsaLLRoot_s::freeReservedRequests, hpDBG_VERY_LOUD, agsaLLRoot_s::IOMap, agsaIOMap_s::IORequest, agsaIORequestDesc_s::linkNode, LL_IOREQ_LOCKEQ_LOCK, MARK_OFF, OSSA_OFFSET_OF, ossaGetTimeStampCB(), ossaSingleThreadedEnter(), ossaSingleThreadedLeave(), SA_ASSERT, SA_DBG1, SA_DBG3, SA_RESERVED_REQUEST_COUNT, saLlistIOAdd, saLlistIOGetCount, agsaContext_s::sdkData, smTraceFuncEnter, smTraceFuncExit, agsaGetTimeStampRsp_s::tag, agsaIOMap_s::Tag, and agsaIORequestDesc_s::valid.

Referenced by mpiParseOBIomb().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mpiGetVHistRsp()

◆ mpiGetVisDataRsp()

GLOBAL bit32 mpiGetVisDataRsp ( agsaRoot_t agRoot,
void *  pIomb 
)

◆ mpiGPIOEventRsp()

GLOBAL bit32 mpiGPIOEventRsp ( agsaRoot_t agRoot,
agsaGPIOEvent_t pIomb 
)

Set GPIO Event Response.

This routine handles the response of GPIO Event

Parameters
agRootHandles for this instance of SAS/SATA LLL
pIombPointer of IOMB Mesage
Returns
sucess or fail

Definition at line 4704 of file sampirsp.c.

References AGSA_RC_SUCCESS, hpDBG_VERY_LOUD, OSSA_OFFSET_OF, ossaGpioEvent(), smTraceFuncEnter, and smTraceFuncExit.

Referenced by mpiParseOBIomb().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mpiGPIORsp()

◆ mpiHWevent()

GLOBAL bit32 mpiHWevent ( agsaRoot_t agRoot,
agsaHWEvent_SPC_OUB_t pIomb 
)

Hardware Event Response from SPC.

Process HW Event from SPC

Parameters
agRootHandles for this instance of SAS/SATA LL Layer
pIombpointer of IOMB
Returns
success or fail

Definition at line 1160 of file sampirsp.c.

References agsaIOMap_s::agContext, agFALSE, agNULL, AGSA_RC_FAILURE, AGSA_RC_SUCCESS, agsaPhyErrCountersPage_s::codeViolation, agsaSASIdentify_s::deviceType_addressFrameType, agsaLLRoot_s::freeIORequests, agsaLLRoot_s::freeReservedRequests, hpDBG_VERY_LOUD, HW_EVENT_BITS, agsaPhyErrCountersPage_s::inboundCRCError, agsaPhyErrCountersPage_s::invalidDword, agsaLLRoot_s::IOMap, agsaIOMap_s::IORequest, LINK_RATE_MASK, agsaIORequestDesc_s::linkNode, agsaPhy_s::linkstatus, LL_IOREQ_LOCKEQ_LOCK, agsaPhyErrCountersPage_s::lossOfDwordSynch, MARK_OFF, OSSA_HW_EVENT_BROADCAST_ASYNCH_EVENT, OSSA_HW_EVENT_BROADCAST_CHANGE, OSSA_HW_EVENT_BROADCAST_EXP, OSSA_HW_EVENT_BROADCAST_SES, OSSA_HW_EVENT_HARD_RESET_RECEIVED, OSSA_HW_EVENT_ID_FRAME_TIMEOUT, OSSA_HW_EVENT_IT_NEXUS_LOSS, OSSA_HW_EVENT_OPEN_RETRY_BACKOFF_THR_ADJUSTED, OSSA_HW_EVENT_PHY_DOWN, OSSA_HW_EVENT_PHY_ERR_CODE_VIOLATION, OSSA_HW_EVENT_PHY_ERR_DISPARITY_ERROR, OSSA_HW_EVENT_PHY_ERR_INBOUND_CRC, OSSA_HW_EVENT_PHY_ERR_INVALID_DWORD, OSSA_HW_EVENT_PHY_ERR_LOSS_OF_DWORD_SYNCH, OSSA_HW_EVENT_PHY_ERR_PHY_RESET_FAILED, OSSA_HW_EVENT_PHY_START_STATUS, OSSA_HW_EVENT_PHY_STOP_STATUS, OSSA_HW_EVENT_PORT_RECOVER, OSSA_HW_EVENT_PORT_RECOVERY_TIMER_TMO, OSSA_HW_EVENT_PORT_RESET_COMPLETE, OSSA_HW_EVENT_PORT_RESET_TIMER_TMO, OSSA_HW_EVENT_SAS_PHY_UP, OSSA_HW_EVENT_SATA_PHY_UP, OSSA_HW_EVENT_SATA_SPINUP_HOLD, OSSA_OFFSET_OF, OSSA_PORT_IN_RESET, OSSA_PORT_INVALID, OSSA_PORT_NOT_ESTABLISHED, OSSA_PORT_VALID, ossaHwCB(), ossaSingleThreadedEnter(), ossaSingleThreadedLeave(), osti_memset, PHY_DOWN, PHY_ID_BITS, PHY_ID_V_BITS, PHY_IN_PORT_MASK, PHY_STATUS_SET, agsaLLRoot_s::phyCount, agsaSASIdentify_s::phyIdentifier, agsaPhyErrCountersPage_s::phyResetProblem, agsaLLRoot_s::phys, PORT_INVALIDATING, PORT_STATE_MASK, agsaPortMap_s::PortContext, agsaPortMap_s::PortID, PORTID_MASK, agsaLLRoot_s::PortMap, agsaPortMap_s::PortStatus, agsaPhyErrCountersPage_s::runningDisparityError, SA_ASSERT, SA_DBG1, SA_DBG2, SA_DBG3, SA_RESERVED_REQUEST_COUNT, saLlistIOAdd, saLlistIOGetCount, agsaSASIdentify_s::sasAddressHi, agsaSASIdentify_s::sasAddressLo, agsaHWEvent_SPC_OUB_s::sasIdentify, agsaPhy_s::sasIdentify, agsaHWEvent_SPC_OUB_s::sataFis, agsaContext_s::sdkData, SHIFT16, SHIFT24, SHIFT28, SHIFT4, SHIFT8, si_memcpy(), si_memset(), siEventPhyUpRcvd(), siEventSATASignatureRcvd(), siPhyStopCB(), smIS_SPC(), smTrace, smTraceFuncEnter, smTraceFuncExit, status, agsaPort_s::status, STATUS_BITS, agsaIOMap_s::Tag, and agsaIORequestDesc_s::valid.

Referenced by mpiParseOBIomb().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mpiInitialize()

GLOBAL bit32 mpiInitialize ( agsaRoot_t agRoot,
mpiMemReq_t memoryAllocated,
mpiConfig_t config 
)

Definition at line 1839 of file sainit.c.

References agNULL, mpiOCQueue_s::agRoot, mpiICQueue_s::agRoot, AGSA_MAX_INBOUND_Q, AGSA_MAX_OUTBOUND_Q, AGSA_MAX_VALID_PHYS, AGSA_MPI_GENERAL_STATUS_TABLE, AGSA_MPI_INBOUND_QUEUE_CONFIGURATION_TABLE, AGSA_MPI_INTERRUPT_VECTOR_TABLE, AGSA_MPI_MAIN_CONFIGURATION_TABLE, AGSA_MPI_OUTBOUND_QUEUE_CONFIGURATION_TABLE, AGSA_MPI_OUTBOUND_QUEUE_FAILOVER_TABLE, AGSA_MPI_PER_SAS_PHY_ATTRIBUTE_TABLE, AGSA_MPI_SAS_PHY_ANALOG_SETUP_TABLE, AGSA_RC_FAILURE, AGSA_RC_SUCCESS, mpiHostLLConfigDescriptor_s::analogSetupTblOffset, spc_configMainDescriptor_s::analogSetupTblOffset, spc_inboundQueueDescriptor_s::ciLowerBaseAddress, mpiOCQueue_s::CIPCIBar, mpiOCQueue_s::CIPCIOffset, mpiICQueue_s::ciPointer, spc_inboundQueueDescriptor_s::ciUpperBaseAddress, mpiOCQueue_s::consumerIdx, mpiICQueue_s::consumerIdx, spc_configMainDescriptor_s::ContrlCapFlag, agsaLLRoot_s::ControllerInfo, mpiMemReq_s::count, mpiHostLLConfigDescriptor_s::custset, spc_configMainDescriptor_s::custset, mpiOCQueue_s::DIntTOffset, spc_inboundQueueDescriptor_s::elementPriSizeCount, mpiMem_s::elementSize, mpiOCQueue_s::elementSize, mpiICQueue_s::elementSize, mpiInboundQueueDescriptor_s::elementSize, mpiOutboundQueueDescriptor_s::elementSize, spc_outboundQueueDescriptor_s::elementSizeCount, mpiHostLLConfigDescriptor_s::eventLogOption, spc_configMainDescriptor_s::eventLogOption, mpiHostLLConfigDescriptor_s::eventLogSize, spc_configMainDescriptor_s::eventLogSize, mpiHostLLConfigDescriptor_s::FatalErrorDumpLength0, mpiHostLLConfigDescriptor_s::FatalErrorDumpLength1, mpiHostLLConfigDescriptor_s::FatalErrorDumpOffset0, mpiHostLLConfigDescriptor_s::FatalErrorDumpOffset1, mpiHostLLConfigDescriptor_s::FatalErrorInterrupt, spc_configMainDescriptor_s::FatalErrorInterrupt, agsaControllerInfo_s::fwInterfaceRev, GEN_MSGU_IBDB_SET, GEN_MSGU_SCRATCH_PAD_0, GST_GSTLEN_MPIS_OFFSET, GST_MPI_STATE_INIT, GST_MPI_STATE_MASK, GST_MPI_STATE_UNINIT, spc_configMainDescriptor_s::GSTOffset, gWait_2, mpiHostLLConfigDescriptor_s::HDAModeFlags, spc_configMainDescriptor_s::HDAModeFlags, HP_SUPPORT_BIT, hpDBG_VERY_LOUD, agsaLLRoot_s::hwConfig, agsaHwConfig_s::hwOption, IB_PIPCI_BAR, IB_PIPCI_BAR_OFFSET, agsaLLRoot_s::inboundQueue, spc_configMainDescriptor_s::inboundQueueOffset, mpiConfig_s::inboundQueues, INT_COL_BIT, INT_DELAY_BITS, INT_THR_BITS, INT_VEC_BITS, mpiOutboundQueueDescriptor_s::interruptDelay, mpiOutboundQueueDescriptor_s::interruptEnable, mpiHostLLConfigDescriptor_s::InterruptReassertionDelay, spc_configMainDescriptor_s::interruptReassertionDelay, mpiOutboundQueueDescriptor_s::interruptThreshold, spc_outboundQueueDescriptor_s::interruptVecCntDelay, agsaLLRoot_s::interruptVecIndexBitMap, agsaLLRoot_s::interruptVecIndexBitMap1, mpiOutboundQueueDescriptor_s::interruptVector, agsaHwConfig_s::intReassertionOption, mpiHostLLConfigDescriptor_s::ioAbortDelay, spc_configMainDescriptor_s::ioAbortDelay, mpiHostLLConfigDescriptor_s::IOPeventLogOption, spc_configMainDescriptor_s::IOPeventLogOption, mpiHostLLConfigDescriptor_s::IOPeventLogSize, spc_configMainDescriptor_s::IOPeventLogSize, IQ_NUM_32, mpiHostLLConfigDescriptor_s::iQNPPD_HPPD_GEvent, spc_configMainDescriptor_s::iQNPPD_HPPD_GEvent, spc_inboundQueueDescriptor_s::lowerBaseAddress, spc_outboundQueueDescriptor_s::lowerBaseAddress, mpiHostLLConfigDescriptor_s::lowerEventLogAddress, spc_configMainDescriptor_s::lowerEventLogAddress, mpiHostLLConfigDescriptor_s::lowerIOPeventLogAddress, spc_configMainDescriptor_s::lowerIOPeventLogAddress, MAIN_ANALOG_SETUP_OFFSET, MAIN_AWT_MIDRANGE, MAIN_CUSTOMER_SETTING, MAIN_EVENT_LOG_ADDR_HI, MAIN_EVENT_LOG_ADDR_LO, MAIN_EVENT_LOG_BUFF_SIZE, MAIN_EVENT_LOG_OPTION, MAIN_FATAL_ERROR_INTERRUPT, MAIN_FATAL_ERROR_RDUMP0_LENGTH, MAIN_FATAL_ERROR_RDUMP0_OFFSET, MAIN_FATAL_ERROR_RDUMP1_LENGTH, MAIN_FATAL_ERROR_RDUMP1_OFFSET, MAIN_GST_OFFSET, MAIN_IBQ_OFFSET, MAIN_INT_VEC_TABLE_OFFSET, MAIN_IO_ABORT_DELAY, MAIN_IO_ABORT_DELAY_END_TO_END_CRC_DISABLE, MAIN_IOP_EVENT_LOG_ADDR_HI, MAIN_IOP_EVENT_LOG_ADDR_LO, MAIN_IOP_EVENT_LOG_BUFF_SIZE, MAIN_IOP_EVENT_LOG_OPTION, MAIN_IQNPPD_HPPD_OFFSET, MAIN_IRAD_RESERVED, MAIN_MOQFOT_MOQFOES, MAIN_OB_HW_EVENT_PID03_OFFSET, MAIN_OB_HW_EVENT_PID47_OFFSET, MAIN_OB_NCQ_EVENT_PID03_OFFSET, MAIN_OB_NCQ_EVENT_PID47_OFFSET, MAIN_OB_SSP_EVENT_PID03_OFFSET, MAIN_OB_SSP_EVENT_PID47_OFFSET, MAIN_OBQ_OFFSET, MAIN_PHY_ATTRIBUTE_OFFSET, MAIN_PRECTD_PRESETD, MAIN_TITNX_EVENT_PID03_OFFSET, MAIN_TITNX_EVENT_PID47_OFFSET, mpiConfig_s::mainConfig, agsaLLRoot_s::mainConfigTable, MAKE_MODULO, MAX_NUM_VECTOR, MAX_QUEUE_EACH_MEM, mpiConfig_s::maxNumInboundQueues, mpiConfig_s::maxNumOutboundQueues, MBIC_GSM_SM_BASE, mpiOCQueue_s::memoryRegion, mpiICQueue_s::memoryRegion, MPI_CI_INDEX, agsaSwConfig_s::mpiContextTable, agsaSwConfig_s::mpiContextTablelen, mpiGetPCIBarIndex(), agsaMPIContext_s::MPITableType, mpiUpdateIBQueueCfgTable(), mpiUpdateOBQueueCfgTable(), mpiWaitForConfigTable(), mpiWrAnalogSetupTable(), mpiWrIntVecTable(), mpiWriteCALAll(), MSGU_IBDB_SET, MSGU_READ_IDR, MSGU_SCRATCH_PAD_0, NULL, mpiMem_s::numElements, mpiOCQueue_s::numElements, mpiICQueue_s::numElements, mpiInboundQueueDescriptor_s::numElements, mpiOutboundQueueDescriptor_s::numElements, mpiConfig_s::numInboundQueues, agsaLLRoot_s::numInterruptVectors, mpiConfig_s::numOutboundQueues, OB_CIPCI_BAR, OB_CIPCI_BAR_OFFSET, OB_DYNAMIC_COALES_OFFSET, OB_PROPERTY_INT_ENABLE, agsaMPIContext_s::offset, OQ_NUM_32, ossaHwRegRead(), ossaHwRegReadConfig32(), ossaHwRegReadExt(), ossaHwRegWriteExt(), ossaStallThread(), mpiHostLLConfigDescriptor_s::outboundHWEventPID0_3, spc_configMainDescriptor_s::outboundHWEventPID0_3, mpiHostLLConfigDescriptor_s::outboundHWEventPID4_7, spc_configMainDescriptor_s::outboundHWEventPID4_7, mpiHostLLConfigDescriptor_s::outboundNCQEventPID0_3, spc_configMainDescriptor_s::outboundNCQEventPID0_3, mpiHostLLConfigDescriptor_s::outboundNCQEventPID4_7, spc_configMainDescriptor_s::outboundNCQEventPID4_7, agsaLLRoot_s::outboundQueue, spc_configMainDescriptor_s::outboundQueueOffset, mpiConfig_s::outboundQueues, mpiHostLLConfigDescriptor_s::outboundTargetITNexusEventPID0_3, spc_configMainDescriptor_s::outboundTargetITNexusEventPID0_3, mpiHostLLConfigDescriptor_s::outboundTargetITNexusEventPID4_7, spc_configMainDescriptor_s::outboundTargetITNexusEventPID4_7, mpiHostLLConfigDescriptor_s::outboundTargetSSPEventPID0_3, spc_configMainDescriptor_s::outboundTargetSSPEventPID0_3, mpiHostLLConfigDescriptor_s::outboundTargetSSPEventPID4_7, spc_configMainDescriptor_s::outboundTargetSSPEventPID4_7, PHY_COUNT_BITS, mpiConfig_s::phyAnalogConfig, mpiMem_s::physAddrLower, mpiMem_s::physAddrUpper, spc_outboundQueueDescriptor_s::piLowerBaseAddress, mpiICQueue_s::PIPCIBar, mpiICQueue_s::PIPCIOffset, mpiOCQueue_s::piPointer, spc_outboundQueueDescriptor_s::piUpperBaseAddress, spc_configMainDescriptor_s::portRecoveryResetTimer, mpiHostLLConfigDescriptor_s::PortRecoveryTimerPortResetTimer, mpiICQueue_s::priority, mpiInboundQueueDescriptor_s::priority, mpiOCQueue_s::producerIdx, mpiICQueue_s::producerIdx, mpiOCQueue_s::qNumber, mpiICQueue_s::qNumber, mpiMemReq_s::region, SA_ASSERT, SA_DBG1, SA_DBG2, SA_DBG3, SCRATCH_PAD0_BAR_MASK, SCRATCH_PAD0_OFFSET_MASK, SCRATCH_PAD1_V_ERROR_STATE, agsaContext_s::sdkData, SHIFT16, SHIFT19, SHIFT24, SHIFT26, SHIFT30, si_memcpy(), si_memset(), siBar4Shift(), siGetPciBar(), siHalRegReadExt(), siHalRegWriteExt(), smIS_HIL(), smIS_SPC(), smIS_SPC12V(), smIS_SPC6V(), smIS_SPCV(), smIsCfgVREV_A, smIsCfgVREV_B, smIsCfgVREV_C, smTrace, smTraceFuncEnter, smTraceFuncExit, SPC_MSGU_CFG_TABLE_UPDATE, agsaLLRoot_s::swConfig, TOTAL_MPI_MEM_CHUNKS, mpiMem_s::totalLength, spc_inboundQueueDescriptor_s::upperBaseAddress, spc_outboundQueueDescriptor_s::upperBaseAddress, mpiHostLLConfigDescriptor_s::upperEventLogAddress, spc_configMainDescriptor_s::upperEventLogAddress, mpiHostLLConfigDescriptor_s::upperIOPeventLogAddress, spc_configMainDescriptor_s::upperIOPeventLogAddress, V_Scratchpad_1_Register, agsaMPIContext_s::value, mpiMem_s::virtPtr, WAIT_INCREMENT, and WAIT_SECONDS.

Referenced by saInitialize().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mpiKekManagementCmd()

GLOBAL bit32 mpiKekManagementCmd ( agsaRoot_t agRoot,
agsaContext_t agContext,
agsaKekManagementCmd_t agKekMgmt,
bit32  queueNum 
)

SAS Encryption KEK command.

This command updates one or more KEK in a controller that supports encryption.

Parameters
agRootHandles for this instance of SAS/SATA LLL
agContextContext for the Get Nexus State command
agKekMgmtKek information that will be sent to the controller
queueNumQueue Number of inbound/outbound queue
Returns
If the MPI command is sent to SPC successfully
  • AGSA_RC_SUCCESS the MPI command is successfully
  • AGSA_RC_BUSY the SPC is no resource, cannot send now
  • AGSA_RC_FAILURE the MPI command is failure

Definition at line 2289 of file sampicmd.c.

References agsaIOMap_s::agContext, agFALSE, agNULL, AGSA_RC_BUSY, AGSA_RC_SUCCESS, agTRUE, agsaLLRoot_s::freeIORequests, hpDBG_VERY_LOUD, agsaIORequestDesc_s::HTag, agsaLLRoot_s::IOMap, IOMB_SIZE64, agsaIOMap_s::IORequest, agsaIORequestDesc_s::linkNode, LL_IOREQ_LOCKEQ_LOCK, MARK_OFF, MPI_CATEGORY_SAS_SATA, mpiBuildCmd(), agsaKekManagementCmd_s::NEWKIDX_CURKIDX_KBF_Reserved_SKNV_KSOP, OPC_INB_KEK_MANAGEMENT, ossaSingleThreadedEnter(), ossaSingleThreadedLeave(), agsaKekManagementCmd_s::reserved, SA_ASSERT, SA_DBG1, SA_DBG3, saLlistIOAdd, saLlistIOGetHead, saLlistIORemove, agsaContext_s::sdkData, smTraceFuncEnter, smTraceFuncExit, agsaKekManagementCmd_s::tag, agsaIOMap_s::Tag, and agsaIORequestDesc_s::valid.

Referenced by saEncryptKekInvalidate(), and saEncryptKekUpdate().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mpiKekManagementRsp()

GLOBAL bit32 mpiKekManagementRsp ( agsaRoot_t agRoot,
agsaKekManagementRsp_t pIomb 
)

◆ mpiLocalPhyControlCmd()

GLOBAL bit32 mpiLocalPhyControlCmd ( agsaRoot_t agRoot,
bit32  tag,
bit32  phyId,
bit32  operation,
bit32  queueNum 
)

SPC MPI LOCAL PHY CONTROL Command.

This command used to do the SPC Phy operation.

Parameters
agRootHandles for this instance of SAS/SATA LLL
tagtag of IOMB
phyIdPHY Id
operationoperation of PHY control
queueNumIQ/OQ number
Returns
If the MPI command is sent to SPC successfully
  • AGSA_RC_SUCCESS the MPI command is successfully
  • AGSA_RC_BUSY the SPC is no resource, cannot send now
  • AGSA_RC_FAILURE the MPI command is failure

Definition at line 1173 of file sampicmd.c.

References AGSA_RC_SUCCESS, BYTE_MASK, hpDBG_VERY_LOUD, IOMB_SIZE64, MPI_CATEGORY_SAS_SATA, mpiBuildCmd(), OPC_INB_LOCAL_PHY_CONTROL, OSSA_OFFSET_OF, SA_DBG3, SHIFT8, si_memset(), SM_PHYID_MASK, smTraceFuncEnter, and smTraceFuncExit.

Referenced by saLocalPhyControl().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mpiNVMReadRegDumpCmd()

GLOBAL bit32 mpiNVMReadRegDumpCmd ( agsaRoot_t agRoot,
agsaContext_t agContext,
bit32  queueNum,
bit32  cpuId,
bit32  cOffset,
bit32  addrHi,
bit32  addrLo,
bit32  len 
)

SPC READ REGISTER DUMP Command.

This command used to do the SPC Read Register Dump command.

Parameters
agRootHandles for this instance of SAS/SATA LLL
tagtag of IOMB
cpuIdCPU Id
queueNumIQ/OQ number
cpuIdAAP1 or IOP
cOffsetoffset of the register dump data
addrHiHi address if Register Dump data
addrHiLow address if Register Dump data
lenthe length of for read
Returns
If the MPI command is sent to SPC successfully
  • AGSA_RC_SUCCESS the MPI command is successfully
  • AGSA_RC_BUSY the SPC is no resource, cannot send now
  • AGSA_RC_FAILURE the MPI command is failure

Definition at line 1350 of file sampicmd.c.

References AAP1_RDUMP, agsaIOMap_s::agContext, agFALSE, agNULL, AGSA_RC_BUSY, AGSA_RC_FAILURE, AGSA_RC_SUCCESS, agTRUE, agsaLLRoot_s::freeIORequests, hpDBG_VERY_LOUD, agsaIORequestDesc_s::HTag, agsaLLRoot_s::IOMap, IOMB_SIZE64, IOP_RDUMP, agsaIOMap_s::IORequest, IRMode, agsaIORequestDesc_s::linkNode, LL_IOREQ_LOCKEQ_LOCK, MARK_OFF, MPI_CATEGORY_SAS_SATA, mpiBuildCmd(), OPC_INB_GET_NVMD_DATA, OSSA_OFFSET_OF, ossaSingleThreadedEnter(), ossaSingleThreadedLeave(), SA_ASSERT, SA_DBG1, SA_DBG3, saLlistIOAdd, saLlistIOGetHead, saLlistIORemove, agsaContext_s::sdkData, si_memset(), smTraceFuncEnter, smTraceFuncExit, agsaIOMap_s::Tag, and agsaIORequestDesc_s::valid.

Referenced by saGetRegisterDump().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mpiOperatorManagementCmd()

GLOBAL bit32 mpiOperatorManagementCmd ( agsaRoot_t agRoot,
bit32  queueNum,
agsaContext_t agContext,
agsaOperatorMangmentCmd_t operatorcode 
)

This command sends operator management command.

Parameters
agRootHandles for this instance of SAS/SATA LLL
agContextContext
queueNumQueue Number of inbound/outbound queue
Returns
If the MPI command is sent to SPC successfully
  • AGSA_RC_SUCCESS the MPI command is successfully
  • AGSA_RC_BUSY the SPC is no resource, cannot send now
  • AGSA_RC_FAILURE the MPI command is failure

Definition at line 2462 of file sampicmd.c.

References agsaIOMap_s::agContext, agFALSE, agNULL, AGSA_RC_BUSY, AGSA_RC_SUCCESS, agTRUE, agsaLLRoot_s::freeIORequests, hpDBG_VERY_LOUD, agsaIORequestDesc_s::HTag, agsaLLRoot_s::IOMap, IOMB_SIZE128, agsaIOMap_s::IORequest, agsaIORequestDesc_s::linkNode, LL_IOREQ_LOCKEQ_LOCK, MARK_OFF, MPI_CATEGORY_SAS_SATA, mpiBuildCmd(), OPC_INB_OPR_MGMT, ossaSingleThreadedEnter(), ossaSingleThreadedLeave(), SA_ASSERT, SA_DBG1, saLlistIOAdd, saLlistIOGetHead, saLlistIORemove, agsaContext_s::sdkData, smTraceFuncEnter, smTraceFuncExit, agsaOperatorMangmentCmd_s::tag, agsaIOMap_s::Tag, and agsaIORequestDesc_s::valid.

Referenced by saOperatorManagement().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mpiOperatorManagementRsp()

◆ mpiParseOBIomb()

GLOBAL FORCEINLINE bit32 mpiParseOBIomb ( agsaRoot_t agRoot,
bit32 pMsg1,
mpiMsgCategory_t  category,
bit16  opcode 
)

Process Outbound IOMB Message.

Process Outbound IOMB from SPC

Parameters
agRootHandles for this instance of SAS/SATA LL Layer
pMsg1Pointer of Response IOMB message 1
categorycategory of outbpond IOMB header
opcodeOpcode of Outbound IOMB header
bcbuffer count of IOMB header
Returns
success or fail

Definition at line 2356 of file saint.c.

References agNULL, AGSA_RC_FAILURE, AGSA_RC_SUCCESS, agsaSSPCoalescedCompletionRsp_s::coalescedCount, agsaSATACoalescedCompletionRsp_s::coalescedCount, hpDBG_VERY_LOUD, agsaLLRoot_s::IOMap, agsaIOMap_s::IORequest, mpiBistRsp(), mpiDekManagementRsp(), mpiDeregDevHandleRsp(), mpiDeviceHandleArrived(), mpiDeviceHandleRemoval(), mpiDeviceRegRsp(), mpiDifEncOffloadRsp(), mpiEchoRsp(), mpiFwExtFlashUpdateRsp(), mpiFwFlashUpdateRsp(), mpiGeneralEventRsp(), mpiGetControllerConfigRsp(), mpiGetDevHandleRsp(), mpiGetDeviceStateRsp(), mpiGetDevInfoRsp(), mpiGetDevInfoRspSpc(), mpiGetDFEDataRsp(), mpiGetNVMDataRsp(), mpiGetOperatorRsp(), mpiGetPhyProfileRsp(), mpiGetTimeStampRsp(), mpiGetVHistRsp(), mpiGPIOEventRsp(), mpiGPIORsp(), mpiHWevent(), mpiKekManagementRsp(), mpiOperatorManagementRsp(), mpiPCIeDiagExecuteRsp(), mpiPhyCntrlRsp(), mpiPhyStartEvent(), mpiPhyStopEvent(), mpiPortControlRsp(), mpiSASDiagExecuteRsp(), mpiSASDiagStartEndRsp(), mpiSASHwEventAckRsp(), mpiSasReInitializeRsp(), mpiSATAAbortRsp(), mpiSATACompletion(), mpiSATAEvent(), mpiSetControllerConfigRsp(), mpiSetDeviceStateRsp(), mpiSetDevInfoRsp(), mpiSetNVMDataRsp(), mpiSetOperatorRsp(), mpiSetPhyProfileRsp(), mpiSGpioRsp(), mpiSMPAbortRsp(), mpiSMPCompletion(), mpiSSPAbortRsp(), mpiSSPCompletion(), mpiSSPEvent(), mpiSSPReqReceivedNotify(), OPC_OUB_COMBINED_SATA_COMP, OPC_OUB_COMBINED_SSP_COMP, OPC_OUB_DEK_MANAGEMENT, OPC_OUB_DEREG_DEV, OPC_OUB_DEV_HANDLE_ARRIV, OPC_OUB_DEV_INFO, OPC_OUB_DEV_REGIST, OPC_OUB_DEVICE_HANDLE_REMOVAL, OPC_OUB_DIF_ENC_OFFLOAD_RSP, OPC_OUB_ECHO, OPC_OUB_ENC_TEST_EXECUTE, OPC_OUB_FLASH_OP_EXT_RSP, OPC_OUB_FW_FLASH_UPDATE, OPC_OUB_FW_PROFILE, OPC_OUB_GENERAL_EVENT, OPC_OUB_GET_CONTROLLER_CONFIG, OPC_OUB_GET_DEV_HANDLE, OPC_OUB_GET_DEVICE_STATE, OPC_OUB_GET_NVMD_DATA, OPC_OUB_GET_OPERATOR, OPC_OUB_GET_PHY_PROFILE_RSP, OPC_OUB_GET_TIME_STAMP, OPC_OUB_GET_VIST_CAP_RSP, OPC_OUB_GPIO_EVENT, OPC_OUB_GPIO_RESPONSE, OPC_OUB_HW_EVENT, OPC_OUB_KEK_MANAGEMENT, OPC_OUB_LOCAL_PHY_CNTRL, OPC_OUB_OPR_MGMT, OPC_OUB_PCIE_DIAG_EXECUTE, OPC_OUB_PHY_START_RESPONSE, OPC_OUB_PHY_STOP_RESPONSE, OPC_OUB_PORT_CONTROL, OPC_OUB_SAS_DIAG_EXECUTE, OPC_OUB_SAS_DIAG_MODE_START_END, OPC_OUB_SAS_HW_EVENT_ACK, OPC_OUB_SAS_RE_INITIALIZE, OPC_OUB_SATA_ABORT_RSP, OPC_OUB_SATA_COMP, OPC_OUB_SATA_EVENT, OPC_OUB_SET_CONTROLLER_CONFIG, OPC_OUB_SET_DEV_INFO, OPC_OUB_SET_DEVICE_STATE, OPC_OUB_SET_NVMD_DATA, OPC_OUB_SET_OPERATOR, OPC_OUB_SET_PHY_PROFILE_RSP, OPC_OUB_SGPIO_RESPONSE, OPC_OUB_SMP_ABORT_RSP, OPC_OUB_SMP_COMP, OPC_OUB_SPC_DEV_HANDLE_ARRIV, OPC_OUB_SPC_DEV_INFO, OPC_OUB_SPC_DEV_REGIST, OPC_OUB_SPC_HW_EVENT, OPC_OUB_SPC_SAS_HW_EVENT_ACK, OPC_OUB_SSP_ABORT_RSP, OPC_OUB_SSP_COMP, OPC_OUB_SSP_EVENT, OPC_OUB_SSP_RECV_EVENT, OSSA_IO_SUCCESS, PCI_TRIGGER_COAL_INVALID, PCI_TRIGGER_COAL_IOMB_ERROR, SA_ASSERT, SA_DBG1, SA_DBG2, SA_DBG3, agsaContext_s::sdkData, siIODone(), siPCITriger(), smIS_SPC(), smIS_SPC12V(), smIS_SPC6V(), smIS_SPCV(), smTraceFuncEnter, smTraceFuncExit, agsaSSPCoalescedCompletionRsp_s::sspComplCxt, agsaCoalSspComplCxt_s::SSPTag, agsaSATACoalescedCompletionRsp_s::stpComplCxt, agsaLLRoot_s::swConfig, agsaCoalSspComplCxt_s::tag, agsaCoalStpComplCxt_s::tag, and agsaIORequestDesc_s::valid.

Referenced by siProcessOBMsg().

Here is the caller graph for this function:

◆ mpiPCIeDiagExecuteRsp()

GLOBAL bit32 mpiPCIeDiagExecuteRsp ( agsaRoot_t agRoot,
void *  pInIomb 
)

PCIE Diagnostics Response.

This routine handles the response of PCIE Diagnostics Response

Parameters
agRootHandles for this instance of SAS/SATA LLL
pIombPointer of IOMB Mesage
Returns
sucess or fail

Definition at line 6467 of file sampirsp.c.

References agsaIOMap_s::agContext, agFALSE, agNULL, AGSA_RC_FAILURE, AGSA_RC_SUCCESS, agsaPCIeDiagResponse_s::DIF_ERR, agsaPCIeDiagResponse_s::DWord10, agsaPCIeDiagResponse_s::DWord11, agsaPCIeDiagResponse_s::DWord8, agsaPCIeDiagResponse_s::DWord9, agsaPCIeDiagResponse_s::ERR_BLKH, agsaPCIeDiagResponse_s::ERR_BLKL, agsaLLRoot_s::freeIORequests, agsaLLRoot_s::freeReservedRequests, hpDBG_VERY_LOUD, agsaLLRoot_s::IOMap, agsaIOMap_s::IORequest, agsaIORequestDesc_s::linkNode, LL_IOREQ_LOCKEQ_LOCK, MARK_OFF, OSSA_IO_INVALID_LENGTH, OSSA_OFFSET_OF, OSSA_PCIE_DIAG_INTERNAL_FAILURE, OSSA_PCIE_DIAG_INVALID_BLOCK_SIZE, OSSA_PCIE_DIAG_INVALID_CMD_DESC, OSSA_PCIE_DIAG_INVALID_CMD_TYPE, OSSA_PCIE_DIAG_INVALID_COMMAND, OSSA_PCIE_DIAG_INVALID_PCIE_ADDR, OSSA_PCIE_DIAG_IO_XFR_ERROR_DIF_APPLICATION_TAG_MISMATCH, OSSA_PCIE_DIAG_IO_XFR_ERROR_DIF_CRC_MISMATCH, OSSA_PCIE_DIAG_IO_XFR_ERROR_DIF_MISMATCH, OSSA_PCIE_DIAG_IO_XFR_ERROR_DIF_REFERENCE_TAG_MISMATCH, OSSA_PCIE_DIAG_LENGTH_NOT_BLOCK_SIZE_ALIGNED, OSSA_PCIE_DIAG_SUCCESS, ossaPCIeDiagExecuteCB(), ossaSingleThreadedEnter(), ossaSingleThreadedLeave(), SA_ASSERT, SA_DBG1, SA_DBG3, SA_RESERVED_REQUEST_COUNT, saLlistIOAdd, saLlistIOGetCount, agsaContext_s::sdkData, si_memset(), smIS_SPCV(), smTraceFuncEnter, smTraceFuncExit, Status, agsaIOMap_s::Tag, and agsaIORequestDesc_s::valid.

Referenced by mpiParseOBIomb().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mpiPhyCntrlRsp()

GLOBAL bit32 mpiPhyCntrlRsp ( agsaRoot_t agRoot,
agsaLocalPhyCntrlRsp_t pIomb 
)

SPC MPI Phy Control Command Response.

This function handles the response of PHY Control Command.

Parameters
agRootHandles for this instance of SAS/SATA hardware
pIombpointer of Message
Returns
The read value

Definition at line 2107 of file sampirsp.c.

References agsaIOMap_s::agContext, agFALSE, agNULL, AGSA_RC_FAILURE, AGSA_RC_SUCCESS, agsaIORequestDesc_s::completionCB, agsaLLRoot_s::freeIORequests, agsaLLRoot_s::freeReservedRequests, hpDBG_VERY_LOUD, agsaLLRoot_s::IOMap, agsaIOMap_s::IORequest, agsaIORequestDesc_s::linkNode, LL_IOREQ_LOCKEQ_LOCK, LOCAL_PHY_OP_BITS, LOCAL_PHY_PHYID, MARK_OFF, OSSA_OFFSET_OF, ossaLocalPhyControlCB(), ossaSingleThreadedEnter(), ossaSingleThreadedLeave(), SA_ASSERT, SA_DBG1, SA_DBG3, SA_RESERVED_REQUEST_COUNT, saLlistIOAdd, saLlistIOGetCount, agsaContext_s::sdkData, SHIFT8, smTraceFuncEnter, smTraceFuncExit, status, agsaLocalPhyCntrlRsp_s::tag, agsaIOMap_s::Tag, and agsaIORequestDesc_s::valid.

Referenced by mpiParseOBIomb().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mpiPhyStartCmd()

GLOBAL bit32 mpiPhyStartCmd ( agsaRoot_t agRoot,
bit32  tag,
bit32  phyId,
agsaPhyConfig_t agPhyConfig,
agsaSASIdentify_t agSASIdentify,
bit32  queueNum 
)

SPC MPI Phy Start Command.

This command sends to SPC for the I/O.

Parameters
agRootHandles for this instance of SAS/SATA LLL
tagtage for IOMB
phyIdthe phy id of the link will be started
agPhyConfigthe phy properity
agSASIdentifythe SAS identify frame will be sent by the phy
Returns
If the MPI command is sent to SPC successfully
  • AGSA_RC_SUCCESS the MPI command is successfully
  • AGSA_RC_BUSY the SPC is no resource, cannot send now
  • AGSA_RC_FAILURE the MPI command is failure

Definition at line 755 of file sampicmd.c.

References AGSA_RC_SUCCESS, hpDBG_VERY_LOUD, index, IOMB_SIZE64, MPI_CATEGORY_SAS_SATA, mpiBuildCmd(), OPC_INB_PHYSTART, OSSA_OFFSET_OF, agsaPhyConfig_s::phyProperties, SA_ASSERT, SA_DBG1, SA_DBG2, SA_DBG3, agsaSASIdentify_s::sasAddressHi, agsaSASIdentify_s::sasAddressLo, agsaPhyStartCmd_s::sasIdentify, SHIFT16, SHIFT8, si_memcpy(), si_memset(), SM_PHYID_MASK, smIS_SPC(), smIS_spc8081, smTraceFuncEnter, and smTraceFuncExit.

Referenced by saPhyStart().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mpiPhyStartEvent()

◆ mpiPhyStopCmd()

GLOBAL bit32 mpiPhyStopCmd ( agsaRoot_t agRoot,
bit32  tag,
bit32  phyId,
bit32  queueNum 
)

SPC MPI Phy Stop Command.

This command sends to SPC for the I/O.

Parameters
agRootHandles for this instance of SAS/SATA LLL
tagtag of IOMB
phyIdTo stop the phyId
Returns
If the MPI command is sent to SPC successfully
  • AGSA_RC_SUCCESS the MPI command is successfully
  • AGSA_RC_BUSY the SPC is no resource, cannot send now
  • AGSA_RC_FAILURE the MPI command is failure

Definition at line 854 of file sampicmd.c.

References AGSA_RC_SUCCESS, hpDBG_VERY_LOUD, IOMB_SIZE64, MPI_CATEGORY_SAS_SATA, mpiBuildCmd(), OPC_INB_PHYSTOP, OSSA_OFFSET_OF, SA_DBG3, si_memset(), SM_PHYID_MASK, smTraceFuncEnter, and smTraceFuncExit.

Referenced by saPhyStop().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mpiPhyStopEvent()

◆ mpiPortControlRsp()

◆ mpiReadCALTable()

◆ mpiReadGSTable()

◆ mpiSASDiagExecuteRsp()

◆ mpiSASDiagStartEndRsp()

GLOBAL bit32 mpiSASDiagStartEndRsp ( agsaRoot_t agRoot,
agsaSASDiagStartEndRsp_t pIomb 
)

◆ mpiSASHwEventAckRsp()

◆ mpiSasReinitializeCmd()

GLOBAL bit32 mpiSasReinitializeCmd ( agsaRoot_t agRoot,
agsaContext_t agContext,
agsaSASReconfig_t agSASConfig,
bit32  queueNum 
)

SAS ReInitialize command.

This command is Reinitialize SAS paremeters to SPC.

Parameters
agRootHandles for this instance of SAS/SATA LLL
agContextContext for the Get Nexus State command
agSASConfigSAS Configuration Parameters
queueNumQueue Number of inbound/outbound queue
Returns
If the MPI command is sent to SPC successfully
  • AGSA_RC_SUCCESS the MPI command is successfully
  • AGSA_RC_BUSY the SPC is no resource, cannot send now
  • AGSA_RC_FAILURE the MPI command is failure

Definition at line 2003 of file sampicmd.c.

References agsaIOMap_s::agContext, agFALSE, agNULL, AGSA_RC_BUSY, AGSA_RC_SUCCESS, agTRUE, agsaSASReconfig_s::flags, agsaLLRoot_s::freeIORequests, hpDBG_VERY_LOUD, agsaIORequestDesc_s::HTag, agsaLLRoot_s::IOMap, IOMB_SIZE64, agsaIOMap_s::IORequest, agsaIORequestDesc_s::linkNode, LL_IOREQ_LOCKEQ_LOCK, MARK_OFF, agsaSASReconfig_s::maxPorts, MPI_CATEGORY_SAS_SATA, mpiBuildCmd(), OPC_INB_SAS_RE_INITIALIZE, agsaSASReconfig_s::openRejectRetriesCmd, agsaSASReconfig_s::openRejectRetriesData, OSSA_OFFSET_OF, ossaSingleThreadedEnter(), ossaSingleThreadedLeave(), SA_ASSERT, SA_DBG1, SA_DBG3, saLlistIOAdd, saLlistIOGetHead, saLlistIORemove, agsaSASReconfig_s::sataHolTmo, agsaContext_s::sdkData, SHIFT16, si_memset(), smTraceFuncEnter, smTraceFuncExit, agsaIOMap_s::Tag, and agsaIORequestDesc_s::valid.

Referenced by saReconfigSASParams().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mpiSasReInitializeRsp()

◆ mpiSATAAbortRsp()

◆ mpiSATACompletion()

GLOBAL FORCEINLINE bit32 mpiSATACompletion ( agsaRoot_t agRoot,
bit32 pIomb1 
)

SPC MPI SATA Completion.

This function handles the SATA completion.

Parameters
agRootHandles for this instance of SAS/SATA LLL
pIomb1Pointer of Message1
bcbuffer count
Returns
The read value

Definition at line 2963 of file saint.c.

References agNULL, agsaIOErrorEventStats_s::agOSSA_IO_ABORT_DELAYED, agsaIOErrorEventStats_s::agOSSA_IO_ABORT_IN_PROGRESS, agsaIOErrorEventStats_s::agOSSA_IO_ABORTED, agsaIOErrorEventStats_s::agOSSA_IO_COMPLETED_ERROR_SCSI_STATUS, agsaIOErrorEventStats_s::agOSSA_IO_DS_IN_ERROR, agsaIOErrorEventStats_s::agOSSA_IO_DS_IN_RECOVERY, agsaIOErrorEventStats_s::agOSSA_IO_DS_INVALID, agsaIOErrorEventStats_s::agOSSA_IO_DS_NON_OPERATIONAL, agsaIOErrorEventStats_s::agOSSA_IO_NO_DEVICE, agsaIOErrorEventStats_s::agOSSA_IO_OPEN_CNX_ERROR_BAD_DESTINATION, agsaIOErrorEventStats_s::agOSSA_IO_OPEN_CNX_ERROR_BREAK, agsaIOErrorEventStats_s::agOSSA_IO_OPEN_CNX_ERROR_CONNECTION_RATE_NOT_SUPPORTED, agsaIOErrorEventStats_s::agOSSA_IO_OPEN_CNX_ERROR_HW_RESOURCE_BUSY, agsaIOErrorEventStats_s::agOSSA_IO_OPEN_CNX_ERROR_HW_RESOURCE_BUSY_ALT, agsaIOErrorEventStats_s::agOSSA_IO_OPEN_CNX_ERROR_IT_NEXUS_LOSS, agsaIOErrorEventStats_s::agOSSA_IO_OPEN_CNX_ERROR_IT_NEXUS_LOSS_NO_DEST, agsaIOErrorEventStats_s::agOSSA_IO_OPEN_CNX_ERROR_IT_NEXUS_LOSS_OPEN_COLLIDE, agsaIOErrorEventStats_s::agOSSA_IO_OPEN_CNX_ERROR_IT_NEXUS_LOSS_OPEN_RETRY_BACKOFF_THRESHOLD_REACHED, agsaIOErrorEventStats_s::agOSSA_IO_OPEN_CNX_ERROR_IT_NEXUS_LOSS_OPEN_TMO, agsaIOErrorEventStats_s::agOSSA_IO_OPEN_CNX_ERROR_IT_NEXUS_LOSS_PATHWAY_BLOCKED, agsaIOErrorEventStats_s::agOSSA_IO_OPEN_CNX_ERROR_OPEN_PREEMPTED, agsaIOErrorEventStats_s::agOSSA_IO_OPEN_CNX_ERROR_PROTOCOL_NOT_SUPPORTED, agsaIOErrorEventStats_s::agOSSA_IO_OPEN_CNX_ERROR_STP_RESOURCES_BUSY, agsaIOErrorEventStats_s::agOSSA_IO_OPEN_CNX_ERROR_WRONG_DESTINATION, agsaIOErrorEventStats_s::agOSSA_IO_OPEN_CNX_ERROR_ZONE_VIOLATION, agsaIOErrorEventStats_s::agOSSA_IO_PORT_IN_RESET, agsaIOErrorEventStats_s::agOSSA_IO_UNDERFLOW, agsaIOErrorEventStats_s::agOSSA_IO_UNKNOWN_ERROR, agsaIOErrorEventStats_s::agOSSA_IO_XFER_ERR_EOB_DATA_OVERRUN, agsaIOErrorEventStats_s::agOSSA_IO_XFER_ERR_LAST_PIO_DATAIN_CRC_ERR, agsaIOErrorEventStats_s::agOSSA_IO_XFER_ERROR_BREAK, agsaIOErrorEventStats_s::agOSSA_IO_XFER_ERROR_DMA, agsaIOErrorEventStats_s::agOSSA_IO_XFER_ERROR_NAK_RECEIVED, agsaIOErrorEventStats_s::agOSSA_IO_XFER_ERROR_PHY_NOT_READY, agsaIOErrorEventStats_s::agOSSA_IO_XFER_ERROR_REJECTED_NCQ_MODE, agsaIOErrorEventStats_s::agOSSA_IO_XFER_ERROR_SATA_LINK_TIMEOUT, agsaIOErrorEventStats_s::agOSSA_IO_XFER_OPEN_RETRY_TIMEOUT, agsaIOErrorEventStats_s::agOSSA_IO_XFR_ERROR_DEK_INDEX_OUT_OF_BOUNDS, agsaIOErrorEventStats_s::agOSSA_IO_XFR_ERROR_DEK_IV_MISMATCH, agsaIOErrorEventStats_s::agOSSA_IO_XFR_ERROR_DEK_KEY_CACHE_MISS, agsaIOErrorEventStats_s::agOSSA_IO_XFR_ERROR_DEK_KEY_TAG_MISMATCH, agsaIOErrorEventStats_s::agOSSA_IO_XFR_ERROR_DEK_RAM_INTERFACE_ERROR, agsaIOErrorEventStats_s::agOSSA_MPI_ERR_ATAPI_DEVICE_BUSY, agsaIOErrorEventStats_s::agOSSA_MPI_ERR_IO_RESOURCE_UNAVAILABLE, agsaIOErrorEventStats_s::agOSSA_MPI_IO_RQE_BUSY_FULL, AGSA_RC_FAILURE, AGSA_RC_SUCCESS, agsaDeviceDesc_s::DeviceMapIndex, hpDBG_VERY_LOUD, agsaIORequestDesc_s::HTag, agsaLLRoot_s::IoErrorCount, agsaLLRoot_s::IOMap, agsaIOMap_s::IORequest, OSSA_IO_ABORT_DELAYED, OSSA_IO_ABORT_IN_PROGRESS, OSSA_IO_ABORTED, OSSA_IO_DS_IN_ERROR, OSSA_IO_DS_IN_RECOVERY, OSSA_IO_DS_INVALID, OSSA_IO_DS_NON_OPERATIONAL, OSSA_IO_NO_DEVICE, OSSA_IO_OPEN_CNX_ERROR_BAD_DESTINATION, OSSA_IO_OPEN_CNX_ERROR_BREAK, OSSA_IO_OPEN_CNX_ERROR_CONNECTION_RATE_NOT_SUPPORTED, OSSA_IO_OPEN_CNX_ERROR_HW_RESOURCE_BUSY, OSSA_IO_OPEN_CNX_ERROR_HW_RESOURCE_BUSY_ALT, OSSA_IO_OPEN_CNX_ERROR_IT_NEXUS_LOSS, OSSA_IO_OPEN_CNX_ERROR_IT_NEXUS_LOSS_NO_DEST, OSSA_IO_OPEN_CNX_ERROR_IT_NEXUS_LOSS_OPEN_COLLIDE, OSSA_IO_OPEN_CNX_ERROR_IT_NEXUS_LOSS_OPEN_RETRY_BACKOFF_THRESHOLD_REACHED, OSSA_IO_OPEN_CNX_ERROR_IT_NEXUS_LOSS_OPEN_TMO, OSSA_IO_OPEN_CNX_ERROR_IT_NEXUS_LOSS_PATHWAY_BLOCKED, OSSA_IO_OPEN_CNX_ERROR_OPEN_PREEMPTED, OSSA_IO_OPEN_CNX_ERROR_PROTOCOL_NOT_SUPPORTED, OSSA_IO_OPEN_CNX_ERROR_STP_RESOURCES_BUSY, OSSA_IO_OPEN_CNX_ERROR_WRONG_DESTINATION, OSSA_IO_OPEN_CNX_ERROR_ZONE_VIOLATION, OSSA_IO_PORT_IN_RESET, OSSA_IO_SUCCESS, OSSA_IO_UNDERFLOW, OSSA_IO_XFER_ERR_EOB_DATA_OVERRUN, OSSA_IO_XFER_ERR_LAST_PIO_DATAIN_CRC_ERR, OSSA_IO_XFER_ERROR_BREAK, OSSA_IO_XFER_ERROR_DMA, OSSA_IO_XFER_ERROR_NAK_RECEIVED, OSSA_IO_XFER_ERROR_PHY_NOT_READY, OSSA_IO_XFER_ERROR_REJECTED_NCQ_MODE, OSSA_IO_XFER_ERROR_SATA_LINK_TIMEOUT, OSSA_IO_XFER_OPEN_RETRY_TIMEOUT, OSSA_IO_XFR_ERROR_CIPHER_MODE_INVALID, OSSA_IO_XFR_ERROR_DEK_ILLEGAL_TABLE, OSSA_IO_XFR_ERROR_DEK_INDEX_OUT_OF_BOUNDS, OSSA_IO_XFR_ERROR_DEK_IV_MISMATCH, OSSA_IO_XFR_ERROR_DEK_KEY_CACHE_MISS, OSSA_IO_XFR_ERROR_DEK_KEY_TAG_MISMATCH, OSSA_IO_XFR_ERROR_DEK_RAM_INTERFACE_ERROR, OSSA_MPI_ERR_ATAPI_DEVICE_BUSY, OSSA_MPI_ERR_IO_RESOURCE_UNAVAILABLE, OSSA_MPI_IO_RQE_BUSY_FULL, OSSA_OFFSET_OF, agsaIORequestDesc_s::pDevice, SA_ASSERT, SA_DBG1, SA_DBG2, SA_DBG3, agsaContext_s::sdkData, siAbnormal(), siEventSATAResponseWtDataRcvd(), siIODone(), smTraceFuncEnter, smTraceFuncExit, status, and agsaIORequestDesc_s::valid.

Referenced by mpiParseOBIomb().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mpiSATAEvent()

GLOBAL bit32 mpiSATAEvent ( agsaRoot_t agRoot,
agsaSATAEventRsp_t pIomb 
)

SPC MPI SATA Event.

This function handles the SATA Event.

Parameters
agRootHandles for this instance of SAS/SATA LLL
pIombpointer of Message
Returns
The read value

Definition at line 4086 of file sampirsp.c.

References agNULL, agsaIOErrorEventStats_s::agOSSA_IO_OPEN_CNX_ERROR_BAD_DESTINATION, agsaIOErrorEventStats_s::agOSSA_IO_OPEN_CNX_ERROR_BREAK, agsaIOErrorEventStats_s::agOSSA_IO_OPEN_CNX_ERROR_CONNECTION_RATE_NOT_SUPPORTED, agsaIOErrorEventStats_s::agOSSA_IO_OPEN_CNX_ERROR_IT_NEXUS_LOSS, agsaIOErrorEventStats_s::agOSSA_IO_OPEN_CNX_ERROR_IT_NEXUS_LOSS_NO_DEST, agsaIOErrorEventStats_s::agOSSA_IO_OPEN_CNX_ERROR_IT_NEXUS_LOSS_OPEN_COLLIDE, agsaIOErrorEventStats_s::agOSSA_IO_OPEN_CNX_ERROR_IT_NEXUS_LOSS_OPEN_RETRY_BACKOFF_THRESHOLD_REACHED, agsaIOErrorEventStats_s::agOSSA_IO_OPEN_CNX_ERROR_IT_NEXUS_LOSS_PATHWAY_BLOCKED, agsaIOErrorEventStats_s::agOSSA_IO_OPEN_CNX_ERROR_PROTOCOL_NOT_SUPPORTED, agsaIOErrorEventStats_s::agOSSA_IO_OPEN_CNX_ERROR_STP_RESOURCES_BUSY, agsaIOErrorEventStats_s::agOSSA_IO_OPEN_CNX_ERROR_WRONG_DESTINATION, agsaIOErrorEventStats_s::agOSSA_IO_OPEN_CNX_ERROR_ZONE_VIOLATION, agsaIOErrorEventStats_s::agOSSA_IO_OVERFLOW, agsaIOErrorEventStats_s::agOSSA_IO_UNKNOWN_ERROR, agsaIOErrorEventStats_s::agOSSA_IO_XFER_CMD_FRAME_ISSUED, agsaIOErrorEventStats_s::agOSSA_IO_XFER_ERR_EOB_DATA_OVERRUN, agsaIOErrorEventStats_s::agOSSA_IO_XFER_ERROR_ABORTED_NCQ_MODE, agsaIOErrorEventStats_s::agOSSA_IO_XFER_ERROR_BREAK, agsaIOErrorEventStats_s::agOSSA_IO_XFER_ERROR_DMA_ACTIVATE_TIMEOUT, agsaIOErrorEventStats_s::agOSSA_IO_XFER_ERROR_NAK_RECEIVED, agsaIOErrorEventStats_s::agOSSA_IO_XFER_ERROR_OFFSET_MISMATCH, agsaIOErrorEventStats_s::agOSSA_IO_XFER_ERROR_PEER_ABORTED, agsaIOErrorEventStats_s::agOSSA_IO_XFER_ERROR_PHY_NOT_READY, agsaIOErrorEventStats_s::agOSSA_IO_XFER_ERROR_UNEXPECTED_PHASE, agsaIOErrorEventStats_s::agOSSA_IO_XFER_ERROR_XFER_RDY_NOT_EXPECTED, agsaIOErrorEventStats_s::agOSSA_IO_XFER_ERROR_XFER_RDY_OVERRUN, agsaIOErrorEventStats_s::agOSSA_IO_XFER_ERROR_XFER_ZERO_DATA_LEN, agsaIOErrorEventStats_s::agOSSA_IO_XFER_OPEN_RETRY_TIMEOUT, agsaIOErrorEventStats_s::agOSSA_IO_XFER_PIO_SETUP_ERROR, agsaIOErrorEventStats_s::agOSSA_IO_XFR_ERROR_DIF_MISMATCH, agsaIOErrorEventStats_s::agOSSA_IO_XFR_ERROR_INTERNAL_CRC_ERROR, AGSA_RC_SUCCESS, DEVICE_ID_BITS, agsaDeviceMap_s::DeviceHandle, agsaLLRoot_s::DeviceMap, hpDBG_VERY_LOUD, agsaLLRoot_s::IoEventCount, agsaLLRoot_s::IOMap, agsaIOMap_s::IORequest, MAX_IO_DEVICE_ENTRIES, OS_ASSERT, OSSA_IO_OPEN_CNX_ERROR_BAD_DESTINATION, OSSA_IO_OPEN_CNX_ERROR_BREAK, OSSA_IO_OPEN_CNX_ERROR_CONNECTION_RATE_NOT_SUPPORTED, OSSA_IO_OPEN_CNX_ERROR_IT_NEXUS_LOSS, OSSA_IO_OPEN_CNX_ERROR_IT_NEXUS_LOSS_NO_DEST, OSSA_IO_OPEN_CNX_ERROR_IT_NEXUS_LOSS_OPEN_COLLIDE, OSSA_IO_OPEN_CNX_ERROR_IT_NEXUS_LOSS_OPEN_RETRY_BACKOFF_THRESHOLD_REACHED, OSSA_IO_OPEN_CNX_ERROR_IT_NEXUS_LOSS_PATHWAY_BLOCKED, OSSA_IO_OPEN_CNX_ERROR_PROTOCOL_NOT_SUPPORTED, OSSA_IO_OPEN_CNX_ERROR_STP_RESOURCES_BUSY, OSSA_IO_OPEN_CNX_ERROR_WRONG_DESTINATION, OSSA_IO_OPEN_CNX_ERROR_ZONE_VIOLATION, OSSA_IO_OVERFLOW, OSSA_IO_XFER_CMD_FRAME_ISSUED, OSSA_IO_XFER_ERR_EOB_DATA_OVERRUN, OSSA_IO_XFER_ERROR_ABORTED_NCQ_MODE, OSSA_IO_XFER_ERROR_BREAK, OSSA_IO_XFER_ERROR_DMA_ACTIVATE_TIMEOUT, OSSA_IO_XFER_ERROR_NAK_RECEIVED, OSSA_IO_XFER_ERROR_OFFSET_MISMATCH, OSSA_IO_XFER_ERROR_PEER_ABORTED, OSSA_IO_XFER_ERROR_PHY_NOT_READY, OSSA_IO_XFER_ERROR_UNEXPECTED_PHASE, OSSA_IO_XFER_ERROR_XFER_RDY_NOT_EXPECTED, OSSA_IO_XFER_ERROR_XFER_RDY_OVERRUN, OSSA_IO_XFER_ERROR_XFER_ZERO_DATA_LEN, OSSA_IO_XFER_OPEN_RETRY_TIMEOUT, OSSA_IO_XFER_PIO_SETUP_ERROR, OSSA_IO_XFR_ERROR_DIF_MISMATCH, OSSA_IO_XFR_ERROR_INTERNAL_CRC_ERROR, OSSA_OFFSET_OF, ossaSATAEvent(), agsaIORequestDesc_s::pIORequestContext, agsaPortMap_s::PortContext, agsaPortMap_s::PortID, PORTID_MASK, agsaLLRoot_s::PortMap, agsaPortMap_s::PortStatus, SA_DBG1, SA_DBG2, agsaContext_s::sdkData, smTraceFuncEnter, smTraceFuncExit, and agsaDeviceDesc_s::targetDevHandle.

Referenced by mpiParseOBIomb().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mpiSetControllerConfigCmd()

GLOBAL bit32 mpiSetControllerConfigCmd ( agsaRoot_t agRoot,
agsaContext_t agContext,
agsaSetControllerConfigCmd_t agControllerConfig,
bit32  queueNum,
bit8  modePageContext 
)

SAS Set Controller Configuration Command.

This command updates the contents of a controller mode page.

Parameters
agRootHandles for this instance of SAS/SATA LLL
agContextContext for the Get Nexus State command
agControllerConfigMode page being sent to the controller
queueNumQueue Number of inbound/outbound queue
Returns
If the MPI command is sent to SPC successfully
  • AGSA_RC_SUCCESS the MPI command is successfully
  • AGSA_RC_BUSY the SPC is no resource, cannot send now
  • AGSA_RC_FAILURE the MPI command is failure

Definition at line 2099 of file sampicmd.c.

References agsaIOMap_s::agContext, agFALSE, agNULL, AGSA_RC_BUSY, AGSA_RC_SUCCESS, agTRUE, agsaSetControllerConfigCmd_s::configPage, agsaLLRoot_s::freeIORequests, hpDBG_VERY_LOUD, agsaIORequestDesc_s::HTag, agsaLLRoot_s::IOMap, IOMB_SIZE64, agsaIOMap_s::IORequest, agsaIORequestDesc_s::linkNode, LL_IOREQ_LOCKEQ_LOCK, MARK_OFF, agsaIORequestDesc_s::modePageContext, MPI_CATEGORY_SAS_SATA, mpiBuildCmd(), OPC_INB_SET_CONTROLLER_CONFIG, ossaSingleThreadedEnter(), ossaSingleThreadedLeave(), agsaSetControllerConfigCmd_s::pageCode, SA_ASSERT, SA_DBG1, SA_DBG2, SA_DBG3, saLlistIOAdd, saLlistIOGetHead, saLlistIORemove, agsaContext_s::sdkData, smTraceFuncEnter, smTraceFuncExit, agsaSetControllerConfigCmd_s::tag, agsaIOMap_s::Tag, and agsaIORequestDesc_s::valid.

Referenced by saEncryptSetMode(), and saSetControllerConfig().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mpiSetControllerConfigRsp()

GLOBAL bit32 mpiSetControllerConfigRsp ( agsaRoot_t agRoot,
agsaSetControllerConfigRsp_t pIomb 
)

SAS Set Controller Config Response.

This routine handles the response of Set Controller Config Command

Parameters
agRootHandles for this instance of SAS/SATA LLL
pIombPointer of IOMB Mesage
Returns
sucess or fail

Definition at line 6718 of file sampirsp.c.

References agsaIOMap_s::agContext, agFALSE, agNULL, AGSA_ENCRYPTION_CONTROL_PARM_PAGE, AGSA_ENCRYPTION_DEK_CONFIG_PAGE, AGSA_ENCRYPTION_GENERAL_CONFIG_PAGE, AGSA_ENCRYPTION_HMAC_CONFIG_PAGE, AGSA_INTERRUPT_CONFIGURATION_PAGE, AGSA_IO_GENERAL_CONFIG_PAGE, AGSA_RC_FAILURE, AGSA_RC_SUCCESS, AGSA_SAS_PROTOCOL_TIMER_CONFIG_PAGE, agsaEncryptCipherModeXTS, agsaEncryptSMA, agsaEncryptSMB, agsaEncryptSMF, agsaModePageSet, agsaHWEventMode_s::context, agsaEncryptInfo_s::encryptionCipherMode, agsaEncryptInfo_s::encryptionSecurityMode, agsaLLRoot_s::freeIORequests, agsaLLRoot_s::freeReservedRequests, hpDBG_VERY_LOUD, agsaLLRoot_s::IOMap, agsaIOMap_s::IORequest, agsaIORequestDesc_s::linkNode, LL_IOREQ_LOCKEQ_LOCK, MARK_OFF, agsaIORequestDesc_s::modePageContext, agsaHWEventMode_s::modePageOperation, OSSA_HW_EVENT_MODE, OSSA_HW_EVENT_SECURITY_MODE, OSSA_OFFSET_OF, ossaHwCB(), ossaHwRegRead(), ossaSingleThreadedEnter(), ossaSingleThreadedLeave(), SA_ASSERT, SA_DBG1, SA_DBG2, SA_RESERVED_REQUEST_COUNT, saLlistIOAdd, saLlistIOGetCount, SCRATCH_PAD1_V_RAAE_ERR, SCRATCH_PAD1_V_RAAE_MASK, SCRATCH_PAD3_V_ENC_DIS_ERR, SCRATCH_PAD3_V_ENC_DISABLED, SCRATCH_PAD3_V_ENC_ENA_ERR, SCRATCH_PAD3_V_ENC_MASK, SCRATCH_PAD3_V_ENC_READY, SCRATCH_PAD3_V_ERR_CODE, SCRATCH_PAD3_V_SM_MASK, SCRATCH_PAD3_V_SMA_ENABLED, SCRATCH_PAD3_V_SMB_ENABLED, SCRATCH_PAD3_V_SMF_ENABLED, SCRATCH_PAD3_V_XTS_ENABLED, agsaContext_s::sdkData, SHIFT16, si_memset(), smTraceFuncEnter, smTraceFuncExit, status, agsaEncryptInfo_s::status, agsaHWEventMode_s::status, agsaSetControllerConfigRsp_s::tag, agsaIOMap_s::Tag, V_Scratchpad_1_Register, V_Scratchpad_3_Register, and agsaIORequestDesc_s::valid.

Referenced by mpiParseOBIomb().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mpiSetDeviceInfoCmd()

GLOBAL bit32 mpiSetDeviceInfoCmd ( agsaRoot_t agRoot,
agsaContext_t agContext,
bit32  deviceid,
bit32  option,
bit32  queueNum,
bit32  param,
ossaSetDeviceInfoCB_t  agCB 
)

Set Device Information Command.

This command is Set Device Information to SPC.

Parameters
agRootHandles for this instance of SAS/SATA LLL
agDevHandleHandle of device
deviceidDevice Id
optonoprion
Returns
If the MPI command is sent to SPC successfully
  • AGSA_RC_SUCCESS the MPI command is successfully
  • AGSA_RC_BUSY the SPC is no resource, cannot send now
  • AGSA_RC_FAILURE the MPI command is failure

Definition at line 642 of file sampicmd.c.

References agsaIOMap_s::agContext, agFALSE, agNULL, AGSA_RC_BUSY, AGSA_RC_SUCCESS, agTRUE, agsaIORequestDesc_s::completionCB, agsaLLRoot_s::freeIORequests, hpDBG_VERY_LOUD, agsaIORequestDesc_s::HTag, agsaLLRoot_s::IOMap, IOMB_SIZE64, agsaIOMap_s::IORequest, agsaIORequestDesc_s::linkNode, LL_IOREQ_LOCKEQ_LOCK, MARK_OFF, MPI_CATEGORY_SAS_SATA, mpiBuildCmd(), OPC_INB_SET_DEV_INFO, OSSA_OFFSET_OF, ossaSingleThreadedEnter(), ossaSingleThreadedLeave(), SA_ASSERT, SA_DBG1, SA_DBG2, SA_DBG3, saLlistIOAdd, saLlistIOGetHead, saLlistIORemove, agsaContext_s::sdkData, SET_DEV_INFO_SPC_DW3_MASK, SET_DEV_INFO_SPC_DW4_MASK, SET_DEV_INFO_V_DW3_MASK, SET_DEV_INFO_V_DW4_MASK, si_memset(), smIS_SPC(), smTraceFuncEnter, smTraceFuncExit, agsaIOMap_s::Tag, and agsaIORequestDesc_s::valid.

Referenced by saSetDeviceInfo().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mpiSetDeviceStateCmd()

GLOBAL bit32 mpiSetDeviceStateCmd ( agsaRoot_t agRoot,
agsaContext_t agContext,
bit32  deviceId,
bit32  nds,
bit32  queueNum 
)

Set Device State command.

This command is set Device State to SPC.

Parameters
agRootHandles for this instance of SAS/SATA LLL
agContextContext for the Set Nexus State command
deviceIdDeviceId
queueNumQueue Number of inbound/outbound queue
Returns
If the MPI command is sent to SPC successfully
  • AGSA_RC_SUCCESS the MPI command is successfully
  • AGSA_RC_BUSY the SPC is no resource, cannot send now
  • AGSA_RC_FAILURE the MPI command is failure

Definition at line 1800 of file sampicmd.c.

References agsaIOMap_s::agContext, agFALSE, agNULL, AGSA_RC_BUSY, AGSA_RC_SUCCESS, agTRUE, agsaLLRoot_s::freeIORequests, hpDBG_VERY_LOUD, agsaIORequestDesc_s::HTag, agsaLLRoot_s::IOMap, IOMB_SIZE64, agsaIOMap_s::IORequest, agsaIORequestDesc_s::linkNode, LL_IOREQ_LOCKEQ_LOCK, MARK_OFF, MPI_CATEGORY_SAS_SATA, mpiBuildCmd(), OPC_INB_SET_DEVICE_STATE, OSSA_OFFSET_OF, ossaSingleThreadedEnter(), ossaSingleThreadedLeave(), SA_DBG1, SA_DBG3, saLlistIOAdd, saLlistIOGetHead, saLlistIORemove, agsaContext_s::sdkData, si_memset(), smTraceFuncEnter, smTraceFuncExit, agsaIOMap_s::Tag, and agsaIORequestDesc_s::valid.

Referenced by saSetDeviceState().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mpiSetDeviceStateRsp()

◆ mpiSetDevInfoRsp()

◆ mpiSetNVMDataRsp()

GLOBAL bit32 mpiSetNVMDataRsp ( agsaRoot_t agRoot,
agsaSetNVMDataRsp_t pIomb 
)

Set NVM Data Response.

This routine handles the response of SET NVM Data Response

Parameters
agRootHandles for this instance of SAS/SATA LLL
pIombPointer of IOMB Mesage
Returns
sucess or fail

Definition at line 4364 of file sampirsp.c.

References agsaIOMap_s::agContext, agFALSE, agNULL, AGSA_NVMD_CONFIG_SEEPROM, AGSA_NVMD_TWI_DEVICES, AGSA_NVMD_VPD_FLASH, AGSA_RC_FAILURE, AGSA_RC_SUCCESS, agsaLLRoot_s::freeIORequests, hpDBG_VERY_LOUD, agsaLLRoot_s::IOMap, agsaIOMap_s::IORequest, agsaIORequestDesc_s::linkNode, LL_IOREQ_LOCKEQ_LOCK, MARK_OFF, NVMD_STAT, NVMD_TYPE, OSSA_OFFSET_OF, ossaSetNVMDResponseCB(), ossaSingleThreadedEnter(), ossaSingleThreadedLeave(), SA_ASSERT, SA_DBG1, saLlistIOAdd, agsaContext_s::sdkData, smTraceFuncEnter, smTraceFuncExit, status, agsaSetNVMDataRsp_s::tag, agsaIOMap_s::Tag, and agsaIORequestDesc_s::valid.

Referenced by mpiParseOBIomb().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mpiSetNVMDCmd()

GLOBAL bit32 mpiSetNVMDCmd ( agsaRoot_t agRoot,
agsaContext_t agContext,
agsaNVMDData_t NVMDInfo,
bit32  queueNum 
)

Set NVM Data Command.

This command is set NVM Data to SPC.

Parameters
agRootHandles for this instance of SAS/SATA LLL
agContextContext for the set VPD command
NVMDInfopointer of VPD information
queueNumqueue Number
Returns
If the MPI command is sent to SPC successfully
  • AGSA_RC_SUCCESS the MPI command is successfully
  • AGSA_RC_BUSY the SPC is no resource, cannot send now
  • AGSA_RC_FAILURE the MPI command is failure

Definition at line 1639 of file sampicmd.c.

References agsaIOMap_s::agContext, agFALSE, agNULL, AGSA_NVMD_CONFIG_SEEPROM, AGSA_NVMD_TWI_DEVICES, AGSA_NVMD_VPD_FLASH, AGSA_RC_BUSY, AGSA_RC_FAILURE, AGSA_RC_SUCCESS, agTRUE, agsaSetNVMDataCmd_s::Data, agsaNVMDData_s::dataOffsetAddress, agsaNVMDData_s::directData, agsaNVMDData_s::directLen, agsaLLRoot_s::freeIORequests, hpDBG_VERY_LOUD, agsaIORequestDesc_s::HTag, agsaNVMDData_s::indirectAddrLower32, agsaNVMDData_s::indirectAddrUpper32, agsaNVMDData_s::indirectLen, agsaNVMDData_s::indirectPayload, agsaLLRoot_s::IOMap, IOMB_SIZE64, agsaIOMap_s::IORequest, agsaIORequestDesc_s::linkNode, LL_IOREQ_LOCKEQ_LOCK, MARK_OFF, MPI_CATEGORY_SAS_SATA, mpiBuildCmd(), agsaSetNVMData_s::NVMData, agsaNVMDData_s::NVMDevice, OPC_INB_SET_NVMD_DATA, OSSA_NVMD_MODE_ERROR, OSSA_OFFSET_OF, ossaSetNVMDResponseCB(), ossaSingleThreadedEnter(), ossaSingleThreadedLeave(), SA_ASSERT, SA_DBG1, SA_DBG3, saLlistIOAdd, saLlistIOGetHead, saLlistIORemove, agsaContext_s::sdkData, SHIFT12, SHIFT16, SHIFT24, SHIFT31, SHIFT4, SHIFT8, si_memcpy(), si_memset(), agsaNVMDData_s::signature, smTraceFuncEnter, smTraceFuncExit, agsaIOMap_s::Tag, agsaNVMDData_s::TWIBusNumber, agsaNVMDData_s::TWIDeviceAddress, agsaNVMDData_s::TWIDeviceAddressSize, agsaNVMDData_s::TWIDevicePageSize, and agsaIORequestDesc_s::valid.

Referenced by saSetNVMDCommand().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mpiSetOperatorCmd()

GLOBAL bit32 mpiSetOperatorCmd ( agsaRoot_t agRoot,
bit32  queueNum,
agsaContext_t agContext,
agsaSetOperatorCmd_t operatorcode 
)

This command sends set operator command.

Parameters
agRootHandles for this instance of SAS/SATA LLL
agContextContext
queueNumQueue Number of inbound/outbound queue
Returns
If the MPI command is sent to SPC successfully
  • AGSA_RC_SUCCESS the MPI command is successfully
  • AGSA_RC_BUSY the SPC is no resource, cannot send now
  • AGSA_RC_FAILURE the MPI command is failure

Definition at line 2637 of file sampicmd.c.

References agsaIOMap_s::agContext, agFALSE, agNULL, AGSA_RC_BUSY, AGSA_RC_SUCCESS, agTRUE, agsaLLRoot_s::freeIORequests, hpDBG_VERY_LOUD, agsaIORequestDesc_s::HTag, agsaLLRoot_s::IOMap, IOMB_SIZE64, agsaIOMap_s::IORequest, agsaIORequestDesc_s::linkNode, LL_IOREQ_LOCKEQ_LOCK, MARK_OFF, MPI_CATEGORY_SAS_SATA, mpiBuildCmd(), OPC_INB_SET_OPERATOR, ossaSingleThreadedEnter(), ossaSingleThreadedLeave(), SA_ASSERT, SA_DBG1, saLlistIOAdd, saLlistIOGetHead, saLlistIORemove, agsaContext_s::sdkData, smTraceFuncEnter, smTraceFuncExit, agsaSetOperatorCmd_s::tag, agsaIOMap_s::Tag, and agsaIORequestDesc_s::valid.

Referenced by saSetOperator().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mpiSetOperatorRsp()

GLOBAL bit32 mpiSetOperatorRsp ( agsaRoot_t agRoot,
agsaSetOperatorRsp_t pIomb 
)

Set Operator Response.

This routine handles the response of the Operator management message

Parameters
agRootHandles for this instance of SAS/SATA LLL
pIombPointer of IOMB Mesage
Returns
sucess or fail

Definition at line 7470 of file sampirsp.c.

References agsaIOMap_s::agContext, agFALSE, agNULL, AGSA_RC_FAILURE, AGSA_RC_SUCCESS, agsaLLRoot_s::freeIORequests, agsaLLRoot_s::freeReservedRequests, hpDBG_VERY_LOUD, agsaLLRoot_s::IOMap, agsaIOMap_s::IORequest, agsaIORequestDesc_s::linkNode, LL_IOREQ_LOCKEQ_LOCK, MARK_OFF, OSSA_OFFSET_OF, ossaSetOperatorCB(), ossaSingleThreadedEnter(), ossaSingleThreadedLeave(), SA_ASSERT, SA_DBG1, SA_RESERVED_REQUEST_COUNT, saLlistIOAdd, saLlistIOGetCount, agsaContext_s::sdkData, smTraceFuncEnter, smTraceFuncExit, status, agsaIOMap_s::Tag, and agsaIORequestDesc_s::valid.

Referenced by mpiParseOBIomb().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mpiSetPhyProfileCmd()

◆ mpiSetPhyProfileRsp()

◆ mpiSGpioRsp()

GLOBAL bit32 mpiSGpioRsp ( agsaRoot_t agRoot,
agsaSGpioRsp_t pInIomb 
)

serial GPIO Response

This routine handles the response of serial GPIO Response

Parameters
agRootHandles for this instance of SAS/SATA LLL
pIombPointer of IOMB Mesage
Returns
sucess or fail

Definition at line 6402 of file sampirsp.c.

References agsaIOMap_s::agContext, agNULL, AGSA_RC_FAILURE, AGSA_RC_SUCCESS, agsaSGpioReqResponse_s::function, agsaSGpioReqResponse_s::functionResult, hpDBG_VERY_LOUD, agsaLLRoot_s::IOMap, agsaIOMap_s::IORequest, NULL, OSSA_OFFSET_OF, OSSA_SGPIO_MAX_READ_DATA_COUNT, ossaSGpioCB(), agsaSGpioReqResponse_s::readWriteData, SA_DBG1, SA_DBG3, SA_SAS_SMP_READ_GPIO_REGISTER, saReturnRequestToFreePool(), agsaContext_s::sdkData, agsaSGpioReqResponse_s::smpFrameType, smTraceFuncEnter, smTraceFuncExit, and agsaSGpioRsp_s::tag.

Referenced by mpiParseOBIomb().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mpiSMPAbortRsp()

◆ mpiSMPCmd()

GLOBAL bit32 mpiSMPCmd ( agsaRoot_t agRoot,
void *  pIomb,
bit16  opcode,
agsaSMPCmd_t payload,
bit8  inq,
bit8  outq 
)

SPC MPI SMP Request Command.

This command sends to SPC for the SMP.

Parameters
agRootHandles for this instance of SAS/SATA LLL
pIombpointer of IOMB
opcodeopcode of IOMB
payloadpointer of payload
inqinbound queue number
outqoutbound queue number
Returns
If the MPI command is sent to SPC successfully
  • AGSA_RC_SUCCESS the MPI command is successfully
  • AGSA_RC_BUSY the SPC is no resource, cannot send now
  • AGSA_RC_FAILURE the MPI command is failure

Definition at line 901 of file sampicmd.c.

References agNULL, AGSA_RC_FAILURE, AGSA_RC_SUCCESS, BC_MASK, mpiMsgHeader_s::Header, hpDBG_VERY_LOUD, agsaLLRoot_s::inboundQueue, MPI_CATEGORY_SAS_SATA, mpiMsgProduce(), mpiICQueue_s::priority, SA_DBG3, SA_DBG6, agsaContext_s::sdkData, SHIFT24, si_memcpy(), smTraceFuncEnter, and smTraceFuncExit.

Referenced by saSendSMPIoctl(), and saSMPStart().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mpiSMPCompletion()

GLOBAL bit32 mpiSMPCompletion ( agsaRoot_t agRoot,
agsaSMPCompletionRsp_t pIomb 
)

SPC MPI SMP Completion.

This function handles the SMP completion.

Parameters
agRootHandles for this instance of SAS/SATA hardware
pIombpointer of Message1
bcbuffer count
Returns
The read value

Definition at line 1748 of file sampirsp.c.

References agFALSE, agNULL, agsaIOErrorEventStats_s::agOSSA_IO_ABORT_DELAYED, agsaIOErrorEventStats_s::agOSSA_IO_ABORT_IN_PROGRESS, agsaIOErrorEventStats_s::agOSSA_IO_ABORTED, agsaIOErrorEventStats_s::agOSSA_IO_DS_IN_RECOVERY, agsaIOErrorEventStats_s::agOSSA_IO_DS_INVALID, agsaIOErrorEventStats_s::agOSSA_IO_DS_NON_OPERATIONAL, agsaIOErrorEventStats_s::agOSSA_IO_ERROR_HW_TIMEOUT, agsaIOErrorEventStats_s::agOSSA_IO_ERROR_INTERNAL_SMP_RESOURCE, agsaIOErrorEventStats_s::agOSSA_IO_INVALID_LENGTH, agsaIOErrorEventStats_s::agOSSA_IO_NO_DEVICE, agsaIOErrorEventStats_s::agOSSA_IO_OPEN_CNX_ERROR_BAD_DESTINATION, agsaIOErrorEventStats_s::agOSSA_IO_OPEN_CNX_ERROR_BREAK, agsaIOErrorEventStats_s::agOSSA_IO_OPEN_CNX_ERROR_CONNECTION_RATE_NOT_SUPPORTED, agsaIOErrorEventStats_s::agOSSA_IO_OPEN_CNX_ERROR_HW_RESOURCE_BUSY, agsaIOErrorEventStats_s::agOSSA_IO_OPEN_CNX_ERROR_IT_NEXUS_LOSS, agsaIOErrorEventStats_s::agOSSA_IO_OPEN_CNX_ERROR_IT_NEXUS_LOSS_NO_DEST, agsaIOErrorEventStats_s::agOSSA_IO_OPEN_CNX_ERROR_IT_NEXUS_LOSS_OPEN_RETRY_BACKOFF_THRESHOLD_REACHED, agsaIOErrorEventStats_s::agOSSA_IO_OPEN_CNX_ERROR_IT_NEXUS_LOSS_OPEN_TMO, agsaIOErrorEventStats_s::agOSSA_IO_OPEN_CNX_ERROR_IT_NEXUS_LOSS_PATHWAY_BLOCKED, agsaIOErrorEventStats_s::agOSSA_IO_OPEN_CNX_ERROR_OPEN_PREEMPTED, agsaIOErrorEventStats_s::agOSSA_IO_OPEN_CNX_ERROR_PROTOCOL_NOT_SUPPORTED, agsaIOErrorEventStats_s::agOSSA_IO_OPEN_CNX_ERROR_WRONG_DESTINATION, agsaIOErrorEventStats_s::agOSSA_IO_OPEN_CNX_ERROR_ZONE_VIOLATION, agsaIOErrorEventStats_s::agOSSA_IO_OVERFLOW, agsaIOErrorEventStats_s::agOSSA_IO_PORT_IN_RESET, agsaIOErrorEventStats_s::agOSSA_IO_UNKNOWN_ERROR, agsaIOErrorEventStats_s::agOSSA_IO_XFER_ERROR_BREAK, agsaIOErrorEventStats_s::agOSSA_IO_XFER_ERROR_PHY_NOT_READY, agsaIOErrorEventStats_s::agOSSA_IO_XFER_ERROR_RX_FRAME, agsaIOErrorEventStats_s::agOSSA_IO_XFER_OPEN_RETRY_TIMEOUT, agsaIOErrorEventStats_s::agOSSA_IO_XFER_READ_COMPL_ERR, agsaIOErrorEventStats_s::agOSSA_MPI_ERR_IO_RESOURCE_UNAVAILABLE, agsaIOErrorEventStats_s::agOSSA_MPI_ERR_OFFLOAD_DIF_OR_ENC_NOT_ENABLED, AGSA_RC_FAILURE, AGSA_RC_SUCCESS, hpDBG_VERY_LOUD, agsaLLRoot_s::IoErrorCount, agsaLLRoot_s::IOMap, agsaIOMap_s::IORequest, OSSA_IO_ABORT_DELAYED, OSSA_IO_ABORT_IN_PROGRESS, OSSA_IO_ABORTED, OSSA_IO_DS_IN_RECOVERY, OSSA_IO_DS_INVALID, OSSA_IO_DS_NON_OPERATIONAL, OSSA_IO_ERROR_HW_TIMEOUT, OSSA_IO_ERROR_INTERNAL_SMP_RESOURCE, OSSA_IO_INVALID_LENGTH, OSSA_IO_NO_DEVICE, OSSA_IO_OPEN_CNX_ERROR_BAD_DESTINATION, OSSA_IO_OPEN_CNX_ERROR_BREAK, OSSA_IO_OPEN_CNX_ERROR_CONNECTION_RATE_NOT_SUPPORTED, OSSA_IO_OPEN_CNX_ERROR_HW_RESOURCE_BUSY, OSSA_IO_OPEN_CNX_ERROR_IT_NEXUS_LOSS, OSSA_IO_OPEN_CNX_ERROR_IT_NEXUS_LOSS_NO_DEST, OSSA_IO_OPEN_CNX_ERROR_IT_NEXUS_LOSS_OPEN_COLLIDE, OSSA_IO_OPEN_CNX_ERROR_IT_NEXUS_LOSS_OPEN_RETRY_BACKOFF_THRESHOLD_REACHED, OSSA_IO_OPEN_CNX_ERROR_IT_NEXUS_LOSS_OPEN_TMO, OSSA_IO_OPEN_CNX_ERROR_IT_NEXUS_LOSS_PATHWAY_BLOCKED, OSSA_IO_OPEN_CNX_ERROR_OPEN_PREEMPTED, OSSA_IO_OPEN_CNX_ERROR_PROTOCOL_NOT_SUPPORTED, OSSA_IO_OPEN_CNX_ERROR_WRONG_DESTINATION, OSSA_IO_OPEN_CNX_ERROR_ZONE_VIOLATION, OSSA_IO_OVERFLOW, OSSA_IO_PORT_IN_RESET, OSSA_IO_SUCCESS, OSSA_IO_XFER_ERROR_BREAK, OSSA_IO_XFER_ERROR_PHY_NOT_READY, OSSA_IO_XFER_ERROR_RX_FRAME, OSSA_IO_XFER_OPEN_RETRY_TIMEOUT, OSSA_IO_XFER_READ_COMPL_ERR, OSSA_MPI_ERR_IO_RESOURCE_UNAVAILABLE, OSSA_MPI_ERR_OFFLOAD_DIF_OR_ENC_NOT_ENABLED, OSSA_OFFSET_OF, SA_ASSERT, SA_DBG1, SA_DBG3, agsaContext_s::sdkData, siAbnormal(), siSMPRespRcvd(), smTraceFuncEnter, smTraceFuncExit, status, and agsaSMPCompletionRsp_s::tag.

Referenced by mpiParseOBIomb().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mpiSSPAbortRsp()

◆ mpiSSPCompletion()

GLOBAL FORCEINLINE bit32 mpiSSPCompletion ( agsaRoot_t agRoot,
bit32 pIomb1 
)

SPC MPI SSP Completion.

This function handles the SSP completion.

Parameters
agRootHandles for this instance of SAS/SATA LLL
pIomb1Pointer of Message1
bcbuffer count
Returns
The read value

Definition at line 3383 of file saint.c.

References agNULL, agsaIOErrorEventStats_s::agOSSA_IO_ABORT_DELAYED, agsaIOErrorEventStats_s::agOSSA_IO_ABORT_IN_PROGRESS, agsaIOErrorEventStats_s::agOSSA_IO_ABORTED, agsaIOErrorEventStats_s::agOSSA_IO_COMPLETED_ERROR_SCSI_STATUS, agsaIOErrorEventStats_s::agOSSA_IO_DS_IN_ERROR, agsaIOErrorEventStats_s::agOSSA_IO_DS_IN_RECOVERY, agsaIOErrorEventStats_s::agOSSA_IO_DS_INVALID, agsaIOErrorEventStats_s::agOSSA_IO_DS_NON_OPERATIONAL, agsaIOErrorEventStats_s::agOSSA_IO_INVALID_LENGTH, agsaIOErrorEventStats_s::agOSSA_IO_NO_DEVICE, agsaIOErrorEventStats_s::agOSSA_IO_OPEN_CNX_ERROR_BAD_DESTINATION, agsaIOErrorEventStats_s::agOSSA_IO_OPEN_CNX_ERROR_BREAK, agsaIOErrorEventStats_s::agOSSA_IO_OPEN_CNX_ERROR_CONNECTION_RATE_NOT_SUPPORTED, agsaIOErrorEventStats_s::agOSSA_IO_OPEN_CNX_ERROR_HW_RESOURCE_BUSY, agsaIOErrorEventStats_s::agOSSA_IO_OPEN_CNX_ERROR_HW_RESOURCE_BUSY_ALT, agsaIOErrorEventStats_s::agOSSA_IO_OPEN_CNX_ERROR_IT_NEXUS_LOSS, agsaIOErrorEventStats_s::agOSSA_IO_OPEN_CNX_ERROR_IT_NEXUS_LOSS_NO_DEST, agsaIOErrorEventStats_s::agOSSA_IO_OPEN_CNX_ERROR_IT_NEXUS_LOSS_OPEN_COLLIDE, agsaIOErrorEventStats_s::agOSSA_IO_OPEN_CNX_ERROR_IT_NEXUS_LOSS_OPEN_RETRY_BACKOFF_THRESHOLD_REACHED, agsaIOErrorEventStats_s::agOSSA_IO_OPEN_CNX_ERROR_IT_NEXUS_LOSS_OPEN_TMO, agsaIOErrorEventStats_s::agOSSA_IO_OPEN_CNX_ERROR_IT_NEXUS_LOSS_PATHWAY_BLOCKED, agsaIOErrorEventStats_s::agOSSA_IO_OPEN_CNX_ERROR_OPEN_PREEMPTED, agsaIOErrorEventStats_s::agOSSA_IO_OPEN_CNX_ERROR_PROTOCOL_NOT_SUPPORTED, agsaIOErrorEventStats_s::agOSSA_IO_OPEN_CNX_ERROR_WRONG_DESTINATION, agsaIOErrorEventStats_s::agOSSA_IO_OPEN_CNX_ERROR_ZONE_VIOLATION, agsaIOErrorEventStats_s::agOSSA_IO_PORT_IN_RESET, agsaIOErrorEventStats_s::agOSSA_IO_SSP_EXT_IU_ZERO_LEN_ERROR, agsaIOErrorEventStats_s::agOSSA_IO_TM_TAG_NOT_FOUND, agsaIOErrorEventStats_s::agOSSA_IO_UNKNOWN_ERROR, agsaIOErrorEventStats_s::agOSSA_IO_XFER_ERR_EOB_DATA_OVERRUN, agsaIOErrorEventStats_s::agOSSA_IO_XFER_ERROR_ACK_NAK_TIMEOUT, agsaIOErrorEventStats_s::agOSSA_IO_XFER_ERROR_BREAK, agsaIOErrorEventStats_s::agOSSA_IO_XFER_ERROR_DIF_INTERNAL_ERROR, agsaIOErrorEventStats_s::agOSSA_IO_XFER_ERROR_DMA, agsaIOErrorEventStats_s::agOSSA_IO_XFER_ERROR_NAK_RECEIVED, agsaIOErrorEventStats_s::agOSSA_IO_XFER_ERROR_OFFSET_MISMATCH, agsaIOErrorEventStats_s::agOSSA_IO_XFER_ERROR_PHY_NOT_READY, agsaIOErrorEventStats_s::agOSSA_IO_XFER_ERROR_UNEXPECTED_PHASE, agsaIOErrorEventStats_s::agOSSA_IO_XFER_OPEN_RETRY_TIMEOUT, agsaIOErrorEventStats_s::agOSSA_IO_XFER_PIO_SETUP_ERROR, agsaIOErrorEventStats_s::agOSSA_IO_XFR_ERROR_CIPHER_MODE_INVALID, agsaIOErrorEventStats_s::agOSSA_IO_XFR_ERROR_DEK_ILLEGAL_TABLE, agsaIOErrorEventStats_s::agOSSA_IO_XFR_ERROR_DEK_INDEX_OUT_OF_BOUNDS, agsaIOErrorEventStats_s::agOSSA_IO_XFR_ERROR_DEK_IV_MISMATCH, agsaIOErrorEventStats_s::agOSSA_IO_XFR_ERROR_DEK_KEY_CACHE_MISS, agsaIOErrorEventStats_s::agOSSA_IO_XFR_ERROR_DEK_KEY_TAG_MISMATCH, agsaIOErrorEventStats_s::agOSSA_IO_XFR_ERROR_DEK_RAM_INTERFACE_ERROR, agsaIOErrorEventStats_s::agOSSA_IO_XFR_ERROR_DIF_APPLICATION_TAG_MISMATCH, agsaIOErrorEventStats_s::agOSSA_IO_XFR_ERROR_DIF_CRC_MISMATCH, agsaIOErrorEventStats_s::agOSSA_IO_XFR_ERROR_DIF_MISMATCH, agsaIOErrorEventStats_s::agOSSA_IO_XFR_ERROR_DIF_REFERENCE_TAG_MISMATCH, agsaIOErrorEventStats_s::agOSSA_IO_XFR_ERROR_INTERNAL_RAM, agsaIOErrorEventStats_s::agOSSA_IO_XFR_ERROR_INVALID_SSP_RSP_FRAME, agsaIOErrorEventStats_s::agOSSA_MPI_ERR_IO_RESOURCE_UNAVAILABLE, agsaIOErrorEventStats_s::agOSSA_MPI_IO_RQE_BUSY_FULL, AGSA_RC_FAILURE, AGSA_RC_SUCCESS, agsaDeviceDesc_s::DeviceMapIndex, hpDBG_VERY_LOUD, agsaLLRoot_s::IoErrorCount, agsaLLRoot_s::IOMap, agsaIOMap_s::IORequest, OSSA_IO_ABORT_DELAYED, OSSA_IO_ABORT_IN_PROGRESS, OSSA_IO_ABORTED, OSSA_IO_DS_IN_ERROR, OSSA_IO_DS_IN_RECOVERY, OSSA_IO_DS_INVALID, OSSA_IO_DS_NON_OPERATIONAL, OSSA_IO_FAILED, OSSA_IO_INVALID_LENGTH, OSSA_IO_NO_DEVICE, OSSA_IO_OPEN_CNX_ERROR_BAD_DESTINATION, OSSA_IO_OPEN_CNX_ERROR_BREAK, OSSA_IO_OPEN_CNX_ERROR_CONNECTION_RATE_NOT_SUPPORTED, OSSA_IO_OPEN_CNX_ERROR_HW_RESOURCE_BUSY, OSSA_IO_OPEN_CNX_ERROR_HW_RESOURCE_BUSY_ALT, OSSA_IO_OPEN_CNX_ERROR_IT_NEXUS_LOSS, OSSA_IO_OPEN_CNX_ERROR_IT_NEXUS_LOSS_NO_DEST, OSSA_IO_OPEN_CNX_ERROR_IT_NEXUS_LOSS_OPEN_COLLIDE, OSSA_IO_OPEN_CNX_ERROR_IT_NEXUS_LOSS_OPEN_RETRY_BACKOFF_THRESHOLD_REACHED, OSSA_IO_OPEN_CNX_ERROR_IT_NEXUS_LOSS_OPEN_TMO, OSSA_IO_OPEN_CNX_ERROR_IT_NEXUS_LOSS_PATHWAY_BLOCKED, OSSA_IO_OPEN_CNX_ERROR_OPEN_PREEMPTED, OSSA_IO_OPEN_CNX_ERROR_PROTOCOL_NOT_SUPPORTED, OSSA_IO_OPEN_CNX_ERROR_WRONG_DESTINATION, OSSA_IO_OPEN_CNX_ERROR_ZONE_VIOLATION, OSSA_IO_PORT_IN_RESET, OSSA_IO_SSP_EXT_IU_ZERO_LEN_ERROR, OSSA_IO_SUCCESS, OSSA_IO_TM_TAG_NOT_FOUND, OSSA_IO_UNDERFLOW, OSSA_IO_XFER_ERR_EOB_DATA_OVERRUN, OSSA_IO_XFER_ERROR_ACK_NAK_TIMEOUT, OSSA_IO_XFER_ERROR_BREAK, OSSA_IO_XFER_ERROR_DIF_INTERNAL_ERROR, OSSA_IO_XFER_ERROR_DMA, OSSA_IO_XFER_ERROR_NAK_RECEIVED, OSSA_IO_XFER_ERROR_OFFSET_MISMATCH, OSSA_IO_XFER_ERROR_PHY_NOT_READY, OSSA_IO_XFER_ERROR_UNEXPECTED_PHASE, OSSA_IO_XFER_OPEN_RETRY_TIMEOUT, OSSA_IO_XFER_PIO_SETUP_ERROR, OSSA_IO_XFR_ERROR_CIPHER_MODE_INVALID, OSSA_IO_XFR_ERROR_DEK_ILLEGAL_TABLE, OSSA_IO_XFR_ERROR_DEK_INDEX_OUT_OF_BOUNDS, OSSA_IO_XFR_ERROR_DEK_IV_MISMATCH, OSSA_IO_XFR_ERROR_DEK_KEY_CACHE_MISS, OSSA_IO_XFR_ERROR_DEK_KEY_TAG_MISMATCH, OSSA_IO_XFR_ERROR_DEK_RAM_INTERFACE_ERROR, OSSA_IO_XFR_ERROR_DIF_APPLICATION_TAG_MISMATCH, OSSA_IO_XFR_ERROR_DIF_CRC_MISMATCH, OSSA_IO_XFR_ERROR_DIF_MISMATCH, OSSA_IO_XFR_ERROR_DIF_REFERENCE_TAG_MISMATCH, OSSA_IO_XFR_ERROR_INTERNAL_RAM, OSSA_IO_XFR_ERROR_INVALID_SSP_RSP_FRAME, OSSA_MPI_ERR_IO_RESOURCE_UNAVAILABLE, OSSA_MPI_IO_RQE_BUSY_FULL, OSSA_OFFSET_OF, agsaIORequestDesc_s::pDevice, SA_ASSERT, SA_DBG1, SA_DBG2, SA_DBG3, agsaContext_s::sdkData, siAbnormal(), siDifAbnormal(), siEventSSPResponseWtDataRcvd(), siIODone(), smTraceFuncEnter, smTraceFuncExit, agsaSSPCompletionRsp_s::SSPrsp, status, agsaSSPResponseInfoUnit_s::status, and agsaIORequestDesc_s::valid.

Referenced by mpiParseOBIomb().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mpiSSPEvent()

GLOBAL bit32 mpiSSPEvent ( agsaRoot_t agRoot,
agsaSSPEventRsp_t pIomb 
)

SPC MPI SSP Event.

This function handles the SAS Event.

Parameters
agRootHandles for this instance of SAS/SATA LLL
pIombpointer of Message
Returns
The read value

Definition at line 3706 of file sampirsp.c.

References agsaDifDetails_s::ActualCRCUDT01, agsaDifDetails_s::ActualUDT2345, agNULL, agsaIOErrorEventStats_s::agOSSA_IO_OPEN_CNX_ERROR_BAD_DESTINATION, agsaIOErrorEventStats_s::agOSSA_IO_OPEN_CNX_ERROR_BREAK, agsaIOErrorEventStats_s::agOSSA_IO_OPEN_CNX_ERROR_CONNECTION_RATE_NOT_SUPPORTED, agsaIOErrorEventStats_s::agOSSA_IO_OPEN_CNX_ERROR_IT_NEXUS_LOSS, agsaIOErrorEventStats_s::agOSSA_IO_OPEN_CNX_ERROR_IT_NEXUS_LOSS_NO_DEST, agsaIOErrorEventStats_s::agOSSA_IO_OPEN_CNX_ERROR_IT_NEXUS_LOSS_OPEN_COLLIDE, agsaIOErrorEventStats_s::agOSSA_IO_OPEN_CNX_ERROR_IT_NEXUS_LOSS_OPEN_RETRY_BACKOFF_THRESHOLD_REACHED, agsaIOErrorEventStats_s::agOSSA_IO_OPEN_CNX_ERROR_IT_NEXUS_LOSS_OPEN_TMO, agsaIOErrorEventStats_s::agOSSA_IO_OPEN_CNX_ERROR_IT_NEXUS_LOSS_PATHWAY_BLOCKED, agsaIOErrorEventStats_s::agOSSA_IO_OPEN_CNX_ERROR_PROTOCOL_NOT_SUPPORTED, agsaIOErrorEventStats_s::agOSSA_IO_OPEN_CNX_ERROR_WRONG_DESTINATION, agsaIOErrorEventStats_s::agOSSA_IO_OPEN_CNX_ERROR_ZONE_VIOLATION, agsaIOErrorEventStats_s::agOSSA_IO_OVERFLOW, agsaIOErrorEventStats_s::agOSSA_IO_UNKNOWN_ERROR, agsaIOErrorEventStats_s::agOSSA_IO_XFER_CMD_FRAME_ISSUED, agsaIOErrorEventStats_s::agOSSA_IO_XFER_ERR_EOB_DATA_OVERRUN, agsaIOErrorEventStats_s::agOSSA_IO_XFER_ERROR_ACK_NAK_TIMEOUT, agsaIOErrorEventStats_s::agOSSA_IO_XFER_ERROR_BREAK, agsaIOErrorEventStats_s::agOSSA_IO_XFER_ERROR_CMD_ISSUE_ACK_NAK_TIMEOUT, agsaIOErrorEventStats_s::agOSSA_IO_XFER_ERROR_NAK_RECEIVED, agsaIOErrorEventStats_s::agOSSA_IO_XFER_ERROR_OFFSET_MISMATCH, agsaIOErrorEventStats_s::agOSSA_IO_XFER_ERROR_PHY_NOT_READY, agsaIOErrorEventStats_s::agOSSA_IO_XFER_ERROR_UNEXPECTED_PHASE, agsaIOErrorEventStats_s::agOSSA_IO_XFER_ERROR_XFER_RDY_NOT_EXPECTED, agsaIOErrorEventStats_s::agOSSA_IO_XFER_ERROR_XFER_RDY_OVERRUN, agsaIOErrorEventStats_s::agOSSA_IO_XFER_ERROR_XFER_ZERO_DATA_LEN, agsaIOErrorEventStats_s::agOSSA_IO_XFER_OPEN_RETRY_TIMEOUT, agsaIOErrorEventStats_s::agOSSA_IO_XFER_READ_COMPL_ERR, agsaIOErrorEventStats_s::agOSSA_IO_XFR_ERROR_DEK_KEY_CACHE_MISS, agsaIOErrorEventStats_s::agOSSA_IO_XFR_ERROR_DEK_KEY_TAG_MISMATCH, agsaIOErrorEventStats_s::agOSSA_IO_XFR_ERROR_DIF_APPLICATION_TAG_MISMATCH, agsaIOErrorEventStats_s::agOSSA_IO_XFR_ERROR_DIF_CRC_MISMATCH, agsaIOErrorEventStats_s::agOSSA_IO_XFR_ERROR_DIF_MISMATCH, agsaIOErrorEventStats_s::agOSSA_IO_XFR_ERROR_DIF_REFERENCE_TAG_MISMATCH, agsaIOErrorEventStats_s::agOSSA_IO_XFR_ERROR_INTERNAL_CRC_ERROR, AGSA_RC_FAILURE, AGSA_RC_SUCCESS, DEVICE_ID_BITS, agsaDeviceMap_s::DeviceHandle, agsaLLRoot_s::DeviceMap, agsaDifDetails_s::DIFErrDevID, agsaDifDetails_s::ErrBoffsetEDataLen, agsaDifDetails_s::ExpectedCRCUDT01, agsaDifDetails_s::ExpectedUDT2345, hpDBG_VERY_LOUD, agsaDeviceDesc_s::initiatorDevHandle, agsaLLRoot_s::IoEventCount, agsaLLRoot_s::IOMap, agsaIOMap_s::IORequest, agsaDifDetails_s::LowerLBA, MAX_IO_DEVICE_ENTRIES, OS_ASSERT, OSSA_IO_OPEN_CNX_ERROR_BAD_DESTINATION, OSSA_IO_OPEN_CNX_ERROR_BREAK, OSSA_IO_OPEN_CNX_ERROR_CONNECTION_RATE_NOT_SUPPORTED, OSSA_IO_OPEN_CNX_ERROR_IT_NEXUS_LOSS, OSSA_IO_OPEN_CNX_ERROR_IT_NEXUS_LOSS_NO_DEST, OSSA_IO_OPEN_CNX_ERROR_IT_NEXUS_LOSS_OPEN_COLLIDE, OSSA_IO_OPEN_CNX_ERROR_IT_NEXUS_LOSS_OPEN_RETRY_BACKOFF_THRESHOLD_REACHED, OSSA_IO_OPEN_CNX_ERROR_IT_NEXUS_LOSS_OPEN_TMO, OSSA_IO_OPEN_CNX_ERROR_IT_NEXUS_LOSS_PATHWAY_BLOCKED, OSSA_IO_OPEN_CNX_ERROR_PROTOCOL_NOT_SUPPORTED, OSSA_IO_OPEN_CNX_ERROR_WRONG_DESTINATION, OSSA_IO_OPEN_CNX_ERROR_ZONE_VIOLATION, OSSA_IO_OVERFLOW, OSSA_IO_XFER_CMD_FRAME_ISSUED, OSSA_IO_XFER_ERR_EOB_DATA_OVERRUN, OSSA_IO_XFER_ERROR_ACK_NAK_TIMEOUT, OSSA_IO_XFER_ERROR_BREAK, OSSA_IO_XFER_ERROR_CMD_ISSUE_ACK_NAK_TIMEOUT, OSSA_IO_XFER_ERROR_NAK_RECEIVED, OSSA_IO_XFER_ERROR_OFFSET_MISMATCH, OSSA_IO_XFER_ERROR_PHY_NOT_READY, OSSA_IO_XFER_ERROR_UNEXPECTED_PHASE, OSSA_IO_XFER_ERROR_XFER_RDY_NOT_EXPECTED, OSSA_IO_XFER_ERROR_XFER_RDY_OVERRUN, OSSA_IO_XFER_ERROR_XFER_ZERO_DATA_LEN, OSSA_IO_XFER_OPEN_RETRY_TIMEOUT, OSSA_IO_XFER_READ_COMPL_ERR, OSSA_IO_XFR_ERROR_DEK_KEY_CACHE_MISS, OSSA_IO_XFR_ERROR_DEK_KEY_TAG_MISMATCH, OSSA_IO_XFR_ERROR_DIF_APPLICATION_TAG_MISMATCH, OSSA_IO_XFR_ERROR_DIF_CRC_MISMATCH, OSSA_IO_XFR_ERROR_DIF_MISMATCH, OSSA_IO_XFR_ERROR_DIF_REFERENCE_TAG_MISMATCH, OSSA_IO_XFR_ERROR_INTERNAL_CRC_ERROR, OSSA_OFFSET_OF, ossaSSPEvent(), PCI_TRIGGER_OFFSET_MISMATCH, agsaIORequestDesc_s::pIORequestContext, agsaPortMap_s::PortContext, agsaPortMap_s::PortID, PORTID_MASK, agsaLLRoot_s::PortMap, agsaPortMap_s::PortStatus, SA_ASSERT, SA_DBG1, SA_DBG2, SA_DBG3, agsaDifDetails_s::sasAddressHi, agsaDifDetails_s::sasAddressLo, agsaContext_s::sdkData, siPCITriger(), smTraceFuncEnter, smTraceFuncExit, SSPTAG_BITS, agsaLLRoot_s::swConfig, agsaDeviceDesc_s::targetDevHandle, and agsaDifDetails_s::UpperLBA.

Referenced by mpiParseOBIomb().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mpiSSPReqReceivedNotify()

GLOBAL bit32 mpiSSPReqReceivedNotify ( agsaRoot_t agRoot,
agsaSSPReqReceivedNotify_t pMsg1 
)

SPC MPI SSP Request Received Event (target mode)

This function handles the SSP Request Received Event.

Parameters
agRootHandles for this instance of SAS/SATA LLL
pMsg1pointer of Message
Returns
The read value

Definition at line 5291 of file sampirsp.c.

References agNULL, AGSA_RC_SUCCESS, DEVICE_ID_BITS, agsaDeviceMap_s::DeviceHandle, agsaLLRoot_s::DeviceMap, FRAME_TYPE, hpDBG_VERY_LOUD, agsaDeviceDesc_s::initiatorDevHandle, INITTAG_BITS, OSSA_OFFSET_OF, ossaSSPReqReceived(), SA_ASSERT, SA_DBG1, agsaContext_s::sdkData, SHIFT16, SHIFT24, smTraceFuncEnter, smTraceFuncExit, agsaSSPReqReceivedNotify_s::SSPIu, SSPIUL_BITS, agsaDeviceDesc_s::targetDevHandle, and TLR_BITS.

Referenced by mpiParseOBIomb().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mpiUnInitConfigTable()

◆ mpiUpdateFatalErrorTable()

GLOBAL void mpiUpdateFatalErrorTable ( agsaRoot_t agRoot,
bit32  FerrTableOffset,
bit32  lowerBaseAddress,
bit32  upperBaseAddress,
bit32  length,
bit8  pcibar 
)

◆ mpiUpdateIBQueueCfgTable()

GLOBAL void mpiUpdateIBQueueCfgTable ( agsaRoot_t agRoot,
spc_inboundQueueDescriptor_t inQueueCfg,
bit32  QueueTableOffset,
bit8  pcibar 
)

Writing to the inbound queue of the Configuration Table.

Parameters
agsaRootPointer to a data structure containing both application and LL layer context handles
outQueueCfgPointer to inbuond configuration area
QueueTableOffsetQueue configuration table offset
pcibarPCI BAR

Return: None

Definition at line 3545 of file sainit.c.

References spc_inboundQueueDescriptor_s::ciLowerBaseAddress, spc_inboundQueueDescriptor_s::ciUpperBaseAddress, spc_inboundQueueDescriptor_s::elementPriSizeCount, hpDBG_VERY_LOUD, IB_BASE_ADDR_HI_OFFSET, IB_BASE_ADDR_LO_OFFSET, IB_CI_BASE_ADDR_HI_OFFSET, IB_CI_BASE_ADDR_LO_OFFSET, IB_PROPERITY_OFFSET, spc_inboundQueueDescriptor_s::lowerBaseAddress, ossaHwRegWriteExt(), SA_DBG3, smTrace, smTraceFuncEnter, smTraceFuncExit, and spc_inboundQueueDescriptor_s::upperBaseAddress.

Referenced by mpiInitialize().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mpiUpdateOBQueueCfgTable()

GLOBAL void mpiUpdateOBQueueCfgTable ( agsaRoot_t agRoot,
spc_outboundQueueDescriptor_t outQueueCfg,
bit32  QueueTableOffset,
bit8  pcibar 
)

Writing to the inbound queue of the Configuration Table.

Parameters
agsaRootPointer to a data structure containing both application and LL layer context handles
outQueueCfgPointer to outbuond configuration area
QueueTableOffsetQueue configuration table offset
pcibarPCI BAR

Return: None

Definition at line 3587 of file sainit.c.

References spc_outboundQueueDescriptor_s::elementSizeCount, hpDBG_VERY_LOUD, spc_outboundQueueDescriptor_s::interruptVecCntDelay, spc_outboundQueueDescriptor_s::lowerBaseAddress, OB_BASE_ADDR_HI_OFFSET, OB_BASE_ADDR_LO_OFFSET, OB_INTERRUPT_COALES_OFFSET, OB_PI_BASE_ADDR_HI_OFFSET, OB_PI_BASE_ADDR_LO_OFFSET, OB_PROPERITY_OFFSET, ossaHwRegWriteExt(), spc_outboundQueueDescriptor_s::piLowerBaseAddress, spc_outboundQueueDescriptor_s::piUpperBaseAddress, SA_DBG3, smTraceFuncEnter, smTraceFuncExit, and spc_outboundQueueDescriptor_s::upperBaseAddress.

Referenced by mpiInitialize().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mpiVHistCapCmd()

◆ mpiWaitForConfigTable()

GLOBAL bit32 mpiWaitForConfigTable ( agsaRoot_t agRoot,
spc_configMainDescriptor_t config 
)

Reading and Writing the Configuration Table.

Parameters
agsaRootPointer to a data structure containing LL layer context handles
configPointer to Configuration Table

Return: AGSA_RC_SUCCESS if read the configuration table from SPC sucessful AGSA_RC_FAILURE if read the configuration table from SPC failed

Definition at line 2904 of file sainit.c.

References agNULL, AGSA_RC_FAILURE, AGSA_RC_SUCCESS, AGSA_RC_VERSION_INCOMPATIBLE, AGSA_RC_VERSION_UNTESTED, mpiHostLLConfigDescriptor_s::analogSetupTblOffset, spc_configMainDescriptor_s::analogSetupTblOffset, BAR4, BAR5, spc_configMainDescriptor_s::ContrlCapFlag, agsaLLRoot_s::ControllerInfo, agsaControllerInfo_s::controllerSetting, mpiHostLLConfigDescriptor_s::FatalErrorDumpLength0, spc_configMainDescriptor_s::FatalErrorDumpLength0, mpiHostLLConfigDescriptor_s::FatalErrorDumpLength1, spc_configMainDescriptor_s::FatalErrorDumpLength1, mpiHostLLConfigDescriptor_s::FatalErrorDumpOffset0, spc_configMainDescriptor_s::FatalErrorDumpOffset0, mpiHostLLConfigDescriptor_s::FatalErrorDumpOffset1, spc_configMainDescriptor_s::FatalErrorDumpOffset1, agsaControllerInfo_s::fwInterfaceRev, agsaControllerInfo_s::fwRevision, spc_configMainDescriptor_s::FWRevision, GEN_MSGU_SCRATCH_PAD_0, GEN_MSGU_SCRATCH_PAD_1, GEN_MSGU_SCRATCH_PAD_2, GEN_MSGU_SCRATCH_PAD_3, spc_configMainDescriptor_s::GSTOffset, gWait_2, mpiHostLLConfigDescriptor_s::HDAModeFlags, spc_configMainDescriptor_s::HDAModeFlags, hpDBG_VERY_LOUD, agsaControllerInfo_s::hwRevision, agsaControllerInfo_s::ilaRevision, spc_configMainDescriptor_s::ilaRevision, spc_configMainDescriptor_s::inboundQueueOffset, spc_configMainDescriptor_s::InterfaceRev, mpiHostLLConfigDescriptor_s::InterruptVecTblOffset, spc_configMainDescriptor_s::InterruptVecTblOffset, MAIN_ANALOG_SETUP_OFFSET, MAIN_AWT_MIDRANGE, MAIN_CNTRL_CAP_OFFSET, MAIN_FATAL_ERROR_RDUMP0_LENGTH, MAIN_FATAL_ERROR_RDUMP0_OFFSET, MAIN_FATAL_ERROR_RDUMP1_LENGTH, MAIN_FATAL_ERROR_RDUMP1_OFFSET, MAIN_FW_REVISION, MAIN_GST_OFFSET, MAIN_HDA_FLAGS_OFFSET, MAIN_IBQ_OFFSET, MAIN_ILAT_ILAV_ILASMRN_ILAMRN_ILAMJN, MAIN_INACTIVE_ILA_REVSION, MAIN_INT_VEC_TABLE_OFFSET, MAIN_INTERFACE_REVISION, MAIN_MAX_OUTSTANDING_IO_OFFSET, MAIN_MAX_SGL_OFFSET, MAIN_OBQ_OFFSET, MAIN_PHY_ATTRIBUTE_OFFSET, MAIN_SEEPROM_REVSION, agsaLLRoot_s::mainConfigTable, MAKE_MODULO, MATCHING_12G_V_FW_VERSION, MATCHING_SPC_FW_VERSION, MATCHING_V_FW_VERSION, MAX_DEV_BITS, agsaSwConfig_s::maxActiveIOs, agsaControllerInfo_s::maxDevices, spc_configMainDescriptor_s::MaxOutstandingIO, agsaControllerInfo_s::maxPendingIO, agsaControllerInfo_s::maxSgElements, spc_configMainDescriptor_s::MDevMaxSGL, MIN_FW_12G_SPCVE_VERSION_SUPPORTED, MIN_FW_SPC_VERSION_SUPPORTED, MIN_FW_SPCVE_VERSION_SUPPORTED, mpiGetPCIBarIndex(), MSGU_SCRATCH_PAD_0, MSGU_SCRATCH_PAD_1, MSGU_SCRATCH_PAD_2, MSGU_SCRATCH_PAD_3, NULL, ossaHwRegReadConfig32(), ossaHwRegReadExt(), ossaStallThread(), spc_configMainDescriptor_s::outboundQueueOffset, PHY_COUNT_BITS, mpiHostLLConfigDescriptor_s::phyAttributeTblOffset, spc_configMainDescriptor_s::phyAttributeTblOffset, agsaControllerInfo_s::phyCount, spc_configMainDescriptor_s::portRecoveryResetTimer, mpiHostLLConfigDescriptor_s::PortRecoveryTimerPortResetTimer, Q_SUPPORT_BITS, agsaControllerInfo_s::queueSupport, mpiHostLLConfigDescriptor_s::regDumpPCIBAR, SA_ASSERT, SA_DBG1, SA_DBG2, SAS_SPEC_BITS, agsaControllerInfo_s::sasSpecsSupport, SCRATCH_PAD0_BAR_MASK, SCRATCH_PAD0_OFFSET_MASK, SCRATCH_PAD1_ERR, SCRATCH_PAD1_RDY, SCRATCH_PAD1_STATE_MASK, SCRATCH_PAD1_V_BOOTSTATE_HDA_SEEPROM, SCRATCH_PAD1_V_READY, SCRATCH_PAD2_ERR, SCRATCH_PAD2_RDY, SCRATCH_PAD2_STATE_MASK, SCRATCH_PAD_STATE_MASK, agsaContext_s::sdkData, agsaControllerInfo_s::sdkInterfaceRev, agsaControllerInfo_s::sdkRevision, SHIFT16, SHIFT19, SHIFT24, SHIFT25, SHIFT26, SHIFT8, si_memcpy(), Signature, agsaControllerInfo_s::signature, spc_configMainDescriptor_s::Signature, siHalRegReadExt(), smIS_SFC, smIS_SPC(), smIS_SPC12V(), smIS_SPC6V(), smIS_spc8081, smIS_SPCV(), smTraceFuncEnter, smTraceFuncExit, SPC_READ_DEV_REV, STSDK_LL_12G_INTERFACE_VERSION, STSDK_LL_12G_VERSION, STSDK_LL_INTERFACE_VERSION, STSDK_LL_INTERFACE_VERSION_IGNORE_MASK, STSDK_LL_OLD_INTERFACE_VERSION, STSDK_LL_SPC_VERSION, STSDK_LL_VERSION, agsaLLRoot_s::swConfig, WAIT_INCREMENT, and WAIT_SECONDS.

Referenced by mpiInitialize(), and siSpcSoftReset().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mpiWrAnalogSetupTable()

◆ mpiWrIntVecTable()

◆ mpiWriteCALAll()

GLOBAL void mpiWriteCALAll ( agsaRoot_t agRoot,
agsaPhyAnalogSetupTable_t mpiCALTable 
)

Writing the Phy Analog Setup Register Table.

Parameters
agsaRootHandles for this instance of SAS/SATA LLL
mpiCALTablePointer of Phy Calibration Table

Return: None

Definition at line 4175 of file sainit.c.

References hpDBG_VERY_LOUD, MAX_INDEX, mpiWriteCALTable(), agsaPhyAnalogSetupTable_s::phyAnalogSetupRegisters, smIS_SPCV(), smTraceFuncEnter, and smTraceFuncExit.

Referenced by mpiInitialize().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mpiWriteCALTable()

◆ mpiWrPhyAttrbTable()

◆ si_check_V_HDA()

GLOBAL bit32 si_check_V_HDA ( agsaRoot_t agRoot)

Definition at line 4486 of file sainit.c.

References AGSA_RC_HDA_NO_FW_RUNNING, AGSA_RC_SUCCESS, ossaHwRegReadExt(), PCIBAR0, SA_DBG1, SPC_V_HDA_RESPONSE_OFFSET, SPC_V_HDAR_IDLE, and SPC_V_HDAR_RSPCODE_MASK.

Referenced by saGetControllerInfo(), and saGetControllerStatus().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ si_check_V_Ready()

GLOBAL bit32 si_check_V_Ready ( agsaRoot_t agRoot)

Definition at line 4505 of file sainit.c.

References AGSA_RC_FAILURE, AGSA_RC_SUCCESS, MAKE_MODULO, MSGU_SCRATCH_PAD_1, ossaHwRegReadExt(), ossaStallThread(), PCIBAR0, SA_DBG1, SCRATCH_PAD1_V_ILA_MASK, SCRATCH_PAD1_V_IOP0_MASK, SCRATCH_PAD1_V_IOP1_MASK, SCRATCH_PAD1_V_RAAE_MASK, and WAIT_INCREMENT.

Referenced by saGetControllerStatus().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ si_macro_check()

void si_macro_check ( agsaRoot_t agRoot)

◆ si_memcpy()

◆ si_memset()

GLOBAL FORCEINLINE void * si_memset ( void *  s,
int  c,
bit32  n 
)

memset

Parameters
charvalue
Returns
-void-

Definition at line 104 of file sautil.c.

Referenced by mpiBistRsp(), mpiDekManagementRsp(), mpiDeregDevHandleCmd(), mpiDevHandleAcceptCmd(), mpiDeviceHandleArrived(), mpiDifEncOffloadRsp(), mpiDIFEncryptionOffloadCmd(), mpiGeneralEventRsp(), mpiGetControllerConfigRsp(), mpiGetDeviceHandleCmd(), mpiGetDeviceInfoCmd(), mpiGetDeviceStateCmd(), mpiGetDevInfoRsp(), mpiGetNVMDCmd(), mpiGetOperatorRsp(), mpiGetPhyProfileCmd(), mpiGPIORsp(), mpiHWevent(), mpiInitialize(), mpiKekManagementRsp(), mpiLocalPhyControlCmd(), mpiNVMReadRegDumpCmd(), mpiOperatorManagementRsp(), mpiPCIeDiagExecuteRsp(), mpiPhyStartCmd(), mpiPhyStopCmd(), mpiSasReinitializeCmd(), mpiSetControllerConfigRsp(), mpiSetDeviceInfoCmd(), mpiSetDeviceStateCmd(), mpiSetNVMDCmd(), mpiSetPhyProfileCmd(), mpiVHistCapCmd(), saEncryptDekCacheInvalidate(), saEncryptDekCacheUpdate(), saEncryptKekInvalidate(), saEncryptKekUpdate(), saEncryptSelftestExecute(), saEncryptSetMode(), saFlashExtExecute(), saGetControllerConfig(), saGetControllerInfo(), saGetControllerStatus(), saGetDFEData(), saGetIOErrorStats(), saGetIOEventStats(), saGetOperator(), saGetPhyProfile(), saGetRequirements(), saGetTimeStamp(), saGpioEventSetup(), saGpioPinSetup(), saGpioRead(), saGpioWrite(), saHwEventAck(), saHwReset(), saInitialize(), saLocalPhyControl(), saOperatorManagement(), saPCIeDiagExecute(), saPortControl(), saRegisterNewDevice(), saSASDiagExecute(), saSASDiagStartEnd(), saSATAStart(), saSendSMPIoctl(), saSetControllerConfig(), saSetOperator(), saSgpio(), saSMPStart(), saSSPStart(), siConfiguration(), siDifAbnormal(), siFatalInterruptHandler(), siInitResources(), siNonFatalErrorBuffer(), and siProcessOBMsg().

◆ siAbnormal()

◆ siBar4Shift()

GLOBAL bit32 siBar4Shift ( agsaRoot_t agRoot,
bit32  shiftValue 
)

Function to do BAR shifting.

The siBarShift() function is called to shift BAR base address

Parameters
agRoothandles for this instance of SAS/SATA hardware
shiftValueshifting value
Returns
success or fail

Definition at line 1333 of file sahw.c.

References AGSA_RC_FAILURE, AGSA_RC_SUCCESS, hpDBG_VERY_LOUD, MAKE_MODULO, ossaHwRegReadExt(), ossaHwRegWriteExt(), ossaStallThread(), PCIBAR0, PCIBAR1, SA_DBG1, SA_DBG2, smIS_SPC(), smIS_SPCV(), smTrace, smTraceFuncEnter, smTraceFuncExit, SPC_IBW_AXI_TRANSLATION_LOW, V_MEMBASE_II_ShiftRegister, WAIT_INCREMENT, and WAIT_SECONDS.

Referenced by mpiInitialize(), saInitialize(), saLocalPhyControl(), siGetForensicData(), siGSMDump(), siSpcSoftReset(), and siSpcSoftResetRDYChk().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ siCheckQs()

◆ siChipReset()

GLOBAL void siChipReset ( agsaRoot_t agRoot)

Generic Reset.

The siChipReset() function is called to reset the SPC chip. Upon return, the SPC chip got reset. The PCIe bus got reset.

Parameters
agRoothandles for this instance of SAS/SATA hardware
Returns
-void-

Definition at line 528 of file sahw.c.

References agNULL, hpDBG_VERY_LOUD, SA_ASSERT, SA_DBG1, agsaContext_s::sdkData, siChipResetSpc(), siChipResetV(), smIS_SPC(), smTraceFuncEnter, smTraceFuncExit, and SPC_SOFT_RESET_SIGNATURE.

Referenced by saHwReset().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ siChipResetSpc()

GLOBAL void siChipResetSpc ( agsaRoot_t agRoot)

Function to Reset the SPC Hardware.

The siChipResetSpc() function is called to reset the SPC chip. Upon return, the SPC chip got reset. The PCIe bus got reset.

Parameters
agRoothandles for this instance of SAS/SATA hardware
Returns
-void-

Definition at line 835 of file sahw.c.

References hpDBG_VERY_LOUD, ossaHwRegReadExt(), ossaHwRegWriteExt(), ossaStallThread(), PCIBAR2, SA_DBG1, smTraceFuncEnter, smTraceFuncExit, SPC_REG_RESET, SPC_REG_RESET_DEVICE, and WAIT_INCREMENT.

Referenced by siChipReset().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ siChipResetV()

◆ siClearActiveIORequests()

GLOBAL void siClearActiveIORequests ( agsaRoot_t agRoot)

saCountActiveIORequests

Parameters
charvalue
Returns
-void-

Definition at line 214 of file sautil.c.

References agFALSE, agNULL, AGSAMEM_ELEMENT_READ, agTRUE, agsaLLRoot_s::IORequestMem, agsaSwConfig_s::maxActiveIOs, SA_ASSERT, SA_DBG1, agsaContext_s::sdkData, agsaLLRoot_s::swConfig, and agsaIORequestDesc_s::valid.

◆ siClearActiveIORequestsOnDevice()

GLOBAL void siClearActiveIORequestsOnDevice ( agsaRoot_t agRoot,
bit32  device 
)

◆ siConfiguration()

GLOBAL bit32 siConfiguration ( agsaRoot_t agRoot,
mpiConfig_t mpiConfig,
agsaHwConfig_t hwConfig,
agsaSwConfig_t swConfig 
)

Routine to do SPC configuration with default or specified values.

Set up configuration table in LL Layer

Parameters
agRoothandles for this instance of SAS/SATA hardware
mpiConfigMPI Configuration
swConfigPointer to the software configuration
Returns
-void-

Definition at line 1556 of file sainit.c.

References agNULL, AGSA_MAX_INBOUND_Q, AGSA_MAX_OUTBOUND_Q, AGSA_RC_FAILURE, AGSA_RC_SUCCESS, mpiHostLLConfigDescriptor_s::custset, agsaSwConfig_s::disableMDF, agsaQueueInbound_s::elementCount, agsaQueueOutbound_s::elementCount, agsaQueueInbound_s::elementSize, agsaQueueOutbound_s::elementSize, mpiInboundQueueDescriptor_s::elementSize, mpiOutboundQueueDescriptor_s::elementSize, agsaSwConfig_s::eventLog1Option, agsaSwConfig_s::eventLog2Option, mpiHostLLConfigDescriptor_s::eventLogOption, mpiHostLLConfigDescriptor_s::eventLogSize, FATAL_ERROR_INT_BITS, mpiHostLLConfigDescriptor_s::FatalErrorInterrupt, agsaSwConfig_s::fatalErrorInterruptEnable, agsaSwConfig_s::fatalErrorInterruptVector, agsaSwConfig_s::FWConfig, agsaQueueConfig_s::generalEventQueue, hpDBG_VERY_LOUD, HW_CFG_PICI_EFFECTIVE_ADDRESS, agsaHwConfig_s::hwOption, INBOUND_DEPTH_SIZE, agsaQueueConfig_s::inboundQueues, mpiConfig_s::inboundQueues, INT_OPTION, agsaQueueOutbound_s::interruptCount, agsaQueueOutbound_s::interruptDelay, mpiOutboundQueueDescriptor_s::interruptDelay, agsaQueueOutbound_s::interruptEnable, mpiOutboundQueueDescriptor_s::interruptEnable, mpiOutboundQueueDescriptor_s::interruptThreshold, mpiOutboundQueueDescriptor_s::interruptVector, agsaQueueOutbound_s::interruptVectorIndex, agsaHwConfig_s::intReassertionOption, mpiHostLLConfigDescriptor_s::ioAbortDelay, IOMB_SIZE64, mpiHostLLConfigDescriptor_s::IOPeventLogOption, mpiHostLLConfigDescriptor_s::IOPeventLogSize, IQ_NUM_32, agsaQueueConfig_s::iqHighPriorityProcessingDepth, agsaQueueConfig_s::iqNormalPriorityProcessingDepth, mpiHostLLConfigDescriptor_s::iQNPPD_HPPD_GEvent, KBYTES, mpiHostLLConfigDescriptor_s::lowerEventLogAddress, mpiHostLLConfigDescriptor_s::lowerIOPeventLogAddress, mpiConfig_s::mainConfig, mpiConfig_s::maxNumInboundQueues, mpiConfig_s::maxNumOutboundQueues, MPI_LOGSIZE, MPI_QUEUE_NORMAL, mpiInboundQueueDescriptor_s::numElements, mpiOutboundQueueDescriptor_s::numElements, agsaQueueConfig_s::numInboundQueues, mpiConfig_s::numInboundQueues, agsaQueueConfig_s::numOutboundQueues, mpiConfig_s::numOutboundQueues, OQ_NUM_32, OUTBOUND_DEPTH_SIZE, mpiHostLLConfigDescriptor_s::outboundHWEventPID0_3, mpiHostLLConfigDescriptor_s::outboundHWEventPID4_7, mpiHostLLConfigDescriptor_s::outboundNCQEventPID0_3, mpiHostLLConfigDescriptor_s::outboundNCQEventPID4_7, agsaQueueConfig_s::outboundQueues, mpiConfig_s::outboundQueues, mpiHostLLConfigDescriptor_s::outboundTargetITNexusEventPID0_3, mpiHostLLConfigDescriptor_s::outboundTargetITNexusEventPID4_7, mpiHostLLConfigDescriptor_s::outboundTargetSSPEventPID0_3, mpiHostLLConfigDescriptor_s::outboundTargetSSPEventPID4_7, agsaSwConfig_s::param3, agsaSwConfig_s::PortRecoveryResetTimer, mpiHostLLConfigDescriptor_s::PortRecoveryTimerPortResetTimer, agsaQueueInbound_s::priority, mpiInboundQueueDescriptor_s::priority, agsaQueueConfig_s::queueOption, mpiConfig_s::queueOption, SA_ARBTE, SA_ASSERT, SA_DBG1, SA_DBG2, SA_MDFD_MULTI_DATA_FETCH, SA_OUTBOUND_COALESCE, SA_PTNFE_POISION_TLP, agsaQueueConfig_s::sasHwEventQueue, agsaQueueConfig_s::sataNCQErrorEventQueue, agsaSwConfig_s::sgpioSupportEnable, SHIFT1, SHIFT16, SHIFT17, SHIFT2, SHIFT24, SHIFT3, SHIFT4, SHIFT5, SHIFT6, SHIFT8, si_memset(), agsaSwConfig_s::sizefEventLog1, agsaSwConfig_s::sizefEventLog2, smIS_SPCV(), smTraceFuncEnter, smTraceFuncExit, agsaQueueConfig_s::tgtDeviceRemovedEventQueue, mpiHostLLConfigDescriptor_s::upperEventLogAddress, and mpiHostLLConfigDescriptor_s::upperIOPeventLogAddress.

Referenced by saGetRequirements(), and saInitialize().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ siCountActiveIORequestsOnDevice()

GLOBAL void siCountActiveIORequestsOnDevice ( agsaRoot_t agRoot,
bit32  device 
)

◆ siDifAbnormal()

GLOBAL void siDifAbnormal ( agsaRoot_t agRoot,
agsaIORequestDesc_t pRequest,
bit32  status,
bit32  param,
bit32  sspTag,
bit32 pMsg1 
)

Routine to handle abnormal DIF completed IO/SMP event.

Handle abnormal completed IO/SMP

Parameters
agRoothandles for this instance of SAS/SATA hardware
pRequestPointer of IO request of the IO
statusstatus of the IO
paramLength
Returns
-void-

Definition at line 1845 of file saint.c.

References agsaDifDetails_s::ActualCRCUDT01, agsaDifDetails_s::ActualUDT2345, agsaIOMap_s::agContext, agFALSE, agNULL, AGSA_REQTYPE_MASK, AGSA_SSP_REQTYPE, agTRUE, agsaIORequestDesc_s::completionCB, agsaDifDetails_s::DIFErrDevID, agsaDifDetails_s::ErrBoffsetEDataLen, agsaDifDetails_s::ExpectedCRCUDT01, agsaDifDetails_s::ExpectedUDT2345, agsaDifDetails_s::frame, agsaLLRoot_s::freeIORequests, agsaLLRoot_s::freeReservedRequests, hpDBG_VERY_LOUD, agsaIORequestDesc_s::HTag, agsaLLRoot_s::IOMap, agsaIOMap_s::IORequest, agsaIORequestDesc_s::linkNode, LL_IOREQ_LOCKEQ_LOCK, agsaDifDetails_s::LowerLBA, MARK_OFF, OSSA_OFFSET_OF, ossaSingleThreadedEnter(), ossaSingleThreadedLeave(), agsaIORequestDesc_s::pDevice, agsaDeviceDesc_s::pendingIORequests, agsaIORequestDesc_s::pIORequestContext, agsaIORequestDesc_s::requestType, SA_DBG1, SA_RESERVED_REQUEST_COUNT, saLlistIOAdd, saLlistIOGetCount, saLlistIORemove, agsaDifDetails_s::sasAddressHi, agsaDifDetails_s::sasAddressLo, agsaContext_s::sdkData, si_memset(), smTrace, smTraceFuncEnter, smTraceFuncExit, SSP_AGR_S_BIT, SSPTAG_BITS, status, agsaIOMap_s::Tag, agsaDifDetails_s::UpperLBA, and agsaIORequestDesc_s::valid.

Referenced by mpiSSPCompletion().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ siDisableLegacy_V_Interrupts()

void siDisableLegacy_V_Interrupts ( agsaRoot_t agRoot,
bit32  interruptVectorIndex 
)

Function to process Legacy V interrupts.

siDisableLegacyInterrupts disables interrupts called thru macro ossaDisableInterrupts

Parameters
agRootOS Layer-specific and LL Layer-specific context handles for this instance of SAS/SATA hardware
interruptVectorIndexnot used in legacy case

Definition at line 603 of file saint.c.

References agsabit32bit64_U::B64, GEN_MSGU_ODMR, GEN_MSGU_ODR, ossaHwRegWriteExt(), PCIBAR0, agsabit32bit64_U::S32, SA_DBG4, siHalRegReadExt(), smIS64bInt, V_Outbound_Doorbell_Mask_Set_Register, V_Outbound_Doorbell_Mask_Set_RegisterU, and V_Outbound_Doorbell_Set_Register.

Referenced by saInitialize().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ siDisableLegacyInterrupts()

void siDisableLegacyInterrupts ( agsaRoot_t agRoot,
bit32  interruptVectorIndex 
)

Function to process Legacy interrupts.

siDisableLegacyInterrupts disables interrupts called thru macro ossaDisableInterrupts

Parameters
agRootOS Layer-specific and LL Layer-specific context handles for this instance of SAS/SATA hardware
interruptVectorIndexnot used in legacy case

Definition at line 580 of file saint.c.

References MSGU_ODCR, MSGU_ODMR, ODCR_CLEAR_ALL, ODMR_MASK_ALL, and ossaHwRegWrite().

Referenced by saInitialize().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ siDisableMSI_V_Interrupts()

void siDisableMSI_V_Interrupts ( agsaRoot_t agRoot,
bit32  interruptVectorIndex 
)

Function to disable MSI V interrupts.

siDisableMSIInterrupts disables interrupts called thru macro ossaDisableInterrupts

Parameters
agRootOS Layer-specific and LL Layer-specific context handles for this instance of SAS/SATA hardware
interruptVectorIndex- vector index for message

Definition at line 559 of file saint.c.

References SA_ASSERT, and SA_DBG4.

◆ siDisableMSIInterrupts()

void siDisableMSIInterrupts ( agsaRoot_t agRoot,
bit32  interruptVectorIndex 
)

Function to disable MSI interrupts.

siDisableMSIInterrupts disables interrupts called thru macro ossaDisableInterrupts

Parameters
agRootOS Layer-specific and LL Layer-specific context handles for this instance of SAS/SATA hardware
interruptVectorIndex- vector index for message

Definition at line 531 of file saint.c.

References MSGU_ODCR, MSGU_ODMR, ossaHwRegRead(), and ossaHwRegWrite().

Referenced by saInitialize().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ siDisableMSIX_V_Interrupts()

void siDisableMSIX_V_Interrupts ( agsaRoot_t agRoot,
bit32  interruptVectorIndex 
)

Function to disable MSIX V interrupts.

siDisableMSIXInterrupts disables interrupts called thru macro ossaDisableInterrupts

Parameters
agRootOS Layer-specific and LL Layer-specific context handles for this instance of SAS/SATA hardware
interruptVectorIndex- vector index for message

Definition at line 503 of file saint.c.

References agsabit32bit64_U::B64, ossaHwRegWriteExt(), PCIBAR0, agsabit32bit64_U::S32, SA_DBG4, smIS64bInt, V_Outbound_Doorbell_Mask_Set_Register, and V_Outbound_Doorbell_Mask_Set_RegisterU.

Referenced by saInitialize().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ siDisableMSIXInterrupts()

void siDisableMSIXInterrupts ( agsaRoot_t agRoot,
bit32  interruptVectorIndex 
)

Function to disable MSIX interrupts.

siDisableMSIXInterrupts disables interrupts called thru macro ossaDisableInterrupts

Parameters
agRootOS Layer-specific and LL Layer-specific context handles for this instance of SAS/SATA hardware
interruptVectorIndex- vector index for message

Definition at line 473 of file saint.c.

References MSGU_ODCR, MSIX_INTERRUPT_DISABLE, MSIX_TABLE_BASE, MSIX_TABLE_ELEMENT_SIZE, ossaHwRegRead(), and ossaHwRegWrite().

Referenced by saInitialize().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ siDumpActiveIORequests()

◆ siEventPhyUpRcvd()

GLOBAL void siEventPhyUpRcvd ( agsaRoot_t agRoot,
bit32  phyId,
agsaSASIdentify_t agSASIdentify,
bit32  portId,
bit32  npipps,
bit8  linkRate 
)

Routine to handle for received Phy Up event.

The handle for received Phy Up event

Parameters
agRoothandles for this instance of SAS/SATA hardware
phyIdfor the Phy Up event happened
agSASIdentifyis the remote phy Identify
portIdis the port context index of the phy up event
deviceIdis the device context index
linkRatelink up rate from SPC
Returns
-void-

Definition at line 2069 of file saint.c.

References agNULL, agTRUE, agsaLLRoot_s::freePorts, hpDBG_VERY_LOUD, agsaPort_s::linkNode, LL_PORT_LOCK, agsaContext_s::osData, OSSA_HW_EVENT_SAS_PHY_UP, OSSA_PORT_VALID, ossaHwCB(), ossaSingleThreadedEnter(), ossaSingleThreadedLeave(), PHY_IN_PORT_MASK, PHY_STATUS_SET, PHY_UP, agsaPort_s::phyMap, agsaLLRoot_s::phys, PORT_STATE_MASK, agsaPort_s::portContext, agsaPortMap_s::PortContext, agsaPort_s::portId, agsaPortMap_s::PortID, PORTID_MASK, agsaLLRoot_s::PortMap, agsaPortMap_s::PortStatus, agsaPhy_s::pPort, SA_DBG1, SA_DBG2, SA_DBG3, saLlistAdd, saLlistGetHead, saLlistRemove, agsaContext_s::sdkData, SHIFT16, SHIFT8, smIS_SPCV8006, smTraceFuncEnter, smTraceFuncExit, agsaPort_s::status, and agsaLLRoot_s::validPorts.

Referenced by mpiHWevent().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ siEventSATAResponseWtDataRcvd()

GLOBAL void siEventSATAResponseWtDataRcvd ( agsaRoot_t agRoot,
agsaIORequestDesc_t pRequest,
bit32 agFirstDword,
bit32 pResp,
bit32  lengthResp 
)

Routine to handle for received SATA with data payload event.

The handle for received SATA with data payload event

Parameters
agRoothandles for this instance of SAS/SATA hardware
pRequestthe IO request descriptor
agFirstDwordpointer to the first Dword
pResppointer to the rest of SATA response
lengthResptotal length of SATA Response frame
Returns
-void-

Definition at line 859 of file sasata.c.

References agFALSE, agTRUE, agsaIORequestDesc_s::completionCB, agsaLLRoot_s::freeIORequests, hpDBG_VERY_LOUD, agsaIORequestDesc_s::linkNode, LL_IOREQ_LOCKEQ_LOCK, OSSA_IO_SUCCESS, ossaSingleThreadedEnter(), ossaSingleThreadedLeave(), agsaIORequestDesc_s::pDevice, agsaDeviceDesc_s::pendingIORequests, agsaIORequestDesc_s::pIORequestContext, saLlistIOAdd, saLlistIORemove, agsaContext_s::sdkData, smTraceFuncEnter, smTraceFuncExit, and agsaIORequestDesc_s::valid.

Referenced by mpiSATACompletion().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ siEventSATASignatureRcvd()

GLOBAL void siEventSATASignatureRcvd ( agsaRoot_t agRoot,
bit32  phyId,
void *  pMsg,
bit32  portId,
bit32  npipps,
bit8  linkRate 
)

Routine to handle for received SATA signature event.

The handle for received SATA signature event

Parameters
agRoothandles for this instance of SAS/SATA hardware
phyIdthe phy id of the phy received the frame
pMsgthe pointer to the message payload
portIdthe port context index of the phy up event
deviceIdthe device context index
linkRatelink up rate from SPC
Returns
-void-

Definition at line 2200 of file saint.c.

References agNULL, agTRUE, agsaFisRegDeviceToHost_s::d, agsaFisRegD2HData_s::device, agsaFisRegD2HHeader_s::error, agsaFisRegD2HHeader_s::fisType, agsaLLRoot_s::freePorts, agsaFisRegDeviceToHost_s::h, hpDBG_VERY_LOUD, agsaFisRegD2HHeader_s::i_pmPort, agsaFisRegD2HData_s::lbaHigh, agsaFisRegD2HData_s::lbaHighExp, agsaFisRegD2HData_s::lbaLow, agsaFisRegD2HData_s::lbaLowExp, agsaFisRegD2HData_s::lbaMid, agsaFisRegD2HData_s::lbaMidExp, agsaPort_s::linkNode, LL_PORT_LOCK, agsaContext_s::osData, OSSA_HW_EVENT_SATA_PHY_UP, OSSA_PORT_VALID, ossaHwCB(), ossaSingleThreadedEnter(), ossaSingleThreadedLeave(), PHY_IN_PORT_MASK, PHY_STATUS_SET, PHY_UP, agsaPort_s::phyMap, agsaLLRoot_s::phys, PORT_STATE_MASK, agsaPort_s::portContext, agsaPortMap_s::PortContext, agsaPort_s::portId, agsaPortMap_s::PortID, PORTID_MASK, agsaLLRoot_s::PortMap, agsaPortMap_s::PortStatus, agsaPhy_s::pPort, agsaFisRegD2HData_s::reserved4, agsaFisRegD2HData_s::reserved5, agsaFisRegD2HData_s::reserved6, agsaFisRegD2HData_s::reserved7, SA_DBG1, SA_DBG2, SA_DBG3, SA_DBG5, saLlistAdd, saLlistGetHead, saLlistRemove, agsaContext_s::sdkData, agsaFisRegD2HData_s::sectorCount, agsaFisRegD2HData_s::sectorCountExp, SHIFT16, SHIFT8, smTraceFuncEnter, smTraceFuncExit, agsaFisRegD2HHeader_s::status, agsaPort_s::status, and agsaLLRoot_s::validPorts.

Referenced by mpiHWevent().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ siEventSSPResponseWtDataRcvd()

GLOBAL void siEventSSPResponseWtDataRcvd ( agsaRoot_t agRoot,
agsaIORequestDesc_t pRequest,
agsaSSPResponseInfoUnit_t pRespIU,
bit32  param,
bit32  sspTag 
)

Routine to handle for received SAS with data payload event.

The handle for received SAS with data payload event

Parameters
agRoothandles for this instance of SAS/SATA hardware
pRequesthandles for the IOrequest
pRespIUthe pointer to the Response IU
paramPayload Length
Returns
-void-

Definition at line 1467 of file saint.c.

References agFALSE, agTRUE, agsaIORequestDesc_s::completionCB, agsaLLRoot_s::freeIORequests, agsaLLRoot_s::freeReservedRequests, hpDBG_VERY_LOUD, agsaIORequestDesc_s::linkNode, LL_IOREQ_LOCKEQ_LOCK, OSSA_IO_SUCCESS, ossaSingleThreadedEnter(), ossaSingleThreadedLeave(), agsaIORequestDesc_s::pDevice, agsaDeviceDesc_s::pendingIORequests, agsaIORequestDesc_s::pIORequestContext, SA_DBG1, SA_RESERVED_REQUEST_COUNT, saLlistIOAdd, saLlistIOGetCount, saLlistIORemove, agsaContext_s::sdkData, smTraceFuncEnter, smTraceFuncExit, SSP_RESCV_BIT, SSP_RESCV_PAD_SHIFT, SSPTAG_BITS, and agsaIORequestDesc_s::valid.

Referenced by mpiSSPCompletion().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ siGetPciBar()

GLOBAL bit32 siGetPciBar ( agsaRoot_t agRoot)

Definition at line 2915 of file sahw.c.

References GEN_MSGU_SCRATCH_PAD_0, mpiGetPCIBarIndex(), MSGU_SCRATCH_PAD_0, SCRATCH_PAD0_BAR_MASK, SHIFT26, and siHalRegReadExt().

Referenced by mpiInitialize(), siFatalErrorBuffer(), siGetTableOffset(), and siNonFatalErrorBuffer().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ siGetRegisterDumpGSM()

GLOBAL bit32 siGetRegisterDumpGSM ( agsaRoot_t agRoot,
void *  destinationAddress,
bit32  regDumpNum,
bit32  regDumpOffset,
bit32  len 
)

Initiate a GET REGISTER DUMP from GSM command.

This function is called to Get Register Dump from the GSM of SPC.

Parameters
agRoothandles for this instance of SAS/SATA hardware
destinationAddressaddress of the register dump data copied to
regDumpNumRegister Dump # 0 or 1
regDumpOffsetOffset within the register dump area
lenLength in bytes of the register dump data to copy
Returns
  • SUCCESS or FAILURE

Definition at line 3213 of file saioctlcmd.c.

References agNULL, AGSA_RC_FAILURE, AGSA_RC_SUCCESS, mpiHostLLConfigDescriptor_s::FatalErrorDumpLength0, mpiHostLLConfigDescriptor_s::FatalErrorDumpLength1, mpiHostLLConfigDescriptor_s::FatalErrorDumpOffset0, mpiHostLLConfigDescriptor_s::FatalErrorDumpOffset1, hpDBG_VERY_LOUD, agsaLLRoot_s::mainConfigTable, SA_ASSERT, SA_DBG1, agsaContext_s::sdkData, siGSMDump(), smTraceFuncEnter, and smTraceFuncExit.

Referenced by saHwReset(), siSpcGetErrorContent(), and siSpcvGetErrorContent().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ siGetTableOffset()

GLOBAL bit32 siGetTableOffset ( agsaRoot_t agRoot,
bit32  TableOffsetInTable 
)

Definition at line 2929 of file sahw.c.

References GEN_MSGU_SCRATCH_PAD_0, MSGU_SCRATCH_PAD_0, ossaHwRegReadExt(), SA_DBG4, SCRATCH_PAD0_OFFSET_MASK, siGetPciBar(), and siHalRegReadExt().

Referenced by siFatalErrorBuffer(), siNonFatalErrorBuffer(), and siWaitForFatalTransfer().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ siHalRegReadExt()

◆ siHalRegWriteExt()

GLOBAL void siHalRegWriteExt ( agsaRoot_t agRoot,
bit32  generic,
bit32  regOffset,
bit32  regValue 
)

Definition at line 2858 of file sahw.c.

References agNULL, ossaHwRegWrite(), ossaHwRegWriteExt(), SA_ASSERT, SA_DBG6, and WHATTABLE.

Referenced by mpiInitialize(), mpiUnInitConfigTable(), saSystemInterruptsActive(), siReenableLegacyInterrupts(), siReenableMSIInterrupts(), and siReenableMSIXInterrupts().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ siInitResources()

GLOBAL void siInitResources ( agsaRoot_t agRoot,
agsaMemoryRequirement_t memoryAllocated,
agsaHwConfig_t hwConfig,
agsaSwConfig_t swConfig,
bit32  usecsPerTick 
)

Definition at line 3796 of file sainit.c.

References agFALSE, agsaMemoryRequirement_s::agMemory, agNULL, AGSA_REQ_TYPE_UNKNOWN, AGSAMEM_ELEMENT_READ, agsaLLRoot_s::autoDeregDeviceflag, mpiICQueue_s::ciPointer, mpiOCQueue_s::consumerIdx, agsaLLRoot_s::DeviceDeregistrationCB, agsaDeviceMap_s::DeviceHandle, agsaDeviceMap_s::DeviceIdFromFW, DEVICELINK_MEM_INDEX, agsaLLRoot_s::deviceLinkMem, agsaLLRoot_s::DeviceMap, agsaDeviceDesc_s::DeviceMapIndex, agsaLLRoot_s::DeviceRegistrationCB, agsaDeviceDesc_s::deviceType, agsaTimerDesc_s::Event, agsaLLRoot_s::freeDevicesList, agsaLLRoot_s::freeIORequests, agsaLLRoot_s::freePorts, agsaLLRoot_s::freeReservedRequests, agsaLLRoot_s::freeTimers, agsaIORequestDesc_s::HTag, agsaLLRoot_s::inboundQueue, agsaDeviceDesc_s::initiatorDevHandle, agsaLLRoot_s::IOMap, IOREQLINK_MEM_INDEX, agsaIOMap_s::IORequest, agsaLLRoot_s::IORequestMem, agsaTimerDesc_s::linkNode, agsaPort_s::linkNode, agsaDeviceDesc_s::linkNode, agsaIORequestDesc_s::linkNode, agsaPort_s::listSASATADevices, LLROOT_MEM_INDEX, MARK_OFF, MAX_ACTIVE_IO_REQUESTS, MAX_IO_DEVICE_ENTRIES, agsaSwConfig_s::maxActiveIOs, mpiOCQueue_s::memoryRegion, mpiICQueue_s::memoryRegion, NUM_TIMERS, agsaSwConfig_s::numDevHandles, agsaMem_s::numElements, mpiOCQueue_s::numElements, mpiICQueue_s::numElements, agsaQueueConfig_s::numInboundQueues, agsaQueueConfig_s::numOutboundQueues, agsaContext_s::osData, agsaLLRoot_s::outboundQueue, agsaIORequestDesc_s::pDevice, agsaDeviceDesc_s::pendingIORequests, agsaTimerDesc_s::pfnTimeout, PHY_STATUS_SET, PHY_STOPPED, agsaMem_s::phyAddrLower, agsaHwConfig_s::phyCount, agsaLLRoot_s::phyCount, agsaPhy_s::phyId, agsaPort_s::phyMap, agsaLLRoot_s::phys, agsaIORequestDesc_s::pIORequestContext, mpiOCQueue_s::piPointer, PORT_MARK_OFF, PORT_NORMAL, agsaPort_s::portContext, agsaPortMap_s::PortContext, agsaLLRoot_s::portCount, agsaPort_s::portId, agsaPortMap_s::PortID, agsaPort_s::portIdx, agsaLLRoot_s::PortMap, agsaLLRoot_s::ports, agsaPortMap_s::PortStatus, agsaTimerDesc_s::pParm, agsaPhy_s::pPort, agsaDeviceDesc_s::pPort, agsaIORequestDesc_s::pPort, mpiOCQueue_s::producerIdx, agsaLLRoot_s::QueueConfig, agsaIORequestDesc_s::requestType, SA_DBG2, SA_DBG3, SA_RESERVED_REQUEST_COUNT, saLlinkInitialize, saLlinkIOInitialize, saLlistAdd, saLlistInitialize, saLlistIOAdd, saLlistIOGetCount, saLlistIOInitialize, SAS_SATA_UNKNOWN_DEVICE, agsaContext_s::sdkData, si_memset(), agsaPort_s::status, agsaLLRoot_s::sysIntsActive, agsaIOMap_s::Tag, agsaDeviceDesc_s::targetDevHandle, agsaTimerDesc_s::timeoutTick, TIMERLINK_MEM_INDEX, agsaLLRoot_s::timerLinkMem, agsaLLRoot_s::timeTick, agsaMem_s::totalLength, mpiMem_s::totalLength, agsaMem_s::type, agsaLLRoot_s::usecsPerTick, agsaTimerDesc_s::valid, agsaIORequestDesc_s::valid, agsaLLRoot_s::validPorts, agsaLLRoot_s::validTimers, agsaMem_s::virtPtr, and mpiMem_s::virtPtr.

Referenced by saHwReset(), and saHwShutdown().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ siIODone()

GLOBAL FORCEINLINE void siIODone ( agsaRoot_t agRoot,
agsaIORequestDesc_t pRequest,
bit32  status,
bit32  sspTag 
)

◆ siIsHexDigit()

int siIsHexDigit ( char  a)

Check for Hex digit.

Parameters
charvalue
Returns
-void-

Definition at line 56 of file sautil.c.

◆ siOurLegacy_V_Interrupt()

bit32 siOurLegacy_V_Interrupt ( agsaRoot_t agRoot,
bit32  interruptVectorIndex 
)

Function to process Legacy V interrupts.

siOurLegacyInterrupt checks if we generated interrupt called thru function pointer saRoot->OurInterrupt

Parameters
agRootOS Layer-specific and LL Layer-specific context handles for this instance of SAS/SATA hardware
Returns
true if we claim interrupt

Definition at line 744 of file saint.c.

References FALSE, GEN_MSGU_ODR, siHalRegReadExt(), TRUE, and V_Outbound_Doorbell_Set_Register.

Referenced by saInitialize().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ siOurLegacyInterrupt()

bit32 siOurLegacyInterrupt ( agsaRoot_t agRoot,
bit32  interruptVectorIndex 
)

Function to process Legacy interrupts.

siOurLegacyInterrupt checks if we generated interrupt called thru function pointer saRoot->OurInterrupt

Parameters
agRootOS Layer-specific and LL Layer-specific context handles for this instance of SAS/SATA hardware
Returns
true if we claim interrupt

Definition at line 711 of file saint.c.

References FALSE, MSGU_READ_ODMR, MSGU_READ_ODR, and TRUE.

Referenced by saInitialize().

Here is the caller graph for this function:

◆ siOurMSI_V_Interrupt()

bit32 siOurMSI_V_Interrupt ( agsaRoot_t agRoot,
bit32  interruptVectorIndex 
)

Function to process MSI V interrupts.

siOurMSIInterrupt checks if we generated interrupt called thru function pointer saRoot->OurInterrupt

Parameters
agRootOS Layer-specific and LL Layer-specific context handles for this instance of SAS/SATA hardware
Returns
always true

Definition at line 691 of file saint.c.

References SA_DBG4, and TRUE.

◆ siOurMSIInterrupt()

bit32 siOurMSIInterrupt ( agsaRoot_t agRoot,
bit32  interruptVectorIndex 
)

Function to process MSI interrupts.

siOurMSIInterrupt checks if we generated interrupt called thru function pointer saRoot->OurInterrupt

Parameters
agRootOS Layer-specific and LL Layer-specific context handles for this instance of SAS/SATA hardware
Returns
always true

Definition at line 672 of file saint.c.

References TRUE.

Referenced by saInitialize().

Here is the caller graph for this function:

◆ siOurMSIX_V_Interrupt()

bit32 siOurMSIX_V_Interrupt ( agsaRoot_t agRoot,
bit32  interruptVectorIndex 
)

Function to process MSIX V interrupts.

siOurMSIXInterrupt checks if we generated interrupt called thru function pointer saRoot->OurInterrupt

Parameters
agRootOS Layer-specific and LL Layer-specific context handles for this instance of SAS/SATA hardware
Returns
always true

Definition at line 654 of file saint.c.

References TRUE.

Referenced by saInitialize().

Here is the caller graph for this function:

◆ siOurMSIXInterrupt()

bit32 siOurMSIXInterrupt ( agsaRoot_t agRoot,
bit32  interruptVectorIndex 
)

Function to process MSIX interrupts.

siOurMSIXInterrupt checks if we generated interrupt called thru function pointer saRoot->OurInterrupt

Parameters
agRootOS Layer-specific and LL Layer-specific context handles for this instance of SAS/SATA hardware
Returns
always true

Definition at line 635 of file saint.c.

References TRUE.

Referenced by saInitialize().

Here is the caller graph for this function:

◆ siPciCpyMem()

GLOBAL void siPciCpyMem ( agsaRoot_t agRoot,
bit32  soffset,
const void *  dst,
bit32  DWcount,
bit32  busBaseNumber 
)

Definition at line 2991 of file sahw.c.

References ossaHwRegReadExt(), SA_ASSERT, and SA_DBG1.

Referenced by siFatalErrorBuffer().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ siPCITriger()

GLOBAL void siPCITriger ( agsaRoot_t agRoot)

Definition at line 2907 of file sahw.c.

References ossaHwRegReadExt(), PCIBAR0, PCIE_TRIGGER_ON_REGISTER_READ, and SA_DBG1.

Referenced by mpiParseOBIomb(), mpiSSPEvent(), and saInitialize().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ siPhyStopCB()

GLOBAL bit32 siPhyStopCB ( agsaRoot_t agRoot,
bit32  phyId,
bit32  status,
agsaContext_t agContext,
bit32  portId,
bit32  npipps 
)

CallBack Routine to stop a Phy.

CallBack for Stop a Phy

Parameters
agRoothandles for this instance of SAS/SATA hardware
phyIdthe phy id of the link will be stopped
statusthe status of the phy
agContextthe context of the saPhyStop
Returns
If phy is stopped successfully
  • AGSA_RC_SUCCESS phy is stopped successfully
  • AGSA_RC_FAILURE phy is not stopped successfully

Definition at line 314 of file saphy.c.

References agFALSE, agNULL, AGSA_RC_FAILURE, AGSA_RC_SUCCESS, hpDBG_VERY_LOUD, LL_PORT_LOCK, OSSA_HW_EVENT_PHY_STOP_STATUS, OSSA_PORT_INVALID, OSSA_SUCCESS, ossaHwCB(), ossaSingleThreadedEnter(), ossaSingleThreadedLeave(), PHY_STATUS_SET, PHY_STOPPED, agsaLLRoot_s::phyCount, agsaPort_s::phyMap, agsaLLRoot_s::phys, PORT_INVALIDATING, PORT_MARK_OFF, PORT_STATE_MASK, agsaPort_s::portContext, agsaPortMap_s::PortContext, agsaPort_s::portId, agsaPortMap_s::PortID, agsaLLRoot_s::PortMap, agsaPortMap_s::PortStatus, agsaPhy_s::pPort, SA_ASSERT, SA_DBG1, agsaContext_s::sdkData, SHIFT16, SHIFT8, siPortInvalid(), smTraceFuncEnter, smTraceFuncExit, status, and agsaPort_s::status.

Referenced by mpiHWevent().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ siPortDeviceListRemove()

GLOBAL void siPortDeviceListRemove ( agsaRoot_t agRoot,
agsaPort_t pPort,
agsaDeviceDesc_t pDevice 
)

The function to remove a device descriptor.

The function to remove a device descriptor

Parameters
agRoothandles for this instance of SAS/SATA hardware
pPortThe pointer to the port
pDeviceThe pointer to the device
Returns
-void-

Definition at line 370 of file saport.c.

References agNULL, agsaDeviceDesc_s::deviceType, agsaLLRoot_s::freeDevicesList, hpDBG_VERY_LOUD, agsaDeviceDesc_s::initiatorDevHandle, agsaDeviceDesc_s::linkNode, agsaPort_s::listSASATADevices, LL_DEVICE_LOCK, agsaContext_s::osData, ossaSingleThreadedEnter(), ossaSingleThreadedLeave(), agsaPort_s::portId, agsaDeviceDesc_s::pPort, SA_ASSERT, SA_DBG3, saLlistAdd, saLlistRemove, SAS_SATA_UNKNOWN_DEVICE, agsaContext_s::sdkData, smTraceFuncEnter, smTraceFuncExit, and agsaDeviceDesc_s::targetDevHandle.

Referenced by mpiDeviceRegRsp().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ siPortDeviceRemove()

GLOBAL void siPortDeviceRemove ( agsaRoot_t agRoot,
agsaPort_t pPort,
agsaDeviceDesc_t pDevice,
bit32  unmap 
)

The function to remove a device descriptor.

The function to remove a device descriptor

Parameters
agRoothandles for this instance of SAS/SATA hardware
pPortThe pointer to the port
pDeviceThe pointer to the device
Returns
-void-

Definition at line 169 of file saport.c.

References agNULL, DEVICE_ID_BITS, agsaDeviceMap_s::DeviceHandle, agsaDeviceMap_s::DeviceIdFromFW, agsaLLRoot_s::DeviceMap, agsaDeviceDesc_s::DeviceMapIndex, agsaDeviceDesc_s::deviceType, agsaLLRoot_s::freeDevicesList, hpDBG_VERY_LOUD, agsaDeviceDesc_s::initiatorDevHandle, agsaDeviceDesc_s::linkNode, agsaPort_s::listSASATADevices, LL_DEVICE_LOCK, MAX_IO_DEVICE_ENTRIES, OS_ASSERT, agsaContext_s::osData, ossaSingleThreadedEnter(), ossaSingleThreadedLeave(), agsaDeviceDesc_s::pPort, SA_ASSERT, SA_DBG3, saLlistAdd, saLlistRemove, SAS_SATA_UNKNOWN_DEVICE, agsaContext_s::sdkData, smTraceFuncEnter, smTraceFuncExit, and agsaDeviceDesc_s::targetDevHandle.

Referenced by mpiDeviceRegRsp(), and siRemoveDevHandle().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ siPortInvalid()

GLOBAL void siPortInvalid ( agsaRoot_t agRoot,
agsaPort_t pPort 
)

Invalid a port.

Invalid a port

Parameters
agRoothandles for this instance of SAS/SATA hardware
pPort
Returns
-void-

Definition at line 331 of file saport.c.

References agFALSE, agNULL, agsaLLRoot_s::freePorts, hpDBG_VERY_LOUD, agsaPort_s::linkNode, LL_PORT_LOCK, ossaSingleThreadedEnter(), ossaSingleThreadedLeave(), PORT_INVALIDATING, SA_ASSERT, saLlistAdd, saLlistRemove, agsaContext_s::sdkData, smTraceFuncEnter, smTraceFuncExit, agsaPort_s::status, agsaPort_s::tobedeleted, and agsaLLRoot_s::validPorts.

Referenced by mpiPhyStopEvent(), mpiSASHwEventAckRsp(), and siPhyStopCB().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ siPortSASDeviceAdd()

GLOBAL agsaDeviceDesc_t * siPortSASDeviceAdd ( agsaRoot_t agRoot,
agsaPort_t pPort,
agsaSASIdentify_t  sasIdentify,
bit32  sasInitiator,
bit32  smpTimeout,
bit32  itNexusTimeout,
bit32  firstBurstSize,
bit8  dTypeSRate,
bit32  flag 
)

Add a SAS device to the discovery list of the port.

Add a SAS device from the discovery list of the port

Parameters
agRoothandles for this instance of SAS/SATA LLL
pPort
sasIdentify
sasInitiator
smpTimeout
itNexusTimeout
firstBurstSize
dTypeSRate– device type and link rate
flag
Returns
-the device descriptor-

Definition at line 60 of file saport.c.

References agNULL, agTRUE, agsaSASDeviceInfo_s::commonDevInfo, agsaDeviceDesc_s::deviceType, agsaDeviceDesc_s::devInfo, agsaDeviceInfo_s::devType_S_Rate, agsaDeviceInfo_s::firstBurstSize, agsaDeviceInfo_s::flag, agsaLLRoot_s::freeDevicesList, hpDBG_VERY_LOUD, agsaSASDeviceInfo_s::initiator_ssp_stp_smp, agsaSASIdentify_s::initiator_ssp_stp_smp, agsaDeviceDesc_s::initiatorDevHandle, agsaDeviceInfo_s::it_NexusTimeout, agsaDeviceDesc_s::linkNode, agsaPort_s::listSASATADevices, LL_DEVICE_LOCK, agsaContext_s::osData, ossaSingleThreadedEnter(), ossaSingleThreadedLeave(), agsaDeviceDesc_s::pendingIORequests, agsaSASDeviceInfo_s::phyIdentifier, agsaSASIdentify_s::phyIdentifier, agsaDeviceDesc_s::pPort, SA_ASSERT, SA_DBG1, SA_DBG3, SA_IDFRM_GET_SAS_ADDRESSHI, SA_IDFRM_GET_SAS_ADDRESSLO, saLlistAdd, saLlistGetHead, saLlistInitialize, saLlistRemove, agsaDeviceInfo_s::sasAddressHi, agsaSASIdentify_s::sasAddressHi, agsaDeviceInfo_s::sasAddressLo, agsaSASIdentify_s::sasAddressLo, agsaSASSATADevInfo_s::sasDeviceInfo, agsaContext_s::sdkData, SHIFT4, agsaDeviceInfo_s::smpTimeout, smTraceFuncEnter, smTraceFuncExit, agsaSASDeviceInfo_s::target_ssp_stp_smp, agsaSASIdentify_s::target_ssp_stp_smp, and agsaDeviceDesc_s::targetDevHandle.

Referenced by mpiDeviceHandleArrived(), and saRegisterNewDevice().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ siPortSATADeviceAdd()

GLOBAL agsaDeviceDesc_t * siPortSATADeviceAdd ( agsaRoot_t agRoot,
agsaPort_t pPort,
agsaDeviceDesc_t pSTPBridge,
bit8 pSignature,
bit8  pm,
bit8  pmField,
bit32  smpReqTimeout,
bit32  itNexusTimeout,
bit32  firstBurstSize,
bit8  dTypeSRate,
bit32  flag 
)

◆ siPrintBuffer()

GLOBAL void siPrintBuffer ( bit32  debugLevel,
siPrintType  type,
char *  header,
void *  a,
bit32  length 
)

◆ siReenableLegacy_V_Interrupts()

void siReenableLegacy_V_Interrupts ( agsaRoot_t agRoot,
bit32  interruptVectorIndex 
)

Function to reenable Legacy V interrupts.

siReenableLegacyInterrupts reenableinterrupts called thru macro ossaReenableInterrupts

Parameters
agRootOS Layer-specific and LL Layer-specific context handles for this instance of SAS/SATA hardware
interruptVectorIndexalways zero

Definition at line 1079 of file saint.c.

References GEN_MSGU_ODMR, GEN_MSGU_ODR, ossaHwRegWriteExt(), PCIBAR0, SA_DBG5, siHalRegReadExt(), V_Outbound_Doorbell_Clear_Register, V_Outbound_Doorbell_Mask_Clear_Register, V_Outbound_Doorbell_Mask_Set_Register, and V_Outbound_Doorbell_Set_Register.

Referenced by saInitialize().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ siReenableLegacyInterrupts()

void siReenableLegacyInterrupts ( agsaRoot_t agRoot,
bit32  interruptVectorIndex 
)

Function to reenable Legacy interrupts.

siReenableLegacyInterrupts reenableinterrupts called thru macro ossaReenableInterrupts

Parameters
agRootOS Layer-specific and LL Layer-specific context handles for this instance of SAS/SATA hardware
interruptVectorIndexalways zero

Definition at line 1055 of file saint.c.

References GEN_MSGU_ODCR, GEN_MSGU_ODMR, MSGU_ODCR, MSGU_ODMR, ODCR_CLEAR_ALL, ODMR_CLEAR_ALL, and siHalRegWriteExt().

Referenced by saInitialize().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ siReenableMSI_V_Interrupts()

void siReenableMSI_V_Interrupts ( agsaRoot_t agRoot,
bit32  interruptVectorIndex 
)

Function to reenable MSI V interrupts.

siReenableMSIXInterrupts reenableinterrupts called thru macro ossaReenableInterrupts

Parameters
agRootOS Layer-specific and LL Layer-specific context handles for this instance of SAS/SATA hardware
interruptVectorIndex- vector index for message

Definition at line 1033 of file saint.c.

References SA_ASSERT, and SA_DBG4.

◆ siReenableMSIInterrupts()

void siReenableMSIInterrupts ( agsaRoot_t agRoot,
bit32  interruptVectorIndex 
)

Function to reenable MSI interrupts.

siReenableMSIXInterrupts reenableinterrupts called thru macro ossaReenableInterrupts

Parameters
agRootOS Layer-specific and LL Layer-specific context handles for this instance of SAS/SATA hardware
interruptVectorIndex- vector index for message

Definition at line 1008 of file saint.c.

References GEN_MSGU_ODMR, MSGU_ODMR, siHalRegReadExt(), and siHalRegWriteExt().

Referenced by saInitialize().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ siReenableMSIX_V_Interrupts()

void siReenableMSIX_V_Interrupts ( agsaRoot_t agRoot,
bit32  interruptVectorIndex 
)

Function to reenable MSIX interrupts.

siReenableMSIXInterrupts reenableinterrupts called thru macro ossaReenableInterrupts

Parameters
agRootOS Layer-specific and LL Layer-specific context handles for this instance of SAS/SATA hardware
interruptVectorIndex- vector index for message

Definition at line 967 of file saint.c.

References agsabit32bit64_U::B64, ossaHwRegWriteExt(), PCIBAR0, agsabit32bit64_U::S32, SA_DBG1, SA_DBG4, agsaContext_s::sdkData, smIS64bInt, agsaLLRoot_s::sysIntsActive, V_Outbound_Doorbell_Mask_Clear_Register, and V_Outbound_Doorbell_Mask_Clear_RegisterU.

Referenced by saInitialize().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ siReenableMSIXInterrupts()

void siReenableMSIXInterrupts ( agsaRoot_t agRoot,
bit32  interruptVectorIndex 
)

Function to reenable MSIX interrupts.

siReenableMSIXInterrupts reenableinterrupts called thru macro ossaReenableInterrupts

Parameters
agRootOS Layer-specific and LL Layer-specific context handles for this instance of SAS/SATA hardware
interruptVectorIndex- vector index for message

Definition at line 935 of file saint.c.

References GEN_MSGU_ODCR, MSGU_ODCR, MSIX_INTERRUPT_ENABLE, MSIX_TABLE_BASE, MSIX_TABLE_ELEMENT_SIZE, ossaHwRegWriteExt(), PCIBAR0, SA_DBG4, and siHalRegWriteExt().

Referenced by saInitialize().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ siRemoveDevHandle()

GLOBAL bit32 siRemoveDevHandle ( agsaRoot_t agRoot,
agsaDevHandle_t agDevHandle 
)

Function for target to remove stale initiator device handle.

function is called to ask the LL layer to remove all LL layer internal resources associated with a device handle

Parameters
agRootHandles for this instance of SAS/SATA hardware
agDevHandleHandle of the device that this I/O request will be made on
Returns
If the device handle is removed successfully
  • AGSA_RC_SUCCESS the device handle is removed successfully
  • AGSA_RC_BUSY the device is busy, cannot be removed now

Definition at line 158 of file sadisc.c.

References agFALSE, agNULL, AGSA_RC_FAILURE, AGSA_RC_SUCCESS, agTRUE, agsaDeviceDesc_s::deviceType, DIRECT_SATA_DEVICE, hpDBG_VERY_LOUD, agsaDeviceDesc_s::initiatorDevHandle, OS_ASSERT, agsaDeviceDesc_s::pPort, SA_ASSERT, SA_DBG1, SA_DBG3, agsaContext_s::sdkData, siPortDeviceRemove(), smTraceFuncEnter, smTraceFuncExit, SSP_SMP_DEVICE, STP_DEVICE, and agsaDeviceDesc_s::targetDevHandle.

Referenced by mpiDeregDevHandleRsp().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ siSATASignatureCpy()

GLOBAL void siSATASignatureCpy ( bit8 pDstSignature,
bit8 pSrcSignature 
)

copy a SATA signature to another

copy a SATA signature to another

Parameters
pDstSignaturepointer to the destination signature
pSrcSignaturepointer to the source signature
Returns
If they match
  • agTRUE match
  • agFALSE doesn't match

Definition at line 920 of file sasata.c.

◆ siScratchDump()

◆ siSMPRespRcvd()

GLOBAL void siSMPRespRcvd ( agsaRoot_t agRoot,
agsaSMPCompletionRsp_t pIomb,
bit32  payloadSize,
bit32  tag 
)

Routine to handle for received SMP response event.

The handle for received SMP response event

Parameters
agRoothandles for this instance of SAS/SATA hardware
pIombPointer of payload of IOMB
payloadSizesize of the payload
tagthe tag of the request SMP
Returns
-void-

Definition at line 1961 of file saint.c.

References agsaIOMap_s::agContext, agFALSE, agNULL, agTRUE, agsaIORequestDesc_s::completionCB, agsaLLRoot_s::freeIORequests, agsaLLRoot_s::freeReservedRequests, hpDBG_VERY_LOUD, agsaLLRoot_s::IOMap, agsaIOMap_s::IORequest, agsaIORequestDesc_s::IRmode, agsaIORequestDesc_s::linkNode, LL_IOREQ_LOCKEQ_LOCK, MARK_OFF, OSSA_IO_SUCCESS, ossaSingleThreadedEnter(), ossaSingleThreadedLeave(), agsaIORequestDesc_s::pDevice, agsaDeviceDesc_s::pendingIORequests, agsaIORequestDesc_s::pIORequestContext, agsaIORequestDesc_s::pPort, SA_ASSERT, SA_DBG1, SA_DBG3, SA_RESERVED_REQUEST_COUNT, saLlistIOAdd, saLlistIOGetCount, saLlistIORemove, agsaContext_s::sdkData, agsaSMPCompletionRsp_s::SMPrsp, smTraceFuncEnter, smTraceFuncExit, agsaIOMap_s::Tag, and agsaIORequestDesc_s::valid.

Referenced by mpiSMPCompletion().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ siSoftReset()

GLOBAL bit32 siSoftReset ( agsaRoot_t agRoot,
bit32  signature 
)

Definition at line 872 of file sahw.c.

References AGSA_RC_SUCCESS, si_V_SoftReset(), siSpcSoftReset(), and smIS_SPCV().

Referenced by saInitialize().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ siSpcSoftReset()

GLOBAL bit32 siSpcSoftReset ( agsaRoot_t agRoot,
bit32  signature 
)

Function to soft/FW reset the SPC.

The siSpcSoftReset() function is called to soft reset SPC. Upon return, the SPC FW got reset. The PCIe bus is not touched.

Parameters
agRoothandles for this instance of SAS/SATA hardware
signaturesoft reset normal signature or HDA soft reset signature
Returns
-void-

Definition at line 926 of file sahw.c.

References agNULL, AGSA_RC_FAILURE, AGSA_RC_SUCCESS, GPIO_ADDR_BASE, GPIO_GPIO_0_0UTPUT_CTL_OFFSET, GSM_ADDR_BASE, GSM_CONFIG_RESET, GSM_CONFIG_RESET_VALUE, GSM_READ_ADDR_PARITY_CHECK, GSM_READ_ADDR_PARITY_INDIC, GSM_WRITE_ADDR_PARITY_CHECK, GSM_WRITE_ADDR_PARITY_INDIC, GSM_WRITE_DATA_PARITY_CHECK, GSM_WRITE_DATA_PARITY_INDIC, hpDBG_VERY_LOUD, MAKE_MODULO, MBIC_AAP1_ADDR_BASE, MBIC_IOP_ADDR_BASE, MBIC_NMI_ENABLE_VPE0_AAP1, MBIC_NMI_ENABLE_VPE0_IOP, mpiWaitForConfigTable(), MSGU_HOST_SCRATCH_PAD_0, MSGU_ODCR, MSGU_ODMR, MSGU_SCRATCH_PAD_0, MSGU_SCRATCH_PAD_1, MSGU_SCRATCH_PAD_2, MSGU_SCRATCH_PAD_3, ODCR_CLEAR_ALL, ODMR_CLEAR_ALL, ossaHwRegRead(), ossaHwRegReadExt(), ossaHwRegWrite(), ossaHwRegWriteExt(), ossaStallThread(), PCIBAR1, PCIBAR2, PCIE_ERROR_INTERRUPT, PCIE_ERROR_INTERRUPT_ENABLE, PCIE_EVENT_INTERRUPT, PCIE_EVENT_INTERRUPT_ENABLE, RAM_ECC_DB_ERR, SA_ASSERT, SA_DBG1, SCRATCH_PAD1_RST, agsaContext_s::sdkData, siBar4Shift(), siSpcSoftResetRDYChk(), smTrace, smTraceFuncEnter, smTraceFuncExit, SPC_HDASOFT_RESET_SIGNATURE, SPC_REG_RESET, SPC_REG_RESET_BDMA_CORE, SPC_REG_RESET_OSSP, SPC_REG_RESET_PCS_AAP1_SS, SPC_REG_RESET_PCS_IOP_SS, SPC_SOFT_RESET_SIGNATURE, SPC_TOP_LEVEL_ADDR_BASE, WAIT_INCREMENT, and WAIT_SECONDS.

Referenced by saHwReset(), saHwShutdown(), saInitialize(), and siSoftReset().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ siTimerAdd()

GLOBAL agsaTimerDesc_t * siTimerAdd ( agsaRoot_t agRoot,
bit32  timeout,
agsaCallback_t  pfnTimeout,
bit32  Event,
void *  pParm 
)

add a timer

add a timer

Parameters
agRoothandles for this instance of SAS/SATA hardware
pTimerthe pointer to the timer being added
timeoutthe timeout ticks from now
pfnTimeoutcallback function when time is out
Eventthe Event code passed to callback function
pParmthe pointer to parameter passed to callback function
Returns
If the timer is added successfully
  • AGSA_RC_SUCCESS timer is added successfully
  • AGSA_RC_FAILURE cannot add new timer, run out of resource

Definition at line 230 of file satimer.c.

References agNULL, agTRUE, agsaTimerDesc_s::Event, agsaLLRoot_s::freeTimers, hpDBG_VERY_LOUD, agsaTimerDesc_s::linkNode, LL_TIMER_LOCK, ossaSingleThreadedEnter(), ossaSingleThreadedLeave(), agsaTimerDesc_s::pfnTimeout, agsaTimerDesc_s::pParm, saLlinkInitialize, saLlistAdd, saLlistGetHead, saLlistGetNext, saLlistInsert, saLlistRemove, agsaContext_s::sdkData, smTraceFuncEnter, smTraceFuncExit, agsaTimerDesc_s::timeoutTick, agsaLLRoot_s::timeTick, agsaTimerDesc_s::valid, and agsaLLRoot_s::validTimers.

Referenced by saInitialize().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ siTimerRemove()

GLOBAL void siTimerRemove ( agsaRoot_t agRoot,
agsaTimerDesc_t pTimer 
)

remove a valid timer

remove a timer

Parameters
agRoothandles for this instance of SAS/SATA hardware
pTimerthe timer to be removed
Returns
-void-

Definition at line 335 of file satimer.c.

References agFALSE, agTRUE, agsaLLRoot_s::freeTimers, hpDBG_VERY_LOUD, agsaTimerDesc_s::linkNode, LL_TIMER_LOCK, ossaSingleThreadedEnter(), ossaSingleThreadedLeave(), saLlistAdd, saLlistRemove, agsaContext_s::sdkData, smTraceFuncEnter, smTraceFuncExit, agsaTimerDesc_s::valid, and agsaLLRoot_s::validTimers.

Here is the call graph for this function:

◆ siTimerRemoveAll()

GLOBAL void siTimerRemoveAll ( agsaRoot_t agRoot)

remove all valid timer

remove all timer

Parameters
agRoothandles for this instance of SAS/SATA hardware
Returns
-void-

Definition at line 373 of file satimer.c.

References agFALSE, agNULL, agsaLLRoot_s::freeTimers, hpDBG_VERY_LOUD, agsaTimerDesc_s::linkNode, LL_TIMER_LOCK, ossaSingleThreadedEnter(), ossaSingleThreadedLeave(), saLlistAdd, saLlistGetHead, saLlistRemove, agsaContext_s::sdkData, smTraceFuncEnter, smTraceFuncExit, agsaTimerDesc_s::valid, and agsaLLRoot_s::validTimers.

Here is the call graph for this function:

◆ siUpdateBarOffsetTable()

GLOBAL void siUpdateBarOffsetTable ( agsaRoot_t agRoot,
bit32  Spc_Type 
)
Parameters
agsaRootPointer to a data structure containing both application and LL layer context handles
Spc_typeDevice Id of hardware

Return: None

Definition at line 2768 of file sahw.c.

References agsaBarOffset_s::Bar, agsaBarOffset_s::Generic, hpDBG_VERY_LOUD, agsaBarOffset_s::Length, agsaBarOffset_s::Offset, SA_DBG1, SA_DBG4, SA_DBG5, agsaContext_s::sdkData, si_memcpy(), smTrace, smTraceFuncEnter, smTraceFuncExit, SPC_V_Table, agsaLLRoot_s::SpcBarOffset, SPCTable, and VEN_DEV_SPC.

Referenced by saInitialize().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ smIS_ENCRYPT()

GLOBAL bit32 smIS_ENCRYPT ( agsaRoot_t agRoot)

◆ smIS_HIL()

GLOBAL bit32 smIS_HIL ( agsaRoot_t agRoot)

Definition at line 446 of file sautil.c.

References smIS_ADAP8088, smIS_ADAP8089, smIS_spc8081, smIS_SPCV8074, smIS_SPCV8075, smIS_SPCV8076, and smIS_SPCV8077.

Referenced by mpiInitialize(), and si_macro_check().

Here is the caller graph for this function:

◆ smIS_SPC()

◆ smIS_SPC12V()

◆ smIS_SPC6V()

GLOBAL bit32 smIS_SPC6V ( agsaRoot_t agRoot)

Definition at line 459 of file sautil.c.

References smIS_ADAP8088, smIS_ADAP8089, smIS_SPCV8008, smIS_SPCV8009, smIS_SPCV8018, and smIS_SPCV8019.

Referenced by mpiInitialize(), mpiParseOBIomb(), mpiWaitForConfigTable(), saGetControllerInfo(), and smIS_SPCV().

Here is the caller graph for this function:

◆ smIS_SPCV()

◆ smIS_SPCV_2_IOP()

GLOBAL bit32 smIS_SPCV_2_IOP ( agsaRoot_t agRoot)

Definition at line 486 of file sautil.c.

References smIS_ADAP8088, smIS_ADAP8089, smIS_SPCV8006, smIS_SPCV8009, smIS_SPCV8018, smIS_SPCV8019, smIS_SPCV8071, smIS_SPCV8072, smIS_SPCV8073, smIS_SPCV8076, and smIS_SPCV8077.

Referenced by siChipResetV().

Here is the caller graph for this function:

◆ smIsCfg_V_ANY()