FreeBSD kernel pms device code
saapi.h File Reference

The file defines the declaration of tSDK APIs. More...

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

Go to the source code of this file.

Functions

GLOBAL bit32 FORCEINLINE saDelayedInterruptHandler (agsaRoot_t *agRoot, bit32 interruptVectorIndex, bit32 count)
 Function to process the cause of interrupt. More...
 
GLOBAL bit32 FORCEINLINE saInterruptHandler (agsaRoot_t *agRoot, bit32 interruptVectorIndex)
 Function to process the interrupts. More...
 
GLOBAL void saSystemInterruptsActive (agsaRoot_t *agRoot, agBOOLEAN sysIntsActive)
 Function to enable/disable interrupts. More...
 
GLOBAL FORCEINLINE void saSystemInterruptsEnable (agsaRoot_t *agRoot, bit32 interruptVectorIndex)
 Function to enable a single interrupt vector. More...
 
GLOBAL void saTimerTick (agsaRoot_t *agRoot)
 TimerTick. More...
 
GLOBAL void saGetRequirements (agsaRoot_t *agRoot, agsaSwConfig_t *swConfig, agsaMemoryRequirement_t *memoryRequirement, bit32 *usecsPerTick, bit32 *maxNumLocks)
 Get the memory and lock requirement from LL layer. More...
 
GLOBAL bit32 saInitialize (agsaRoot_t *agRoot, agsaMemoryRequirement_t *memoryAllocated, agsaHwConfig_t *hwConfig, agsaSwConfig_t *swConfig, bit32 usecsPerTick)
 Initialize the Hardware. More...
 
GLOBAL void saHwReset (agsaRoot_t *agRoot, bit32 resetType, bit32 resetParm)
 Function to reset the Hardware. More...
 
GLOBAL void saHwShutdown (agsaRoot_t *agRoot)
 Function to shutdown the Hardware. More...
 
GLOBAL bit32 saPhyStart (agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 queueNum, bit32 phyId, agsaPhyConfig_t *agPhyConfig, agsaSASIdentify_t *agSASIdentify)
 Start a Phy. More...
 
GLOBAL bit32 saPhyStop (agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 queueNum, bit32 phyId)
 Stop a Phy. More...
 
GLOBAL bit32 saLocalPhyControl (agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 queueNum, bit32 phyId, bit32 phyOperation, ossaLocalPhyControlCB_t agCB)
 Initiate a Local PHY control command. More...
 
GLOBAL bit32 saGetPhyProfile (agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 queueNum, bit32 ppc, bit32 phyID)
 
GLOBAL bit32 saSetPhyProfile (agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 queueNum, bit32 ppc, bit32 length, void *buffer, bit32 phyID)
 
GLOBAL bit32 saHwEventAck (agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 queueNum, agsaEventSource_t *eventSource, bit32 param0, bit32 param1)
 Initiate a HW Event Ack command. More...
 
GLOBAL bit32 saDiscover (agsaRoot_t *agRoot, agsaPortContext_t *agPortContext, bit32 type, bit32 option)
 Start/Abort SAS/SATA discovery. More...
 
GLOBAL bit32 saFrameReadBit32 (agsaRoot_t *agRoot, agsaFrameHandle_t agFrame, bit32 frameOffset)
 Read 32 bits from a frame. More...
 
GLOBAL void saFrameReadBlock (agsaRoot_t *agRoot, agsaFrameHandle_t agFrame, bit32 frameOffset, void *frameBuffer, bit32 frameBufLen)
 Read a block from a frame. More...
 
GLOBAL bit32 saSATAStart (agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 queueNum, agsaDevHandle_t *agDevHandle, bit32 agRequestType, agsaSATAInitiatorRequest_t *agSATAReq, bit8 agTag, ossaSATACompletedCB_t agCB)
 Start SATA command. More...
 
GLOBAL bit32 saSATAAbort (agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 queueNum, agsaDevHandle_t *agDevHandle, bit32 flag, void *abortParam, ossaGenericAbortCB_t agCB)
 Abort SATA command. More...
 
GLOBAL bit32 saSendSMPIoctl (agsaRoot_t *agRoot, agsaDevHandle_t *agDevHandle, bit32 queueNum, agsaSMPFrame_t *pSMPFrame, ossaSMPCompletedCB_t agCB)
 
GLOBAL bit32 saSMPStart (agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 queueNum, agsaDevHandle_t *agDevHandle, bit32 agRequestType, agsaSASRequestBody_t *agRequestBody, ossaSMPCompletedCB_t agCB)
 Start SMP request. More...
 
GLOBAL bit32 saSMPAbort (agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 queueNum, agsaDevHandle_t *agDevHandle, bit32 flag, void *abortParam, ossaGenericAbortCB_t agCB)
 Abort SMP request. More...
 
GLOBAL bit32 saSSPStart (agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 queueNum, agsaDevHandle_t *agDevHandle, bit32 agRequestType, agsaSASRequestBody_t *agRequestBody, agsaIORequest_t *agTMRequest, ossaSSPCompletedCB_t agCB)
 Start SSP request. More...
 
GLOBAL bit32 saSSPAbort (agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 queueNum, agsaDevHandle_t *agDevHandle, bit32 flag, void *abortParam, ossaGenericAbortCB_t agCB)
 Abort SSP request. More...
 
GLOBAL void saGetDifErrorDetails (agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, agsaDifDetails_t *difDetails)
 
GLOBAL bit32 saRegisterEventCallback (agsaRoot_t *agRoot, bit32 eventSourceType, ossaGenericCB_t callbackPtr)
 Register a callback for a specific event. More...
 
GLOBAL bit32 saRegisterNewDevice (agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 queueNum, agsaDeviceInfo_t *agDeviceInfo, agsaPortContext_t *agPortContext, bit16 hostAssignedDeviceId)
 Register New Device from a specific local port. More...
 
GLOBAL bit32 saDeregisterDeviceHandle (agsaRoot_t *agRoot, agsaContext_t *agContext, agsaDevHandle_t *agDevHandle, bit32 queueNum)
 Function for target to remove stale initiator device handle. More...
 
GLOBAL bit32 saGetDeviceHandles (agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 queueNum, agsaPortContext_t *agPortContext, bit32 flags, agsaDevHandle_t *agDev[], bit32 skipCount, bit32 maxDevs)
 Get Device Handles from a specific local port. More...
 
GLOBAL bit32 saGetDeviceInfo (agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 option, bit32 queueNum, agsaDevHandle_t *agDevHandle)
 Get Device Information. More...
 
GLOBAL bit32 saGetDeviceState (agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 queueNum, agsaDevHandle_t *agDevHandle)
 Get Device State. More...
 
GLOBAL bit32 saSetDeviceInfo (agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 queueNum, agsaDevHandle_t *agDevHandle, bit32 option, bit32 param, ossaSetDeviceInfoCB_t agCB)
 Set Device Information. More...
 
GLOBAL bit32 saSetDeviceState (agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 queueNum, agsaDevHandle_t *agDevHandle, bit32 newDeviceState)
 Set Device State. More...
 
GLOBAL bit32 saFwFlashUpdate (agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 queueNum, agsaUpdateFwFlash_t *flashUpdateInfo)
 SPC FW Flash Update Command. More...
 
GLOBAL bit32 saFlashExtExecute (agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 queueNum, agsaFlashExtExecute_t *agFlashExtExe)
 
GLOBAL bit32 saEchoCommand (agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 queueNum, void *echoPayload)
 SAS/SATA LL API ECHO Command. More...
 
GLOBAL bit32 saGetControllerInfo (agsaRoot_t *agRoot, agsaControllerInfo_t *controllerInfo)
 SPC Get Controller Information Command. More...
 
GLOBAL bit32 saGetControllerStatus (agsaRoot_t *agRoot, agsaControllerStatus_t *controllerStatus)
 SPC Get Controller Status Command. More...
 
GLOBAL bit32 saGetControllerEventLogInfo (agsaRoot_t *agRoot, agsaControllerEventLog_t *eventLogInfo)
 SPC Get Controller Event Log Information Command. More...
 
GLOBAL bit32 saGpioEventSetup (agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 queueNum, agsaGpioEventSetupInfo_t *gpioEventSetupInfo)
 SPC Set GPIO Event Setup Command. More...
 
GLOBAL bit32 saGpioPinSetup (agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 queueNum, agsaGpioPinSetupInfo_t *gpioPinSetupInfo)
 SPC Set GPIO Pin Setup Command. More...
 
GLOBAL bit32 saGpioRead (agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 queueNum)
 SPC GPIO Read Command. More...
 
GLOBAL bit32 saGpioWrite (agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 queueNum, bit32 gpioWriteMask, bit32 gpioWriteValue)
 SPC GPIO Write Command. More...
 
GLOBAL bit32 saSASDiagExecute (agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 queueNum, agsaSASDiagExecute_t *diag)
 SPC SAS Diagnostic Execute Command. More...
 
GLOBAL bit32 saSASDiagStartEnd (agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 queueNum, bit32 phyId, bit32 operation)
 SPC SAS Diagnostic Start/End Command. More...
 
GLOBAL bit32 saGetTimeStamp (agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 queueNum)
 Initiate a GET TIME STAMP command. More...
 
GLOBAL bit32 saPortControl (agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 queueNum, agsaPortContext_t *agPortContext, bit32 portOperation, bit32 param0, bit32 param1)
 Initiate a Port COntrol IOMB command. More...
 
GLOBAL bit32 saGetRegisterDump (agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 queueNum, agsaRegDumpInfo_t *regDumpInfo)
 Initiate a GET REGISTER DUMP command. More...
 
GLOBAL bit32 saGetForensicData (agsaRoot_t *agRoot, agsaContext_t *agContext, agsaForensicData_t *forensicData)
 
bit32 saGetIOErrorStats (agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 flag)
 
bit32 saGetIOEventStats (agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 flag)
 
GLOBAL bit32 saGetNVMDCommand (agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 queueNum, agsaNVMDData_t *NVMDInfo)
 SPC Get NVMD Command. More...
 
GLOBAL bit32 saSetNVMDCommand (agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 queueNum, agsaNVMDData_t *NVMDInfo)
 SPC Set NVMD Command. More...
 
GLOBAL bit32 saReconfigSASParams (agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 queueNum, agsaSASReconfig_t *agSASConfig)
 Reconfiguration of SAS Parameters Command. More...
 
GLOBAL bit32 saSgpio (agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 queueNum, agsaSGpioReqResponse_t *pSGpioReq)
 Initiate a serial GPIO command. More...
 
GLOBAL bit32 saPCIeDiagExecute (agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 queueNum, agsaPCIeDiagExecute_t *diag)
 
GLOBAL bit32 saEncryptSelftestExecute (agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 queueNum, bit32 type, bit32 length, void *TestDescriptor)
 
GLOBAL bit32 saSetOperator (agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 queueNum, bit32 flag, void *cert)
 
GLOBAL bit32 saGetOperator (agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 queueNum, bit32 option, bit32 AddrHi, bit32 AddrLo)
 
GLOBAL bit32 saOperatorManagement (agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 queueNum, bit32 flag, bit8 role, agsaID_t *id, agsaEncryptKekBlob_t *kblob)
 
GLOBAL bit32 saSetControllerConfig (agsaRoot_t *agRoot, bit32 queueNum, bit32 modePage, bit32 length, void *buffer, agsaContext_t *agContext)
 
GLOBAL bit32 saGetControllerConfig (agsaRoot_t *agRoot, bit32 queueNum, bit32 modePage, bit32 flag0, bit32 flag1, agsaContext_t *agContext)
 
GLOBAL bit32 saEncryptDekCacheUpdate (agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 queueNum, bit32 kekIndex, bit32 dekTableSelect, bit32 dekAddrHi, bit32 dekAddrLo, bit32 dekIndex, bit32 dekNumberOfEntries, bit32 dekBlobFormat, bit32 dekTableKeyEntrySize)
 
GLOBAL bit32 saEncryptDekCacheInvalidate (agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 queueNum, bit32 dekTable, bit32 dekIndex)
 
GLOBAL bit32 saEncryptGetMode (agsaRoot_t *agRoot, agsaContext_t *agContext, agsaEncryptInfo_t *encryptInfo)
 
GLOBAL bit32 saEncryptSetMode (agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 queueNum, agsaEncryptInfo_t *mode)
 
GLOBAL bit32 saEncryptKekInvalidate (agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 queueNum, bit32 kekIndex)
 
GLOBAL bit32 saEncryptKekUpdate (agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 queueNum, bit32 flags, bit32 newKekIndex, bit32 wrapperKekIndex, bit32 blobFormat, agsaEncryptKekBlob_t *encryptKekBlob)
 
GLOBAL bit32 saGetDFEData (agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 queueNum, bit32 interface, bit32 laneNumber, bit32 interations, agsaSgl_t *agSgl)
 
GLOBAL bit32 saFatalInterruptHandler (agsaRoot_t *agRoot, bit32 interruptVectorIndex)
 
GLOBAL bit32 saDIFEncryptionOffloadStart (agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 queueNum, bit32 op, agsaDifEncPayload_t *agsaDifEncPayload, ossaDIFEncryptionOffloadStartCB_t agCB)
 
GLOBAL bit32 saVhistCapture (agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 queueNum, bit32 Channel, bit32 NumBitLo, bit32 NumBitHi, bit32 PcieAddrLo, bit32 PcieAddrHi, bit32 ByteCount)
 
GLOBAL void saCountActiveIORequests (agsaRoot_t *agRoot)
 saCountActiveIORequests count all active IO's More...
 

Detailed Description

The file defines the declaration of tSDK APIs.

Definition in file saapi.h.

Function Documentation

◆ saCountActiveIORequests()

GLOBAL void saCountActiveIORequests ( agsaRoot_t agRoot)

saCountActiveIORequests count all active IO's

Parameters
charvalue
Returns
-void-

Definition at line 370 of file sautil.c.

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

Referenced by saHwReset(), siDumpActiveIORequests(), and tiComCountActiveIORequests().

Here is the caller graph for this function:

◆ saDelayedInterruptHandler()

GLOBAL bit32 FORCEINLINE saDelayedInterruptHandler ( agsaRoot_t agRoot,
bit32  interruptVectorIndex,
bit32  count 
)

Function to process the cause of interrupt.

The saDelayedInterruptHandler() function is called after an interrupt messages has been received it may be called by a deferred procedure call

Parameters
agRootOS Layer-specific and LL Layer-specific context handles for this instance of SAS/SATA hardware
interruptVectorIndex- vector index for message
countNumber of completion queue entries to consume
Returns
number of messages processed

Definition at line 772 of file saint.c.

References agTRUE, agsaSwConfig_s::fatalErrorInterruptEnable, agsaSwConfig_s::fatalErrorInterruptVector, GEN_MSGU_SCRATCH_PAD_1, HDA_AES_DIF_FUNC, agsaSwConfig_s::hostDirectAccessMode, hpDBG_VERY_LOUD, agsaQueueOutbound_s::interruptEnable, agsaLLRoot_s::interruptVecIndexBitMap, agsaLLRoot_s::interruptVecIndexBitMap1, MSGU_SCRATCH_PAD_1, agsaQueueConfig_s::numOutboundQueues, OQ_NUM_32, OSSA_OUT_ENTER, OSSA_OUT_LEAVE, ossaDisableInterrupts(), ossaHwRegReadExt(), ossaReenableInterrupts(), agsaQueueConfig_s::outboundQueues, PCIBAR0, agsaLLRoot_s::QueueConfig, SA_ASSERT, SA_DBG1, SA_DBG2, SCRATCH_PAD1_V_ERROR_STATE, SCRATCH_PAD1_V_ILA_ERROR_STATE, SCRATCH_PAD1_V_IOP0_ERROR_STATE, SCRATCH_PAD1_V_IOP1_ERROR_STATE, SCRATCH_PAD1_V_RAAE_ERROR_STATE, agsaContext_s::sdkData, siFatalInterruptHandler(), siHalRegReadExt(), siProcessOBMsg(), smTrace, smTraceFuncEnter, smTraceFuncExit, agsaLLRoot_s::swConfig, agsaLLRoot_s::sysIntsActive, V_Outbound_Doorbell_Mask_Set_Register, V_Outbound_Doorbell_Mask_Set_RegisterU, V_Outbound_Doorbell_Set_Register, V_Outbound_Doorbell_Set_RegisterU, V_Scratchpad_0_Register, V_Scratchpad_1_Register, V_Scratchpad_2_Register, V_Scratchpad_3_Register, V_Scratchpad_Rsvd_0_Register, and V_Scratchpad_Rsvd_1_Register.

Referenced by tiCOMDelayedInterruptHandler().

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

◆ saDeregisterDeviceHandle()

GLOBAL bit32 saDeregisterDeviceHandle ( agsaRoot_t agRoot,
agsaContext_t agContext,
agsaDevHandle_t agDevHandle,
bit32  queueNum 
)

