63#ifdef INITIATOR_DRIVER
71#include <dev/pms/RefTisa/tisa/sassata/sas/tgt/ttdxchg.h>
134 char *pLastUsedChar =
agNULL;
136 char globalStr[] =
"Global";
137 char iniParmsStr[] =
"InitiatorParms";
138 char SwParmsStr[] =
"SWParms";
139 char OBQueueProps[] =
"OBQueueProps";
140 char IBQueueProps[] =
"IBQueueProps";
141 char IBQueueSize[40];
142 char OBQueueSize[40];
143 char IBQueueEleSize[40];
144 char OBQueueEleSize[40];
145 char OBQueueInterruptCount[40];
146 char OBQueueInterruptDelay[40];
147 char OBQueueInterruptEnable[40];
148 char IBQueuePriority[40];
149 char *cardNum = tdsaAllShared->CardIDString;
152 bit32 enableEncryption;
153#ifdef SA_CONFIG_MDFD_REGISTRY
164 TI_DBG6((
"tdsaGetSwConfigParams: start\n"));
165 TI_DBG6((
"tdsaGetSwConfigParams: tdsaRoot %p tdsaAllShared %p \n",tdsaRoot, tdsaAllShared));
168 buffLen =
sizeof(tmpBuffer);
177 dmSwConfig = (
dmSwConfig_t *)&(tdsaAllShared->dmSwConfig);
180 smSwConfig = (
smSwConfig_t *)&(tdsaAllShared->smSwConfig);
204#ifdef SA_CONFIG_MDFD_REGISTRY
208 SwConfig->
param1 = tdsaAllShared->tdDeviceIdVendId;
209 SwConfig->
param2 = tdsaAllShared->tdSubVendorId;
212#if defined(SALLSDK_DEBUG)
213 SwConfig->sallDebugLevel = 1;
216 dmSwConfig->DMDebugLevel = 1;
219 smSwConfig->SMDebugLevel = 1;
385 TI_DBG6((
"tdsaGetSwConfigParams: maxactiveio 1 !!!\n"));
390 TI_DBG6((
"tdsaGetSwConfigParams: maxactiveio 2 !!!\n"));
392 TI_DBG6((
"tdsaGetSwConfigParams: maxactiveio 3 !!!\n"));
458#if defined(SALLSDK_DEBUG)
478 SwConfig->sallDebugLevel =
osti_strtoul (buffer, &pLastUsedChar, 0);
482 SwConfig->sallDebugLevel =
osti_strtoul (buffer, &pLastUsedChar, 10);
507 dmSwConfig->DMDebugLevel =
osti_strtoul (buffer, &pLastUsedChar, 0);
511 dmSwConfig->DMDebugLevel =
osti_strtoul (buffer, &pLastUsedChar, 10);
536 smSwConfig->SMDebugLevel =
osti_strtoul (buffer, &pLastUsedChar, 0);
540 smSwConfig->SMDebugLevel =
osti_strtoul (buffer, &pLastUsedChar, 10);
579 tdsaAllShared->InboundQueueSize[i] = (
bit16)
osti_strtoul (buffer, &pLastUsedChar, 0);
583 tdsaAllShared->InboundQueueSize[i] = (
bit16)
osti_strtoul (buffer, &pLastUsedChar, 10);
584 TI_DBG6((
"tdsaGetSwConfigParams: queue number %d IB queue size %d\n", i, tdsaAllShared->InboundQueueSize[i]));
614 tdsaAllShared->InboundQueueEleSize[i] = (
bit16)
osti_strtoul (buffer, &pLastUsedChar, 0);
618 tdsaAllShared->InboundQueueEleSize[i] = (
bit16)
osti_strtoul (buffer, &pLastUsedChar, 10);
619 TI_DBG6((
"tdsaGetSwConfigParams: queue number %d IB queue ele size %d\n", i, tdsaAllShared->InboundQueueEleSize[i]));
648 tdsaAllShared->InboundQueuePriority[i] = (
bit16)
osti_strtoul (buffer, &pLastUsedChar, 0);
652 tdsaAllShared->InboundQueuePriority[i] = (
bit16)
osti_strtoul (buffer, &pLastUsedChar, 10);
653 TI_DBG6((
"tdsaGetSwConfigParams: queue number %d priority %d\n", i, tdsaAllShared->InboundQueuePriority[i]));
671 osti_sprintf(OBQueueInterruptDelay,
"OBQueueInterruptDelay%d", i);
672 osti_sprintf(OBQueueInterruptCount,
"OBQueueInterruptCount%d", i);
673 osti_sprintf(OBQueueInterruptEnable,
"OBQueueInterruptEnable%d", i);
700 tdsaAllShared->OutboundQueueSize[i] = (
bit16)
osti_strtoul (buffer, &pLastUsedChar, 0);
704 tdsaAllShared->OutboundQueueSize[i] = (
bit16)
osti_strtoul (buffer, &pLastUsedChar, 10);
705 TI_DBG6((
"tdsaGetSwConfigParams: queue number %d OB queue size %d\n", i, tdsaAllShared->OutboundQueueSize[i]));
736 tdsaAllShared->OutboundQueueEleSize[i] = (
bit16)
osti_strtoul (buffer, &pLastUsedChar, 0);
740 tdsaAllShared->OutboundQueueEleSize[i] = (
bit16)
osti_strtoul (buffer, &pLastUsedChar, 10);
741 TI_DBG6((
"tdsaGetSwConfigParams: queue number %d OB queue ele size %d\n", i, tdsaAllShared->OutboundQueueEleSize[i]));
764 OBQueueInterruptDelay,
772 tdsaAllShared->OutboundQueueInterruptDelay[i] = (
bit16)
osti_strtoul (buffer, &pLastUsedChar, 0);
776 tdsaAllShared->OutboundQueueInterruptDelay[i] = (
bit16)
osti_strtoul (buffer, &pLastUsedChar, 10);
777 TI_DBG6((
"tdsaGetSwConfigParams: queue number %d interrupt delay %d\n", i, tdsaAllShared->OutboundQueueInterruptDelay[i]));
799 OBQueueInterruptCount,
807 tdsaAllShared->OutboundQueueInterruptCount[i] = (
bit16)
osti_strtoul (buffer, &pLastUsedChar, 0);
811 tdsaAllShared->OutboundQueueInterruptCount[i] = (
bit16)
osti_strtoul (buffer, &pLastUsedChar, 10);
812 TI_DBG6((
"tdsaGetSwConfigParams: queue number %d interrupt count %d\n", i, tdsaAllShared->OutboundQueueInterruptCount[i]));
834 OBQueueInterruptEnable,
842 tdsaAllShared->OutboundQueueInterruptEnable[i] = (
bit16)
osti_strtoul (buffer, &pLastUsedChar, 0);
846 tdsaAllShared->OutboundQueueInterruptEnable[i] = (
bit16)
osti_strtoul (buffer, &pLastUsedChar, 10);
847 TI_DBG6((
"tdsaGetSwConfigParams: queue number %d interrupt enable %d\n", i, tdsaAllShared->OutboundQueueInterruptEnable[i]));
893 tdsaAllShared->InboundQueueSize[i] = (
bit16)
osti_strtoul (buffer, &pLastUsedChar, 0);
897 tdsaAllShared->InboundQueueSize[i] = (
bit16)
osti_strtoul (buffer, &pLastUsedChar, 10);
898 TI_DBG6((
"tdsaGetSwConfigParams: queue number %d IB queue size %d\n", i, tdsaAllShared->InboundQueueSize[i]));
925 tdsaAllShared->InboundQueueEleSize[i] = (
bit16)
osti_strtoul (buffer, &pLastUsedChar, 0);
929 tdsaAllShared->InboundQueueEleSize[i] = (
bit16)
osti_strtoul (buffer, &pLastUsedChar, 10);
930 TI_DBG6((
"tdsaGetSwConfigParams: queue number %d IB queue ele size %d\n", i, tdsaAllShared->InboundQueueEleSize[i]));
957 tdsaAllShared->InboundQueuePriority[i] = (
bit16)
osti_strtoul (buffer, &pLastUsedChar, 0);
961 tdsaAllShared->InboundQueuePriority[i] = (
bit16)
osti_strtoul (buffer, &pLastUsedChar, 10);
962 TI_DBG6((
"tdsaGetSwConfigParams: card number %s queue number %d priority %d\n", cardNum, i, tdsaAllShared->InboundQueuePriority[i]));
980 osti_sprintf(OBQueueInterruptDelay,
"OBQueueInterruptDelay%d", i);
981 osti_sprintf(OBQueueInterruptCount,
"OBQueueInterruptCount%d", i);
982 osti_sprintf(OBQueueInterruptEnable,
"OBQueueInterruptEnable%d", i);
1006 tdsaAllShared->OutboundQueueSize[i] = (
bit16)
osti_strtoul (buffer, &pLastUsedChar, 0);
1010 tdsaAllShared->OutboundQueueSize[i] = (
bit16)
osti_strtoul (buffer, &pLastUsedChar, 10);
1011 TI_DBG6((
"tdsaGetSwConfigParams: queue number %d OB queue size %d\n", i, tdsaAllShared->OutboundQueueSize[i]));
1039 tdsaAllShared->OutboundQueueEleSize[i] = (
bit16)
osti_strtoul (buffer, &pLastUsedChar, 0);
1043 tdsaAllShared->OutboundQueueEleSize[i] = (
bit16)
osti_strtoul (buffer, &pLastUsedChar, 10);
1044 TI_DBG6((
"tdsaGetSwConfigParams: queue number %d OB queue ele size %d\n", i, tdsaAllShared->OutboundQueueEleSize[i]));
1064 OBQueueInterruptDelay,
1072 tdsaAllShared->OutboundQueueInterruptDelay[i] = (
bit16)
osti_strtoul (buffer, &pLastUsedChar, 0);
1076 tdsaAllShared->OutboundQueueInterruptDelay[i] = (
bit16)
osti_strtoul (buffer, &pLastUsedChar, 10);
1077 TI_DBG6((
"tdsaGetSwConfigParams: card number %s queue number %d interrupt delay %d\n", cardNum, i, tdsaAllShared->OutboundQueueInterruptDelay[i]));
1097 OBQueueInterruptCount,
1105 tdsaAllShared->OutboundQueueInterruptCount[i] = (
bit16)
osti_strtoul (buffer, &pLastUsedChar, 0);
1109 tdsaAllShared->OutboundQueueInterruptCount[i] = (
bit16)
osti_strtoul (buffer, &pLastUsedChar, 10);
1110 TI_DBG6((
"tdsaGetSwConfigParams: card number %s queue number %d interrupt count %d\n", cardNum, i, tdsaAllShared->OutboundQueueInterruptCount[i]));
1130 OBQueueInterruptEnable,
1138 tdsaAllShared->OutboundQueueInterruptEnable[i] = (
bit16)
osti_strtoul (buffer, &pLastUsedChar, 0);
1142 tdsaAllShared->OutboundQueueInterruptEnable[i] = (
bit16)
osti_strtoul (buffer, &pLastUsedChar, 10);
1143 TI_DBG6((
"tdsaGetSwConfigParams: card number %s queue number %d interrupt enable %d\n", cardNum, i, tdsaAllShared->OutboundQueueInterruptEnable[i]));
1427 tdsaAllShared->portTMO =
osti_strtoul (buffer, &pLastUsedChar, 0);
1431 tdsaAllShared->portTMO =
osti_strtoul (buffer, &pLastUsedChar, 10);
1436#ifdef SA_ENABLE_TRACE_FUNCTIONS
1455 SwConfig->TraceDestination =
osti_strtoul (buffer, &pLastUsedChar, 0);
1459 SwConfig->TraceDestination =
osti_strtoul (buffer, &pLastUsedChar, 10);
1461 TI_DBG2((
"tdsaGetSwConfigParams: SwConfig->TraceDestination %d\n",SwConfig->TraceDestination));
1482 SwConfig->TraceMask =
osti_strtoul (buffer, &pLastUsedChar, 0);
1486 SwConfig->TraceMask =
osti_strtoul (buffer, &pLastUsedChar, 10);
1488 TI_DBG2((
"tdsaGetSwConfigParams: SwConfig->TraceMask %d %X\n",SwConfig->TraceMask,SwConfig->TraceMask));
1498 tdsaAllShared->SASConnectTimeLimit = 0;
1515 tdsaAllShared->SASConnectTimeLimit =
osti_strtoul (buffer, &pLastUsedChar, 0);
1517 tdsaAllShared->SASConnectTimeLimit =
osti_strtoul (buffer, &pLastUsedChar, 10);
1525 tdsaAllShared->FCA = 1;
1543 tdsaAllShared->FCA =
osti_strtoul (buffer, &pLastUsedChar, 0);
1547 tdsaAllShared->FCA =
osti_strtoul (buffer, &pLastUsedChar, 10);
1556 tdsaAllShared->ResetInDiscovery = 0;
1574 tdsaAllShared->ResetInDiscovery =
osti_strtoul (buffer, &pLastUsedChar, 0);
1578 tdsaAllShared->ResetInDiscovery =
osti_strtoul (buffer, &pLastUsedChar, 10);
1587 tdsaAllShared->MCN = 1;
1605 tdsaAllShared->MCN =
osti_strtoul (buffer, &pLastUsedChar, 0);
1609 tdsaAllShared->MCN =
osti_strtoul (buffer, &pLastUsedChar, 10);
1611 TI_DBG6((
"tdsaGetSwConfigParams: MCN %d\n", tdsaAllShared->MCN));
1619 tdsaAllShared->sflag = 0;
1637 tdsaAllShared->sflag =
osti_strtoul (buffer, &pLastUsedChar, 0);
1641 tdsaAllShared->sflag =
osti_strtoul (buffer, &pLastUsedChar, 10);
1643 TI_DBG1((
"tdsaGetSwConfigParams: sflag %d\n", tdsaAllShared->sflag));
1673 TI_DBG6((
"tdsaGetSwConfigParams: enableDIF %d\n", enableDIF));
1682 TI_DBG6((
"tdsaGetSwConfigParams: SwConfig->enableDIF %d\n", SwConfig->
enableDIF));
1707 enableEncryption =
osti_strtoul (buffer, &pLastUsedChar, 0);
1711 enableEncryption =
osti_strtoul (buffer, &pLastUsedChar, 10);
1713 TI_DBG6((
"tdsaGetSwConfigParams: enableEncryption %d\n", enableEncryption));
1714 if (enableEncryption)
1729 tdsaAllShared->RateAdjust = 0;
1746 tdsaAllShared->RateAdjust =
osti_strtoul (buffer, &pLastUsedChar, 0);
1750 tdsaAllShared->RateAdjust =
osti_strtoul (buffer, &pLastUsedChar, 10);
1752 TI_DBG6((
"tdsaGetSwConfigParams: tdsaAllShared->RateAdjust %d\n", tdsaAllShared->RateAdjust));
1757#ifdef SA_CONFIG_MDFD_REGISTRY
1782 disableMDF =
osti_strtoul (buffer, &pLastUsedChar, 10);
1784 TI_DBG6((
"tdsaGetSwConfigParams: disableMDF %d\n", disableMDF));
1793 TI_DBG6((
"tdsaGetSwConfigParams: SwConfig->disableMDF %d\n", SwConfig->
disableMDF));
1818 tdsaAllShared->itNexusTimeout =
osti_strtoul (buffer, &pLastUsedChar, 0);
1822 tdsaAllShared->itNexusTimeout =
osti_strtoul (buffer, &pLastUsedChar, 10);
1824 TI_DBG1((
"tdsaGetSwConfigParams: tdsaAllShared->itNexusTimeout %d\n", tdsaAllShared->itNexusTimeout));
1848 tdsaAllShared->stp_idle_time =
osti_strtoul (buffer, &pLastUsedChar, 0);
1852 tdsaAllShared->stp_idle_time =
osti_strtoul (buffer, &pLastUsedChar, 10);
1854 TI_DBG2((
"tdsaGetSwConfigParams: STPIdleTime %d\n", tdsaAllShared->stp_idle_time));
1862 tdsaAllShared->STP_MCT_TMO = 32;
1879 tdsaAllShared->STP_MCT_TMO =
osti_strtoul (buffer, &pLastUsedChar, 0);
1883 tdsaAllShared->STP_MCT_TMO =
osti_strtoul (buffer, &pLastUsedChar, 10);
1885 TI_DBG2((
"tdsaGetSwConfigParams: STP_MCT_TMO %d\n", tdsaAllShared->STP_MCT_TMO));
1892 tdsaAllShared->SSP_MCT_TMO = 32;
1909 tdsaAllShared->SSP_MCT_TMO =
osti_strtoul (buffer, &pLastUsedChar, 0);
1913 tdsaAllShared->SSP_MCT_TMO =
osti_strtoul (buffer, &pLastUsedChar, 10);
1915 TI_DBG2((
"tdsaGetSwConfigParams: SSP_MCT_TMO %d\n", tdsaAllShared->SSP_MCT_TMO));
1923 tdsaAllShared->MAX_OPEN_TIME = 5;
1932 "SAS_MAX_OPEN_TIME",
1940 tdsaAllShared->MAX_OPEN_TIME =
osti_strtoul (buffer, &pLastUsedChar, 0);
1944 tdsaAllShared->MAX_OPEN_TIME =
osti_strtoul (buffer, &pLastUsedChar, 10);
1946 TI_DBG2((
"tdsaGetSwConfigParams: MAX_OPEN_TIME %d\n", tdsaAllShared->MAX_OPEN_TIME));
1954 tdsaAllShared->SMP_MAX_CONN_TIMER = 0xFF;
1963 "SAS_SMP_MAX_CONN_TIMER",
1971 tdsaAllShared->SMP_MAX_CONN_TIMER =
osti_strtoul (buffer, &pLastUsedChar, 0);
1975 tdsaAllShared->SMP_MAX_CONN_TIMER =
osti_strtoul (buffer, &pLastUsedChar, 10);
1977 TI_DBG2((
"tdsaGetSwConfigParams: SMP_MAX_CONN_TIMER %d\n", tdsaAllShared->SMP_MAX_CONN_TIMER));
1984 tdsaAllShared->STP_FRM_TMO = 0;
2001 tdsaAllShared->STP_FRM_TMO =
osti_strtoul (buffer, &pLastUsedChar, 0);
2005 tdsaAllShared->STP_FRM_TMO =
osti_strtoul (buffer, &pLastUsedChar, 10);
2007 TI_DBG2((
"tdsaGetSwConfigParams: STP_FRM_TMO %d\n", tdsaAllShared->STP_FRM_TMO));
2014 tdsaAllShared->MFD = 1;
2031 tdsaAllShared->MFD =
osti_strtoul (buffer, &pLastUsedChar, 0);
2035 tdsaAllShared->MFD =
osti_strtoul (buffer, &pLastUsedChar, 10);
2037 TI_DBG2((
"tdsaGetSwConfigParams: MFD %d\n", tdsaAllShared->MFD));
2044 tdsaAllShared->OPNRJT_RTRY_INTVL = 2;
2053 "SAS_OPNRJT_RTRY_INTVL",
2061 tdsaAllShared->OPNRJT_RTRY_INTVL =
osti_strtoul (buffer, &pLastUsedChar, 0);
2065 tdsaAllShared->OPNRJT_RTRY_INTVL =
osti_strtoul (buffer, &pLastUsedChar, 10);
2067 TI_DBG2((
"tdsaGetSwConfigParams: OPNRJT_RTRY_INTVL %d\n", tdsaAllShared->OPNRJT_RTRY_INTVL));
2074 tdsaAllShared->DOPNRJT_RTRY_TMO = 128;
2083 "SAS_DOPNRJT_RTRY_TMO",
2091 tdsaAllShared->DOPNRJT_RTRY_TMO =
osti_strtoul (buffer, &pLastUsedChar, 0);
2095 tdsaAllShared->DOPNRJT_RTRY_TMO =
osti_strtoul (buffer, &pLastUsedChar, 10);
2097 TI_DBG2((
"tdsaGetSwConfigParams: DOPNRJT_RTRY_TMO %d\n", tdsaAllShared->DOPNRJT_RTRY_TMO));
2105 tdsaAllShared->COPNRJT_RTRY_TMO = 128;
2114 "SAS_COPNRJT_RTRY_TMO",
2122 tdsaAllShared->COPNRJT_RTRY_TMO =
osti_strtoul (buffer, &pLastUsedChar, 0);
2126 tdsaAllShared->COPNRJT_RTRY_TMO =
osti_strtoul (buffer, &pLastUsedChar, 10);
2128 TI_DBG2((
"tdsaGetSwConfigParams: COPNRJT_RTRY_TMO %d\n", tdsaAllShared->COPNRJT_RTRY_TMO));
2140 tdsaAllShared->DOPNRJT_RTRY_THR = 23438;
2149 "SAS_DOPNRJT_RTRY_THR",
2157 tdsaAllShared->DOPNRJT_RTRY_THR =
osti_strtoul (buffer, &pLastUsedChar, 0);
2161 tdsaAllShared->DOPNRJT_RTRY_THR =
osti_strtoul (buffer, &pLastUsedChar, 10);
2163 TI_DBG2((
"tdsaGetSwConfigParams: DOPNRJT_RTRY_THR %d\n", tdsaAllShared->DOPNRJT_RTRY_THR));
2175 tdsaAllShared->COPNRJT_RTRY_THR = 23438;
2184 "SAS_COPNRJT_RTRY_THR",
2192 tdsaAllShared->COPNRJT_RTRY_THR =
osti_strtoul (buffer, &pLastUsedChar, 0);
2196 tdsaAllShared->COPNRJT_RTRY_THR =
osti_strtoul (buffer, &pLastUsedChar, 10);
2198 TI_DBG2((
"tdsaGetSwConfigParams: COPNRJT_RTRY_THR %d\n", tdsaAllShared->COPNRJT_RTRY_THR));
2205 tdsaAllShared->MAX_AIP = 0x200000;
2222 tdsaAllShared->MAX_AIP =
osti_strtoul (buffer, &pLastUsedChar, 0);
2226 tdsaAllShared->MAX_AIP =
osti_strtoul (buffer, &pLastUsedChar, 10);
2228 TI_DBG2((
"tdsaGetSwConfigParams: MAX_AIP %d\n", tdsaAllShared->MAX_AIP));
2247 bit32 MpiContextvalue = 0;
2268 MpiContextvalue =
osti_strtoul (buffer, &pLastUsedChar, 0);
2272 MpiContextvalue =
osti_strtoul (buffer, &pLastUsedChar, 10);
2276 if (MpiContextvalue == 0)
2384#ifdef SA_ENABLE_PCI_TRIGGER
2406 SwConfig->PCI_trigger =
osti_strtoul (buffer, &pLastUsedChar, 0);
2410 SwConfig->PCI_trigger =
osti_strtoul (buffer, &pLastUsedChar, 10);
2412 TI_DBG1((
"tdsaGetSwConfigParams: PciTrigger %d\n",SwConfig->PCI_trigger));
2417 TI_DBG6((
"tdsaGetSwConfigParams: $$$$$$$$$$$$$$$$$ merge $$$$$$$$$$$$$\n"));
2418#if defined(SALLSDK_DEBUG)
2419 TI_DBG2((
"tdsaGetSwConfigParams: SwConfig->sallDebugLevel %d\n", SwConfig->sallDebugLevel));
2422#ifdef SA_ENABLE_PCI_TRIGGER
2423 TI_DBG1((
"tdsaGetSwConfigParams: SwConfig->PCI_trigger 0x%x 0x%x\n",SwConfig->PCI_trigger, tdsaRoot->itdsaIni->
tdsaAllShared->
SwConfig.PCI_trigger));
2428 TI_DBG6((
"tdsaLoLevelGetResource: SASConnectTimeLimit 0x%x\n",
2429 tdsaAllShared->SASConnectTimeLimit));
2455 bit32 OpticalModeRead,
2464 TI_DBG3((
"tdsaParseLinkRateMode: index 0x%X\n",
index));
2465 TI_DBG3((
"tdsaParseLinkRateMode: LinkRateRead 0x%X LinkRate 0x%X\n",LinkRateRead,LinkRate));
2466 TI_DBG3((
"tdsaParseLinkRateMode: ModeRead 0x%X Mode 0x%X\n",ModeRead,Mode));
2467 TI_DBG3((
"tdsaParseLinkRateMode: OpticalModeRead 0x%X OpticalMode 0x%X\n",OpticalModeRead,OpticalMode));
2470 if (LinkRateRead ==
agTRUE)
2475 tdsaAllShared->Ports[
index].agPhyConfig.phyProperties = tdsaAllShared->Ports[
index].agPhyConfig.phyProperties | 0x1;
2479 tdsaAllShared->Ports[
index].agPhyConfig.phyProperties = tdsaAllShared->Ports[
index].agPhyConfig.phyProperties | 0x2;
2483 tdsaAllShared->Ports[
index].agPhyConfig.phyProperties = tdsaAllShared->Ports[
index].agPhyConfig.phyProperties | 0x4;
2487 tdsaAllShared->Ports[
index].agPhyConfig.phyProperties = tdsaAllShared->Ports[
index].agPhyConfig.phyProperties | 0x8;
2489 if (LinkRate == 0 || LinkRate > 0xF )
2492 tdsaAllShared->Ports[
index].agPhyConfig.phyProperties = 0;
2493 tdsaAllShared->Ports[
index].agPhyConfig.phyProperties = tdsaAllShared->Ports[
index].agPhyConfig.phyProperties | 0x1;
2494 TI_DBG1((
"tdsaParseLinkRateMode: LinkRate == 0 || LinkRate >= 0x%x\n",tdsaAllShared->Ports[
index].agPhyConfig.phyProperties));
2496 TI_DBG2((
"tdsaParseLinkRateMode:A index 0x%x LinkRate 0x%x Mode 0x%x\n",
index,LinkRate,Mode));
2505 tdsaAllShared->Ports[
index].agPhyConfig.phyProperties = tdsaAllShared->Ports[
index].agPhyConfig.phyProperties | 0x10;
2509 tdsaAllShared->Ports[
index].agPhyConfig.phyProperties = tdsaAllShared->Ports[
index].agPhyConfig.phyProperties | 0x20;
2511 if (Mode == 0 || Mode >= 4 )
2514 tdsaAllShared->Ports[
index].agPhyConfig.phyProperties = tdsaAllShared->Ports[
index].agPhyConfig.phyProperties & 0xf;
2515 tdsaAllShared->Ports[
index].agPhyConfig.phyProperties = tdsaAllShared->Ports[
index].agPhyConfig.phyProperties | 0x30;
2517 TI_DBG2((
"tdsaParseLinkRateMode:1 index 0x%x Mode 0x%x\n",
index,tdsaAllShared->Ports[
index].agPhyConfig.phyProperties));
2520 if ( OpticalModeRead ==
agTRUE)
2523 agsaRoot_t *agRoot = &tdsaAllShared->agRootInt;
2525 if (OpticalMode == 0)
2527 TI_DBG1((
"tdsaParseLinkRateMode: OpticalMode 0 phy %d phyProperties 0x%x\n",
index,tdsaAllShared->Ports[
index].agPhyConfig.phyProperties));
2529 else if(OpticalMode == 1)
2533 TI_DBG1((
"tdsaParseLinkRateMode: OpticalMode 1 phy %d phyProperties 0x%x\n",
index,tdsaAllShared->Ports[
index].agPhyConfig.phyProperties));
2534 tdsaAllShared->Ports[
index].agPhyConfig.phyProperties = tdsaAllShared->Ports[
index].agPhyConfig.phyProperties | (1 << 22);
2538 tdsaAllShared->Ports[
index].agPhyConfig.phyProperties = tdsaAllShared->Ports[
index].agPhyConfig.phyProperties | (1 << 22);
2539 tdsaAllShared->Ports[
index].agPhyConfig.phyProperties &= 0xFFFFFFF0;
2540 tdsaAllShared->Ports[
index].agPhyConfig.phyProperties |= 0x4;
2543 else if(OpticalMode == 2 )
2547 TI_DBG1((
"tdsaParseLinkRateMode: OpticalMode 2 phy %d phyProperties 0x%x\n",
index,tdsaAllShared->Ports[
index].agPhyConfig.phyProperties));
2548 tdsaAllShared->Ports[
index].agPhyConfig.phyProperties = tdsaAllShared->Ports[
index].agPhyConfig.phyProperties | (1 << 20);
2555 TI_DBG1((
"tdsaParseLinkRateMode: OpticalMode %d phy %d phyProperties 0x%x\n",OpticalMode,
index,tdsaAllShared->Ports[
index].agPhyConfig.phyProperties));
2559 TI_DBG1((
"tdsaParseLinkRateMode: OpticalMode unknown %d phy %d phyProperties 0x%x\n",OpticalMode,
index,tdsaAllShared->Ports[
index].agPhyConfig.phyProperties));
2564 TI_DBG1((
"tdsaParseLinkRateMode: OpticalMode off phy %d phyProperties 0x%x\n",
index,tdsaAllShared->Ports[
index].agPhyConfig.phyProperties));
2567 TI_DBG1((
"tdsaParseLinkRateMode: phy %d phyProperties 0x%x\n",
index,tdsaAllShared->Ports[
index].agPhyConfig.phyProperties));
2598 char *pLastUsedChar =
agNULL;
2600 char globalStr[] =
"Global";
2601 char HwParmsStr[] =
"HWParms";
2606 TI_DBG6((
"tdsaGetHwConfigParams: start\n"));
2607 TI_DBG6((
"tdsaGetHwConfigParams: tdsaRoot %p tdsaAllShared %p \n",tdsaRoot, tdsaAllShared));
2610 buffLen =
sizeof(tmpBuffer);
2628 tdsaAllShared->phyCalibration = 0;
2703 "IntReassertionOpt",
2767 tdsaAllShared->FWMaxPorts =
osti_strtoul (buffer, &pLastUsedChar, 0);
2771 tdsaAllShared->FWMaxPorts =
osti_strtoul (buffer, &pLastUsedChar, 10);
2794 tdsaAllShared->phyCalibration =
osti_strtoul (buffer, &pLastUsedChar, 0);
2798 tdsaAllShared->phyCalibration =
osti_strtoul (buffer, &pLastUsedChar, 10);
2812 TI_DBG6((
"tdsaGetHwConfigParams: phyReg %s\n", phyReg));
3129 agsaRoot_t *agRoot = &tdsaAllShared->agRootInt;
3133 char *pLastUsedChar =
agNULL;
3135 char *globalStr = tdsaAllShared->CardIDString;
3136 char phyParmsStr[12];
3138 bit32 LinkRate = 15, Mode = 3, OpticalMode = 0;
3142 TI_DBG6((
"tdsaGetCardPhyParams: start \n"));
3143 TI_DBG6((
"tdsaGetCardPhyParams: tdsaRoot %p tdsaAllShared %p \n", tdsaRoot,tdsaAllShared));
3147 TI_DBG6((
"tdsaGetCardPhyParams: SPCv or SPCve \n"));
3150 TI_DBG6((
"tdsaGetCardPhyParams: flag %d\n", flag));
3157 OSSA_WRITE_BE_32(agRoot, tdsaAllShared->Ports[i].SASID.sasAddressHi, 0, 0x01020304);
3158 OSSA_WRITE_BE_32(agRoot, tdsaAllShared->Ports[i].SASID.sasAddressLo, 0, 0x05060708);
3160 tdsaAllShared->Ports[i].agPhyConfig.phyProperties = 0x31;
3163#ifdef INITIATOR_DRIVER
3168 OSSA_WRITE_BE_32(agRoot, tdsaAllShared->Ports[i].SASID.sasAddressHi, 0, 0x01020304);
3169 OSSA_WRITE_BE_32(agRoot, tdsaAllShared->Ports[i].SASID.sasAddressLo, 0, 0x05060708);
3171 tdsaAllShared->Ports[i].agPhyConfig.phyProperties = 0x37;
3181 OSSA_WRITE_BE_32(agRoot, tdsaAllShared->Ports[i].SASID.sasAddressHi, 0, 0x01020304);
3182 OSSA_WRITE_BE_32(agRoot, tdsaAllShared->Ports[i].SASID.sasAddressLo, 0, 0x05050500+i);
3184 tdsaAllShared->Ports[i].agPhyConfig.phyProperties = 0x37;
3194 buffLen =
sizeof(tmpBuffer);
3217 TI_DBG6((
"tdsaGetCardPhyParams: i %d PhyParms %s\n", i, phyParmsStr));
3219 TI_DBG2((
"tdsaGetCardPhyParams: phy %d phyProperties %d\n", i, tdsaAllShared->Ports[i].agPhyConfig.phyProperties));
3238 OSSA_WRITE_BE_32(agRoot, tdsaAllShared->Ports[i].SASID.sasAddressHi, 0,
osti_strtoul(buffer, &pLastUsedChar, 0));
3243 OSSA_WRITE_BE_32(agRoot, tdsaAllShared->Ports[i].SASID.sasAddressHi, 0,
osti_strtoul(buffer, &pLastUsedChar, 10));
3268 OSSA_WRITE_BE_32(agRoot, tdsaAllShared->Ports[i].SASID.sasAddressLo, 0,
osti_strtoul(buffer, &pLastUsedChar, 0));
3273 OSSA_WRITE_BE_32(agRoot, tdsaAllShared->Ports[i].SASID.sasAddressLo, 0,
osti_strtoul(buffer, &pLastUsedChar, 10));
3334 TI_DBG6((
"tdsaGetCardPhyParams: phy %d Mode 0x%x \n", i, Mode));
3339 TI_DBG6((
"tdsaGetCardPhyParams: phy %d Mode %d \n", i, Mode));
3360 OpticalModeRead =
agTRUE;
3364 TI_DBG6((
"tdsaGetCardPhyParams: phy %d OpticalMode 0x%x \n", i, OpticalMode));
3368 OpticalMode =
osti_strtoul(buffer, &pLastUsedChar, 10);
3369 TI_DBG6((
"tdsaGetCardPhyParams: phy %d OpticalMode %d \n", i, OpticalMode));
3375 TI_DBG2((
"tdsaGetCardPhyParams: phy %d phyProperties %d\n", i, tdsaAllShared->Ports[i].agPhyConfig.phyProperties));
3413 agsaRoot_t *agRoot = &tdsaAllShared->agRootInt;
3417 char *pLastUsedChar =
agNULL;
3419 char globalStr[] =
"Global";
3420 char phyParmsStr[12];
3422 bit32 LinkRate = 15, Mode = 3, OpticalMode = 0;
3426 TI_DBG6((
"tdsaGetGlobalPhyParams: start \n"));
3427 TI_DBG6((
"tdsaGetGlobalPhyParams: tdsaRoot %p tdsaAllShared %p \n", tdsaRoot,tdsaAllShared));
3431 TI_DBG6((
"tdsaGetGlobalPhyParams: SPCv or SPCve \n"));
3435 TI_DBG6((
"tdsaGetGlobalPhyParams: flag %d\n", flag));
3441 OSSA_WRITE_BE_32(agRoot, tdsaAllShared->Ports[i].SASID.sasAddressHi, 0, 0x01020304);
3442 OSSA_WRITE_BE_32(agRoot, tdsaAllShared->Ports[i].SASID.sasAddressLo, 0, 0x05060708);
3444 tdsaAllShared->Ports[i].agPhyConfig.phyProperties = 0x31;
3448#ifdef INITIATOR_DRIVER
3454 if (0 <= i && i <= 7)
3456 OSSA_WRITE_BE_32(agRoot, tdsaAllShared->Ports[i].SASID.sasAddressHi, 0, 0x01020304);
3457 OSSA_WRITE_BE_32(agRoot, tdsaAllShared->Ports[i].SASID.sasAddressLo, 0, 0x05060708);
3461 OSSA_WRITE_BE_32(agRoot, tdsaAllShared->Ports[i].SASID.sasAddressHi, 0, 0x01010101);
3462 OSSA_WRITE_BE_32(agRoot, tdsaAllShared->Ports[i].SASID.sasAddressLo, 0, 0x02020202);
3467 if (0 <= i && i <= 3)
3469 OSSA_WRITE_BE_32(agRoot, tdsaAllShared->Ports[i].SASID.sasAddressHi, 0, 0x01020304);
3470 OSSA_WRITE_BE_32(agRoot, tdsaAllShared->Ports[i].SASID.sasAddressLo, 0, 0x05060708);
3472 else if (4 <= i && i <= 7)
3474 OSSA_WRITE_BE_32(agRoot, tdsaAllShared->Ports[i].SASID.sasAddressHi, 0, 0x01020304);
3475 OSSA_WRITE_BE_32(agRoot, tdsaAllShared->Ports[i].SASID.sasAddressLo, 0, 0x02020202);
3479 OSSA_WRITE_BE_32(agRoot, tdsaAllShared->Ports[i].SASID.sasAddressHi, 0, 0x01010101);
3480 OSSA_WRITE_BE_32(agRoot, tdsaAllShared->Ports[i].SASID.sasAddressLo, 0, 0x0f0f0f0f);
3485 tdsaAllShared->Ports[i].agPhyConfig.phyProperties = 0x31;
3500 if (0 <= i && i <= 7)
3502 OSSA_WRITE_BE_32(agRoot, tdsaAllShared->Ports[i].SASID.sasAddressHi, 0, 0x01020304);
3503 OSSA_WRITE_BE_32(agRoot, tdsaAllShared->Ports[i].SASID.sasAddressLo, 0, 0x05050500+i);
3507 OSSA_WRITE_BE_32(agRoot, tdsaAllShared->Ports[i].SASID.sasAddressHi, 0, 0x01020304);
3508 OSSA_WRITE_BE_32(agRoot, tdsaAllShared->Ports[i].SASID.sasAddressLo, 0, 0x06060600+i);
3513 if (0 <= i && i <= 7)
3515 OSSA_WRITE_BE_32(agRoot, tdsaAllShared->Ports[i].SASID.sasAddressHi, 0, 0x01020304);
3516 OSSA_WRITE_BE_32(agRoot, tdsaAllShared->Ports[i].SASID.sasAddressLo, 0, 0x05050500+i);
3520 OSSA_WRITE_BE_32(agRoot, tdsaAllShared->Ports[i].SASID.sasAddressHi, 0, 0x01020304);
3521 OSSA_WRITE_BE_32(agRoot, tdsaAllShared->Ports[i].SASID.sasAddressLo, 0, 0x06060600+i);
3526 if (0 <= i && i <= 3)
3528 OSSA_WRITE_BE_32(agRoot, tdsaAllShared->Ports[i].SASID.sasAddressHi, 0, 0x01020304);
3529 OSSA_WRITE_BE_32(agRoot, tdsaAllShared->Ports[i].SASID.sasAddressLo, 0, 0x05050500+i);
3531 else if (4 <= i && i <= 7)
3533 OSSA_WRITE_BE_32(agRoot, tdsaAllShared->Ports[i].SASID.sasAddressHi, 0, 0x01020304);
3534 OSSA_WRITE_BE_32(agRoot, tdsaAllShared->Ports[i].SASID.sasAddressLo, 0, 0x06060600+i);
3538 OSSA_WRITE_BE_32(agRoot, tdsaAllShared->Ports[i].SASID.sasAddressHi, 0, 0x01020304);
3539 OSSA_WRITE_BE_32(agRoot, tdsaAllShared->Ports[i].SASID.sasAddressLo, 0, 0x0f0f0f0f+i);
3543 tdsaAllShared->Ports[i].agPhyConfig.phyProperties = 0x31;
3552 buffLen =
sizeof(tmpBuffer);
3576 TI_DBG6((
"tdsaGetGlobalPhyParams: i %d PhyParms %s\n", i, phyParmsStr));
3595 OSSA_WRITE_BE_32(agRoot, tdsaAllShared->Ports[i].SASID.sasAddressHi, 0,
osti_strtoul(buffer, &pLastUsedChar, 0));
3600 OSSA_WRITE_BE_32(agRoot, tdsaAllShared->Ports[i].SASID.sasAddressHi, 0,
osti_strtoul(buffer, &pLastUsedChar, 10));
3626 OSSA_WRITE_BE_32(agRoot, tdsaAllShared->Ports[i].SASID.sasAddressLo, 0,
osti_strtoul(buffer, &pLastUsedChar, 0));
3631 OSSA_WRITE_BE_32(agRoot, tdsaAllShared->Ports[i].SASID.sasAddressLo, 0,
osti_strtoul(buffer, &pLastUsedChar, 10));
3691 TI_DBG2((
"tdsaGetGlobalPhyParams: phy %d Mode 0x%x \n", i, Mode));
3696 TI_DBG2((
"tdsaGetGlobalPhyParams: phy %d Mode %d \n", i, Mode));
3717 OpticalModeRead =
agTRUE;
3721 TI_DBG2((
"tdsaGetGlobalPhyParams: phy %d OpticalMode 0x%x \n", i, OpticalMode));
3725 OpticalMode =
osti_strtoul(buffer, &pLastUsedChar, 10);
3726 TI_DBG2((
"tdsaGetGlobalPhyParams: phy %d OpticalMode %d \n", i, OpticalMode));
3730 TI_DBG2((
"tdsaGetGlobalPhyParams:A phy %d phyProperties %d\n", i, tdsaAllShared->Ports[i].agPhyConfig.phyProperties));
3733 TI_DBG2((
"tdsaGetGlobalPhyParams:B phy %d phyProperties %d\n", i, tdsaAllShared->Ports[i].agPhyConfig.phyProperties));
3779 char *pLastUsedChar =
agNULL;
3781 char globalStr[] =
"Global";
3782 char portParmsStr[] =
"PortParms";
3784 TI_DBG6((
"tdsaGetPortParams: start \n"));
3785 TI_DBG6((
"tdsaGetPortParams: tdsaRoot %p tdsaAllShared %p \n", tdsaRoot,tdsaAllShared));
3788 buffLen =
sizeof(tmpBuffer);
3807 tdsaAllShared->currentInterruptDelay =
osti_strtoul (buffer, &pLastUsedChar, 0);
3811 tdsaAllShared->currentInterruptDelay =
osti_strtoul (buffer, &pLastUsedChar, 10);
3813 TI_DBG6((
"tdsaGetPortParams: in \n"));
3818 TI_DBG6((
"tdsaGetPortParams: out \n"));
3826#ifdef FW_EVT_LOG_TST
3829 U32 **eventLogAddress);
3876#ifdef CONTROLLER_STATUS_TESTING
3880#ifdef CONTROLLER_INFO_TESTING
3884#ifdef CONTROLLER_ENCRYPT_TESTING
3891 static bit8 payload[56];
3894#if defined(FDS_DM) || defined(FDS_SM)
3896 bit32 maxQueueSets = 0;
3897 bit32 LLMemCount = 0;
3898 bit32 usecsPerTick = 0;
3908 bit32 DMMemCount = 0;
3911#if defined(FDS_DM) && defined(FDS_SM)
3912 bit32 dmUsecsPerTick = 0;
3913 bit32 dmMaxNumLocks = 0;
3920 bit32 SMMemCount = 0;
3927 TI_DBG3((
"tiCOMPortInit: start\n"));
3939 TI_DBG1((
"tiCOMPortInit: resetinProgress error\n"));
3956#ifdef CONTROLLER_STATUS_TESTING
3960#ifdef CONTROLLER_INFO_TESTING
3964#ifdef CONTROLLER_ENCRYPT_TESTING
4003 TI_DBG1((
"tiCOMPortInit: incorrect interrupt\n"));
4069#if defined(FDS_DM) && defined(FDS_SM)
4081 TI_DBG1((
"tiCOMPortInit: usecsPerTick %d\n", usecsPerTick));
4083 TI_DBG1((
"tiCOMPortInit: LL memRequirement.count %d\n", memRequirement.
count));
4085 LLMemCount = memRequirement.
count;
4098 TI_DBG1((
"tiCOMPortInit: DM dmmemRequirement.count %d\n", dmMemRequirement.
count));
4101 DMMemCount = dmMemRequirement.
count;
4103 agMemoryRequirement.
count = LLMemCount;
4105 TI_DBG1((
"tiCOMPortInit: SMMemCount %d\n", SMMemCount));
4108#elif defined(FDS_DM)
4121 TI_DBG1((
"tiCOMPortInit: memRequirement.count %d\n", memRequirement.
count));
4124 LLMemCount = memRequirement.
count;
4127 agMemoryRequirement.
count = LLMemCount;
4129#elif defined(FDS_SM)
4139 TI_DBG1((
"tiCOMPortInit: memRequirement.count %d\n", memRequirement.
count));
4142 LLMemCount = memRequirement.
count;
4145 agMemoryRequirement.
count = LLMemCount;
4153#if defined(FDS_DM) && defined(FDS_SM)
4155 for(i=0;i<(int)(LLMemCount + DMMemCount + SMMemCount);i++)
4178 for(i=0;i<(int)agMemoryRequirement.
count;i++)
4180 TI_DBG2((
"tiCOMPortInit: LL copying loResource.loLevelMem to agsaMemoryRequirement_t index %d\n", i));
4205 TI_DBG2((
"tiCOMPortInit: index %d phyAddrUpper 0x%x phyAddrLower 0x%x totalLength %d numElements %d\n", i,
4210 TI_DBG2((
"tiCOMPortInit: index %d singleElementLength 0x%x alignment 0x%x type %d reserved %d\n", i,
4225 TI_DBG1((
"tiCOMPortInit: tdsaAllShared->tdSubVendorId= SUB_VEN_ID %x\n",tdsaAllShared->
tdSubVendorId));
4227 TI_DBG1((
"tiCOMPortInit: swConfig->param1 hwDEVICE_ID_VENDID %x\n", tdsaAllShared->
SwConfig.
param1 ));
4243 TI_DBG1((
"tiCOMPortInit: SPC HDA\n"));
4256 TI_DBG1((
"tiCOMPortInit: SPCv HDA\n"));
4267 TI_DBG1((
"tiCOMPortInit: SPCv12G HDA\n"));
4286 TI_DBG1((
"tiCOMPortInit: HDA off\n"));
4297 TI_DBG1((
"tiCOMPortInit:only for SPC FWConfig set\n"));
4307 &agMemoryRequirement,
4320 TI_DBG1((
"tiCOMPortInit: saInitialize AGSA_RC_FAILURE, status 0x%x\n",
status));
4326 TI_DBG1((
"tiCOMPortInit: saInitialize AGSA_RC_VERSION_INCOMPATIBLE, status 0x%x\n",
status));
4340#ifdef INITIATOR_DRIVER
4342 TI_DBG6((
"tiCOMPortInit: calling saRegisterEventCallback for device registration\n"));
4346 TI_DBG6((
"tiCOMPortInit: saRegisterEventCallback Device Register failed\n"));
4350 TI_DBG6((
"tiCOMPortInit: saRegisterEventCallback Device Register succeeded\n"));
4355 TI_DBG6((
"tiCOMPortInit: calling saRegisterEventCallback for device de-registration\n"));
4359 TI_DBG6((
"tiCOMPortInit: saRegisterEventCallback Device Deregister failed\n"));
4363 TI_DBG6((
"tiCOMPortInit: saRegisterEventCallback Device Deregister succeeded\n"));
4372 payload[55] = gEcho;
4373 TI_DBG2((
"tiCOMPortInit: calling saEchoCommand gEcho %d\n", gEcho));
4378#ifdef CONTROLLER_STATUS_TESTING
4382#ifdef CONTROLLER_INFO_TESTING
4386#ifdef CONTROLLER_ENCRYPT_TESTING
4396#if defined(FDS_DM) && defined(FDS_SM)
4399 dmRoot = &(tdsaAllShared->dmRoot);
4402 dmMemRequirement.
count = DMMemCount;
4404 for(i=LLMemCount;i<(int)(LLMemCount + DMMemCount);i++)
4406 TI_DBG2((
"tiCOMPortInit: DM copying loResource.loLevelMem to agsaMemoryRequirement_t index %d\n", i));
4418 TI_DBG2((
"tiCOMPortInit: index %d phyAddrUpper 0x%x phyAddrLower 0x%x totalLength %d numElements %d\n", i,
4423 TI_DBG2((
"tiCOMPortInit: index %d singleElementLength 0x%x alignment 0x%x type %d reserved %d\n", i,
4434 &(tdsaAllShared->dmSwConfig),
4439 TI_DBG1((
"tiCOMPortInit: dmInitialize FAILED, status 0x%x\n",
status));
4444 smRoot = &(tdsaAllShared->smRoot);
4447 smMemRequirement.
count = SMMemCount;
4449 for(i=(LLMemCount + DMMemCount);i<(int)(LLMemCount + DMMemCount + SMMemCount);i++)
4451 TI_DBG1((
"tiCOMPortInit: SM copying loResource.loLevelMem to agsaMemoryRequirement_t index %d\n", i));
4463 TI_DBG2((
"tiCOMPortInit: index %d phyAddrUpper 0x%x phyAddrLower 0x%x totalLength %d numElements %d\n", i,
4468 TI_DBG2((
"tiCOMPortInit: index %d singleElementLength 0x%x alignment 0x%x type %d reserved %d\n", i,
4479 &(tdsaAllShared->smSwConfig),
4484 TI_DBG1((
"tiCOMPortInit: smInitialize FAILED, status 0x%x\n",
status));
4488#elif defined(FDS_DM)
4489 dmRoot = &(tdsaAllShared->dmRoot);
4492 dmMemRequirement.
count = DMMemCount;
4494 for(i=LLMemCount;i<(int)(LLMemCount + DMMemCount);i++)
4496 TI_DBG6((
"tiCOMPortInit: copying loResource.loLevelMem to agsaMemoryRequirement_t index %d\n", i));
4515 &(tdsaAllShared->dmSwConfig),
4520 TI_DBG1((
"tiCOMPortInit: dmInitialize FAILED, status 0x%x\n",
status));
4524#elif defined(FDS_SM)
4525 smRoot = &(tdsaAllShared->smRoot);
4528 smMemRequirement.
count = SMMemCount;
4530 for(i=LLMemCount;i<(int)(LLMemCount + SMMemCount);i++)
4532 TI_DBG6((
"tiCOMPortInit: copying loResource.loLevelMem to agsaMemoryRequirement_t index %d\n", i));
4551 &(tdsaAllShared->smSwConfig),
4556 TI_DBG1((
"tiCOMPortInit: smInitialize FAILED, status 0x%x\n",
status));
4564#ifdef CONTROLLER_STATUS_TESTING
4568#ifdef CONTROLLER_INFO_TESTING
4572#ifdef CONTROLLER_ENCRYPT_TESTING
4579 TI_DBG2((
"tiCOMPortInit: Successfully sent request to enable SGPIO\n"));
4583 TI_DBG1((
"tiCOMPortInit: Failed to enable SGPIO\n"));
4614 static bit32 buffer[128] = {0};
4654 if(pSgpioResponse->functionResult != 0x00)
4723 regCount = phyCount / 4;
4724 for(i = 0; i < regCount; i++)
4730 writeData[i] = 0xA0A0A0A0;
4774 agsaRoot_t *agRoot = &tdsaAllShared->agRootInt;
4780 TI_DBG3((
"tiCOMPortStart: start portID %d\n", portID));
4785 if (tdsaAllShared->flags.resetInProgress ==
agTRUE)
4787 TI_DBG1((
"tiCOMPortStart: reset error\n"));
4795 if (tdsaAllShared->Ports[portID].flags.portInitialized ==
agFALSE)
4797 TI_DBG1((
"tiCOMPortStart: not intialized error\n"));
4804 if (tdsaAllShared->Ports[portID].flags.portStarted ==
agTRUE)
4806 TI_DBG3 ((
"tiCOMPortStart : Cannot start port again: Port has already been started\n"));
4811 (
void *) tdsaAllShared->Ports[portID].tiPortalContext
4817 portalContext->
tdData = &(tdsaAllShared->Ports[portID]);
4818 TI_DBG4 ((
"tiCOMPortStart : saving portalconext portID %d tdsaAllShared %p\n", portID, tdsaAllShared));
4820 tdsaAllShared->Ports[portID].tiPortalContext = portalContext;
4821 TI_DBG4((
"tiCOMPortStart : portID/phyID %d tiPortalContext %p\n", portID, tdsaAllShared->Ports[portID].tiPortalContext));
4827 if (tdsaAllShared->Ports[portID].flags.portStarted ==
agTRUE)
4829 TI_DBG1((
"tiCOMPortStart: port already has been started \n"));
4837#ifdef INITIATOR_DRIVER
4839 tdsaAllShared->Ports[portID].SASID.target_ssp_stp_smp = 0;
4840 tdsaAllShared->Ports[portID].SASID.initiator_ssp_stp_smp
4844 tdsaAllShared->Ports[portID].SASID.phyIdentifier = (
bit8)portID;
4851 tdsaAllShared->Ports[portID].SASID.initiator_ssp_stp_smp = 0;
4853 tdsaAllShared->Ports[portID].SASID.phyIdentifier = (
bit8)portID;
4857#if defined (INITIATOR_DRIVER) && defined (TARGET_DRIVER)
4861 tdsaAllShared->Ports[portID].SASID.initiator_ssp_stp_smp
4865 tdsaAllShared->Ports[portID].SASID.phyIdentifier = (
bit8)portID;
4870 TI_DBG6((
"tiCOMPortStart: before pid %d\n", portID));
4873 TI_DBG6((
"tiCOMPortStart: sysIntsActive %s\n",
4874 (tdsaAllShared->flags.sysIntsActive ==
agTRUE) ?
"agTRUE" :
"agFALSE"));
4879 if ( tdsaAllShared->first_process ==
agFALSE)
4883 tdsaAllShared->first_process =
agTRUE;
4886 TI_DBG6((
"tiCOMPortStart: after pid %d\n", portID));
4892 if (tdsaAllShared->phyCalibration)
4895 tdsaAllShared->Ports[portID].agPhyConfig.phyProperties =
4896 (tdsaAllShared->Ports[portID].agPhyConfig.phyProperties) | 0x80;
4900 tdsaAllShared->Ports[portID].agPhyConfig.phyProperties =
4901 (tdsaAllShared->Ports[portID].agPhyConfig.phyProperties) | (portID << 8);
4903 TI_DBG2((
"tiCOMPortStart: tdsaAllShared->Ports[0x%x].agPhyConfig.phyProperties 0x%x\n",
4904 portID, tdsaAllShared->Ports[portID].agPhyConfig.phyProperties));
4909 tdsaAllShared->Ports[portID].agPhyConfig.phyProperties = tdsaAllShared->Ports[portID].agPhyConfig.phyProperties | 0x40000;
4910 TI_DBG1((
"tiCOMPortStart:gSSC_Disable tdsaAllShared->Ports[portID].agPhyConfig.phyProperties 0x%x\n", tdsaAllShared->Ports[portID].agPhyConfig.phyProperties));
4919 SASConfigPage.
MST_MSI = 3 << 15;
4920 SASConfigPage.
STP_SSP_MCT_TMO = (tdsaAllShared->STP_MCT_TMO << 16) | tdsaAllShared->SSP_MCT_TMO;
4921 SASConfigPage.
STP_FRM_TMO = (tdsaAllShared->MAX_OPEN_TIME << 24) | (tdsaAllShared->SMP_MAX_CONN_TIMER << 16) | tdsaAllShared->STP_FRM_TMO;
4922 SASConfigPage.
STP_IDLE_TMO = tdsaAllShared->stp_idle_time;
4927 SASConfigPage.
OPNRJT_RTRY_INTVL = (tdsaAllShared->MFD << 16) | tdsaAllShared->OPNRJT_RTRY_INTVL;
4928 SASConfigPage.
Data_Cmd_OPNRJT_RTRY_TMO = (tdsaAllShared->DOPNRJT_RTRY_TMO << 16) | tdsaAllShared->COPNRJT_RTRY_TMO;
4929 SASConfigPage.
Data_Cmd_OPNRJT_RTRY_THR = (tdsaAllShared->DOPNRJT_RTRY_THR << 16) | tdsaAllShared->COPNRJT_RTRY_THR;
4930 SASConfigPage.
MAX_AIP = tdsaAllShared->MAX_AIP;
4932 TI_DBG1((
"tiCOMPortStart: saSetControllerConfig SASConfigPage.pageCode 0x%08x\n",SASConfigPage.
pageCode));
4933 TI_DBG1((
"tiCOMPortStart: saSetControllerConfig SASConfigPage.MST_MSI 0x%08x\n",SASConfigPage.
MST_MSI));
4934 TI_DBG1((
"tiCOMPortStart: saSetControllerConfig SASConfigPage.STP_SSP_MCT_TMO 0x%08x\n",SASConfigPage.
STP_SSP_MCT_TMO));
4935 TI_DBG1((
"tiCOMPortStart: saSetControllerConfig SASConfigPage.STP_FRM_TMO 0x%08x\n",SASConfigPage.
STP_FRM_TMO));
4936 TI_DBG1((
"tiCOMPortStart: saSetControllerConfig SASConfigPage.STP_IDLE_TMO 0x%08x\n",SASConfigPage.
STP_IDLE_TMO));
4937 TI_DBG1((
"tiCOMPortStart: saSetControllerConfig SASConfigPage.OPNRJT_RTRY_INTVL 0x%08x\n",SASConfigPage.
OPNRJT_RTRY_INTVL));
4940 TI_DBG1((
"tiCOMPortStart: saSetControllerConfig SASConfigPage.MAX_AIP 0x%08x\n",SASConfigPage.
MAX_AIP));
4950 TI_DBG1((
"tiCOMPortStart: calling saSetControllerConfig() failed\n"));
4954 TI_DBG2((
"tiCOMPortStart: calling saSetControllerConfig() is OK\n"));
4956 IsSendSASConfigPage =
agTRUE;
4960 TI_DBG1((
"tiCOMPortStart: saSetControllerConfig not called tIsSPCV12or6G %d IsSendSASConfigPage %d\n",
tIsSPCV12or6G(agRoot),IsSendSASConfigPage));
4968 &(tdsaAllShared->Ports[portID].agPhyConfig),
4969 &(tdsaAllShared->Ports[portID].SASID)
4972 TI_DBG6((
"tiCOMPortStart: saPhyStart status %d\n",
status));
4976 TI_DBG3((
"tiCOMPortStart : calling portstarted\n"));
4981 (
void *) tdsaAllShared->Ports[portID].tiPortalContext
4987 TI_DBG3((
"tiCOMPortStart : cant' start port\n"));
5022#ifdef CONTROLLER_STATUS_TESTING
5027 TI_DBG3((
"tiCOMPortStop: start\n"));
5036 agRoot = &(tdsaAllShared->agRootNonInt);
5038#ifdef CONTROLLER_STATUS_TESTING
5042 if (
TDLIST_EMPTY(&(tdsaAllShared->MainPortContextList)))
5044 TI_DBG1((
"tiCOMPortStop: empty tdsaPortContext\n"));
5049 PortContextList = tdsaAllShared->MainPortContextList.
flink;
5050 while (PortContextList != &(tdsaAllShared->MainPortContextList))
5053 if (onePortContext ==
agNULL)
5055 TI_DBG1((
"tiCOMPortStop: onePortContext is NULL!!!\n"));
5060 TI_DBG6((
"tiCOMPortStop: found; oneportContext ID %d\n", onePortContext->
id));
5064 PortContextList = PortContextList->
flink;
5069 TI_DBG1((
"tiCOMPortStop: No corressponding tdsaPortContext\n"));
5073#ifdef INITIATOR_DRIVER
5079 onePortContext->
Count = 0;
5085 tdsaAllShared->Ports[i].portContext =
agNULL;
5086#ifdef CCFLAGS_PHYCONTROL_COUNTS
5096 TI_DBG1((
"\ntiCOMPortStop: CCFLAGS_PHYCONTROL_COUNTS PHY %d\n",i));
5103 TI_DBG1((
"tiCOMPortStop: CCFLAGS_PHYCONTROL_COUNTS PHY %d\n",i));
5147 static bit8 localname[68], remotename[68];
5149 TI_DBG6((
"tiCOMGetPortInfo: start\n"));
5153 if (
TDLIST_EMPTY(&(tdsaAllShared->MainPortContextList)))
5156 TI_DBG1((
"tiCOMGetPortInfo: No tdsaPortContext\n"));
5165 PortContextList = tdsaAllShared->MainPortContextList.
flink;
5166 while (PortContextList != &(tdsaAllShared->MainPortContextList))
5169 TI_DBG3((
"tiCOMGetPortInfo: oneportContext pid %d\n", onePortContext->
id));
5172 TI_DBG3((
"tiCOMGetPortInfo: found; oneportContext pid %d\n", onePortContext->
id));
5176 PortContextList = PortContextList->
flink;
5181 TI_DBG1((
"tiCOMGetPortInfo: First, No corresponding tdsaPortContext\n"));
5185 if (onePortContext ==
agNULL)
5187 TI_DBG1((
"tiCOMGetPortInfo: Second, No corressponding tdsaPortContext\n"));
5260 TD_ASSERT(tdsaAllShared,
"tdsaAllShared");
5266 TI_DBG1((
"tiCOMSetControllerConfig:\n" ));
5335 TD_ASSERT(tdsaAllShared,
"tdsaAllShared");
5341 TI_DBG1((
"tiCOMGetControllerConfig: modePage 0x%x context %p\n",modePage,context ));
5348 TI_DBG1((
"tiCOMGetControllerConfig:modePage 0x%x tiSuccess\n",modePage ));
5353 TI_DBG1((
"tiCOMGetControllerConfig:modePage 0x%x tiBusy\n",modePage ));
5358 TI_DBG1((
"tiCOMGetControllerConfig:modePage 0x%x tiError\n",modePage ));
5391 agRoot = &(tdsaAllShared->agRootNonInt);
5394 TI_DBG1((
"tiCOMEncryptGetInfo: returnCode 0x%x\n", returnCode));
5442 TI_DBG1((
"tiCOMEncryptGetInfo: tiNotSupported\n"));
5446 TI_DBG1((
"tiCOMEncryptGetInfo: tiError returnCode 0x%x\n",returnCode));
5491 TD_ASSERT(tdsaAllShared,
"tdsaAllShared");
5499 TI_DBG1((
"tiCOMEncryptSetMode:\n"));
5531 TI_DBG1((
"tiCOMEncryptSetMode:tiBusy\n"));
5536 TI_DBG1((
"tiCOMEncryptSetMode:tiError\n"));
5568 bit32 dekTableSelect,
5572 bit32 dekNumberOfEntries,
5589 TD_ASSERT(tdsaAllShared,
"tdsaAllShared");
5597 TI_DBG1((
"tiCOMEncryptDekAdd:\n" ));
5666 TD_ASSERT(tdsaAllShared,
"tdsaAllShared");
5771#ifdef HIALEAH_ENCRYPTION
5790 TI_DBG1((
"tiCOMEncryptHilSet: saEncryptGetMode returnCode 0x%x agsaEncryptInfo status 0x%x Smode 0x%x CMode 0x%x\n",
5798 TI_DBG1((
"tiCOMEncryptHilSet:agsaEncryptInfo.status 0x%x\n",agsaEncryptInfo.
status ));
5799 if(agsaEncryptInfo.
status == 0x81)
5801 TI_DBG1((
"tiCOMEncryptHilSet: status 0x80 KEY CARD MISMATCH agsaEncryptInfo.status 0x%x\n",agsaEncryptInfo.
status ));
5802 returnCode = saEncryptHilUpdate(agRoot,
5807 TI_DBG1((
"tiCOMEncryptHilSet:AGSA_RC_SUCCESS\n"));
5810 else if(agsaEncryptInfo.
status == 0x80)
5813 TI_DBG1((
"tiCOMEncryptHilSet: status 0x80 KEY CARD MISSING agsaEncryptInfo.status 0x%x\n",agsaEncryptInfo.
status ));
5818 TI_DBG1((
"tiCOMEncryptHilSet: not status 0x81 agsaEncryptInfo.status 0x%x\n",agsaEncryptInfo.
status ));
5829 TI_DBG1((
"tiCOMEncryptHilSet:AGSA_RC_BUSY\n"));
5834 TI_DBG1((
"tiCOMEncryptHilSet:tiError\n"));
5881 TI_DBG1((
"tiCOMEncryptKekStore: Needs code !!!! kekIndex 0x%x\n",
kekIndex ));
5983 void *TestDescriptor
6002 TI_DBG1((
"tiCOMEncryptSelfTest: type = 0x%x length = 0x%x\n", type, length));
6008 TI_DBG1((
"tiCOMEncryptSelfTest: type or length error, type 0x%x length 0x%x\n", type, length));
6090 TI_DBG1((
"tiCOMSetOperator: flag = 0x%x \n", flag));
6162 TI_DBG1((
"tiCOMGetOperator: option = 0x%x \n", option));
6252 TI_DBG1((
"tiCOMOperatorManagement: flag = 0x%x role = 0x%x\n", flag, role));
6293#ifdef INITIATOR_DRIVER
6307 TI_DBG1((
"tdssRemoveSASSATAFromSharedcontext: start\n"));
6308 TI_DBG1((
"tdssRemoveSASSATAFromSharedcontext: pid %d\n", PortContext_Instance->
id));
6315 if (oneDeviceData ==
agNULL)
6317 TI_DBG1((
"tdssRemoveSASSATAFromSharedcontext: oneDeviceData is NULL!!!\n"));
6322 TI_DBG1((
"tdssRemoveSASSATAFromSharedcontext: pid %d did %d\n", PortContext_Instance->
id, oneDeviceData->
id));
6345 DeviceListList = DeviceListList->
flink;
6354 TI_DBG6((
"tdssRemoveSASSATAFromSharedcontext: move to the next\n"));
6355 DeviceListList = DeviceListList->
flink;
6393 smRoot_t *smRoot = &(tdsaAllShared->smRoot);
6398 TI_DBG1((
"tdssRemoveSASSATAFromSharedcontextByReset: start\n"));
6401 dmRoot = &(tdsaAllShared->dmRoot);
6408 if (onePortContext ==
agNULL)
6410 TI_DBG1((
"tdssRemoveSASSATAFromSharedcontextByReset: onePortContext is NULL!!!\n"));
6413 TI_DBG1((
"tdssRemoveSASSATAFromSharedcontextByReset: oneportContext pid %d\n", onePortContext->
id));
6417 if (onePortContext->UseDM ==
agTRUE)
6419 dmPortContext = &(onePortContext->dmPortContext);
6426 PortContextList = PortContextList->
flink;
6438 if (oneDeviceData ==
agNULL)
6440 TI_DBG1((
"tdssRemoveSASSATAFromSharedcontextByReset: oneDeviceData is NULL!!!\n"));
6444 TI_DBG1((
"tdssRemoveSASSATAFromSharedcontextByReset: did %d\n", oneDeviceData->
id));
6456 DeviceListList = DeviceListList->
flink;
6509 bit8 dev_s_rate = 0;
6511 bit8 connectionRate;
6514 TI_DBG3((
"tdssAddSASToSharedcontext: start\n"));
6527 if (onePortContext == tdsaPortContext_Instance)
6529 TI_DBG3((
"tdssAddSASToSharedContext: found; oneportContext ID %d\n", onePortContext->
id));
6533 PortContextList = PortContextList->
flink;
6538 TI_DBG3((
"tdssAddSASToSharedcontext: found pid %d\n", onePortContext->
id));
6542 TI_DBG1((
"tdssAddSASToSharedcontext: Error!!! no portcontext found!!!\n"));
6551 if (oneDeviceData ==
agNULL)
6553 TI_DBG1((
"tdssAddSASToSharedcontext: oneDeviceData is NULL!!!\n"));
6561 TI_DBG1((
"tdssAddSASToSharedcontext: pid %d did %d\n", onePortContext->
id, oneDeviceData->
id));
6565 DeviceListList = DeviceListList->
flink;
6569 if (new_device ==
agTRUE)
6571 TI_DBG3((
"tdssAddSASToSharedcontext: new device\n"));
6577 TI_DBG1((
"tdssAddSASToSharedContext: empty DeviceData FreeLink\n"));
6585 TI_DBG3((
"tdssAddSASToSharedcontext: oneDeviceData %p\n", oneDeviceData));
6587 onePortContext->
Count++;
6589 oneDeviceData->
agRoot = agRoot;
6594 agDevHandle->
osData = oneDeviceData;
6616 connectionRate = onePortContext->
LinkRate;
6617 dev_s_rate = (
bit8)(dev_s_rate | (sasorsata << 4));
6618 dev_s_rate = (
bit8)(dev_s_rate | connectionRate);
6638 if( tdsaAllShared->
sflag )
6642 TI_DBG1((
"tdssAddSASToSharedcontext: First, saRegisterNewDevice sflag %d\n", tdsaAllShared->
sflag));
6657 oneDeviceData->
phyID = phyID;
6658 oneDeviceData->
InQID = oneDeviceData->
id % Indenom;
6662 bit32 localId = oneDeviceData->
id;
6664 oneDeviceData->
OutQID = localId % Outdenom;
6665 TI_DBG1((
"tdssAddSASToSharedcontext: OutQID %d\n", oneDeviceData->
OutQID));
6675 TI_DBG4((
"tdssAddSASToSharedContext: one case pid %d did %d \n", onePortContext->
id, oneDeviceData->
id));
6676 TI_DBG4((
"tdssAddSASToSharedContext: new case pid %d did %d phyID %d\n", onePortContext->
id, oneDeviceData->
id, oneDeviceData->
phyID));
6681 TI_DBG3((
"tdssAddSASToSharedcontext: old device\n"));
6682 TI_DBG3((
"tdssAddSASToSharedcontext: oneDeviceData %p\n", oneDeviceData));
6685 oneDeviceData->
agRoot = agRoot;
6690 agDevHandle->
osData = oneDeviceData;
6707 TI_DBG1((
"tdssAddSASToSharedcontext: registering\n"));
6715 connectionRate = onePortContext->
LinkRate;
6716 dev_s_rate = (
bit8)(dev_s_rate | (sasorsata << 4));
6717 dev_s_rate = (
bit8)(dev_s_rate | connectionRate);
6735 if( tdsaAllShared->
sflag )
6739 TI_DBG1((
"tdssAddSASToSharedcontext: Second, saRegisterNewDevice sflag %d\n", tdsaAllShared->
sflag));
6759 oneDeviceData->
phyID = phyID;
6760 oneDeviceData->
InQID = oneDeviceData->
id % Indenom;
6761 oneDeviceData->
OutQID = oneDeviceData->
id % Outdenom;
6763 TI_DBG1((
"tdssAddSASToSharedcontext: A OutQID %d\n", oneDeviceData->
OutQID));
6765 TI_DBG4((
"tdssAddSASToSharedContext: old case pid %d did %d phyID %d\n", onePortContext->
id, oneDeviceData->
id, oneDeviceData->
phyID));
6806 TI_DBG3((
"tdssRemoveSASFromSharedcontext: start\n"));
6812 if (onePortContext ==
agNULL)
6814 TI_DBG1((
"tdssRemoveDevicedataFromSharedcontext: onePortContext is NULL!!!\n"));
6817 if (onePortContext == tdsaPortContext_Ins)
6819 TI_DBG4((
"tdssRemoveDevicedataFromSharedcontext: found; oneportContext ID %d\n", onePortContext->
id));
6822 PortContextList = PortContextList->
flink;
6830 if (oneDeviceData ==
agNULL)
6832 TI_DBG1((
"tdssRemoveDevicedataFromSharedcontext: oneDeviceData is NULL!!!\n"));
6841 TI_DBG4((
"tdssRemoveDevicedataFromSharedcontext: pid %d did %d\n", onePortContext->
id, oneDeviceData->
id));
6845 DeviceListList = DeviceListList->
flink;
6850 TI_DBG6((
"tdssRemoveDevicedataFromSharedcontext: can't find the right devicedata in MainLink\n"));
6855 TI_DBG6((
"tdssRemoveDevicedataFromSharedcontext: removing ... pid %d did %d\n", onePortContext->
id, oneDeviceData->
id));
6888 TI_DBG6((
"tdssRemoveAllDevicedataFromPortcontext: start\n"));
6898 if (oneDeviceData ==
agNULL)
6900 TI_DBG1((
"tdssRemoveAllDevicelistFromPortcontext: oneDeviceData is NULL!!!\n"));
6905 TI_DBG4((
"tdssRemoveAllDevicelistFromPortcontext: pid %d did %d\n", PortContext_Ins->
id, oneDeviceData->
id));
6906 PortContext_Ins->
Count--;
6909 DeviceListList = DeviceListList->
flink;
6916#ifdef INITIATOR_DRIVER
6933tdssNewAddSASToSharedcontext(
6949 TI_DBG3((
"tdssNewAddSASToSharedcontext: start\n"));
6958 TI_DBG3((
"tdssNewAddSASToSharedcontext: oneportContext ID %d\n", onePortContext->
id));
6964 if (oneDeviceData ==
agNULL)
6966 TI_DBG1((
"tdssNewAddSASToSharedcontext: oneDeviceData is NULL!!!\n"));
6974 TI_DBG3((
"tdssNewAddSASToSharedcontext: pid %d did %d\n", onePortContext->
id, oneDeviceData->
id));
6978 DeviceListList = DeviceListList->
flink;
6982 if (new_device ==
agTRUE)
6984 TI_DBG3((
"tdssNewAddSASToSharedcontext: new device\n"));
6989 TI_DBG1((
"tdssNewAddSASToSharedcontext: empty DeviceData FreeLink\n"));
6997 TI_DBG3((
"tdssNewAddSASToSharedcontext: oneDeviceData %p did %d\n", oneDeviceData, oneDeviceData->
id));
6999 onePortContext->
Count++;
7000 oneDeviceData->
agRoot = agRoot;
7017 oneDeviceData->
ExpDevice = oneExpDeviceData;
7019 if (oneDeviceData->
phyID == 0xFF)
7021 oneDeviceData->
phyID = phyID;
7030 if (onePortContext->
discovery.
type == TDSA_DISCOVERY_OPTION_INCREMENTAL_START)
7032 TI_DBG3((
"tdssNewAddSASToSharedcontext: incremental discovery\n"));
7039 TI_DBG3((
"tdssNewAddSASToSharedcontext: full discovery\n"));
7049 TI_DBG4((
"tdssNewAddSASToSharedcontext: one case pid %d did %d \n", onePortContext->
id, oneDeviceData->
id));
7050 TI_DBG4((
"tdssNewAddSASToSharedcontext: new case pid %d did %d phyID %d\n", onePortContext->
id, oneDeviceData->
id, oneDeviceData->
phyID));
7054 TI_DBG3((
"tdssNewAddSASToSharedcontext: old device\n"));
7055 TI_DBG3((
"tdssNewAddSASToSharedcontext: oneDeviceData %p did %d\n", oneDeviceData, oneDeviceData->
id));
7057 oneDeviceData->
agRoot = agRoot;
7074 oneDeviceData->
ExpDevice = oneExpDeviceData;
7076 if (oneDeviceData->
phyID == 0xFF)
7078 oneDeviceData->
phyID = phyID;
7084 if (onePortContext->
discovery.
type == TDSA_DISCOVERY_OPTION_INCREMENTAL_START)
7086 TI_DBG3((
"tdssNewAddSASToSharedcontext: incremental discovery\n"));
7093 TI_DBG3((
"tdssNewAddSASToSharedcontext: full discovery\n"));
7099 TI_DBG4((
"tdssNewAddSASToSharedcontext: old case pid %d did %d phyID %d\n", onePortContext->
id, oneDeviceData->
id, oneDeviceData->
phyID));
7102 return oneDeviceData;
7135 TI_DBG3((
"tdsaFindRegNValid: start\n"));
7139 if (onePortContext->
discovery.
type == TDSA_DISCOVERY_OPTION_FULL_START)
7141 TI_DBG3((
"tdsaFindRegNValid: Full discovery\n"));
7145 if (oneDeviceData ==
agNULL)
7147 TI_DBG1((
"tdsaFindRegNValid: oneDeviceData is NULL!!!\n"));
7157 TI_DBG3((
"tdsaFindRegNValid: Found pid %d did %d\n", onePortContext->
id, oneDeviceData->
id));
7163 DeviceListList = DeviceListList->
flink;
7169 TI_DBG3((
"tdsaFindRegNValid: Incremental discovery\n"));
7173 if (oneDeviceData ==
agNULL)
7175 TI_DBG1((
"tdsaFindRegNValid: oneDeviceData is NULL!!!\n"));
7185 TI_DBG3((
"tdsaFindRegNValid: Found pid %d did %d\n", onePortContext->
id, oneDeviceData->
id));
7191 DeviceListList = DeviceListList->
flink;
7199 TI_DBG3((
"tdsaFindRegNValid: end returning NULL\n"));
7204 TI_DBG3((
"tdsaFindRegNValid: end returning NOT NULL\n"));
7205 return oneDeviceData;
7240 TI_DBG3((
"tdssNewSASorNot: start\n"));
7253 TI_DBG3((
"tdssNewSASorNot: Found pid %d did %d\n", onePortContext->
id, oneDeviceData->
id));
7257 DeviceListList = DeviceListList->
flink;
7262 TI_DBG3((
"tdssNewSASorNot: end\n"));
7288tdssSASDiscoveringExpanderAlloc(
7305 TI_DBG3((
"tdssSASDiscoveringExpanderAlloc: start\n"));
7306 TI_DBG3((
"tdssSASDiscoveringExpanderAlloc: did %d\n", oneDeviceData->
id));
7312 TI_DBG1((
"tdssSASDiscoveringExpanderAlloc: aborting discovery\n"));
7313 tdsaSASDiscoverAbort(
tiRoot, onePortContext);
7317 tdsaDumpAllFreeExp(
tiRoot);
7321 TI_DBG1((
"tdssSASDiscoveringExpanderAlloc: no free expanders\n"));
7331 if (oneExpander !=
agNULL)
7333 TI_DBG3((
"tdssSASDiscoveringExpanderAlloc: expander id %d\n", oneExpander->
id));
7339 oneExpander->
tdDevice = oneDeviceData;
7373tdssSASDiscoveringExpanderAdd(
7379#ifdef TD_INTERNAL_DEBUG
7386 TI_DBG3((
"tdssSASDiscoveringExpanderAdd: start\n"));
7387 TI_DBG3((
"tdssSASDiscoveringExpanderAdd: expander id %d\n", oneExpander->
id));
7393 TI_DBG1((
"tdssSASDiscoveringExpanderAdd: aborting discovery\n"));
7394 tdsaSASDiscoverAbort(
tiRoot, onePortContext);
7401 TI_DBG3((
"tdssSASDiscoveringExpanderAdd: UPSTREAM\n"));
7405 TI_DBG3((
"tdssSASDiscoveringExpanderAdd: DOWNSTREAM\n"));
7412 TI_DBG3((
"tdssSASDiscoveringExpanderAdd: BEFORE\n"));
7413 tdsaDumpAllExp(
tiRoot, onePortContext, oneExpander);
7418 TI_DBG3((
"tdssSASDiscoveringExpanderAdd: ADDED \n"));
7426 TI_DBG3((
"tdssSASDiscoveringExpanderAdd: AFTER\n"));
7427 tdsaDumpAllExp(
tiRoot, onePortContext, oneExpander);
7429#ifdef TD_INTERNAL_DEBUG
7433 TI_DBG3((
"tdssSASDiscoveringExpanderAdd: empty discoveringExpanderList\n"));
7440 TI_DBG3((
"tdssSASDiscoveringExpanderAdd: expander id %d\n", tempExpander->
id));
7441 ExpanderList = ExpanderList->
flink;
7466 TI_DBG1((
"tdssSASFindDiscoveringExpander: empty discoveringExpanderList\n"));
7473 if (tempExpander == oneExpander)
7475 TI_DBG3((
"tdssSASFindDiscoveringExpander: match!!! expander id %d\n", tempExpander->
id));
7482 ExpanderList = ExpanderList->
flink;
7508tdssSASDiscoveringExpanderRemove(
7516#ifdef TD_INTERNAL_DEBUG
7521 TI_DBG3((
"tdssSASDiscoveringExpanderRemove: start\n"));
7522 TI_DBG3((
"tdssSASDiscoveringExpanderRemove: expander id %d\n", oneExpander->
id));
7527 TI_DBG3((
"tdssSASDiscoveringExpanderRemove: BEFORE\n"));
7528 tdsaDumpAllExp(
tiRoot, onePortContext, oneExpander);
7529 tdsaDumpAllUpExp(
tiRoot, onePortContext, oneExpander);
7530 tdsaDumpAllFreeExp(
tiRoot);
7532#ifdef TD_INTERNAL_DEBUG
7534 TI_DBG3((
"tdssSASDiscoveringExpanderRemove: BEFORE\n"));
7537 TI_DBG3((
"tdssSASDiscoveringExpanderRemove: empty discoveringExpanderList\n"));
7543 TI_DBG3((
"tdssSASDiscoveringExpanderRemove: expander id %d\n", tempExpander->
id));
7544 ExpanderList = ExpanderList->
flink;
7558 TI_DBG3((
"tdssSASDiscoveringExpanderRemove: DISCOVERY_UP_STREAM\n"));
7572 TI_DBG1((
"tdssSASDiscoveringExpanderRemove: !!! problem !!!\n"));
7575 TI_DBG3((
"tdssSASDiscoveringExpanderRemove: AFTER\n"));
7576 tdsaDumpAllExp(
tiRoot, onePortContext, oneExpander);
7577 tdsaDumpAllUpExp(
tiRoot, onePortContext, oneExpander);
7579 tdsaDumpAllFreeExp(
tiRoot);
7581#ifdef TD_INTERNAL_DEBUG
7583 TI_DBG3((
"tdssSASDiscoveringExpanderRemove: AFTER\n"));
7586 TI_DBG3((
"tdssSASDiscoveringExpanderRemove: empty discoveringExpanderList\n"));
7592 TI_DBG3((
"tdssSASDiscoveringExpanderRemove: expander id %d\n", tempExpander->
id));
7593 ExpanderList = ExpanderList->
flink;
7631 bit32 connectionRate,
7642 TI_DBG5((
"tdssNewAddSATAToSharedcontext: start\n"));
7646 TI_DBG5((
"tdssNewAddSATAToSharedcontext: oneportContext ID %d\n", onePortContext->
id));
7657 ((
char *)&agSATADeviceInfo->sataIdentifyData),
7660 TI_DBG5((
"tdssNewAddSATAToSharedcontext: pid %d did %d\n",
7661 onePortContext->
id, oneDeviceData->
id));
7665 DeviceListList = DeviceListList->
flink;
7673 if (new_device ==
agTRUE)
7675 TI_DBG5((
"tdssNewAddSATAToSharedcontext: new device\n"));
7681 TI_DBG1((
"tdssNewAddSATAToSharedcontext: ERROR empty DeviceData FreeLink\n"));
7682 return oneDeviceData;
7689 onePortContext->
Count++;
7691 oneDeviceData->
agRoot = agRoot;
7692 TI_DBG5((
"tdssNewAddSATAToSharedcontext: oneDeviceData %p\n", oneDeviceData));
7693 TI_DBG5((
"tdssNewAddSATAToSharedcontext: pSatDevData=%p\n", &oneDeviceData->
satDevData));
7709#ifdef RPM_SOC_REMOVED
7711 TI_DBG3((
"tdssNewAddSATAToSharedcontext: Word8 %x signature: %x %x %x %x %x %x %x %x\n",
7712 agSATADeviceInfo->sataIdentifyData.word1_9[7],
7724 oneDeviceData->
ExpDevice = oneExpDeviceData;
7725 oneDeviceData->
phyID = phyID;
7731 TI_DBG5((
"tdssNewAddSATAToSharedcontext: one case pid %d did %d \n",
7732 onePortContext->
id, oneDeviceData->
id));
7736 TI_DBG5((
"tdssNewAddSATAToSharedcontext: old device\n"));
7738 onePortContext->
Count++;
7741 oneDeviceData->
agRoot = agRoot;
7746 oneDeviceData->
ExpDevice = oneExpDeviceData;
7747 oneDeviceData->
phyID = phyID;
7751 return oneDeviceData;
7796 TI_DBG1((
"ttdssReportRemovals: start\n"));
7804 TI_DBG1((
"ttdssReportRemovals: calling saHwEventAck\n"));
7816 TI_DBG1((
"ttdssReportRemovals: failing in saHwEventAck; status %d\n", HwAckSatus));
7838 TI_DBG1((
"ttdssReportRemovals: empty device list\n"));
7846 if( oneDeviceData ==
agNULL )
7850 TI_DBG1((
"ttdssReportRemovals: loop did %d\n", oneDeviceData->
id));
7852 TI_DBG1((
"ttdssReportRemovals: valid %d valid2 %d\n", oneDeviceData->
valid, oneDeviceData->
valid2));
7856 TI_DBG1((
"ttdssReportRemovals: right portcontext pid %d\n", onePortContext->
id));
7859 TI_DBG1((
"ttdssReportRemovals: removing\n"));
7865 TI_DBG1((
"ttdssReportRemovals: calling tdsaAbortAll\n"));
7866 TI_DBG1((
"ttdssReportRemovals: did %d\n", oneDeviceData->
id));
7868 tmpDeviceData = oneDeviceData;
7869 ttdsaAbortAll(
tiRoot, agRoot, oneDeviceData);
7887 TI_DBG1((
"ttdssReportRemovals: device did %d\n", oneDeviceData->
id));
7904 DeviceListList = DeviceListList->
flink;
7907 DeviceListList = DeviceListList->
flink;
7913 TI_DBG1((
"ttdssReportRemovals: different portcontext; oneDeviceData->tdPortContext pid %d oneportcontext pid %d\n", oneDeviceData->
tdPortContext->
id, onePortContext->
id));
7917 TI_DBG1((
"ttdssReportRemovals: different portcontext; oneDeviceData->tdPortContext pid NULL oneportcontext pid %d\n", onePortContext->
id));
7919 DeviceListList = DeviceListList->
flink;
7925 TI_DBG1((
"ttdssReportRemovals: removed at the end\n"));
7961 TI_DBG6((
"tdsaRotateQnumber: start\n"));
7962 if (oneDeviceData ==
agNULL)
7966 ret = (oneDeviceData->
OutQID << 16) | oneDeviceData->
InQID;
7979 if (oneDeviceData ==
agNULL)
8003 if (tdsaAllShared->
IBQnumber % denom == 0)
8013 if (tdsaAllShared->
OBQnumber % denom == 0)
const unsigned char spcv_aap1array[]
const unsigned char aap1array[]
#define DM_RC_VERSION_INCOMPATIBLE
osGLOBAL bit32 dmInitialize(dmRoot_t *dmRoot, agsaRoot_t *agRoot, dmMemoryRequirement_t *memoryAllocated, dmSwConfig_t *swConfig, bit32 usecsPerTick)
osGLOBAL void dmGetRequirements(dmRoot_t *dmRoot, dmSwConfig_t *swConfig, dmMemoryRequirement_t *memoryRequirement, bit32 *usecsPerTick, bit32 *maxNumLocks)
osGLOBAL bit32 dmDestroyPort(dmRoot_t *dmRoot, dmPortContext_t *dmPortContext, dmPortInfo_t *dmPortInfo)
#define DEVICE_IS_SATA_DEVICE(DeviceData)
#define DISCOVERY_UP_STREAM
#define DEVINFO_PUT_FLAG(devInfo, tlr)
#define DEVICE_IS_STP_TARGET(DeviceData)
#define DEVINFO_PUT_SAS_ADDRESSLO(devInfo, src32)
#define DEVINFO_PUT_SMPTO(devInfo, smpto)
#define DEVINFO_PUT_FBS(devInfo, fbs)
#define DEVICE_IS_SMP_TARGET(DeviceData)
#define DEVINFO_PUT_ITNEXUSTO(devInfo, itnexusto)
#define DISCOVERY_DOWN_STREAM
#define DEFAULT_SMP_TIMEOUT
#define DEVINFO_PUT_DEV_S_RATE(devInfo, dev_s_rate)
#define DEVINFO_PUT_SAS_ADDRESSHI(devInfo, src32)
#define DEFAULT_KEY_BUFFER_SIZE
#define DEVICE_IS_SSP_TARGET(DeviceData)
bit32 dekTableKeyEntrySize
const unsigned char spcv_ilaarray[]
const unsigned char spcv12g_ilaarray[]
const unsigned char ilaarray[]
const unsigned char spcv_ioparray[]
const unsigned char spcv12g_ioparray[]
const unsigned char ioparray[]
const unsigned char istrarray[]
#define ITD_DSTATE_NOT_STARTED
U32 ostiGetTransportParam(tiRoot_t *ptiRoot, S08 *key, S08 *subkey1, S08 *subkey2, S08 *subkey3, S08 *subkey4, S08 *subkey5, S08 *valueName, S08 *buffer, U32 bufferLen, U32 *lenReceived)
void ostiPortEvent(tiRoot_t *ptiRoot, tiPortEvent_t eventType, U32 status, void *pParm)
void ostiInitiatorEvent(tiRoot_t *ptiRoot, tiPortalContext_t *ptiPortalContext, tiDeviceHandle_t *ptiDevHandle, tiIntrEventType_t eventType, U32 eventStatus, void *parm)
osGLOBAL void ossaDeregisterDeviceHandleCB(agsaRoot_t *agRoot, agsaContext_t *agContext, agsaDevHandle_t *agDevHandle, bit32 status)
ossaDeregisterDeviceHandleCB
osGLOBAL void ossaDeviceRegistrationCB(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 status, agsaDevHandle_t *agDevHandle, bit32 deviceID)
ossaDeviceRegistrationCB
#define osti_strncmp(s1, s2, n)
#define osti_strtoul(nptr, endptr, base)
#define osti_memset(s, c, n)
#define osti_memcpy(des, src, n)
#define osti_memcmp(s1, s2, n)
osGLOBAL FORCEINLINE void ostidisableEncryption(tiRoot_t *root)
osGLOBAL bit32 ostiTargetEvent(tiRoot_t *tiRoot, tiPortalContext_t *portalContext, tiDeviceHandle_t *tiDeviceHandle, tiTgtEventType_t eventType, bit32 eventStatus, void *parm)
const unsigned char spcv12g_raaearray[]
The file defines the constants, data structure, and functions defined by LL API.
#define AGSA_SGPIO_CONFIG_REG
#define AGSA_RC_VERSION_INCOMPATIBLE
#define AGSA_CACHED_DMA_MEM
#define AGSA_SAS_PHY_BW_COUNTERS_PAGE
#define OSSA_EVENT_SOURCE_DEVICE_HANDLE_ADDED
#define AGSA_WRITE_SGPIO_REGISTER
#define AGSA_MAX_OUTBOUND_Q
#define AGSA_PHY_CLEAR_ERROR_COUNTS
#define AGSA_SAS_PHY_ANALOG_SETTINGS_PAGE
#define AGSA_SAS_PHY_GENERAL_STATUS_PAGE
struct agsaMPIContext_s agsaMPIContext_t
data structure for set fields in MPI table. The agsaMPIContext_t data structure is used to set fields...
#define AGSA_MAX_INBOUND_Q
#define AGSA_ENCRYPT_STORE_NVRAM
#define OSSA_EVENT_SOURCE_DEVICE_HANDLE_REMOVED
#define agsaEncryptCipherModeXTS
#define AG_SA_DISCOVERY_OPTION_FULL_START
#define OSSA_SGPIO_MAX_READ_DATA_COUNT
#define AGSA_PHY_GET_BW_COUNTS
#define AGSA_SAS_PHY_ERR_COUNTERS_PAGE
#define AGSA_SGPIO_DRIVE_BY_DRIVE_TRANSMIT_REG
#define SA_DEVINFO_GET_SAS_ADDRESSLO(devInfo)
#define AGSA_RC_NOT_SUPPORTED
#define SA_DEVINFO_GET_SAS_ADDRESSHI(devInfo)
struct agsaSGpioReqResponse_s agsaSGpioReqResponse_t
describe a serial GPIO request and response in the SAS/SATA hardware
#define AGSA_SAS_PHY_ERR_COUNTERS_CLR_PAGE
#define AGSA_SAS_PROTOCOL_TIMER_CONFIG_PAGE
#define AGSA_PHY_GET_ERROR_COUNTS
#define AGSA_NUM_MEM_CHUNKS
#define AGSA_DEV_TYPE_END_DEVICE
#define SA_IDFRM_GET_SAS_ADDRESSLO(identFrame)
#define SA_IDFRM_GET_SAS_ADDRESSHI(identFrame)
The file defines the declaration of tSDK APIs.
GLOBAL bit32 saPhyStop(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 queueNum, bit32 phyId)
Stop a Phy.
GLOBAL bit32 saRegisterEventCallback(agsaRoot_t *agRoot, bit32 eventSourceType, ossaGenericCB_t callbackPtr)
Register a callback for a specific event.
GLOBAL bit32 saLocalPhyControl(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 queueNum, bit32 phyId, bit32 phyOperation, ossaLocalPhyControlCB_t agCB)
Initiate a Local PHY control command.
GLOBAL bit32 saEncryptGetMode(agsaRoot_t *agRoot, agsaContext_t *agContext, agsaEncryptInfo_t *encryptInfo)
GLOBAL bit32 saGetControllerInfo(agsaRoot_t *agRoot, agsaControllerInfo_t *controllerInfo)
SPC Get Controller Information Command.
GLOBAL bit32 saEncryptDekCacheInvalidate(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 queueNum, bit32 dekTable, bit32 dekIndex)
GLOBAL bit32 saOperatorManagement(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 queueNum, bit32 flag, bit8 role, agsaID_t *id, agsaEncryptKekBlob_t *kblob)
GLOBAL bit32 saGetPhyProfile(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 queueNum, bit32 ppc, bit32 phyID)
GLOBAL bit32 saGetControllerStatus(agsaRoot_t *agRoot, agsaControllerStatus_t *controllerStatus)
SPC Get Controller Status Command.
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.
GLOBAL bit32 saEchoCommand(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 queueNum, void *echoPayload)
SAS/SATA LL API ECHO Command.
GLOBAL bit32 saHwEventAck(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 queueNum, agsaEventSource_t *eventSource, bit32 param0, bit32 param1)
Initiate a HW Event Ack command.
GLOBAL bit32 saEncryptSelftestExecute(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 queueNum, bit32 type, bit32 length, void *TestDescriptor)
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 saInitialize(agsaRoot_t *agRoot, agsaMemoryRequirement_t *memoryAllocated, agsaHwConfig_t *hwConfig, agsaSwConfig_t *swConfig, bit32 usecsPerTick)
Initialize the Hardware.
GLOBAL bit32 saSetControllerConfig(agsaRoot_t *agRoot, bit32 queueNum, bit32 modePage, bit32 length, void *buffer, agsaContext_t *agContext)
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.
GLOBAL bit32 saGetOperator(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 queueNum, bit32 option, bit32 AddrHi, bit32 AddrLo)
GLOBAL bit32 saPhyStart(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 queueNum, bit32 phyId, agsaPhyConfig_t *agPhyConfig, agsaSASIdentify_t *agSASIdentify)
Start a Phy.
GLOBAL bit32 saSetOperator(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 queueNum, bit32 flag, void *cert)
GLOBAL bit32 saEncryptKekUpdate(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 queueNum, bit32 flags, bit32 newKekIndex, bit32 wrapperKekIndex, bit32 blobFormat, agsaEncryptKekBlob_t *encryptKekBlob)
GLOBAL bit32 saEncryptSetMode(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 queueNum, agsaEncryptInfo_t *mode)
The file defines the constants used by LL layer.
The file defines the declaration of OS APIs.
osGLOBAL bit32 ossaHwRegReadConfig32(agsaRoot_t *agRoot, bit32 regOffset)
@ SM_RC_VERSION_INCOMPATIBLE
osGLOBAL bit32 smDeregisterDevice(smRoot_t *smRoot, agsaDevHandle_t *agDevHandle, smDeviceHandle_t *smDeviceHandle)
osGLOBAL bit32 smInitialize(smRoot_t *smRoot, agsaRoot_t *agRoot, smMemoryRequirement_t *memoryAllocated, smSwConfig_t *swConfig, bit32 usecsPerTick)
data structure stores OS specific and LL specific context
data structure for SAS protocol timer configuration page.
bit32 Data_Cmd_OPNRJT_RTRY_TMO
bit32 Data_Cmd_OPNRJT_RTRY_THR
bit32 singleElementLength
dmMem_t dmMemory[DM_NUM_MEM_CHUNKS]
agsaSATAIdentifyData_t satIdentifyData
bit32 singleElementLength
smMem_t smMemory[SM_NUM_MEM_CHUNKS]
agBOOLEAN resetInProgress
data structure for SAS/SATA context at TD layer
agsaQueueConfig_t QueueConfig
bit32 InboundQueuePriority[AGSA_MAX_INBOUND_Q]
tdList_t MainPortContextList
bit32 InboundQueueEleSize[AGSA_MAX_OUTBOUND_Q]
bit32 InboundQueueSize[AGSA_MAX_OUTBOUND_Q]
tdList_t FreePortContextList
bit32 OutboundQueueInterruptCount[AGSA_MAX_OUTBOUND_Q]
tiLoLevelResource_t loResource
bit32 OutboundQueueInterruptEnable[AGSA_MAX_OUTBOUND_Q]
tdFWControlEx_t tdFWControlEx
tdsaHwEventSource_t eventSource[TD_MAX_NUM_PHYS]
tdsaPortStartInfo_t Ports[TD_MAX_NUM_PHYS]
bit32 OutboundQueueInterruptDelay[AGSA_MAX_OUTBOUND_Q]
struct tdsaComMemFlags_s flags
agsaMPIContext_t MpiOverride
bit32 OutboundQueueSize[AGSA_MAX_OUTBOUND_Q]
bit32 OutboundQueueEleSize[AGSA_MAX_OUTBOUND_Q]
tdList_t freeExpanderList
data structure for SAS device list This structure maintains the device as a list and information abou...
tiDeviceHandle_t tiDeviceHandle
agsaDevHandle_t * agDevHandle
bit8 initiator_ssp_stp_smp
struct tdsaExpander_s * tdExpander
struct tdsaPortContext_s * tdPortContext
TDSASAddressID_t SASAddressID
satDeviceData_t satDevData
agsaDeviceInfo_t agDeviceInfo
struct tdsaDeviceData_s * ExpDevice
tdList_t discoveringExpanderList
tdList_t UpdiscoveringExpanderList
bit16 currentUpStreamPhyIndex
bit16 currentIndex[TD_MAX_EXPANDER_PHYS]
struct tdsaExpander_s * tdReturnginExpander
struct tdsaExpander_s * tdCurrentDownStreamExpander
tdsaDeviceData_t * tdDevice
struct tdsaExpander_s * tdUpStreamExpander
data structure for TD port context This structure maintains information about the port such as ID add...
tdsaDiscovery_t discovery
bit8 PhyIDList[TD_MAX_NUM_PHYS]
agsaPortContext_t * agPortContext
tiPortalContext_t * tiPortalContext
data structure OS root from the view of lower layer. TD Layer interrupt/non-interrupt context support...
the root data structure for TD layer
tdsaContext_t tdsaAllShared
bit8 initiator_ssp_stp_smp
agBOOLEAN portInitialized
bit8 FunctionSpecificArea[1]
tiMem_t mem[MAX_LL_LAYER_MEM_DESCRIPTORS]
bit32 maxInterruptVectors
bit32 max_MSI_InterruptVectors
tiLoLevelOption_t loLevelOption
tiLoLevelMem_t loLevelMem
bit32 singleElementLength
#define DEFAULT_QUEUE_OPTION
#define tIsSPCADAPvplus(agr)
#define DEFAULT_INBOUND_QUEUE_PRIORITY
#define DEFAULT_OUTBOUND_QUEUE_INTERRUPT_DELAY
#define DEFAULT_OUTBOUND_INTERRUPT_ENABLE
#define tiIS_SPC_ENC(agr)
#define PORT_RECOVERY_TIMEOUT
#define DEFAULT_NUM_REG_CLIENTS
#define DEFAULT_MAX_ACTIVE_IOS
#define tIsSPCveplus(agr)
#define DEFAULT_OUTBOUND_QUEUE_SIZE
#define DEFAULT_EVENT_LOG_OPTION
#define TD_OPERATION_TARGET
#define tIsSPC12Gvplus(agr)
#define tIsSPC12Gveplus(agr)
#define DEFAULT_OUTBOUND_QUEUE_ELE_SIZE
#define DEFAULT_OUTBOUND_QUEUE_INTERRUPT_COUNT
#define HOST_EVENT_LOG_SIZE
#define tIsSPCADAPveplus(agr)
#define DEFAULT_NUM_INBOUND_QUEUE
#define tIsSPCV12or6G(agr)
#define DEFAULT_NUM_OUTBOUND_QUEUE
#define DEFAULT_INBOUND_QUEUE_SIZE
#define TD_OPERATION_INITIATOR
#define DEFAULT_INBOUND_QUEUE_ELE_SIZE
#define TD_XFER_RDY_PRIORTY_DEVICE_FLAG
#define DEFAULT_FW_MAX_PORTS
osGLOBAL void tdsaPortContextReInit(tiRoot_t *tiRoot, tdsaPortContext_t *onePortContext)
osGLOBAL void tdsaDeviceDataReInit(tiRoot_t *tiRoot, tdsaDeviceData_t *oneDeviceData)
osGLOBAL bit32 tdsaSGpioIoctlSetup(tiRoot_t *tiRoot, agsaContext_t *agContext, tiIOCTLPayload_t *agIOCTLPayload, void *agParam1, void *agParam2)
#define TDLIST_OBJECT_BASE(baseType, fieldName, fieldPtr)
#define TDLIST_NOT_EMPTY(listHdr)
#define TDLIST_ENQUEUE_AT_TAIL(toAddHdr, listHdr)
#define TDLIST_EMPTY(listHdr)
#define TDLIST_DEQUEUE_THIS(hdr)
#define TDLIST_DEQUEUE_FROM_HEAD(atHeadHdr, listHdr)
osGLOBAL void tdssPrintSASIdentify(agsaSASIdentify_t *id)
void tdsaSingleThreadedEnter(tiRoot_t *ptiRoot, bit32 queueId)
void tdsaSingleThreadedLeave(tiRoot_t *ptiRoot, bit32 queueId)
osGLOBAL void tdsaPrintHwConfig(agsaHwConfig_t *HwConfig)
osGLOBAL void tdsaPrintSwConfig(agsaSwConfig_t *SwConfig)
osGLOBAL bit32 tdsaRotateQnumber1(tiRoot_t *tiRoot, tdsaDeviceData_t *oneDeviceData)
osGLOBAL bit32 tiCOMEncryptGetInfo(tiRoot_t *tiRoot)
void t_MacroCheck(agsaRoot_t *agRoot)
bit32 volatile sgpioResponseSet
osGLOBAL bit32 tiCOMEncryptSetMode(tiRoot_t *tiRoot, bit32 securityCipherMode)
osGLOBAL bit32 tiCOMGetOperator(tiRoot_t *tiRoot, bit32 option, bit32 AddrHi, bit32 AddrLo)
osGLOBAL void tdsaGetPortParams(tiRoot_t *tiRoot)
osGLOBAL bit32 tiCOMEncryptKekAdd(tiRoot_t *tiRoot, bit32 kekIndex, bit32 wrapperKekIndex, bit32 blobFormat, tiEncryptKekBlob_t *encryptKekBlob)
osGLOBAL void tdsaGetGlobalPhyParams(tiRoot_t *tiRoot)
osGLOBAL bit32 tiCOMEncryptKekLoad(tiRoot_t *tiRoot, bit32 kekIndex)
osGLOBAL void tdssRemoveAllDevicelistFromPortcontext(tdsaPortContext_t *PortContext_Ins, agsaRoot_t *agRoot)
osGLOBAL bit32 tiCOMPortInit(tiRoot_t *tiRoot, bit32 sysIntsActive)
osGLOBAL void tdssRemoveSASFromSharedcontext(tdsaPortContext_t *tdsaPortContext_Ins, tdsaDeviceData_t *tdsaDeviceData_Ins, agsaRoot_t *agRoot)
osGLOBAL bit32 tiCOMEncryptDekAdd(tiRoot_t *tiRoot, bit32 kekIndex, bit32 dekTableSelect, bit32 dekAddrHi, bit32 dekAddrLo, bit32 dekIndex, bit32 dekNumberOfEntries, bit32 dekBlobFormat, bit32 dekTableKeyEntrySize)
osGLOBAL void tdsaGetCardPhyParams(tiRoot_t *tiRoot)
osGLOBAL void tdsaGetSwConfigParams(tiRoot_t *tiRoot)
osGLOBAL bit32 tiCOMEncryptKekStore(tiRoot_t *tiRoot, bit32 kekIndex)
FORCEINLINE bit32 tdsaRotateQnumber(tiRoot_t *tiRoot, tdsaDeviceData_t *oneDeviceData)
osGLOBAL bit32 tiCOMGetControllerConfig(tiRoot_t *tiRoot, bit32 modePage, bit32 flag, void *context)
osGLOBAL bit32 tiCOMSetControllerConfig(tiRoot_t *tiRoot, bit32 modePage, bit32 length, void *buffer, void *context)
bit32 tiCOMConfigureSgpio(tiRoot_t *tiRoot, bit8 enableSgpio)
osGLOBAL bit32 tiCOMPortStart(tiRoot_t *tiRoot, bit32 portID, tiPortalContext_t *portalContext, bit32 option)
osGLOBAL bit32 tiCOMSetOperator(tiRoot_t *tiRoot, bit32 flag, void *cert)
osGLOBAL bit32 tiCOMEncryptDekInvalidate(tiRoot_t *tiRoot, bit32 dekTable, bit32 dekIndex)
osGLOBAL bit32 tiCOMEncryptSelfTest(tiRoot_t *tiRoot, bit32 type, bit32 length, void *TestDescriptor)
osGLOBAL void tdsaGetHwConfigParams(tiRoot_t *tiRoot)
static bit32 SendSgpioRequest(tiRoot_t *tiRoot, bit8 regType, bit8 regIndex, bit8 regCount, bit32 *writeData)
osGLOBAL void tdsaParseLinkRateMode(tiRoot_t *tiRoot, bit32 index, bit32 LinkRateRead, bit32 ModeRead, bit32 OpticalModeRead, bit32 LinkRate, bit32 Mode, bit32 OpticalMode)
osGLOBAL void tdssAddSASToSharedcontext(tdsaPortContext_t *tdsaPortContext_Instance, agsaRoot_t *agRoot, agsaDevHandle_t *agDevHandle, tdsaSASSubID_t *agSASSubID, bit32 registered, bit8 phyID, bit32 flag)
osGLOBAL bit32 tiCOMGetPortInfo(tiRoot_t *tiRoot, tiPortalContext_t *portalContext, tiPortInfo_t *tiPortInfo)
osGLOBAL bit32 tiCOMOperatorManagement(tiRoot_t *tiRoot, bit32 flag, bit8 role, tiID_t *idString, tiEncryptKekBlob_t *kekBlob)
osGLOBAL bit32 tiCOMPortStop(tiRoot_t *tiRoot, tiPortalContext_t *portalContext)
osGLOBAL void tdssRemoveSASSATAFromSharedcontextByReset(agsaRoot_t *agRoot)
osGLOBAL void tdssRemoveSASSATAFromSharedcontext(agsaRoot_t *agRoot, tdsaPortContext_t *PortContext_Instance)
osGLOBAL bit32 tdssSASFindDiscoveringExpander(tiRoot_t *tiRoot, tdsaPortContext_t *onePortContext, tdsaExpander_t *oneExpander)
osGLOBAL FORCEINLINE bit32 tiCOMDelayedInterruptHandler(tiRoot_t *tiRoot, bit32 channelNum, bit32 count, bit32 context)
#define TI_INTERRUPT_CONFIGURATION_PAGE
#define TI_ENCRYPT_SEC_MODE_B
#define TI_ENCRYPT_SEC_MODE_A
#define IOCTL_CALL_PENDING
#define TI_ENCRYPT_ATTRIB_CIPHER_XTS
@ tiTgtEventTypeDeviceChange
#define TI_ENCRYPT_ATTRIB_CIPHER_ECB
#define TI_SAS_PROTOCOL_TIMER_CONFIG_PAGE
#define TI_ENCRYPTION_CONTROL_PARM_PAGE
#define TI_ENCRYPTION_TEST_TYPE_HMAC
#define TI_ENCRYPTION_DEK_CONFIG_PAGE
#define TI_ENCRYPTION_GENERAL_CONFIG_PAGE
#define IOCTL_ERR_STATUS_OK
#define TI_ENCRYPTION_TEST_TYPE_BIST
@ tiIntrEventTypeDeviceChange
#define TI_ENCRYPTION_HMAC_CONFIG_PAGE
#define TI_ENCRYPT_SEC_MODE_FACT_INIT
#define TI_CACHED_DMA_MEM
osGLOBAL void ttdssGetTargetParams(tiRoot_t *tiRoot)