FreeBSD kernel pms device code
sainit.c File Reference

The file implements the functions to initialize the LL layer. More...

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

Go to the source code of this file.

Functions

 __FBSDID ("$FreeBSD$")
 
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 bit32 siConfiguration (agsaRoot_t *agRoot, mpiConfig_t *mpiConfig, agsaHwConfig_t *hwConfig, agsaSwConfig_t *swConfig)
 Routine to do SPC configuration with default or specified values. More...
 
GLOBAL bit32 mpiInitialize (agsaRoot_t *agRoot, mpiMemReq_t *memoryAllocated, mpiConfig_t *config)
 
GLOBAL bit32 mpiWaitForConfigTable (agsaRoot_t *agRoot, spc_configMainDescriptor_t *config)
 Reading and Writing the Configuration Table. More...
 
GLOBAL bit32 mpiUnInitConfigTable (agsaRoot_t *agRoot)
 
GLOBAL void mpiUpdateIBQueueCfgTable (agsaRoot_t *agRoot, spc_inboundQueueDescriptor_t *inQueueCfg, bit32 QueueTableOffset, bit8 pcibar)
 Writing to the inbound queue of the Configuration Table. More...
 
GLOBAL void mpiUpdateOBQueueCfgTable (agsaRoot_t *agRoot, spc_outboundQueueDescriptor_t *outQueueCfg, bit32 QueueTableOffset, bit8 pcibar)
 Writing to the inbound queue of the Configuration Table. More...
 
GLOBAL void mpiUpdateFatalErrorTable (agsaRoot_t *agRoot, bit32 FerrTableOffset, bit32 lowerBaseAddress, bit32 upperBaseAddress, bit32 length, bit8 pcibar)
 
GLOBAL bit32 mpiGetPCIBarIndex (agsaRoot_t *agRoot, bit32 pciBar)
 
GLOBAL void mpiReadGSTable (agsaRoot_t *agRoot, spc_GSTableDescriptor_t *mpiGSTable)
 
GLOBAL void siInitResources (agsaRoot_t *agRoot, agsaMemoryRequirement_t *memoryAllocated, agsaHwConfig_t *hwConfig, agsaSwConfig_t *swConfig, bit32 usecsPerTick)
 
GLOBAL void mpiReadCALTable (agsaRoot_t *agRoot, spc_SPASTable_t *mpiCALTable, bit32 index)
 Reading the Phy Analog Setup Register Table. More...
 
GLOBAL void mpiWriteCALTable (agsaRoot_t *agRoot, spc_SPASTable_t *mpiCALTable, bit32 index)
 
GLOBAL void mpiWriteCALAll (agsaRoot_t *agRoot, agsaPhyAnalogSetupTable_t *mpiCALTable)
 Writing the Phy Analog Setup Register Table. More...
 
GLOBAL void mpiWrAnalogSetupTable (agsaRoot_t *agRoot, mpiConfig_t *config)
 
GLOBAL void mpiWrIntVecTable (agsaRoot_t *agRoot, mpiConfig_t *config)
 
GLOBAL void mpiWrPhyAttrbTable (agsaRoot_t *agRoot, sasPhyAttribute_t *phyAttrib)
 
GLOBAL bit32 si_check_V_HDA (agsaRoot_t *agRoot)
 
GLOBAL bit32 si_check_V_Ready (agsaRoot_t *agRoot)
 
GLOBAL bit32 siScratchDump (agsaRoot_t *agRoot)
 
void si_macro_check (agsaRoot_t *agRoot)
 

Variables

bit32 gLLDebugLevel = 3
 
bit32 gPollForMissingInt
 
bit32 gWait_3
 
bit32 gWait_2
 
bit32 gFPGA_TEST = 0
 

Detailed Description

The file implements the functions to initialize the LL layer.

Definition in file sainit.c.

Function Documentation

◆ __FBSDID()

__FBSDID ( "$FreeBSD$"  )

◆ mpiGetPCIBarIndex()

◆ mpiInitialize()

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

Definition at line 1839 of file sainit.c.

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

Referenced by saInitialize().

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

◆ mpiReadCALTable()

◆ mpiReadGSTable()

◆ mpiUnInitConfigTable()

◆ mpiUpdateFatalErrorTable()

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

◆ mpiUpdateIBQueueCfgTable()

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

Writing to the inbound queue of the Configuration Table.

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

Return: None

Definition at line 3545 of file sainit.c.

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

Referenced by mpiInitialize().

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

◆ mpiUpdateOBQueueCfgTable()

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

Writing to the inbound queue of the Configuration Table.

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

Return: None

Definition at line 3587 of file sainit.c.

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

Referenced by mpiInitialize().

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

◆ mpiWaitForConfigTable()

mpiWaitForConfigTable ( agsaRoot_t agRoot,
spc_configMainDescriptor_t config 
)

Reading and Writing the Configuration Table.

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

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

Definition at line 2904 of file sainit.c.

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

Referenced by mpiInitialize(), and siSpcSoftReset().

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

◆ mpiWrAnalogSetupTable()

◆ mpiWrIntVecTable()

◆ mpiWriteCALAll()

void mpiWriteCALAll ( agsaRoot_t agRoot,
agsaPhyAnalogSetupTable_t mpiCALTable 
)

Writing the Phy Analog Setup Register Table.

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

Return: None

Definition at line 4175 of file sainit.c.

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

Referenced by mpiInitialize().

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

◆ mpiWriteCALTable()

◆ mpiWrPhyAttrbTable()

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

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

◆ si_check_V_HDA()

GLOBAL bit32 si_check_V_HDA ( agsaRoot_t agRoot)

Definition at line 4486 of file sainit.c.

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

Referenced by saGetControllerInfo(), and saGetControllerStatus().

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

◆ si_check_V_Ready()

GLOBAL bit32 si_check_V_Ready ( agsaRoot_t agRoot)

Definition at line 4505 of file sainit.c.

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

Referenced by saGetControllerStatus().

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

◆ si_macro_check()

void si_macro_check ( agsaRoot_t agRoot)

◆ siConfiguration()

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

Routine to do SPC configuration with default or specified values.

Set up configuration table in LL Layer

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

Definition at line 1556 of file sainit.c.

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

Referenced by saGetRequirements(), and saInitialize().

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

◆ siInitResources()

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

Definition at line 3796 of file sainit.c.

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

Referenced by saHwReset(), and saHwShutdown().

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

◆ siScratchDump()

Variable Documentation

◆ gFPGA_TEST

bit32 gFPGA_TEST = 0

Definition at line 56 of file sainit.c.

◆ gLLDebugLevel

bit32 gLLDebugLevel = 3

Definition at line 40 of file sainit.c.

Referenced by ossaLogDebugString(), and saInitialize().

◆ gPollForMissingInt

bit32 gPollForMissingInt

Definition at line 48 of file sainit.c.

Referenced by saInitialize().

◆ gWait_2

bit32 gWait_2
extern

Definition at line 55 of file sahw.c.

Referenced by mpiInitialize(), mpiUnInitConfigTable(), and mpiWaitForConfigTable().

◆ gWait_3

bit32 gWait_3
extern

Definition at line 54 of file sahw.c.