FreeBSD kernel pms device code
sampicmd.c File Reference

The file implements the functions of MPI Inbound IOMB/Command to SPC. More...

#include <sys/cdefs.h>
#include <dev/pms/config.h>
#include <dev/pms/RefTisa/sallsdk/spc/saglobal.h>
Include dependency graph for sampicmd.c:

Go to the source code of this file.

Functions

 __FBSDID ("$FreeBSD$")
 
GLOBAL bit32 saEchoCommand (agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 queueNum, void *echoPayload)
 SAS/SATA LL API ECHO Command. More...
 
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 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 mpiVHistCapCmd (agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 queueNum, bit32 Channel, bit32 NumBitLo, bit32 NumBitHi, bit32 PcieAddrLo, bit32 PcieAddrHi, bit32 ByteCount)
 
GLOBAL bit32 mpiSetPhyProfileCmd (agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 Operation, bit32 PhyId, bit32 length, void *buffer)
 
GLOBAL bit32 mpiGetDeviceInfoCmd (agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 deviceid, bit32 option, bit32 queueNum)
 Get Device Information 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 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 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 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 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 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 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)
 

Detailed Description

The file implements the functions of MPI Inbound IOMB/Command to SPC.

Definition in file sampicmd.c.

Function Documentation

◆ __FBSDID()

__FBSDID ( "$FreeBSD$"  )

◆ 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:

◆ 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:

◆ 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:

◆ 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:

◆ 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:

◆ 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:

◆ 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:

◆ 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:

◆ 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:

◆ 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:

◆ 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:

◆ 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:

◆ 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:

◆ 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:

◆ 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:

◆ 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:

◆ 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:

◆ mpiSetPhyProfileCmd()

◆ 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:

◆ mpiVHistCapCmd()

◆ saEchoCommand()

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

SAS/SATA LL API ECHO Command.

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

Parameters
agRootHandles for this instance of SAS/SATA hardware
agContextContext of SPC FW Flash Update Command
queueNumInbound/outbound queue number
echoPayloadPointer of Echo payload of 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 57 of file sampicmd.c.

References AGSA_RC_SUCCESS, hpDBG_VERY_LOUD, mpiEchoCmd(), smTraceFuncEnter, and smTraceFuncExit.

Referenced by ossaEchoCB(), saTimerTick(), and tiCOMPortInit().

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