Function for target to remove stale initiator device handle.

function is called to ask the LL layer to remove all LL layer and SPC firmware 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 83 of file sadisc.c.

References agNULL, AGSA_RC_FAILURE, AGSA_RC_SUCCESS, DEVICE_ID_BITS, agsaDeviceMap_s::DeviceHandle, agsaDeviceMap_s::DeviceIdFromFW, agsaLLRoot_s::DeviceMap, agsaDeviceDesc_s::DeviceMapIndex, hpDBG_VERY_LOUD, MAX_IO_DEVICE_ENTRIES, mpiDeregDevHandleCmd(), OS_ASSERT, agsaPort_s::portId, agsaDeviceDesc_s::pPort, SA_DBG1, SA_DBG3, agsaContext_s::sdkData, smTraceFuncEnter, and smTraceFuncExit.

Referenced by ossaDeviceRegistrationCB(), ossaSMPAbortCB(), and tdsaDeregisterDevicesInPort().

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

◆ saDIFEncryptionOffloadStart()

GLOBAL bit32 saDIFEncryptionOffloadStart ( agsaRoot_t agRoot,
agsaContext_t agContext,
bit32  queueNum,
bit32  op,
agsaDifEncPayload_t agsaDifEncPayload,
ossaDIFEncryptionOffloadStartCB_t  agCB 
)

saDIFEncryptionOffloadStart()

initiate the SPCv controller offload function 
Parameters
saRoot
agContext
queueNum
op
agsaDifEncPayload
agCB
Returns

Definition at line 1111 of file saport.c.

References AGSA_RC_FAILURE, hpDBG_VERY_LOUD, mpiDIFEncryptionOffloadCmd(), SA_DBG1, smIS_SPCV(), smTraceFuncEnter, and smTraceFuncExit.

Here is the call graph for this function:

◆ saDiscover()

GLOBAL bit32 saDiscover ( agsaRoot_t agRoot,
agsaPortContext_t agPortContext,
bit32  type,
bit32  option 
)

Start/Abort SAS/SATA discovery.

Start/Abort SAS/SATA discovery

Parameters
agRootHandles for this instance of SAS/SATA hardware
agPortContextPointer to this instance of port context
typeSpecifies the type(s) of discovery operation to start or cancel
optionSpecified the discovery option
Returns
If discovery is started/aborted successfully
  • AGSA_RC_SUCCESS discovery is started/aborted successfully
  • AGSA_RC_FAILURE discovery is not started/aborted successfully

Definition at line 57 of file sadisc.c.

References AGSA_RC_FAILURE.

Referenced by ossaHwCB(), and tiINIDiscoverTargets().

Here is the caller graph for this function:

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

◆ saEncryptDekCacheInvalidate()

GLOBAL bit32 saEncryptDekCacheInvalidate ( agsaRoot_t agRoot,
agsaContext_t agContext,
bit32  queueNum,
bit32  dekTable,
bit32  dekIndex 
)

saEncryptDekCacheInvalidate()

Remove a DEK from the controller cache
Parameters
saRoot
kekIndex
dekTable
dekAddrHi
dekAddrLo
dekIndex
dekNumberOfEntries
Returns

Definition at line 1057 of file saport.c.

References DEK_MGMT_SUBOP_INVALIDATE, dekIndex, dekTable, hpDBG_VERY_LOUD, mpiDekManagementCmd(), OSSA_OFFSET_OF, SA_DBG2, SHIFT8, si_memset(), smTraceFuncEnter, and smTraceFuncExit.

Referenced by tiCOMEncryptDekInvalidate().

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

◆ saEncryptDekCacheUpdate()

GLOBAL bit32 saEncryptDekCacheUpdate ( agsaRoot_t agRoot,
agsaContext_t agContext,
bit32  queueNum,
bit32  kekIndex,
bit32  dekTableSelect,
bit32  dekAddrHi,
bit32  dekAddrLo,
bit32  dekIndex,
bit32  dekNumberOfEntries,
bit32  dekBlobFormat,
bit32  dekTableKeyEntrySize 
)

saEncryptDekCacheUpdate()

Replace a DEK within the controller cache
Parameters
saRoot
kekIndex
dekTableSelect
dekAddrHi
dekAddrLo
dekIndex
dekNumberOfEntries
Returns

Definition at line 973 of file saport.c.

References DEK_MGMT_SUBOP_UPDATE, dekBlobFormat, dekIndex, dekTableKeyEntrySize, hpDBG_VERY_LOUD, kekIndex, mpiDekManagementCmd(), OSSA_OFFSET_OF, SA_DBG2, SHIFT24, SHIFT8, si_memset(), smTraceFuncEnter, and smTraceFuncExit.

Referenced by tiCOMEncryptDekAdd().

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

◆ saEncryptGetMode()

◆ saEncryptKekInvalidate()

GLOBAL bit32 saEncryptKekInvalidate ( agsaRoot_t agRoot,
agsaContext_t agContext,
bit32  queueNum,
bit32  kekIndex 
)

saEncryptKekInvalidate()

Remove a KEK from the controller
Parameters
saRoot
flags
newKekIndex
wrapperKekIndex
encryptKekBlob
Returns

Definition at line 929 of file saport.c.

References hpDBG_VERY_LOUD, KEK_MGMT_SUBOP_INVALIDATE, kekIndex, mpiKekManagementCmd(), OSSA_OFFSET_OF, SA_DBG2, SHIFT16, si_memset(), smTraceFuncEnter, and smTraceFuncExit.

Here is the call graph for this function:

◆ saEncryptKekUpdate()

GLOBAL bit32 saEncryptKekUpdate ( agsaRoot_t agRoot,
agsaContext_t agContext,
bit32  queueNum,
bit32  flags,
bit32  newKekIndex,
bit32  wrapperKekIndex,
bit32  blobFormat,
agsaEncryptKekBlob_t encryptKekBlob 
)

saEncryptKekUpdate()

Replace a KEK within the controller
Parameters
saRoot
flags
newKekIndex
wrapperKekIndex
encryptKekBlob
Returns

Definition at line 808 of file saport.c.

References blobFormat, flags, hpDBG_VERY_LOUD, KEK_MGMT_SUBOP_UPDATE, agsaEncryptKekBlob_s::kekBlob, mpiKekManagementCmd(), OSSA_OFFSET_OF, SA_DBG2, SHIFT14, SHIFT16, SHIFT24, SHIFT8, si_memset(), smTraceFuncEnter, smTraceFuncExit, and wrapperKekIndex.

Referenced by tiCOMEncryptKekAdd().

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

◆ saEncryptSelftestExecute()

GLOBAL bit32 saEncryptSelftestExecute ( agsaRoot_t agRoot,
agsaContext_t agContext,
bit32  queueNum,
bit32  type,
bit32  length,
void *  TestDescriptor 
)

Definition at line 1271 of file saport.c.

References AGSA_RC_SUCCESS, hpDBG_VERY_LOUD, mpiEncryptBistCmd(), agsaEncryptBist_s::r_subop, SA_DBG1, si_memcpy(), si_memset(), smTraceFuncEnter, smTraceFuncExit, and agsaEncryptBist_s::testDiscption.

Referenced by tdsaSendBISTIoctl(), and tiCOMEncryptSelfTest().

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

◆ saEncryptSetMode()

◆ saFatalInterruptHandler()

◆ saFlashExtExecute()

◆ saFrameReadBit32()

GLOBAL bit32 saFrameReadBit32 ( agsaRoot_t agRoot,
agsaFrameHandle_t  agFrame,
bit32  frameOffset 
)

Read 32 bits from a frame.

Read 32 bits from a frame

Parameters
agRootHandles for this instance of SAS/SATA LLL
agFrameThe frame handler
frameOffsetOffset in bytes from the beginning of valid frame bytes or IU to the 32-bit value to read
Returns
The read value

Definition at line 55 of file saframe.c.

References agNULL, hpDBG_VERY_LOUD, smTraceFuncEnter, and smTraceFuncExit.

◆ saFrameReadBlock()

GLOBAL void saFrameReadBlock ( agsaRoot_t agRoot,
agsaFrameHandle_t  agFrame,
bit32  frameOffset,
void *  frameBuffer,
bit32  frameBufLen 
)

Read a block from a frame.

Read a block from a frame

Parameters
agRootHandles for this instance of SAS/SATA LLL
agFrameThe frame handler
frameOffsetThe offset of the frame to start read
frameBufferThe pointer to the destination of data read from the frame
frameBufLenNumber of bytes to read from the frame
Returns
-void-

Definition at line 96 of file saframe.c.

References agNULL, hpDBG_VERY_LOUD, SA_ASSERT, smTraceFuncEnter, and smTraceFuncExit.

Referenced by itdssIOCompleted(), itdssIOSuccessHandler(), itdssTaskCompleted(), ossaSATAEvent(), ossaSMPCAMCompleted(), ossaSMPCompleted(), ossaSSPEvent(), smsatLogSenseCB(), smsatRequestSenseCB(), smSMPCompleted(), tiCOMFrameReadBlock(), and ttdsaSSPReqReceived().

Here is the caller graph for this function:

◆ saFwFlashUpdate()

GLOBAL bit32 saFwFlashUpdate ( agsaRoot_t agRoot,
agsaContext_t agContext,
bit32  queueNum,
agsaUpdateFwFlash_t flashUpdateInfo 
)

SPC FW Flash Update Command.

This command sends FW Flash Update Command to SPC.

Parameters
agRootHandles for this instance of SAS/SATA LL
agContextContext of SPC FW Flash Update Command
queueNumInbound/outbound queue number
flashUpdateInfoPointer of flash update information
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 223 of file saioctlcmd.c.

References agsaIOMap_s::agContext, agFALSE, agNULL, AGSA_MAX_INBOUND_Q, AGSA_RC_BUSY, AGSA_RC_FAILURE, AGSA_RC_SUCCESS, agsaUpdateFwFlash_s::agSgl, agTRUE, agsaUpdateFwFlash_s::currentImageLen, agsaUpdateFwFlash_s::currentImageOffset, agsaSgl_s::extReserved, agsaFwFlashUpdate_s::extReserved, agsaLLRoot_s::freeIORequests, FWFLASH_IOMB_RESERVED_LEN, hpDBG_VERY_LOUD, agsaIORequestDesc_s::HTag, agsaLLRoot_s::inboundQueue, agsaLLRoot_s::IOMap, IOMB_SIZE64, agsaIOMap_s::IORequest, agsaSgl_s::len, agsaFwFlashUpdate_s::Len, agsaIORequestDesc_s::linkNode, LL_IOREQ_IBQ0_LOCK, LL_IOREQ_LOCKEQ_LOCK, MARK_OFF, MPI_CATEGORY_SAS_SATA, MPI_IB_NUM_MASK, MPI_OB_NUM_MASK, MPI_OB_SHIFT, mpiMsgFreeGet(), mpiMsgProduce(), OPC_INB_FW_FLASH_UPDATE, OSSA_OFFSET_OF, ossaSingleThreadedEnter(), ossaSingleThreadedLeave(), mpiICQueue_s::priority, agsaFwFlashUpdate_s::reserved0, SA_ASSERT, SA_DBG1, saLlistIOAdd, saLlistIOGetHead, saLlistIORemove, agsaContext_s::sdkData, agsaFwFlashUpdate_s::SGLAH, agsaFwFlashUpdate_s::SGLAL, agsaSgl_s::sgLower, agsaSgl_s::sgUpper, smTraceFuncEnter, smTraceFuncExit, agsaIOMap_s::Tag, agsaUpdateFwFlash_s::totalImageLen, and agsaIORequestDesc_s::valid.

Referenced by tdipFWControlIoctl().

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

◆ saGetControllerConfig()

GLOBAL bit32 saGetControllerConfig ( agsaRoot_t agRoot,
bit32  queueNum,
bit32  modePage,
bit32  flag0,
bit32  flag1,
agsaContext_t agContext 
)

saGetControllerConfig()

Retrieve the contents of a controller mode page
Parameters
saRoot
modePage
agContext
Returns

Definition at line 1234 of file saport.c.

References AGSA_INTERRUPT_CONFIGURATION_PAGE, AGSA_RC_FAILURE, hpDBG_VERY_LOUD, agsaGetControllerConfigCmd_s::INT_VEC_MSK0, agsaGetControllerConfigCmd_s::INT_VEC_MSK1, mpiGetControllerConfigCmd(), agsaGetControllerConfigCmd_s::pageCode, SA_DBG1, SA_DBG2, si_memset(), smIS_SPCV(), smTraceFuncEnter, and smTraceFuncExit.

Referenced by tiCOMGetControllerConfig(), and tiCOMMgntIOCTL().

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

◆ saGetControllerEventLogInfo()

GLOBAL bit32 saGetControllerEventLogInfo ( agsaRoot_t agRoot,
agsaControllerEventLog_t eventLogInfo 
)

SPC Get Controller Event Log Information Command.

This command sends Get Controller Event Log Information Command to SPC.

Parameters
agRootHandles for this instance of SAS/SATA LL
eventLogInfoevent log information
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 1345 of file saioctlcmd.c.

References agsaMemoryRequirement_s::agMemory, agNULL, AGSA_RC_SUCCESS, agsaControllerEventLog_s::eventLog1, agsaControllerEventLog_s::eventLog1Option, agsaControllerEventLog_s::eventLog2, agsaControllerEventLog_s::eventLog2Option, mpiHostLLConfigDescriptor_s::eventLogOption, hpDBG_VERY_LOUD, mpiHostLLConfigDescriptor_s::IOPeventLogOption, agsaLLRoot_s::mainConfigTable, agsaLLRoot_s::memoryAllocated, MPI_EVENTLOG_INDEX, MPI_IOP_EVENTLOG_INDEX, MPI_MEM_INDEX, SA_ASSERT, agsaContext_s::sdkData, smTraceFuncEnter, and smTraceFuncExit.

Referenced by tiCOMMgntIOCTL().

Here is the caller graph for this function:

◆ saGetControllerInfo()

GLOBAL bit32 saGetControllerInfo ( agsaRoot_t agRoot,
agsaControllerInfo_t controllerInfo 
)

SPC Get Controller Information Command.

This command sends Get Controller Information Command to SPC.

Parameters
agRootHandles for this instance of SAS/SATA LL
controllerInfoController Information
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 714 of file saioctlcmd.c.

References agNULL, AGSA_RC_FAILURE, AGSA_RC_FW_NOT_IN_READY_STATE, AGSA_RC_HDA_NO_FW_RUNNING, AGSA_RC_SUCCESS, BOOTTLOADERHDA_IDLE, agsaControllerInfo_s::controllerSetting, agsaControllerInfo_s::fwInterfaceRev, agsaControllerInfo_s::fwRevision, GEN_MSGU_SCRATCH_PAD_0, GEN_MSGU_SCRATCH_PAD_1, GEN_MSGU_SCRATCH_PAD_2, GEN_MSGU_SCRATCH_PAD_3, gWait_2, HDA_CMD_CODE_OFFSET, HDA_RSP_OFFSET1MB, HDA_STATUS_BITS, hpDBG_VERY_LOUD, agsaControllerInfo_s::hwRevision, agsaControllerInfo_s::ilaRevision, MAIN_CNTRL_CAP_OFFSET, MAIN_FW_REVISION, MAIN_HDA_FLAG_BITS, MAIN_HDA_FLAGS_OFFSET, MAIN_ILAT_ILAV_ILASMRN_ILAMRN_ILAMJN, MAIN_INTERFACE_REVISION, MAIN_MAX_DEV_BITS, MAIN_MAX_OUTSTANDING_IO_OFFSET, MAIN_MAX_SGL_BITS, MAIN_MAX_SGL_OFFSET, MAIN_PHY_COUNT_MASK, MAIN_QSUPPORT_BITS, MAIN_SAS_SUPPORT_BITS, MAKE_MODULO, MATCHING_SPC_FW_VERSION, agsaControllerInfo_s::maxDevices, agsaControllerInfo_s::maxPendingIO, agsaControllerInfo_s::maxSgElements, mpiGetPCIBarIndex(), MSGU_SCRATCH_PAD_0, MSGU_SCRATCH_PAD_1, MSGU_SCRATCH_PAD_2, MSGU_SCRATCH_PAD_3, ossaHwRegReadConfig32(), ossaHwRegReadExt(), ossaStallThread(), PCIBAR3, agsaControllerInfo_s::PCILinkRate, agsaControllerInfo_s::PCIWidth, agsaControllerInfo_s::phyCount, agsaControllerInfo_s::queueSupport, SA_DBG1, SA_DBG2, agsaControllerInfo_s::sasSpecsSupport, SCRATCH_PAD0_BAR_MASK, SCRATCH_PAD0_OFFSET_MASK, SCRATCH_PAD1_RDY, SCRATCH_PAD1_RESERVED, SCRATCH_PAD1_V_BOOTSTATE_MASK, SCRATCH_PAD1_V_ERROR_STATE, SCRATCH_PAD1_V_ILA_ERROR_STATE, SCRATCH_PAD1_V_IOP0_ERROR_STATE, SCRATCH_PAD1_V_IOP1_ERROR_STATE, SCRATCH_PAD1_V_RAAE_ERROR_STATE, SCRATCH_PAD1_V_READY, SCRATCH_PAD1_V_RESERVED, SCRATCH_PAD2_RDY, SCRATCH_PAD2_RESERVED, SCRATCH_PAD_STATE_MASK, agsaContext_s::sdkData, agsaControllerInfo_s::sdkInterfaceRev, agsaControllerInfo_s::sdkRevision, SHIFT16, SHIFT19, SHIFT25, SHIFT26, SHIFT4, si_check_V_HDA(), si_memset(), agsaControllerInfo_s::signature, siHalRegReadExt(), smIS_SPC(), smIS_SPC12V(), smIS_SPC6V(), smIS_SPCV(), smTraceFuncEnter, smTraceFuncExit, SPC_READ_DEV_REV, STSDK_LL_12G_INTERFACE_VERSION, STSDK_LL_12G_VERSION, STSDK_LL_INTERFACE_VERSION, STSDK_LL_SPC_VERSION, STSDK_LL_VERSION, WAIT_INCREMENT, and WAIT_SECONDS.

Referenced by tdsaGetPhyGeneralStatusIoctl(), tiCOMMgntIOCTL(), and tiCOMPortInit().

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

◆ saGetControllerStatus()

GLOBAL bit32 saGetControllerStatus ( agsaRoot_t agRoot,
agsaControllerStatus_t controllerStatus 
)

SPC Get Controller Status Command.

This command sends Get Controller Status Command to SPC.

Parameters
agRootHandles for this instance of SAS/SATA LL
controllerStatuscontroller status
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 974 of file saioctlcmd.c.

References agNULL, AGSA_RC_FAILURE, AGSA_RC_FW_NOT_IN_READY_STATE, AGSA_RC_HDA_NO_FW_RUNNING, AGSA_RC_SUCCESS, agsaControllerStatus_s::bootComponentState, agsaControllerStatus_s::bootStatus, BOOTTLOADERHDA_IDLE, agsaFatalErrorInfo_s::errorInfo0, agsaFatalErrorInfo_s::errorInfo1, agsaFatalErrorInfo_s::errorInfo2, agsaFatalErrorInfo_s::errorInfo3, mpiHostLLConfigDescriptor_s::FatalErrorDumpLength0, mpiHostLLConfigDescriptor_s::FatalErrorDumpLength1, mpiHostLLConfigDescriptor_s::FatalErrorDumpOffset0, mpiHostLLConfigDescriptor_s::FatalErrorDumpOffset1, agsaControllerStatus_s::fatalErrorInfo, GEN_MSGU_SCRATCH_PAD_0, GEN_MSGU_SCRATCH_PAD_1, GEN_MSGU_SCRATCH_PAD_3, GST_INF_STATE_BITS, spc_GSTableDescriptor_s::GSTLenMPIS, HDA_CMD_CODE_OFFSET, HDA_RSP_OFFSET1MB, HDA_STATUS_BITS, hpDBG_VERY_LOUD, agsaControllerStatus_s::interfaceState, spc_GSTableDescriptor_s::Iop1Tcnt, spc_GSTableDescriptor_s::IopTcnt, agsaControllerStatus_s::iqFreezeState0, spc_GSTableDescriptor_s::IQFreezeState0, agsaControllerStatus_s::iqFreezeState1, spc_GSTableDescriptor_s::IQFreezeState1, IS_SDKDATA, agsaPhy_s::linkstatus, MAIN_FATAL_ERROR_RDUMP0_LENGTH, MAIN_FATAL_ERROR_RDUMP0_OFFSET, MAIN_FATAL_ERROR_RDUMP1_LENGTH, MAIN_FATAL_ERROR_RDUMP1_OFFSET, agsaLLRoot_s::mainConfigTable, MAKE_MODULO, mpiGetPCIBarIndex(), mpiReadGSTable(), MSGU_SCRATCH_PAD_0, MSGU_SCRATCH_PAD_1, MSGU_SCRATCH_PAD_2, MSGU_SCRATCH_PAD_3, spc_GSTableDescriptor_s::MsguTcnt, OSSA_DIF_ENGINE_FAILURE_MASK, OSSA_ENCRYPT_ENGINE_FAILURE_MASK, ossaHwRegRead(), ossaHwRegReadExt(), ossaStallThread(), PCIBAR3, agsaLLRoot_s::phys, spc_GSTableDescriptor_s::PhyState, agsaControllerStatus_s::phyStatus, agsaControllerStatus_s::recoverableErrorInfo, spc_GSTableDescriptor_s::recoverErrInfo, agsaFatalErrorInfo_s::regDumpBusBaseNum0, agsaFatalErrorInfo_s::regDumpBusBaseNum1, agsaFatalErrorInfo_s::regDumpLen0, agsaFatalErrorInfo_s::regDumpLen1, agsaFatalErrorInfo_s::regDumpOffset0, agsaFatalErrorInfo_s::regDumpOffset1, mpiHostLLConfigDescriptor_s::regDumpPCIBAR, SA_DBG1, SA_DBG2, SCRATCH_PAD0_BAR_MASK, SCRATCH_PAD0_OFFSET_MASK, SCRATCH_PAD1_ERR, SCRATCH_PAD1_RDY, SCRATCH_PAD1_RESERVED, SCRATCH_PAD1_V_RESERVED, SCRATCH_PAD2_ERR, SCRATCH_PAD2_RDY, SCRATCH_PAD2_RESERVED, SCRATCH_PAD_STATE_MASK, agsaContext_s::sdkData, SHIFT10, SHIFT12, SHIFT14, SHIFT16, SHIFT18, SHIFT2, SHIFT23, SHIFT24, SHIFT26, SHIFT4, SHIFT8, SHIFT9, si_check_V_HDA(), si_check_V_Ready(), si_memset(), siHalRegReadExt(), smIS_SPC(), smTraceFuncEnter, smTraceFuncExit, agsaControllerStatus_s::tickCount0, agsaControllerStatus_s::tickCount1, agsaControllerStatus_s::tickCount2, V_Scratchpad_0_Register, V_Scratchpad_1_Register, V_Scratchpad_2_Register, V_Scratchpad_3_Register, WAIT_INCREMENT, and WAIT_SECONDS.

Referenced by saHwReset(), tiCOMPortInit(), tiCOMPortStop(), and tiCOMReset().

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

◆ saGetDeviceHandles()

GLOBAL bit32 saGetDeviceHandles ( agsaRoot_t agRoot,
agsaContext_t agContext,
bit32  queueNum,
agsaPortContext_t agPortContext,
bit32  flags,
agsaDevHandle_t agDev[],
bit32  skipCount,
bit32  MaxDevs 
)

Get Device Handles from a specific local port.

Get a Device Handles

Parameters
agRootHandles for this instance of SAS/SATA hardware
agsaContextPointer to this API context
agPortContextPointer to this instance of port context
flagsDevice flags
agDev[]Pointer of array of device handles
MaxDevsSpecified Maximum number of Device Handles
Returns
If GetDeviceHandles is successfully or failure
  • AGSA_RC_SUCCESS GetDeviceHandles is successfully
  • AGSA_RC_FAILURE GetDeviceHandles is not successfully

Definition at line 243 of file sadisc.c.

References agNULL, AGSA_RC_FAILURE, AGSA_RC_SUCCESS, agsaLLRoot_s::DeviceHandle, flags, hpDBG_VERY_LOUD, mpiGetDeviceHandleCmd(), OS_ASSERT, agsaPort_s::portId, SA_DBG1, agsaContext_s::sdkData, smTraceFuncEnter, and smTraceFuncExit.

Here is the call graph for this function:

◆ saGetDeviceInfo()

GLOBAL bit32 saGetDeviceInfo ( agsaRoot_t agRoot,
agsaContext_t agContext,
bit32  option,
bit32  queueNum,
agsaDevHandle_t agDevHandle 
)

Get Device Information.

Get SAS/SATA device information API

Parameters
agRootHandles for this instance of SAS/SATA hardware
optiondevice general information or extended information
agDevHandlePointer of device handle
Returns
  • AGSA_RC_SUCCESS
  • AGSA_RC_FAILURE

Definition at line 609 of file sadisc.c.

References agNULL, AGSA_RC_FAILURE, DEVICE_ID_BITS, agsaDeviceMap_s::DeviceHandle, agsaDeviceMap_s::DeviceIdFromFW, agsaLLRoot_s::DeviceMap, agsaDeviceDesc_s::DeviceMapIndex, hpDBG_VERY_LOUD, mpiGetDeviceInfoCmd(), OS_ASSERT, SA_DBG1, SA_DBG3, agsaContext_s::sdkData, smTraceFuncEnter, and smTraceFuncExit.

Referenced by tiINIGetDeviceInfo().

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

◆ saGetDeviceState()

GLOBAL bit32 saGetDeviceState ( agsaRoot_t agRoot,
agsaContext_t agContext,
bit32  queueNum,
agsaDevHandle_t agDevHandle 
)

Get Device State.

Get SAS/SATA device state API

Parameters
agRootHandles for this instance of SAS/SATA hardware
agContextPointer to this API context
queueNumIQ/OQ number
agDevHandlePointer of device handler
Returns
  • AGSA_RC_SUCCESS
  • AGSA_RC_FAILURE

Definition at line 739 of file sadisc.c.

References agNULL, AGSA_RC_FAILURE, DEVICE_ID_BITS, agsaDeviceMap_s::DeviceHandle, agsaDeviceMap_s::DeviceIdFromFW, agsaLLRoot_s::DeviceMap, agsaDeviceDesc_s::DeviceMapIndex, hpDBG_VERY_LOUD, mpiGetDeviceStateCmd(), OS_ASSERT, SA_DBG1, SA_DBG3, agsaContext_s::sdkData, smTraceFuncEnter, and smTraceFuncExit.

Here is the call graph for this function:

◆ saGetDFEData()

◆ saGetDifErrorDetails()

GLOBAL void saGetDifErrorDetails ( agsaRoot_t agRoot,
agsaIORequest_t agIORequest,
agsaDifDetails_t difDetails 
)

◆ saGetForensicData()

GLOBAL bit32 saGetForensicData ( agsaRoot_t agRoot,
agsaContext_t agContext,
agsaForensicData_t forensicData 
)

Definition at line 3004 of file saioctlcmd.c.

References ossaGetForensicDataCB(), siGetForensicData(), and status.

Referenced by tdsaForensicDataGetIoctl(), tiCOMReset(), and tiCOMShutDown().

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

◆ saGetIOErrorStats()

bit32 saGetIOErrorStats ( agsaRoot_t agRoot,
agsaContext_t agContext,
bit32  flag 
)

Definition at line 3016 of file saioctlcmd.c.

References AGSA_RC_SUCCESS, agsaLLRoot_s::IoErrorCount, ossaGetIOErrorStatsCB(), agsaContext_s::sdkData, si_memset(), and status.

Referenced by tdsaIoErrorStatisticGetIoctl().

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

◆ saGetIOEventStats()

bit32 saGetIOEventStats ( agsaRoot_t agRoot,
agsaContext_t agContext,
bit32  flag 
)

Definition at line 3036 of file saioctlcmd.c.

References AGSA_RC_SUCCESS, agsaLLRoot_s::IoEventCount, ossaGetIOEventStatsCB(), agsaContext_s::sdkData, si_memset(), and status.

Referenced by tdsaIoEventStatisticGetIoctl().

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

◆ saGetNVMDCommand()

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

SPC Get NVMD Command.

This command sends GET_NVMD_DATA Command to SPC.

Parameters
agRootHandles for this instance of SAS/SATA LL
agContextContext of SPC FW Flash Update Command
queueNumInbound/outbound queue number
NVMDInfoPointer of NVM Device information
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 3292 of file saioctlcmd.c.

References agNULL, AGSA_RC_SUCCESS, mpiGetNVMDCmd(), and SA_ASSERT.

Referenced by tdsaNVMDGetIoctl().

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

◆ saGetOperator()

GLOBAL bit32 saGetOperator ( agsaRoot_t agRoot,
agsaContext_t agContext,
bit32  queueNum,
bit32  option,
bit32  AddrHi,
bit32  AddrLo 
)

Definition at line 1395 of file saport.c.

References AGSA_RC_SUCCESS, hpDBG_VERY_LOUD, mpiGetOperatorCmd(), agsaGetOperatorCmd_s::OprBufAddrHi, agsaGetOperatorCmd_s::OprBufAddrLo, agsaGetOperatorCmd_s::option, SA_DBG1, si_memset(), smTraceFuncEnter, and smTraceFuncExit.

Referenced by tiCOMGetOperator().

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

◆ saGetPhyProfile()

◆ saGetRegisterDump()

GLOBAL bit32 saGetRegisterDump ( agsaRoot_t agRoot,
agsaContext_t agContext,
bit32  queueNum,
agsaRegDumpInfo_t regDumpInfo 
)

Initiate a GET REGISTER DUMP command.

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

Parameters
agRoothandles for this instance of SAS/SATA hardware
agContextthe context of this API
queueNumqueue number
regDumpInforegister dump information
Returns
  • SUCCESS or FAILURE

Definition at line 3071 of file saioctlcmd.c.

References agNULL, AGSA_RC_FAILURE, AGSA_RC_SUCCESS, agsaRegDumpInfo_s::directData, agsaRegDumpInfo_s::directLen, GET_GSM_SM_INFO, GET_IOST_RB_INFO, hpDBG_VERY_LOUD, agsaRegDumpInfo_s::indirectAddrLower32, agsaRegDumpInfo_s::indirectAddrUpper32, agsaRegDumpInfo_s::indirectLen, mpiNVMReadRegDumpCmd(), OSSA_FAILURE, OSSA_SUCCESS, ossaGetRegisterDumpCB(), REG_DUMP_FLASH, REG_DUMP_NONFLASH, agsaRegDumpInfo_s::regDumpNum, agsaRegDumpInfo_s::regDumpOffset, agsaRegDumpInfo_s::regDumpSrc, REGISTER_DUMP_BUFF_SIZE, agsaLLRoot_s::registerDump0, agsaLLRoot_s::registerDump1, SA_ASSERT, SA_DBG1, SA_DBG3, agsaContext_s::sdkData, si_memcpy(), siGSMDump(), siSpcGetErrorContent(), siSpcvGetErrorContent(), smIS_SPC(), smIS_SPCV(), smTraceFuncEnter, smTraceFuncExit, SPC_GSM_SM_OFFSET, and SPCV_GSM_SM_OFFSET.

Referenced by tdsaRegDumpGetIoctl().

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

◆ saGetRequirements()

GLOBAL void saGetRequirements ( agsaRoot_t agRoot,
agsaSwConfig_t swConfig,
agsaMemoryRequirement_t memoryRequirement,
bit32 usecsPerTick,
bit32 maxNumLocks 
)

Get the memory and lock requirement from LL layer.

Get the memory and lock requirement from LL layer

Parameters
agRootHandles for this instance of SAS/SATA hardware
swConfigPointer to the software configuration
memoryRequirementPoint to the data structure that holds the different chunks of memory that are required
usecsPerTickmicro-seconds per tick for the LL layer
maxNumLocksmaximum number of locks for the LL layer
Returns
-void-

Definition at line 74 of file sainit.c.

References agsaMemoryRequirement_s::agMemory, agNULL, AGSA_CACHED_MEM, AGSA_DMA_MEM, AGSA_MAX_INBOUND_Q, AGSA_NUM_MEM_CHUNKS, agsaMem_s::alignment, mpiMem_s::alignment, agsaMemoryRequirement_s::count, mpiMemReq_s::count, DEVICELINK_MEM_INDEX, agsaSwConfig_s::disableMDF, mpiMem_s::elementSize, HDA_DMA_BUFFER, agsaSwConfig_s::hostDirectAccessMode, agsaSwConfig_s::hostDirectAccessSupport, IOREQLINK_MEM_INDEX, agsaSwConfig_s::legacyInt_X, LL_FAST_IO, LL_FUNCTION_TRACE, LL_IOREQ_IBQ_LOCK, LL_IOREQ_IBQ_LOCK_PARM, LLROOT_MEM_INDEX, agsaSwConfig_s::max_MSI_InterruptVectors, agsaSwConfig_s::max_MSIX_InterruptVectors, agsaSwConfig_s::maxActiveIOs, mpiRequirementsGet(), NUM_TIMERS, agsaSwConfig_s::numDevHandles, agsaMem_s::numElements, mpiMem_s::numElements, agsaQueueConfig_s::numInboundQueues, agsaSwConfig_s::param3, mpiMemReq_s::region, SA_ASSERT, SA_DBG1, SA_RESERVED_REQUEST_COUNT, SA_USECS_PER_TICK, si_memset(), siConfiguration(), agsaMem_s::singleElementLength, agsaSwConfig_s::stallUsec, TIMERLINK_MEM_INDEX, agsaMem_s::totalLength, mpiMem_s::totalLength, agsaMem_s::type, and mpiMem_s::type.

Referenced by tdsaLoLevelGetResource(), and tiCOMPortInit().

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

◆ saGetTimeStamp()

GLOBAL bit32 saGetTimeStamp ( agsaRoot_t agRoot,
agsaContext_t agContext,
bit32  queueNum 
)

Initiate a GET TIME STAMP command.

This function is called to initiate a Get Time Stamp command to the SPC. The completion of this function is reported in ossaGetTimeStampCB().

Parameters
agRoothandles for this instance of SAS/SATA hardware
agContextthe context of this API
queueNumqueue number
Returns
  • SUCCESS or FAILURE

Definition at line 1982 of file saioctlcmd.c.

References agsaIOMap_s::agContext, agFALSE, agNULL, AGSA_RC_BUSY, AGSA_RC_FAILURE, 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_TIME_STAMP, 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.

Here is the call graph for this function:

◆ saGpioEventSetup()

GLOBAL bit32 saGpioEventSetup ( agsaRoot_t agRoot,
agsaContext_t agContext,
bit32  queueNum,
agsaGpioEventSetupInfo_t gpioEventSetupInfo 
)

SPC Set GPIO Event Setup Command.

This command sends GPIO Event Setup Command to SPC.

Parameters
agRootHandles for this instance of SAS/SATA LL
agsaContextContext of this command
queueNumQueue number of inbound/outbound queue
gpioEventSetupInfoPointer of Event Setup Information structure
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 1384 of file saioctlcmd.c.

References agsaIOMap_s::agContext, agFALSE, agNULL, AGSA_RC_BUSY, AGSA_RC_SUCCESS, agTRUE, agsaLLRoot_s::freeIORequests, agsaLLRoot_s::freeReservedRequests, GPIO_GE_BIT, agsaGpioEventSetupInfo_s::gpioEventFallingEdge, agsaGpioEventSetupInfo_s::gpioEventLevel, agsaGpioEventSetupInfo_s::gpioEventRisingEdge, 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_GPIO, OSSA_OFFSET_OF, ossaSingleThreadedEnter(), ossaSingleThreadedLeave(), SA_ASSERT, SA_DBG1, SA_RESERVED_REQUEST_COUNT, saLlistIOAdd, saLlistIOGetCount, saLlistIOGetHead, saLlistIORemove, agsaContext_s::sdkData, si_memset(), smTraceFuncEnter, smTraceFuncExit, agsaIOMap_s::Tag, and agsaIORequestDesc_s::valid.

Here is the call graph for this function:

◆ saGpioPinSetup()

GLOBAL bit32 saGpioPinSetup ( agsaRoot_t agRoot,
agsaContext_t agContext,
bit32  queueNum,
agsaGpioPinSetupInfo_t gpioPinSetupInfo 
)

SPC Set GPIO Pin Setup Command.

This command sends GPIO Pin Setup Command to SPC.

Parameters
agRootHandles for this instance of SAS/SATA LL
agsaContextContext of this command
queueNumQueue number of inbound/outbound queue
gpioPinSetupInfoPointer of Event Setup Information structure
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 1477 of file saioctlcmd.c.

References agsaIOMap_s::agContext, agFALSE, agNULL, AGSA_RC_BUSY, AGSA_RC_SUCCESS, agTRUE, agsaLLRoot_s::freeIORequests, agsaLLRoot_s::freeReservedRequests, GPIO_GS_BIT, agsaGpioPinSetupInfo_t::gpioInputEnabled, agsaGpioPinSetupInfo_t::gpioTypePart1, agsaGpioPinSetupInfo_t::gpioTypePart2, 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_GPIO, OSSA_OFFSET_OF, ossaSingleThreadedEnter(), ossaSingleThreadedLeave(), SA_ASSERT, SA_DBG1, SA_RESERVED_REQUEST_COUNT, saLlistIOAdd, saLlistIOGetCount, saLlistIOGetHead, saLlistIORemove, agsaContext_s::sdkData, si_memset(), smTraceFuncEnter, smTraceFuncExit, agsaIOMap_s::Tag, and agsaIORequestDesc_s::valid.

Here is the call graph for this function:

◆ saGpioRead()

GLOBAL bit32 saGpioRead ( agsaRoot_t agRoot,
agsaContext_t agContext,
bit32  queueNum 
)

SPC GPIO Read Command.

This command sends GPIO Read Command to SPC.

Parameters
agRootHandles for this instance of SAS/SATA LL
agsaContextContext of this command
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_FAILURE the MPI command is failure

Definition at line 1567 of file saioctlcmd.c.

References agsaIOMap_s::agContext, agFALSE, agNULL, AGSA_RC_BUSY, AGSA_RC_SUCCESS, agTRUE, agsaLLRoot_s::freeIORequests, agsaLLRoot_s::freeReservedRequests, GPIO_GR_BIT, 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_GPIO, OSSA_OFFSET_OF, ossaSingleThreadedEnter(), ossaSingleThreadedLeave(), SA_ASSERT, SA_DBG1, SA_RESERVED_REQUEST_COUNT, saLlistIOAdd, saLlistIOGetCount, saLlistIOGetHead, saLlistIORemove, agsaContext_s::sdkData, si_memset(), smTraceFuncEnter, smTraceFuncExit, agsaIOMap_s::Tag, and agsaIORequestDesc_s::valid.

Here is the call graph for this function:

◆ saGpioWrite()

GLOBAL bit32 saGpioWrite ( agsaRoot_t agRoot,
agsaContext_t agContext,
bit32  queueNum,
bit32  gpioWriteMask,
bit32  gpioWriteValue 
)

SPC GPIO Write Command.

This command sends GPIO Write Command to SPC.

Parameters
agRootHandles for this instance of SAS/SATA LL
agsaContextContext of this command
queueNumQueue number of inbound/outbound queue
gpioWriteMaskGPIO Write Mask
gpioWriteValueGPIO Write Value
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 1657 of file saioctlcmd.c.

References agsaIOMap_s::agContext, agFALSE, agNULL, AGSA_RC_BUSY, AGSA_RC_SUCCESS, agTRUE, agsaLLRoot_s::freeIORequests, agsaLLRoot_s::freeReservedRequests, GPIO_GW_BIT, 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_GPIO, OSSA_OFFSET_OF, ossaSingleThreadedEnter(), ossaSingleThreadedLeave(), SA_ASSERT, SA_DBG1, SA_RESERVED_REQUEST_COUNT, saLlistIOAdd, saLlistIOGetCount, saLlistIOGetHead, saLlistIORemove, agsaContext_s::sdkData, si_memset(), smTraceFuncEnter, smTraceFuncExit, agsaIOMap_s::Tag, and agsaIORequestDesc_s::valid.

Here is the call graph for this function:

◆ saHwEventAck()

GLOBAL bit32 saHwEventAck ( agsaRoot_t agRoot,
agsaContext_t agContext,
bit32  queueNum,
agsaEventSource_t eventSource,
bit32  param0,
bit32  param1 
)

Initiate a HW Event Ack command.

This function is called to initiate a HW Event Ack command to the SPC. The completion of this function is reported in ossaHwEventAckCB().

Parameters
agRoothandles for this instance of SAS/SATA hardware
agContextthe context of this API
queueNumqueue number
eventSourcepoint to the event source structure
param0
param1
Returns
  • none

Definition at line 1004 of file saphy.c.

References agsaIOMap_s::agContext, agFALSE, agNULL, agsaEventSource_s::agPortContext, AGSA_RC_BUSY, AGSA_RC_FAILURE, AGSA_RC_SUCCESS, agTRUE, agsaEventSource_s::event, agsaLLRoot_s::freeIORequests, agsaLLRoot_s::freeReservedRequests, hpDBG_VERY_LOUD, agsaIORequestDesc_s::HTag, agsaIORequestDesc_s::HwAckType, agsaLLRoot_s::IOMap, IOMB_SIZE64, agsaIOMap_s::IORequest, agsaIORequestDesc_s::linkNode, LL_IOREQ_LOCKEQ_LOCK, MARK_OFF, MPI_CATEGORY_SAS_SATA, mpiBuildCmd(), OPC_INB_SAS_HW_EVENT_ACK, OPC_INB_SPC_SAS_HW_EVENT_ACK, OSSA_HW_EVENT_PHY_DOWN, OSSA_OFFSET_OF, ossaSingleThreadedEnter(), ossaSingleThreadedLeave(), agsaEventSource_s::param, agsaPort_s::portId, agsaIORequestDesc_s::pPort, SA_ASSERT, SA_DBG1, SA_DBG2, SA_DBG3, SA_RESERVED_REQUEST_COUNT, saLlistIOAdd, saLlistIOGetCount, saLlistIOGetHead, saLlistIORemove, agsaContext_s::sdkData, SHIFT24, SHIFT8, si_memset(), smIS_SPC(), smTraceFuncEnter, smTraceFuncExit, agsaIOMap_s::Tag, agsaPort_s::tobedeleted, and agsaIORequestDesc_s::valid.

Referenced by ossaDeregisterDeviceHandleCB(), and ossaHwCB().

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

◆ saHwReset()

GLOBAL void saHwReset ( agsaRoot_t agRoot,
bit32  resetType,
bit32  resetParm 
)

Function to reset the Hardware.

The saHwReset() function is called to reset the SAS/SATA HW controller All outstanding I/Os are explicitly aborted. This API need to access before saInitialize() so checking saRoot is needed

Parameters
agRootHandles for this instance of SAS/SATA hardware
resetTypeThe reset type
resetParmThe paramter passed for reset operation
Returns
-void-

Definition at line 87 of file sahw.c.

References agFALSE, agNULL, AGSA_CHIP_RESET, AGSA_RC_HDA_NO_FW_RUNNING, AGSA_RC_SUCCESS, AGSA_SOFT_RESET, agTRUE, BOOTTLOADERHDA_IDLE, CHIP_RESET_FW, CHIP_RESETTING, agsaLLRoot_s::chipStatus, agsaFatalErrorInfo_s::errorInfo0, agsaFatalErrorInfo_s::errorInfo1, agsaFatalErrorInfo_s::errorInfo2, agsaFatalErrorInfo_s::errorInfo3, mpiHostLLConfigDescriptor_s::FatalErrorDumpLength0, mpiHostLLConfigDescriptor_s::FatalErrorDumpLength1, mpiHostLLConfigDescriptor_s::FatalErrorDumpOffset0, mpiHostLLConfigDescriptor_s::FatalErrorDumpOffset1, GEN_MSGU_SCRATCH_PAD_0, GEN_MSGU_SCRATCH_PAD_1, GEN_MSGU_SCRATCH_PAD_2, GEN_MSGU_SCRATCH_PAD_3, HDA_CMD_CODE_OFFSET, HDA_RSP_OFFSET1MB, HDA_STATUS_BITS, hpDBG_VERY_LOUD, agsaLLRoot_s::hwConfig, agsaLLRoot_s::mainConfigTable, agsaSwConfig_s::maxActiveIOs, agsaLLRoot_s::memoryAllocated, MSGU_SCRATCH_PAD_0, MSGU_SCRATCH_PAD_1, MSGU_SCRATCH_PAD_2, MSGU_SCRATCH_PAD_3, OSSA_FAILURE, OSSA_HW_EVENT_MALFUNCTION, OSSA_HW_EVENT_RESET_COMPLETE, OSSA_HW_EVENT_RESET_START, OSSA_SUCCESS, ossaHwCB(), ossaHwRegReadExt(), PCIBAR3, REG_DUMP_NUM0, REG_DUMP_NUM1, agsaFatalErrorInfo_s::regDumpBusBaseNum0, agsaFatalErrorInfo_s::regDumpBusBaseNum1, agsaFatalErrorInfo_s::regDumpLen0, agsaFatalErrorInfo_s::regDumpLen1, agsaFatalErrorInfo_s::regDumpOffset0, agsaFatalErrorInfo_s::regDumpOffset1, mpiHostLLConfigDescriptor_s::regDumpPCIBAR, agsaLLRoot_s::registerDump0, agsaLLRoot_s::registerDump1, agsaLLRoot_s::ResetFailed, agsaLLRoot_s::ResetStartTick, SA_ASSERT, SA_DBG1, saCountActiveIORequests(), saGetControllerStatus(), saSystemInterruptsActive(), SCRATCH_PAD1_ERR, SCRATCH_PAD1_V_BOOTLDR_ERROR, SCRATCH_PAD1_V_ERROR_STATE, SCRATCH_PAD1_V_READY, SCRATCH_PAD2_ERR, SCRATCH_PAD_STATE_MASK, agsaContext_s::sdkData, SHIFT8, si_memset(), siChipReset(), siChipResetV(), siDumpActiveIORequests(), siGetRegisterDumpGSM(), siHalRegReadExt(), siInitResources(), siSpcSoftReset(), smIS_SPC(), smIS_SPCV(), smTraceFuncEnter, smTraceFuncExit, SPC_SOFT_RESET_SIGNATURE, agsaLLRoot_s::swConfig, agsaLLRoot_s::sysIntsActive, agsaLLRoot_s::timeTick, and agsaLLRoot_s::usecsPerTick.

Referenced by tiCOMReset().

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

◆ saHwShutdown()

GLOBAL void saHwShutdown ( agsaRoot_t agRoot)

Function to shutdown the Hardware.

The saHwShutdown() function is called to discontinue the use of the SAS/SATA hardware. Upon return, the SASA/SAT hardware instance does not generate any interrupts or any other bus accesses. All LL Layer hardware host resources (i.e. both cached and noncached memory) are no longer owned by the LL Layer.

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

Definition at line 395 of file sahw.c.

References agNULL, mpiOCQueue_s::agRoot, CHIP_SHUTDOWN, agsaLLRoot_s::chipStatus, mpiOCQueue_s::consumerIdx, GEN_MSGU_SCRATCH_PAD_0, GEN_MSGU_SCRATCH_PAD_1, GEN_MSGU_SCRATCH_PAD_2, GEN_MSGU_SCRATCH_PAD_3, agsaSwConfig_s::hostDirectAccessMode, agsaSwConfig_s::hostDirectAccessSupport, hpDBG_VERY_LOUD, agsaLLRoot_s::hwConfig, agsaLLRoot_s::memoryAllocated, mpiUnInitConfigTable(), MSGU_SCRATCH_PAD_0, MSGU_SCRATCH_PAD_1, MSGU_SCRATCH_PAD_2, MSGU_SCRATCH_PAD_3, agsaQueueConfig_s::numOutboundQueues, agsaLLRoot_s::outboundQueue, mpiOCQueue_s::piPointer, mpiOCQueue_s::producerIdx, agsaLLRoot_s::QueueConfig, SA_ASSERT, SA_DBG1, SA_DBG4, agsaContext_s::sdkData, siChipResetV(), siHalRegReadExt(), siInitResources(), siScratchDump(), siSpcSoftReset(), smIS_SPC(), smIS_SPCV(), smTraceFuncEnter, smTraceFuncExit, SPC_HDASOFT_RESET_SIGNATURE, SPC_SOFT_RESET_SIGNATURE, agsaLLRoot_s::swConfig, and agsaLLRoot_s::usecsPerTick.

Referenced by tiCOMShutDown().

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

◆ saInitialize()

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

Initialize the Hardware.

Initialize the Hardware

Parameters
agRootHandles for this instance of SAS/SATA hardware
memoryAllocatedPoint to the data structure that holds the different chunks of memory that are required
hwConfigPointer to the hardware configuration
swConfigPointer to the software configuration
usecsPerTickmicro-seconds per tick for the LL layer
Returns
If initialization is successful
  • AGSA_RC_SUCCESS initialization is successful
  • AGSA_RC_FAILURE initialization is not successful

Definition at line 303 of file sainit.c.

References agFALSE, agsaMemoryRequirement_s::agMemory, agNULL, mpiOCQueue_s::agRoot, AGSA_RC_FAILURE, AGSA_RC_SUCCESS, AGSA_RC_VERSION_UNTESTED, AGSA_REQ_TYPE_UNKNOWN, AGSAMEM_ELEMENT_READ, agTRUE, agsaMem_s::alignment, mpiMem_s::alignment, mpiMem_s::appHandle, agsaLLRoot_s::autoDeregDeviceflag, BOOTTLOADERHDA_IDLE, CHIP_FATAL_ERROR, CHIP_NORMAL, agsaLLRoot_s::ChipId, agsaLLRoot_s::chipStatus, mpiOCQueue_s::consumerIdx, agsaLLRoot_s::ControllerInfo, agsaMemoryRequirement_s::count, mpiMemReq_s::count, 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, agsaLLRoot_s::DisableInterrupts, agsaSwConfig_s::disableMDF, mpiMem_s::elementSize, agsaTimerDesc_s::Event, FALSE, agsaSwConfig_s::fatalErrorInterruptEnable, agsaSwConfig_s::fatalErrorInterruptVector, agsaLLRoot_s::freeDevicesList, agsaLLRoot_s::freeIORequests, agsaLLRoot_s::freePorts, agsaLLRoot_s::freeReservedRequests, agsaLLRoot_s::freeTimers, gLLDebugLevel, gPollForMissingInt, HDA_CMD_CODE_OFFSET, HDA_RSP_OFFSET1MB, HDA_STATUS_BITS, agsaSwConfig_s::hostDirectAccessMode, agsaSwConfig_s::hostDirectAccessSupport, hpDBG_VERY_LOUD, agsaIORequestDesc_s::HTag, agsaLLRoot_s::hwConfig, agsaHwConfig_s::hwInterruptCoalescingControl, agsaHwConfig_s::hwInterruptCoalescingTimer, agsaDeviceDesc_s::initiatorDevHandle, agsaQueueOutbound_s::interruptCount, agsaQueueOutbound_s::interruptDelay, agsaLLRoot_s::interruptVecIndexBitMap, agsaLLRoot_s::interruptVecIndexBitMap1, agsaLLRoot_s::IoErrorCount, agsaLLRoot_s::IoEventCount, agsaLLRoot_s::IOMap, IOREQLINK_MEM_INDEX, agsaIOMap_s::IORequest, agsaLLRoot_s::IORequestMem, agsaSwConfig_s::legacyInt_X, agsaTimerDesc_s::linkNode, agsaPort_s::linkNode, agsaDeviceDesc_s::linkNode, agsaIORequestDesc_s::linkNode, agsaPort_s::listSASATADevices, LL_FAST_IO, LL_FUNCTION_TRACE, LL_IOREQ_IBQ0_LOCK, LLROOT_MEM_INDEX, MARK_OFF, MAX_ACTIVE_IO_REQUESTS, MAX_IO_DEVICE_ENTRIES, agsaSwConfig_s::max_MSI_InterruptVectors, agsaSwConfig_s::max_MSIX_InterruptVectors, MAX_NUM_VECTOR, agsaSwConfig_s::maxActiveIOs, agsaControllerInfo_s::maxPendingIO, MBIC_GSM_SM_BASE, agsaLLRoot_s::memoryAllocated, agsaLLRoot_s::minStallusecs, MPI_IBQ_OBQ_INDEX, MPI_MEM_INDEX, agsaLLRoot_s::mpiConfig, mpiInitialize(), MSGU_SCRATCH_PAD_0, MSGU_SCRATCH_PAD_1, MSGU_SCRATCH_PAD_2, MSGU_SCRATCH_PAD_3, NUM_TIMERS, agsaSwConfig_s::numDevHandles, agsaMem_s::numElements, mpiMem_s::numElements, agsaQueueConfig_s::numInboundQueues, agsaQueueConfig_s::numOutboundQueues, agsaContext_s::osData, agsaMem_s::osHandle, ossaDisableInterrupts(), ossaHwRegRead(), ossaHwRegReadConfig32(), ossaHwRegReadExt(), ossaHwRegWriteExt(), ossaReenableInterrupts(), agsaLLRoot_s::OurInterrupt, agsaLLRoot_s::outboundQueue, agsaQueueConfig_s::outboundQueues, agsaSwConfig_s::param3, agsaSwConfig_s::param4, PCI_TRIGGER_INIT_TEST, PCIBAR0, PCIBAR1, PCIBAR3, agsaIORequestDesc_s::pDevice, agsaDeviceDesc_s::pendingIORequests, agsaTimerDesc_s::pfnTimeout, PHY_STATUS_SET, PHY_STOPPED, agsaMem_s::phyAddrLower, agsaMem_s::phyAddrUpper, agsaHwConfig_s::phyAnalogConfig, mpiConfig_s::phyAnalogConfig, agsaHwConfig_s::phyCount, agsaLLRoot_s::phyCount, agsaPhy_s::phyId, agsaPort_s::phyMap, agsaLLRoot_s::phys, mpiMem_s::physAddrLower, mpiMem_s::physAddrUpper, 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, agsaSwConfig_s::PortRecoveryResetTimer, agsaLLRoot_s::ports, agsaPortMap_s::PortStatus, agsaTimerDesc_s::pParm, agsaPhy_s::pPort, agsaDeviceDesc_s::pPort, agsaIORequestDesc_s::pPort, mpiOCQueue_s::producerIdx, agsaLLRoot_s::QueueConfig, agsaLLRoot_s::ReEnableInterrupts, mpiMemReq_s::region, agsaIORequestDesc_s::requestType, SA_ASSERT, SA_DBG1, SA_DBG2, SA_RESERVED_REQUEST_COUNT, saLlinkInitialize, saLlistAdd, saLlistInitialize, saLlistIOAdd, saLlistIOGetCount, saLlistIOInitialize, SAS_SATA_UNKNOWN_DEVICE, SCRATCH_PAD1_V_RAAE_MASK, SCRATCH_PAD3_V_ENC_DIS_ERR, SCRATCH_PAD3_V_ENC_ENA_ERR, SCRATCH_PAD3_V_ENC_MASK, agsaContext_s::sdkData, si_macro_check(), si_memcpy(), si_memset(), siBar4Shift(), siChipResetV(), siConfiguration(), siDisableLegacy_V_Interrupts(), siDisableLegacyInterrupts(), siDisableMSIInterrupts(), siDisableMSIX_V_Interrupts(), siDisableMSIXInterrupts(), siDumpActiveIORequests(), siEnableTracing(), agsaMem_s::singleElementLength, siOurLegacy_V_Interrupt(), siOurLegacyInterrupt(), siOurMSIInterrupt(), siOurMSIX_V_Interrupt(), siOurMSIXInterrupt(), siPCITriger(), siReenableLegacy_V_Interrupts(), siReenableLegacyInterrupts(), siReenableMSIInterrupts(), siReenableMSIX_V_Interrupts(), siReenableMSIXInterrupts(), siScratchDump(), siSoftReset(), siSpcSoftReset(), siTimerAdd(), siUpdateBarOffsetTable(), smIS64bInt, smIS_SFC, smIS_SPC(), smIS_spc8081, smIS_SPCV(), smIsCfgSpcREV_A, smIsCfgSpcREV_B, smIsCfgSpcREV_C, smIsCfgVREV_A, smIsCfgVREV_B, smIsCfgVREV_C, smTrace, smTraceFuncEnter, smTraceFuncExit, SPC_HDASOFT_RESET_SIGNATURE, SPC_ICCONTROL, SPC_ICTIMER, SPC_SOFT_RESET_SIGNATURE, SPC_V_HDA_RESPONSE_OFFSET, SPC_V_HDAR_IDLE, SPC_V_HDAR_RSPCODE_MASK, agsaSwConfig_s::stallUsec, agsaPort_s::status, agsaLLRoot_s::swConfig, 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, TRUE, agsaMem_s::type, mpiMem_s::type, agsaLLRoot_s::Use64bit, agsaLLRoot_s::usecsPerTick, V_Outbound_Doorbell_Mask_Set_Register, V_Outbound_Doorbell_Mask_Set_RegisterU, V_Outbound_Doorbell_Set_Register, V_Outbound_Doorbell_Set_RegisterU, V_Scratchpad_0_Register, V_Scratchpad_1_Register, V_Scratchpad_2_Register, V_Scratchpad_3_Register, V_SoftResetRegister, agsaTimerDesc_s::valid, agsaIORequestDesc_s::valid, agsaLLRoot_s::validPorts, agsaLLRoot_s::validTimers, VEN_DEV_9015, VEN_DEV_9060, VEN_DEV_ADAPVEP, VEN_DEV_ADAPVP, VEN_DEV_HIL, VEN_DEV_SFC, VEN_DEV_SPC, VEN_DEV_SPC12ADP, VEN_DEV_SPC12ADPE, VEN_DEV_SPC12ADPEP, VEN_DEV_SPC12ADPP, VEN_DEV_SPC12SATA, VEN_DEV_SPC12V, VEN_DEV_SPC12VE, VEN_DEV_SPC12VEP, VEN_DEV_SPC12VP, VEN_DEV_SPCV, VEN_DEV_SPCVE, VEN_DEV_SPCVEP, VEN_DEV_SPCVP, agsaMem_s::virtPtr, mpiMem_s::virtPtr, WAIT_INCREMENT, and WAIT_INCREMENT_DEFAULT.

Referenced by tiCOMPortInit().

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

◆ saInterruptHandler()

GLOBAL bit32 FORCEINLINE saInterruptHandler ( agsaRoot_t agRoot,
bit32  interruptVectorIndex 
)

Function to process the interrupts.

The saInterruptHandler() function is called after an interrupts has been received This function disables interrupts

Parameters
agRootOS Layer-specific and LL Layer-specific context handles for this instance of SAS/SATA hardware
interruptVectorIndexmessage that caused MSI message
Returns
TRUE if we caused interrupt

Definition at line 388 of file saint.c.

References agFALSE, agNULL, FALSE, hpDBG_REGISTERS, hpDBG_TICK_INT, ossaDisableInterrupts(), ossaHwRegReadExt(), agsaLLRoot_s::OurInterrupt, PCIBAR0, SA_DBG1, agsaContext_s::sdkData, smTrace, smTraceFuncEnter, smTraceFuncExit, agsaLLRoot_s::sysIntsActive, TRUE, V_Outbound_Doorbell_Mask_Set_Register, and V_Outbound_Doorbell_Mask_Set_RegisterU.

Referenced by tiCOMInterruptHandler().

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

◆ saLocalPhyControl()

GLOBAL bit32 saLocalPhyControl ( agsaRoot_t agRoot,
agsaContext_t agContext,
bit32  queueNum,
bit32  phyId,
bit32  phyOperation,
ossaLocalPhyControlCB_t  agCB 
)

Initiate a Local PHY control command.

This function is called to initiate a PHY control command to the local PHY. The completion of this function is reported in ossaLocalPhyControlCB()

Parameters
agRoothandles for this instance of SAS/SATA hardware
agContextthe context of this API
phyIdphy number
phyOperationone of AGSA_PHY_LINK_RESET, AGSA_PHY_HARD_RESET, AGSA_PHY_ENABLE_SPINUP
Returns
  • none

Definition at line 420 of file saphy.c.

References agsaIOMap_s::agContext, agFALSE, agNULL, AGSA_PHY_BROADCAST_ASYNCH_EVENT, AGSA_PHY_CLEAR_ERROR_COUNTS, AGSA_PHY_COMINIT_OOB, AGSA_PHY_GET_BW_COUNTS, AGSA_PHY_GET_ERROR_COUNTS, AGSA_PHY_HARD_RESET, AGSA_PHY_LINK_RESET, AGSA_PHY_NOTIFY_ENABLE_SPINUP, AGSA_RC_BUSY, AGSA_RC_FAILURE, AGSA_RC_SUCCESS, agTRUE, agsaPhyErrCounters_s::codeViolation, agsaIORequestDesc_s::completionCB, DEVICE_LCLK_CLEAR, agsaPhyErrCounters_s::elasticityBufferOverflow, agsaLLRoot_s::freeIORequests, agsaLLRoot_s::freeReservedRequests, hpDBG_VERY_LOUD, agsaIORequestDesc_s::HTag, agsaPhyErrCounters_s::inboundCRCError, agsaPhyErrCounters_s::invalidDword, agsaLLRoot_s::IOMap, agsaIOMap_s::IORequest, LCLK, LCLK_CLEAR, agsaIORequestDesc_s::linkNode, LL_IOREQ_LOCKEQ_LOCK, agsaPhyErrCounters_s::lossOfDwordSynch, MARK_OFF, mpiLocalPhyControlCmd(), OSSA_FAILURE, OSSA_SUCCESS, ossaHwRegReadExt(), ossaHwRegWriteExt(), ossaLocalPhyControlCB(), ossaSingleThreadedEnter(), ossaSingleThreadedLeave(), PCIBAR2, agsaLLRoot_s::phyCount, agsaPhyErrCounters_s::phyResetProblem, agsaPhyErrCounters_s::receivedErrorPrimitive, agsaPhyErrCounters_s::runningDisparityError, SA_ASSERT, SA_DBG1, SA_DBG2, SA_DBG3, SA_RESERVED_REQUEST_COUNT, saLlistIOAdd, saLlistIOGetCount, saLlistIOGetHead, saLlistIORemove, agsaContext_s::sdkData, si_memset(), siBar4Shift(), smIS_SPC(), smIS_SPCV(), smTraceFuncEnter, smTraceFuncExit, SPC_READ_CODE_VIO_COUNT, SPC_READ_COUNTER_CNTL, SPC_READ_DISP_ERR_COUNT, SPC_READ_INV_DW_COUNT, SPC_READ_LOSS_DW_COUNT, SPC_READ_PHY_RESET_COUNT, SPC_REG_DEVICE_LCLK, SPC_WRITE_COUNTER_CNTL, agsaIOMap_s::Tag, and agsaIORequestDesc_s::valid.

Referenced by itdssIOSuccessHandler(), ossaHwCB(), smTaskManagement(), tdsaPhyProfileIoctl(), and tiCOMPortStop().

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

◆ saOperatorManagement()

GLOBAL bit32 saOperatorManagement ( agsaRoot_t agRoot,
agsaContext_t agContext,
bit32  queueNum,
bit32  flag,
bit8  role,
agsaID_t id,
agsaEncryptKekBlob_t kblob 
)

◆ saPCIeDiagExecute()

◆ saPhyStart()

GLOBAL bit32 saPhyStart ( agsaRoot_t agRoot,
agsaContext_t agContext,
bit32  queueNum,
bit32  phyId,
agsaPhyConfig_t agPhyConfig,
agsaSASIdentify_t agSASIdentify 
)

Start a Phy.

Start a Phy

Parameters
agRoothandles for this instance of SAS/SATA hardware
agContext
phyIdthe phy id of the link will be started
agPhyConfigthe phy configuration
agSASIdentifythe SAS identify frame will be sent by the phy
Returns
If phy is started successfully
  • AGSA_RC_SUCCESS phy is started successfully
  • AGSA_RC_BUSY phy is already started or starting
  • AGSA_RC_FAILURE phy is not started successfully

Definition at line 60 of file saphy.c.

References agsaIOMap_s::agContext, agFALSE, agNULL, AGSA_RC_BUSY, AGSA_RC_FAILURE, AGSA_RC_SUCCESS, agTRUE, 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, MARK_OFF, mpiPhyStartCmd(), ossaSingleThreadedEnter(), ossaSingleThreadedLeave(), agsaLLRoot_s::phyCount, SA_ASSERT, SA_DBG1, SA_DBG3, SA_IDFRM_GET_SAS_ADDRESSHI, SA_IDFRM_GET_SAS_ADDRESSLO, SA_RESERVED_REQUEST_COUNT, saLlistIOAdd, saLlistIOGetCount, saLlistIOGetHead, saLlistIORemove, agsaContext_s::sdkData, smTrace, smTraceFuncEnter, smTraceFuncExit, agsaIOMap_s::Tag, and agsaIORequestDesc_s::valid.

Referenced by tiCOMPortStart().

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

◆ saPhyStop()

GLOBAL bit32 saPhyStop ( agsaRoot_t agRoot,
agsaContext_t agContext,
bit32  queueNum,
bit32  phyId 
)

◆ saPortControl()

GLOBAL bit32 saPortControl ( agsaRoot_t agRoot,
agsaContext_t agContext,
bit32  queueNum,
agsaPortContext_t agPortContext,
bit32  portOperation,
bit32  param0,
bit32  param1 
)

Initiate a Port COntrol IOMB command.

This function is called to initiate a Port COntrol command to the SPC. The completion of this function is reported in ossaPortControlCB().

Parameters
agRoothandles for this instance of SAS/SATA hardware
agContextthe context of this API
queueNumqueue number
agPortContextpoint to the event source structure
param0parameter 0
param1parameter 1
Returns
- successful or failure

Definition at line 422 of file saport.c.

References agsaIOMap_s::agContext, agFALSE, agNULL, AGSA_PORT_CLEAN_UP, AGSA_PORT_HARD_RESET, AGSA_RC_BUSY, AGSA_RC_FAILURE, AGSA_RC_SUCCESS, agTRUE, AUTO_FW_CLEANUP_DEREG_FLAG, AUTO_HARD_RESET_DEREG_FLAG, agsaLLRoot_s::autoDeregDeviceflag, 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_PORT_CONTROL, OSSA_OFFSET_OF, ossaSingleThreadedEnter(), ossaSingleThreadedLeave(), agsaPort_s::portId, PORTID_MASK, SA_ASSERT, SA_DBG1, SA_DBG2, SA_RESERVED_REQUEST_COUNT, saLlistIOAdd, saLlistIOGetCount, saLlistIOGetHead, saLlistIORemove, agsaContext_s::sdkData, SHIFT8, si_memset(), smTraceFuncEnter, smTraceFuncExit, agsaIOMap_s::Tag, and agsaIORequestDesc_s::valid.

Referenced by ossaHwCB().

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

◆ saReconfigSASParams()

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

Reconfiguration of SAS Parameters Command.

This command Reconfigure the SAS parameters to SPC.

Parameters
agRootHandles for this instance of SAS/SATA LL
agContextContext of SPC FW Flash Update Command
queueNumInbound/outbound queue number
agSASConfigPointer of SAS Configuration Parameters
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 3654 of file saioctlcmd.c.

References agNULL, AGSA_RC_FAILURE, AGSA_RC_SUCCESS, mpiSasReinitializeCmd(), SA_ASSERT, SA_DBG1, and smIS_SPCV().

Here is the call graph for this function:

◆ saRegisterEventCallback()

GLOBAL bit32 saRegisterEventCallback ( agsaRoot_t agRoot,
bit32  eventSourceType,
ossaGenericCB_t  callbackPtr 
)

Register a callback for a specific event.

Register a callback for a Event API

Parameters
agRootHandles for this instance of SAS/SATA hardware
eventSourceTypeEvent Type
callbackPtrFunction pointer to OS layer
Returns
  • AGSA_RC_SUCCESS
  • AGSA_RC_FAILURE

Definition at line 566 of file sadisc.c.

References AGSA_RC_FAILURE, AGSA_RC_SUCCESS, agsaLLRoot_s::DeviceDeregistrationCB, agsaLLRoot_s::DeviceRegistrationCB, OSSA_EVENT_SOURCE_DEVICE_HANDLE_ADDED, OSSA_EVENT_SOURCE_DEVICE_HANDLE_REMOVED, SA_DBG1, SA_DBG3, and agsaContext_s::sdkData.

Referenced by tiCOMPortInit().

Here is the caller graph for this function:

◆ saRegisterNewDevice()

GLOBAL bit32 saRegisterNewDevice ( agsaRoot_t agRoot,
agsaContext_t agContext,
bit32  queueNum,
agsaDeviceInfo_t agDeviceInfo,
agsaPortContext_t agPortContext,
bit16  hostAssignedDeviceId 
)

Register New Device from a specific local port.

Register New Device API

Parameters
agRootHandles for this instance of SAS/SATA hardware
agContextPointer to this API context
agDeviceInfoPointer to this instance of device info
agPortContextPointer to this instance of port context
Returns
If discovery is started/aborted successfully
  • AGSA_RC_SUCCESS discovery is started/aborted successfully
  • AGSA_RC_FAILURE discovery is not started/aborted successfully

Definition at line 302 of file sadisc.c.

References agsaIOMap_s::agContext, agFALSE, agNULL, AGSA_RC_BUSY, AGSA_RC_FAILURE, AGSA_RC_SUCCESS, agTRUE, ATAPI_DEVICE_FLAG, AWT_DEVICE_FLAG, DEV_INFO_IR_SHIFT, DEV_INFO_MASK, DEV_INFO_MCN_SHIFT, DEV_LINK_RATE, agsaSASIdentify_s::deviceType_addressFrameType, agsaDeviceInfo_s::devType_S_Rate, agsaDeviceInfo_s::firstBurstSize, agsaDeviceInfo_s::flag, agsaLLRoot_s::freeIORequests, agsaLLRoot_s::freeReservedRequests, hpDBG_VERY_LOUD, agsaIORequestDesc_s::HTag, agsaLLRoot_s::IOMap, IOMB_SIZE64, agsaIOMap_s::IORequest, agsaDeviceInfo_s::it_NexusTimeout, agsaIORequestDesc_s::linkNode, LL_IOREQ_LOCKEQ_LOCK, MARK_OFF, MPI_CATEGORY_SAS_SATA, mpiBuildCmd(), OPC_INB_REG_DEV, OPC_INB_SPC_REG_DEV, OS_ASSERT, OSSA_OFFSET_OF, ossaSingleThreadedEnter(), ossaSingleThreadedLeave(), agsaIORequestDesc_s::pDevice, agsaPort_s::portId, PORTID_MASK, SA_DBG1, SA_DBG2, SA_DBG3, SA_RESERVED_REQUEST_COUNT, saLlistIOAdd, saLlistIOGetCount, saLlistIOGetHead, saLlistIORemove, agsaDeviceInfo_s::sasAddressHi, agsaSASIdentify_s::sasAddressHi, agsaDeviceInfo_s::sasAddressLo, agsaSASIdentify_s::sasAddressLo, agsaRegDevCmd_s::sasAddrHi, agsaRegDevCmd_s::sasAddrLo, agsaContext_s::sdkData, SHIFT2, SHIFT24, SHIFT31, SHIFT4, SHIFT9, si_memset(), siPortSASDeviceAdd(), siPortSATADeviceAdd(), smIS_SPC(), agsaDeviceInfo_s::smpTimeout, smTrace, smTraceFuncEnter, smTraceFuncExit, agsaIOMap_s::Tag, agsaIORequestDesc_s::valid, and XFER_RDY_PRIORTY_DEVICE_FLAG.

Referenced by ossaDeviceRegistrationCB(), and tdssAddSASToSharedcontext().

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

◆ saSASDiagExecute()

GLOBAL bit32 saSASDiagExecute ( agsaRoot_t agRoot,
agsaContext_t agContext,
bit32  queueNum,
agsaSASDiagExecute_t diag 
)

SPC SAS Diagnostic Execute Command.

This command sends SAS Diagnostic Execute Command to SPC.

Parameters
agRootHandles for this instance of SAS/SATA LL
agsaContextContext of this command
queueNumQueue number of inbound/outbound queue
diagPointer of SAS Diag Execute Structure
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 1751 of file saioctlcmd.c.

References agsaIOMap_s::agContext, agFALSE, agNULL, AGSA_RC_BUSY, AGSA_RC_SUCCESS, agTRUE, agsaSASDiagExecute_s::command, agsaLLRoot_s::freeIORequests, agsaLLRoot_s::freeReservedRequests, hpDBG_VERY_LOUD, agsaIORequestDesc_s::HTag, agsaLLRoot_s::IOMap, IOMB_SIZE128, IOMB_SIZE64, agsaIOMap_s::IORequest, agsaIORequestDesc_s::linkNode, LL_IOREQ_LOCKEQ_LOCK, MARK_OFF, MPI_CATEGORY_SAS_SATA, mpiBuildCmd(), OPC_INB_SAS_DIAG_EXECUTE, OSSA_OFFSET_OF, ossaSingleThreadedEnter(), ossaSingleThreadedLeave(), agsaSASDiagExecute_s::param0, agsaSASDiagExecute_s::param1, agsaSASDiagExecute_s::param2, agsaSASDiagExecute_s::param3, agsaSASDiagExecute_s::param4, agsaSASDiagExecute_s::param5, SA_ASSERT, SA_DBG1, SA_DBG2, SA_RESERVED_REQUEST_COUNT, saLlistIOAdd, saLlistIOGetCount, saLlistIOGetHead, saLlistIORemove, agsaContext_s::sdkData, si_memset(), smIS_SPC(), smIS_SPCV(), smTraceFuncEnter, smTraceFuncExit, agsaIOMap_s::Tag, and agsaIORequestDesc_s::valid.

Here is the call graph for this function:

◆ saSASDiagStartEnd()

GLOBAL bit32 saSASDiagStartEnd ( agsaRoot_t agRoot,
agsaContext_t agContext,
bit32  queueNum,
bit32  phyId,
bit32  operation 
)

SPC SAS Diagnostic Start/End Command.

This command sends SAS Diagnostic Start/End Command to SPC.

Parameters
agRootHandles for this instance of SAS/SATA LL
agsaContextContext of this command
queueNumQueue number of inbound/outbound queue
phyIdPhy ID
operationOperation of SAS Diagnostic
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 1880 of file saioctlcmd.c.

References agsaIOMap_s::agContext, agFALSE, agNULL, AGSA_RC_BUSY, AGSA_RC_FAILURE, 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_SAS_DIAG_MODE_START_END, OSSA_OFFSET_OF, ossaSingleThreadedEnter(), ossaSingleThreadedLeave(), SA_ASSERT, SA_DBG1, SA_DBG3, SA_RESERVED_REQUEST_COUNT, saLlistIOAdd, saLlistIOGetCount, saLlistIOGetHead, saLlistIORemove, agsaContext_s::sdkData, SHIFT8, si_memset(), SM_PHYID_MASK, smTraceFuncEnter, smTraceFuncExit, agsaIOMap_s::Tag, and agsaIORequestDesc_s::valid.

Here is the call graph for this function:

◆ saSATAAbort()

GLOBAL bit32 saSATAAbort ( agsaRoot_t agRoot,
agsaIORequest_t agIORequest,
bit32  queueNum,
agsaDevHandle_t agDevHandle,
bit32  flag,
void *  abortParam,
ossaGenericAbortCB_t  agCB 
)

Abort SATA command.

Abort SATA command

Parameters
agRoothandles for this instance of SAS/SATA hardware
queueNuminbound/outbound queue number
agIORequestthe IO Request descriptor
agIOtoBeAborted
Returns
If command is aborted successfully
  • AGSA_RC_SUCCESS command is aborted successfully
  • AGSA_RC_FAILURE command is not aborted successfully

Definition at line 592 of file sasata.c.

References ABORT_ALL, ABORT_MASK, ABORT_QUARANTINE_SPCV, ABORT_SCOPE, ABORT_SINGLE, ABORT_TSDK_QUARANTINE, agFALSE, agNULL, AGSA_MAX_INBOUND_Q, AGSA_RC_BUSY, AGSA_RC_FAILURE, AGSA_RC_SUCCESS, AGSA_SATA_REQTYPE, agTRUE, agsaIORequestDesc_s::completionCB, agsaSATAAbortCmd_s::deviceId, agsaDeviceDesc_s::DeviceMapIndex, agsaLLRoot_s::freeIORequests, hpDBG_VERY_LOUD, agsaIORequestDesc_s::HTag, agsaSATAAbortCmd_s::HTagAbort, agsaLLRoot_s::inboundQueue, agsaLLRoot_s::IOMap, IOMB_SIZE64, agsaIOMap_s::IORequest, agsaIORequestDesc_s::linkNode, LL_IOREQ_IBQ0_LOCK, LL_IOREQ_LOCKEQ_LOCK, MPI_CATEGORY_SAS_SATA, MPI_IB_NUM_MASK, MPI_OB_NUM_MASK, MPI_OB_SHIFT, mpiMsgFreeGet(), mpiMsgProduce(), NULL, OPC_INB_SATA_ABORT, OSSA_OFFSET_OF, ossaSingleThreadedEnter(), ossaSingleThreadedLeave(), agsaIORequestDesc_s::pDevice, agsaDeviceDesc_s::pendingIORequests, agsaIORequestDesc_s::pIORequestContext, agsaDeviceDesc_s::pPort, agsaIORequestDesc_s::pPort, mpiICQueue_s::priority, agsaIORequestDesc_s::requestType, SA_ASSERT, SA_DBG1, SA_DBG3, saLlistIOAdd, saLlistIOGetHead, saLlistIORemove, agsaContext_s::sdkData, siCountActiveIORequestsOnDevice(), smIS_SPCV(), smTraceFuncEnter, smTraceFuncExit, agsaIORequestDesc_s::startTick, agsaSATAAbortCmd_s::tag, agsaIOMap_s::Tag, agsaLLRoot_s::timeTick, and agsaIORequestDesc_s::valid.

Referenced by smIOAbort(), smIOAbortAll(), smsatAbort(), smsatReadLogExtCB(), and tdsaAbortAll().

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

◆ saSATAStart()

GLOBAL bit32 saSATAStart ( agsaRoot_t agRoot,
agsaIORequest_t agIORequest,
bit32  queueNum,
agsaDevHandle_t agDevHandle,
bit32  agRequestType,
agsaSATAInitiatorRequest_t agSATAReq,
bit8  agTag,
ossaSATACompletedCB_t  agCB 
)

Start SATA command.

Start SATA command

Parameters
agRoothandles for this instance of SAS/SATA hardware
queueNum
agIORequest
agDevHandle
agRequestType
agSATAReq
agTag
agCB
Returns
If command is started successfully
  • AGSA_RC_SUCCESS command is started successfully
  • AGSA_RC_FAILURE command is not started successfully

Definition at line 59 of file sasata.c.

References agFALSE, agNULL, AGSA_DIF_BIT, AGSA_DIR_MASK, AGSA_ENCRYPT_BIT, AGSA_ENCRYPT_KEY_TAG_BIT, AGSA_ENCRYPT_XTS_Mode, AGSA_MAX_INBOUND_Q, AGSA_MSG, AGSA_MSG_BIT, AGSA_RC_BUSY, AGSA_RC_FAILURE, AGSA_RC_SUCCESS, AGSA_SATA_ATAP_MASK, AGSA_SATA_ATAP_PKT_DEVRESET, AGSA_SATA_ATAP_SRST_ASSERT, AGSA_SATA_ATAP_SRST_DEASSERT, AGSA_SATA_ENABLE_DIF, AGSA_SATA_ENABLE_ENCRYPTION, AGSA_SATA_PROTOCOL_D2H_PKT, AGSA_SATA_PROTOCOL_DEV_RESET, AGSA_SATA_PROTOCOL_DEV_RESET_M, AGSA_SATA_PROTOCOL_DMA_READ, AGSA_SATA_PROTOCOL_DMA_READ_M, AGSA_SATA_PROTOCOL_DMA_WRITE, AGSA_SATA_PROTOCOL_DMA_WRITE_M, AGSA_SATA_PROTOCOL_FPDMA_READ, AGSA_SATA_PROTOCOL_FPDMA_READ_M, AGSA_SATA_PROTOCOL_FPDMA_WRITE, AGSA_SATA_PROTOCOL_FPDMA_WRITE_M, AGSA_SATA_PROTOCOL_H2D_PKT, AGSA_SATA_PROTOCOL_NON_DATA, AGSA_SATA_PROTOCOL_NON_DATA_M, AGSA_SATA_PROTOCOL_NON_PKT, AGSA_SATA_PROTOCOL_PIO_READ, AGSA_SATA_PROTOCOL_PIO_READ_M, AGSA_SATA_PROTOCOL_PIO_WRITE, AGSA_SATA_PROTOCOL_PIO_WRITE_M, AGSA_SATA_PROTOCOL_SRST_ASSERT, AGSA_SATA_PROTOCOL_SRST_DEASSERT, agsaEncryptCipherModeXTS, agsaSATAInitiatorRequest_s::agSgl, agTRUE, agsaEncrypt_s::cipherMode, agsaIORequestDesc_s::completionCB, agsaSATAInitiatorRequest_s::dataLength, agsaEncryptDek_s::dekIndex, agsaEncrypt_s::dekInfo, agsaEncryptDek_s::dekTable, agsaDeviceDesc_s::DeviceMapIndex, agsaEncrypt_s::enableEncryptionPerLA, agsaSATAInitiatorRequest_s::encrypt, agsaEncrypt_s::EncryptionPerLAAddrHi, agsaEncrypt_s::EncryptionPerLAAddrLo, agsaEncrypt_s::EncryptionPerLRegion0SecCount, agsaSgl_s::extReserved, agsaSATAInitiatorRequest_s::fis, agsaSATAHostFis_u::fisRegHostToDev, agsaLLRoot_s::freeIORequests, hpDBG_VERY_LOUD, agsaIORequestDesc_s::HTag, agsaLLRoot_s::inboundQueue, agsaLLRoot_s::IOMap, IOMB_SIZE128, IOMB_SIZE64, agsaIOMap_s::IORequest, agsaEncrypt_s::kekIndex, agsaEncrypt_s::keyTag_W0, agsaEncrypt_s::keyTag_W1, agsaEncrypt_s::keyTagCheck, agsaSgl_s::len, agsaIORequestDesc_s::linkNode, LL_IOREQ_IBQ0_LOCK, LL_IOREQ_LOCKEQ_LOCK, MPI_CATEGORY_SAS_SATA, MPI_IB_NUM_MASK, MPI_OB_NUM_MASK, MPI_OB_SHIFT, mpiMsgFreeGet(), mpiMsgProduce(), OPC_INB_SATA_DIF_ENC_OPSTART, OPC_INB_SATA_HOST_OPSTART, agsaSATAInitiatorRequest_s::option, OSSA_INP_ENTER, OSSA_INP_LEAVE, OSSA_OFFSET_OF, ossaSingleThreadedEnter(), ossaSingleThreadedLeave(), agsaIORequestDesc_s::pDevice, agsaDeviceDesc_s::pendingIORequests, agsaIORequestDesc_s::pIORequestContext, agsaDeviceDesc_s::pPort, agsaIORequestDesc_s::pPort, mpiICQueue_s::priority, agsaIORequestDesc_s::requestType, SA_ASSERT, SA_DBG1, SA_DBG3, SA_DBG4, saLlistIOAdd, saLlistIOGetHead, saLlistIORemove, SATA_FIS_MASK, agsaSATAInitiatorRequest_s::scsiCDB, agsaContext_s::sdkData, agsaEncrypt_s::sectorSizeIndex, agsaSgl_s::sgLower, agsaSgl_s::sgUpper, SHIFT16, SHIFT2, SHIFT24, SHIFT4, SHIFT5, SHIFT8, si_memcpy(), si_memset(), smTraceFuncEnter, smTraceFuncExit, agsaIORequestDesc_s::startTick, agsaIOMap_s::Tag, agsaLLRoot_s::timeTick, agsaEncrypt_s::tweakVal_W0, agsaEncrypt_s::tweakVal_W1, agsaEncrypt_s::tweakVal_W2, agsaEncrypt_s::tweakVal_W3, and agsaIORequestDesc_s::valid.

Referenced by smsataLLIOStart().

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

◆ saSendSMPIoctl()

GLOBAL bit32 saSendSMPIoctl ( agsaRoot_t agRoot,
agsaDevHandle_t agDevHandle,
bit32  queueNum,
agsaSMPFrame_t pSMPFrame,
ossaSMPCompletedCB_t  agCB 
)

Definition at line 3346 of file saioctlcmd.c.

References agFALSE, agNULL, AGSA_RC_BUSY, AGSA_RC_FAILURE, AGSA_RC_SUCCESS, AGSA_SMP_IOCTL_REQUEST, agTRUE, agsaIORequestDesc_s::completionCB, agsaDeviceDesc_s::DeviceMapIndex, agsaSMPFrame_s::flag, agsaLLRoot_s::freeIORequests, agsaLLRoot_s::freeReservedRequests, hpDBG_VERY_LOUD, agsaIORequestDesc_s::HTag, agsaLLRoot_s::inboundQueue, INDIRECT_MODE, agsaSMPFrame_s::inFrameAddrLower32, agsaSMPFrame_s::inFrameAddrUpper32, agsaSMPFrame_s::inFrameLen, agsaLLRoot_s::IOMap, IOMB_SIZE64, agsaIOMap_s::IORequest, agsaIORequestDesc_s::IRmode, agsaIORequestDesc_s::linkNode, LL_IOREQ_IBQ0_LOCK, LL_IOREQ_LOCKEQ_LOCK, MPI_IB_NUM_MASK, MPI_OB_NUM_MASK, MPI_OB_SHIFT, mpiMsgFreeGet(), mpiSMPCmd(), OPC_INB_SMP_REQUEST, OSSA_OFFSET_OF, ossaSingleThreadedEnter(), ossaSingleThreadedLeave(), agsaSMPFrame_s::outFrameAddrLower32, agsaSMPFrame_s::outFrameAddrUpper32, agsaSMPFrame_s::outFrameBuf, agsaSMPFrame_s::outFrameLen, agsaIORequestDesc_s::pDevice, agsaDeviceDesc_s::pendingIORequests, agsaIORequestDesc_s::pIORequestContext, agsaDeviceDesc_s::pPort, agsaIORequestDesc_s::pPort, agsaIORequestDesc_s::requestType, SA_ASSERT, SA_DBG1, SA_DBG2, saLlistIOAdd, saLlistIOGetHead, saLlistIORemove, agsaContext_s::sdkData, SHIFT16, si_memset(), smIS_SPC(), smpFrameFlagIndirectPayload, smpFrameFlagIndirectResponse, smTraceFuncExit, agsaIORequestDesc_s::startTick, agsaIOMap_s::Tag, agsaLLRoot_s::timeTick, and agsaIORequestDesc_s::valid.

Referenced by tdsaSendSMPIoctl().

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

◆ saSetControllerConfig()

GLOBAL bit32 saSetControllerConfig ( agsaRoot_t agRoot,
bit32  queueNum,
bit32  modePage,
bit32  length,
void *  buffer,
agsaContext_t agContext 
)

◆ saSetDeviceInfo()

GLOBAL bit32 saSetDeviceInfo ( agsaRoot_t agRoot,
agsaContext_t agContext,
bit32  queueNum,
agsaDevHandle_t agDevHandle,
bit32  option,
bit32  param,
ossaSetDeviceInfoCB_t  agCB 
)

Set Device Information.

Set SAS/SATA device information API

Parameters
agRootHandles for this instance of SAS/SATA hardware
agContextPointer to this API context
queueNumIQ/OQ number
agDevHandlePointer of device handle
optiondevice general information or extended information
paramParameter of Set Device Infomation
Returns
  • AGSA_RC_SUCCESS
  • AGSA_RC_FAILURE

Definition at line 672 of file sadisc.c.

References agNULL, AGSA_RC_FAILURE, DEVICE_ID_BITS, agsaDeviceMap_s::DeviceHandle, agsaDeviceMap_s::DeviceIdFromFW, agsaLLRoot_s::DeviceMap, agsaDeviceDesc_s::DeviceMapIndex, hpDBG_VERY_LOUD, mpiSetDeviceInfoCmd(), agsaDeviceDesc_s::option, OS_ASSERT, agsaDeviceDesc_s::param, SA_DBG1, SA_DBG2, SA_DBG3, agsaContext_s::sdkData, smTraceFuncEnter, and smTraceFuncExit.

Referenced by itdssOpenCnxErrorConnectionRateNotSupportedHandler(), and ossaDeviceHandleAccept().

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

◆ saSetDeviceState()

GLOBAL bit32 saSetDeviceState ( agsaRoot_t agRoot,
agsaContext_t agContext,
bit32  queueNum,
agsaDevHandle_t agDevHandle,
bit32  newDeviceState 
)

Set Device State.

Set SAS/SATA device state API

Parameters
agRootHandles for this instance of SAS/SATA hardware
agContextPointer to this API context
queueNumIQ/OQ number
agDevHandlePointer of device handler
newDeviceStatenew device state
Returns
  • AGSA_RC_SUCCESS
  • AGSA_RC_FAILURE

Definition at line 801 of file sadisc.c.

References agNULL, AGSA_RC_FAILURE, DEVICE_ID_BITS, agsaDeviceMap_s::DeviceHandle, agsaDeviceMap_s::DeviceIdFromFW, agsaLLRoot_s::DeviceMap, agsaDeviceDesc_s::DeviceMapIndex, hpDBG_VERY_LOUD, mpiSetDeviceStateCmd(), OS_ASSERT, SA_DBG1, SA_DBG3, agsaContext_s::sdkData, smTraceFuncEnter, and smTraceFuncExit.

Referenced by itdssDsNonOperationalHandler(), itdssTaskCompleted(), ossaHwCB(), ossaLocalPhyControlCB(), smLocalPhyControlCB(), smPhyControlRespRcvd(), smsatDelayedProcessAbnormalCompletion(), smsatIDStartCB(), smsatProcessAbnormalCompletion(), smSMPCompleted(), smTaskManagement(), and tdsaPhyControlRespRcvd().

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

◆ saSetNVMDCommand()

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

SPC Set NVMD Command.

This command sends SET_NVMD_DATA Command to SPC.

Parameters
agRootHandles for this instance of SAS/SATA LL
agContextContext of SPC FW Flash Update Command
queueNumInbound/outbound queue number
NVMDInfoPointer of NVM Device information
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 3327 of file saioctlcmd.c.

References agNULL, AGSA_RC_SUCCESS, mpiSetNVMDCmd(), and SA_ASSERT.

Referenced by tdsaNVMDSetIoctl().

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

◆ saSetOperator()

GLOBAL bit32 saSetOperator ( agsaRoot_t agRoot,
agsaContext_t agContext,
bit32  queueNum,
bit32  flag,
void *  cert 
)

Definition at line 1356 of file saport.c.

References AGSA_RC_SUCCESS, agsaSetOperatorCmd_s::cert, hpDBG_VERY_LOUD, mpiSetOperatorCmd(), agsaSetOperatorCmd_s::OPRIDX_PIN_ACS, SA_DBG1, si_memcpy(), si_memset(), smTraceFuncEnter, and smTraceFuncExit.

Referenced by tiCOMSetOperator().

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

◆ saSetPhyProfile()

GLOBAL bit32 saSetPhyProfile ( agsaRoot_t agRoot,
agsaContext_t agContext,
bit32  queueNum,
bit32  ppc,
bit32  length,
void *  buffer,
bit32  phyID 
)

Definition at line 936 of file saphy.c.

References agFALSE, AGSA_PHY_RATE_CONTROL_PAGE, AGSA_PHY_SNW3_PAGE, AGSA_RC_FAILURE, AGSA_RC_SUCCESS, AGSA_SAS_PHY_ANALOG_SETTINGS_PAGE, AGSA_SAS_PHY_MISC_PAGE, mpiSetPhyProfileCmd(), SA_ASSERT, and SA_DBG1.

Referenced by ossaGetPhyProfileCB().

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

◆ saSgpio()

GLOBAL bit32 saSgpio ( agsaRoot_t agRoot,
agsaContext_t agContext,
bit32  queueNum,
agsaSGpioReqResponse_t pSGpioReq 
)

Initiate a serial GPIO command.

This function is called to initiate a serial GPIO command to the SPC. The completion of this function is reported in ossaSgpioCB().

Parameters
agRoothandles for this instance of SAS/SATA hardware
agContextthe context of this API
queueNumqueue number
pSGpioReqPointer to the serial GPIO fields
Returns
  • SUCCESS or FAILURE

Definition at line 2203 of file saioctlcmd.c.

References agNULL, AGSA_RC_BUSY, AGSA_RC_SUCCESS, agsaSGpioReqResponse_s::function, hpDBG_VERY_LOUD, agsaIORequestDesc_s::HTag, IOMB_SIZE64, MPI_CATEGORY_SAS_SATA, mpiBuildCmd(), OPC_INB_SGPIO, OSSA_OFFSET_OF, agsaSGpioReqResponse_s::readWriteData, agsaSGpioReqResponse_s::registerCount, agsaSGpioReqResponse_s::registerIndex, agsaSGpioReqResponse_s::registerType, SA_ASSERT, SA_DBG1, SA_DBG3, SA_SAS_SMP_WRITE_GPIO_REGISTER, saGetRequestFromFreePool(), saReturnRequestToFreePool(), si_memset(), agsaSGpioReqResponse_s::smpFrameType, smTraceFuncEnter, and smTraceFuncExit.

Referenced by tdsaSGpioIoctlSetup().

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

◆ saSMPAbort()

GLOBAL bit32 saSMPAbort ( agsaRoot_t agRoot,
agsaIORequest_t agIORequest,
bit32  queueNum,
agsaDevHandle_t agDevHandle,
bit32  flag,
void *  abortParam,
ossaGenericAbortCB_t  agCB 
)

Abort SMP request.

Abort SMP request

Parameters
agRoothandles for this instance of SAS/SATA hardware
queueNum
agIORequest
Returns
If request is aborted successfully
  • AGSA_RC_SUCCESS request is aborted successfully
  • AGSA_RC_FAILURE request is not aborted successfully

Definition at line 517 of file sasmp.c.

References ABORT_ALL, ABORT_MASK, ABORT_SINGLE, agsaIOMap_s::agContext, agFALSE, agNULL, AGSA_RC_BUSY, AGSA_RC_FAILURE, AGSA_RC_SUCCESS, AGSA_SMP_REQTYPE, agTRUE, agsaIORequestDesc_s::completionCB, agsaSMPAbortCmd_s::deviceId, agsaDeviceDesc_s::DeviceMapIndex, agsaLLRoot_s::freeIORequests, agsaLLRoot_s::freeReservedRequests, hpDBG_VERY_LOUD, agsaIORequestDesc_s::HTag, agsaSMPAbortCmd_s::HTagAbort, agsaLLRoot_s::IOMap, IOMB_SIZE64, agsaIOMap_s::IORequest, agsaIORequestDesc_s::linkNode, LL_IOREQ_LOCKEQ_LOCK, MARK_OFF, MPI_CATEGORY_SAS_SATA, mpiBuildCmd(), NULL, OPC_INB_SMP_ABORT, OSSA_OFFSET_OF, ossaSingleThreadedEnter(), ossaSingleThreadedLeave(), agsaIORequestDesc_s::pDevice, agsaDeviceDesc_s::pendingIORequests, agsaIORequestDesc_s::pIORequestContext, agsaIORequestDesc_s::requestType, SA_ASSERT, SA_DBG1, SA_DBG3, SA_RESERVED_REQUEST_COUNT, saLlistIOAdd, saLlistIOGetCount, saLlistIOGetHead, saLlistIORemove, agsaContext_s::sdkData, smTraceFuncEnter, smTraceFuncExit, agsaIORequestDesc_s::startTick, agsaSMPAbortCmd_s::tag, agsaIOMap_s::Tag, agsaLLRoot_s::timeTick, and agsaIORequestDesc_s::valid.

Referenced by tdsaAbortAll().

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

◆ saSMPStart()

GLOBAL bit32 saSMPStart ( agsaRoot_t agRoot,
agsaIORequest_t agIORequest,
bit32  queueNum,
agsaDevHandle_t agDevHandle,
bit32  agRequestType,
agsaSASRequestBody_t agRequestBody,
ossaSMPCompletedCB_t  agCB 
)

Start SMP request.

Start SMP request

Parameters
agRoothandles for this instance of SAS/SATA hardware
queueNum
agIORequest
agDevHandle
agRequestType
agRequestBody
agCBSpc - support direct mode direct response SpcV - support direct mode direct response SpcV - support indirect mode direct response SpcV - support indirect mode indirect response
Returns
If request is started successfully
  • AGSA_RC_SUCCESS request is started successfully
  • AGSA_RC_BUSY No resource available, try again later

Definition at line 62 of file sasmp.c.

References agFALSE, agNULL, AGSA_MAX_INBOUND_Q, AGSA_MAX_SMPPAYLOAD_VIA_SFO, AGSA_RC_BUSY, AGSA_RC_FAILURE, AGSA_RC_SUCCESS, AGSA_SMP_INIT_REQ, agTRUE, agsaIORequestDesc_s::completionCB, agsaDeviceDesc_s::DeviceMapIndex, DIRECT_MODE, agsaSMPFrame_s::expectedRespLen, agsaSMPFrame_s::flag, agsaLLRoot_s::freeIORequests, agsaLLRoot_s::freeReservedRequests, hpDBG_VERY_LOUD, agsaIORequestDesc_s::HTag, agsaLLRoot_s::inboundQueue, INDIRECT_MODE, agsaSMPFrame_s::inFrameAddrLower32, agsaSMPFrame_s::inFrameAddrUpper32, agsaSMPFrame_s::inFrameLen, agsaLLRoot_s::IOMap, IOMB_SIZE64, agsaIOMap_s::IORequest, agsaIORequestDesc_s::IRmode, agsaIORequestDesc_s::linkNode, LL_IOREQ_IBQ0_LOCK, LL_IOREQ_LOCKEQ_LOCK, MPI_IB_NUM_MASK, MPI_OB_NUM_MASK, MPI_OB_SHIFT, mpiMsgFreeGet(), mpiSMPCmd(), OPC_INB_SMP_REQUEST, OSSA_OFFSET_OF, ossaSingleThreadedEnter(), ossaSingleThreadedLeave(), agsaSMPFrame_s::outFrameAddrLower32, agsaSMPFrame_s::outFrameAddrUpper32, agsaSMPFrame_s::outFrameBuf, agsaSMPFrame_s::outFrameLen, agsaIORequestDesc_s::pDevice, agsaDeviceDesc_s::pendingIORequests, agsaIORequestDesc_s::pIORequestContext, agsaPort_s::portId, agsaDeviceDesc_s::pPort, agsaIORequestDesc_s::pPort, agsaIORequestDesc_s::requestType, SA_ASSERT, SA_DBG1, SA_DBG2, SA_DBG4, saLlistIOAdd, saLlistIOGetHead, saLlistIORemove, agsaContext_s::sdkData, SHIFT16, si_memcpy(), si_memset(), smIS_SPC(), agsaSMPCmd_s::SMPCmd, agsaSASRequestBody_u::smpFrame, smpFrameFlagIndirectPayload, smpFrameFlagIndirectResponse, smTraceFuncEnter, smTraceFuncExit, agsaIORequestDesc_s::startTick, agsaIOMap_s::Tag, agsaLLRoot_s::timeTick, and agsaIORequestDesc_s::valid.

Referenced by smPhyControlSend(), tiINISMPStart(), ttdsaDiscoverRespSend(), ttdsaNotSupportRespSend(), and ttdsaReportGeneralRespSend().

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

◆ saSSPAbort()

GLOBAL bit32 saSSPAbort ( agsaRoot_t agRoot,
agsaIORequest_t agIORequest,
bit32  queueNum,
agsaDevHandle_t agDevHandle,
bit32  flag,
void *  abortParam,
ossaGenericAbortCB_t  agCB 
)

Abort SSP request.

Abort SSP request

Parameters
agRoothandles for this instance of SAS/SATA LLL
queueNum
agIORequest
agIOToBeAborted
Returns
If request is aborted successfully
  • AGSA_RC_SUCCESS request is aborted successfully
  • AGSA_RC_FAILURE request is not aborted successfully

Definition at line 1678 of file sassp.c.

References ABORT_ALL, ABORT_MASK, ABORT_QUARANTINE_SPCV, ABORT_SCOPE, ABORT_SINGLE, ABORT_TSDK_QUARANTINE, agFALSE, agNULL, AGSA_MAX_INBOUND_Q, AGSA_RC_BUSY, AGSA_RC_FAILURE, AGSA_RC_SUCCESS, AGSA_SSP_REQTYPE, agTRUE, agsaIORequestDesc_s::completionCB, agsaSSPAbortCmd_s::deviceId, agsaDeviceDesc_s::DeviceMapIndex, agsaLLRoot_s::freeIORequests, agsaLLRoot_s::freeReservedRequests, hpDBG_VERY_LOUD, agsaIORequestDesc_s::HTag, agsaSSPAbortCmd_s::HTagAbort, agsaLLRoot_s::inboundQueue, agsaLLRoot_s::IOMap, IOMB_SIZE64, agsaIOMap_s::IORequest, agsaIORequestDesc_s::linkNode, LL_IOREQ_IBQ0_LOCK, LL_IOREQ_LOCKEQ_LOCK, MPI_CATEGORY_SAS_SATA, MPI_IB_NUM_MASK, MPI_OB_NUM_MASK, MPI_OB_SHIFT, mpiMsgFreeGet(), mpiMsgProduce(), NULL, OPC_INB_SSP_ABORT, OSSA_OFFSET_OF, ossaSingleThreadedEnter(), ossaSingleThreadedLeave(), agsaIORequestDesc_s::pDevice, agsaDeviceDesc_s::pendingIORequests, agsaIORequestDesc_s::pIORequestContext, agsaDeviceDesc_s::pPort, agsaIORequestDesc_s::pPort, mpiICQueue_s::priority, agsaIORequestDesc_s::requestType, SA_ASSERT, SA_DBG1, SA_DBG2, SA_RESERVED_REQUEST_COUNT, saLlistIOAdd, saLlistIOGetCount, saLlistIOGetHead, saLlistIORemove, agsaContext_s::sdkData, siCountActiveIORequestsOnDevice(), smIS_SPCV(), smTraceFuncEnter, smTraceFuncExit, agsaIORequestDesc_s::startTick, agsaSSPAbortCmd_s::tag, agsaIOMap_s::Tag, agsaLLRoot_s::timeTick, and agsaIORequestDesc_s::valid.

Referenced by itdssTaskCompleted(), tdsaAbortAll(), tiTGTIOAbort(), and ttdsaTMProcess().

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

◆ saSSPStart()

GLOBAL bit32 saSSPStart ( agsaRoot_t agRoot,
agsaIORequest_t agIORequest,
bit32  queueNum,
agsaDevHandle_t agDevHandle,
bit32  agRequestType,
agsaSASRequestBody_t agRequestBody,
agsaIORequest_t agTMRequest,
ossaSSPCompletedCB_t  agCB 
)

Start SSP request.

Start SSP request

Parameters
agRoothandles for this instance of SAS/SATA LLL
queueNum
agIORequest
agDevHandle
agRequestType
agRequestBody
agTMRequestvalid for task management
agCB
Returns
If request is started successfully
  • AGSA_RC_SUCCESS request is started successfully
  • AGSA_RC_BUSY request is not started successfully

Definition at line 580 of file sassp.c.

References agsaSSPCmdInfoUnitExt_s::additionalCdbLen, agsaSSPIniIOStartCmd_s::AddrHi0, agsaSSPIniEncryptIOStartCmd_s::AddrHi0, agsaSSPTgtIOStartCmd_s::AddrHi0, agsaSSPIniIOStartCmd_s::AddrLow0, agsaSSPIniEncryptIOStartCmd_s::AddrLow0, agsaSSPTgtIOStartCmd_s::AddrLow0, agFALSE, agNULL, AGSA_AUTO_MASK, AGSA_DIF_BIT, AGSA_DIF_INSERT, AGSA_DIF_REPLACE_UDT_REPLACE_CRC, AGSA_DIF_VERIFY_REPLACE, AGSA_DIR_MASK, AGSA_ENCRYPT_BIT, AGSA_ENCRYPT_KEY_TAG_BIT, AGSA_ENCRYPT_XTS_Mode, AGSA_MAX_INBOUND_Q, AGSA_MAX_SSPPAYLOAD_VIA_SFO, AGSA_MSG, AGSA_MSG_BIT, AGSA_RC_BUSY, AGSA_RC_FAILURE, AGSA_RC_SUCCESS, AGSA_SAS_ENABLE_DIF, AGSA_SAS_ENABLE_ENCRYPTION, AGSA_SAS_ENABLE_SKIP_MASK, AGSA_SAS_SKIP_MASK_OFFSET, AGSA_SKIP_MASK_BIT, AGSA_SSP_EXT_BIT, AGSA_SSP_INDIRECT_BIT, AGSA_SSP_INIT_NONDATA, AGSA_SSP_INIT_READ, AGSA_SSP_INIT_READ_EXT, AGSA_SSP_INIT_READ_EXT_M, AGSA_SSP_INIT_READ_INDIRECT, AGSA_SSP_INIT_READ_INDIRECT_M, AGSA_SSP_INIT_READ_M, AGSA_SSP_INIT_WRITE, AGSA_SSP_INIT_WRITE_EXT, AGSA_SSP_INIT_WRITE_EXT_M, AGSA_SSP_INIT_WRITE_INDIRECT, AGSA_SSP_INIT_WRITE_INDIRECT_M, AGSA_SSP_INIT_WRITE_M, AGSA_SSP_REQTYPE, AGSA_SSP_TASK_MGNT, AGSA_SSP_TASK_MGNT_REQ, AGSA_SSP_TASK_MGNT_REQ_M, AGSA_SSP_TGT_BITS_AGR, AGSA_SSP_TGT_BITS_DEE_DIF, AGSA_SSP_TGT_BITS_ODS, AGSA_SSP_TGT_CMD_OR_TASK_RSP, AGSA_SSP_TGT_READ_DATA, AGSA_SSP_TGT_READ_GOOD_RESP, AGSA_SSP_TGT_WRITE_DATA, AGSA_SSP_TGT_WRITE_GOOD_RESP, agsaEncryptCipherModeXTS, agsaSSPInitiatorRequest_s::agSgl, agsaSSPInitiatorRequestExt_s::agSgl, agsaSSPTargetRequest_s::agSgl, agsaSSPTargetRequest_s::agTag, agsaSSPTargetResponse_s::agTag, agTRUE, agsaEncrypt_s::cipherMode, agsaIORequestDesc_s::completionCB, agsaSSPIniExtIOStartCmd_s::dataLen, agsaSSPInitiatorRequest_s::dataLength, agsaSSPInitiatorRequestExt_s::dataLength, agsaSSPTargetRequest_s::dataLength, DBG_DUMP_SSPSTART_CMDIU, agsaEncryptDek_s::dekIndex, agsaEncrypt_s::dekInfo, agsaEncryptDek_s::dekTable, agsaSSPIniTMStartCmd_s::deviceId, agsaDeviceDesc_s::DeviceMapIndex, agsaSSPInitiatorRequest_s::dif, agsaSSPTargetRequest_s::dif, DIF_FLAG_BITS_ACTION, DIF_FLAG_BITS_BLOCKSIZE_MASK, DIF_FLAG_BITS_BLOCKSIZE_SHIFT, DIF_FLAG_BITS_CRC_INV, DIF_FLAG_BITS_CRC_SEED, DIF_FLAG_BITS_CRC_VER, DIF_FLAG_BITS_CUST_APP_TAG, DIF_FLAG_BITS_UDTR_REF_BLKCOUNT, DIF_FLAG_BITS_UDTUPMASK, DIF_FLAG_BITS_UDTUPSHIFT, DIF_FLAG_BITS_UDTV_SHIFT, DIF_FLAG_BITS_UDTVMASK, agsaDif_s::DIFPerLAAddrHi, agsaDif_s::DIFPerLAAddrLo, agsaDif_s::DIFPerLARegion0SecCount, agsaSSPIniIOStartCmd_s::dirMTlr, agsaSSPIniIOStartCmd_s::E0, agsaSSPIniEncryptIOStartCmd_s::E0, agsaSSPTgtIOStartCmd_s::E0, agsaDif_s::enableDIFPerLA, agsaEncrypt_s::enableEncryptionPerLA, agsaSSPInitiatorRequest_s::encrypt, agsaEncrypt_s::EncryptionPerLAAddrHi, agsaEncrypt_s::EncryptionPerLAAddrLo, agsaEncrypt_s::EncryptionPerLRegion0SecCount, agsaSgl_s::extReserved, agsaSSPInitiatorRequest_s::flag, agsaSSPInitiatorRequestExt_s::flag, agsaDif_s::flags, agsaSSPTargetResponse_s::frameBuf, agsaLLRoot_s::freeIORequests, hpDBG_VERY_LOUD, agsaIORequestDesc_s::HTag, agsaLLRoot_s::inboundQueue, agsaDif_s::initialIOSeed, agsaLLRoot_s::interruptVecIndexBitMap, agsaLLRoot_s::IOMap, IOMB_SIZE128, IOMB_SIZE64, IOMB_SIZE96, agsaIOMap_s::IORequest, agsaEncrypt_s::kekIndex, agsaEncrypt_s::keyTag_W0, agsaEncrypt_s::keyTag_W1, agsaEncrypt_s::keyTagCheck, agsaSgl_s::len, agsaSSPIniIOStartCmd_s::Len0, agsaSSPIniEncryptIOStartCmd_s::Len0, agsaSSPTgtIOStartCmd_s::Len0, agsaIORequestDesc_s::linkNode, LL_IOREQ_IBQ0_LOCK, LL_IOREQ_LOCKEQ_LOCK, agsaSSPScsiTaskMgntReq_s::lun, agsaSSPIniTMStartCmd_s::lun, agsaSwConfig_s::maxActiveIOs, MPI_CATEGORY_SAS_SATA, MPI_IB_NUM_MASK, MPI_OB_NUM_MASK, MPI_OB_SHIFT, mpiMsgFreeGet(), mpiMsgProduce(), agsaSSPTargetRequest_s::offset, OPC_INB_SSP_DIF_ENC_OPSTART, OPC_INB_SSPINIEXTIOSTART, OPC_INB_SSPINIIOSTART, OPC_INB_SSPINITMSTART, OPC_INB_SSPTGTIOSTART, OPC_INB_SSPTGTRSPSTART, OPC_OUB_SSP_COMP, OSSA_INP_ENTER, OSSA_INP_LEAVE, OSSA_IO_SUCCESS, OSSA_OFFSET_OF, ossaSingleThreadedEnter(), ossaSingleThreadedLeave(), agsaLLRoot_s::outboundQueue, agsaIORequestDesc_s::pDevice, agsaDeviceDesc_s::pendingIORequests, agsaIORequestDesc_s::pIORequestContext, agsaDeviceDesc_s::pPort, agsaIORequestDesc_s::pPort, mpiICQueue_s::priority, agsaSSPIniTMStartCmd_s::relatedTag, agsaIORequestDesc_s::requestType, agsaSSPTgtRspStartCmd_s::reserved, RESP_OPTION_BITS, RESP_OPTION_ODS, agsaSSPTargetResponse_s::respBufLength, agsaSSPTargetResponse_s::respBufLower, agsaSSPTargetResponse_s::respBufUpper, agsaSSPTargetResponse_s::respOption, SA_ASSERT, SA_DBG1, SA_DBG2, SA_DBG3, SA_DBG5, saLlistIOAdd, saLlistIOGetHead, saLlistIORemove, agsaContext_s::sdkData, agsaEncrypt_s::sectorSizeIndex, agsaSgl_s::sgLower, agsaSgl_s::sgUpper, SHIFT10, SHIFT12, SHIFT16, SHIFT2, SHIFT24, SHIFT3, SHIFT4, SHIFT5, SHIFT7, SHIFT8, si_memcpy(), si_memset(), siDumpActiveIORequests(), smIS_SPC(), smTraceFuncEnter, smTraceFuncExit, SSP_OPTION_AUTO_GOOD_RESPONSE, SSP_OPTION_BITS, SSP_OPTION_DIF, SSP_OPTION_ODS, agsaSSPInitiatorRequest_s::sspCmdIU, agsaSSPInitiatorRequestExt_s::sspCmdIUExt, agsaSSPIniIOStartCmd_s::SSPInfoUnit, agsaSASRequestBody_u::sspInitiatorReq, agsaSSPInitiatorRequestIndirect_s::sspInitiatorReqAddrLower32, agsaSSPInitiatorRequestIndirect_s::sspInitiatorReqAddrUpper32, agsaSASRequestBody_u::sspInitiatorReqExt, agsaSASRequestBody_u::sspInitiatorReqIndirect, agsaSSPInitiatorRequestIndirect_s::sspInitiatorReqLen, agsaSSPIniExtIOStartCmd_s::SSPIu, agsaSSPIniExtIOStartCmd_s::SSPIuLendirMTlr, agsaSSPTargetRequest_s::sspOption, agsaSASRequestBody_u::sspTargetReq, agsaSASRequestBody_u::sspTargetResponse, agsaSASRequestBody_u::sspTaskMgntReq, agsaIORequestDesc_s::startTick, status, agsaLLRoot_s::swConfig, agsaSSPIniTMStartCmd_s::tag, agsaIOMap_s::Tag, agsaSSPScsiTaskMgntReq_s::tagOfTaskToBeManaged, agsaSSPScsiTaskMgntReq_s::taskMgntFunction, agsaLLRoot_s::timeTick, TLR_MASK, agsaSSPIniTMStartCmd_s::TMfunction, agsaSSPScsiTaskMgntReq_s::tmOption, 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 itdssXferOpenRetryTimeoutHandler(), ossaSSPEvent(), tiINIIOStart(), tiINISuperIOStart(), tiNumOfLunIOCTLreq(), tiTGTIOStart(), ttdsaIOCompleted(), and ttdsaSendResp().

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

◆ saSystemInterruptsActive()

GLOBAL void saSystemInterruptsActive ( agsaRoot_t agRoot,
agBOOLEAN  sysIntsActive 
)

Function to enable/disable interrupts.

The saSystemInterruptsActive() function is called to indicate to the LL Layer whether interrupts are available. The parameter sysIntsActive indicates whether interrupts are available at this time.

Parameters
agRoothandles for this instance of SAS/SATA hardware
sysIntsActiveflag for enable/disable interrupt
Returns
-void-

Definition at line 1340 of file saint.c.

References agNULL, AGSA_INTERRUPT_HANDLE_ALL_CHANNELS, agTRUE, agsaSwConfig_s::fatalErrorInterruptEnable, agsaSwConfig_s::fatalErrorInterruptVector, GEN_MSGU_ODMR, hpDBG_TICK_INT, MSGU_ODMR, agsaLLRoot_s::numInterruptVectors, ossaHwRegReadExt(), ossaHwRegWriteExt(), ossaReenableInterrupts(), PCIBAR0, SA_ASSERT, SA_DBG1, SA_DBG3, agsaContext_s::sdkData, siHalRegWriteExt(), smIS_SPC(), smIS_SPCV(), smTrace, smTraceFuncEnter, smTraceFuncExit, agsaLLRoot_s::swConfig, agsaLLRoot_s::sysIntsActive, V_Outbound_Doorbell_Clear_Register, V_Outbound_Doorbell_Clear_RegisterU, V_Outbound_Doorbell_Mask_Set_Register, V_Outbound_Doorbell_Mask_Set_RegisterU, V_Outbound_Doorbell_Set_Register, and V_Outbound_Doorbell_Set_RegisterU.

Referenced by saHwReset(), and tiCOMSystemInterruptsActive().

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

◆ saSystemInterruptsEnable()

GLOBAL FORCEINLINE void saSystemInterruptsEnable ( agsaRoot_t agRoot,
bit32  interruptVectorIndex 
)

Function to enable a single interrupt vector.

Parameters
agRootOS Layer-specific and LL Layer-specific context handles for this instance of SAS/SATA hardware
interruptVectorIndexInterrupt vector to enable

saSystemInterruptsEnable Function to enable a single interrupt vector

Parameters
agRootOS Layer-specific and LL Layer-specific context handles for this instance of SAS/SATA hardware
interruptVectorIndexInterrupt vector to enable

Definition at line 1121 of file saint.c.

References ossaReenableInterrupts().

Referenced by saTimerTick(), and tiCOMInterruptEnable().

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

◆ saTimerTick()

◆ saVhistCapture()