62#ifdef INITIATOR_DRIVER
70#include <dev/pms/RefTisa/tisa/sassata/sas/tgt/ttdxchg.h>
118#ifdef TD_DEBUG_ENABLE
127 bit32 memAllocStatus;
135 TI_DBG2((
"itdssTaskCompleted: start\n"));
142 if (currentTaskTag ==
agNULL)
144 TI_DBG1((
"itdssTaskCompleted: currentTaskTag is NULL \n"));
165 TI_DBG1((
"itdssTaskCompleted: agIOStatus failed and tiTMFailed\n"));
168 TI_DBG1((
"itdssTaskCompleted: agIOStatus OSSA_IO_TM_TAG_NOT_FOUND\n"));
173 TI_DBG1((
"itdssTaskCompleted: agIOStatus OSSA_IO_ABORTED\n"));
177 TI_DBG1((
"itdssTaskCompleted: agIOStatus 0x%x\n", agIOStatus));
197#ifdef TD_DEBUG_ENABLE
201 TI_DBG6((
"itdssTaskCompleted: dataPres %d. should be 1\n", data_status));
206 TI_DBG6((
"itdssTaskCompleted: res code %d. should be 0\n", respData[3]));
212 TI_DBG1((
"itdssTaskCompleted: taskTag is NULL\n"));
220 TI_DBG2((
"itdssTaskCompleted: taskTag is NOT NULL\n"));
225 TI_DBG2((
"itdssTaskCompleted: TMtdIORequestBody %p\n", TMtdIORequestBody));
227 if (TMtdIORequestBody ==
agNULL)
229 TI_DBG1((
"itdssTaskCompleted: TMtdIORequestBody is NULL \n"));
247 TI_DBG1((
"itdssTaskCompleted: agIOInfoLen is zero, wrong\n"));
265 TI_DBG2((
"itdssTaskCompleted: agSSPTaskMgntRequest->taskMgntFunction 0x%x\n", agSSPTaskMgntRequest->
taskMgntFunction));
272 TI_DBG1((
"itdssTaskCompleted: incorrect tasktag, first\n"));
295 TI_DBG1((
"itdssTaskCompleted: incorrect tasktag, second\n"));
314 TI_DBG2((
"itdssTaskCompleted: calling saSSPAbort()\n"));
316 if (AborttdIORequestBody ==
agNULL)
318 TI_DBG1((
"itdssTaskCompleted: wrong, AborttdIORequestBody is NULL\n"));
325 TI_DBG1((
"itdssTaskCompleted: wrong, tiDeviceHandle is NULL\n"));
329 if (oneDeviceData ==
agNULL)
331 TI_DBG1((
"itdssTaskCompleted: wrong, oneDeviceData is NULL\n"));
335 if (agDevHandle ==
agNULL)
337 TI_DBG1((
"itdssTaskCompleted: wrong, agDevHandle is NULL\n"));
341 if (agTaskedIORequest ==
agNULL)
343 TI_DBG1((
"itdssTaskCompleted: agTaskedIORequest is NULL \n"));
364 (
void **)&tdAbortIORequestBody,
374 TI_DBG1((
"itdssTaskCompleted: ostiAllocMemory failed...\n"));
378 if (tdAbortIORequestBody ==
agNULL)
381 TI_DBG1((
"itdssTaskCompleted: ostiAllocMemory returned NULL tdAbortIORequestBody\n"));
386 tdAbortIORequestBody->IOType.InitiatorTMIO.osMemHandle = osMemHandle;
392 tdAbortIORequestBody->tiIOToBeAbortedRequest =
agNULL;
394 agAbortIORequest = &(tdAbortIORequestBody->agIORequest);
395 agAbortIORequest->
osData = (
void *) tdAbortIORequestBody;
401 TI_DBG1((
"itdssTaskCompleted: saSSPAbort failed agIOInfoLen is zero, wrong\n"));
404 tdAbortIORequestBody->IOType.InitiatorTMIO.osMemHandle,
417 TI_DBG2((
"itdssTaskCompleted: tiTMOK\n"));
421 TI_DBG1((
"itdssTaskCompleted: wrong, tiDeviceHandle is NULL\n"));
425 if (oneDeviceData ==
agNULL)
427 TI_DBG1((
"itdssTaskCompleted: wrong, oneDeviceData is NULL\n"));
431 if (agDevHandle ==
agNULL)
433 TI_DBG1((
"itdssTaskCompleted: wrong, agDevHandle is NULL\n"));
435 TI_DBG2((
"itdssTaskCompleted: setting Device state to SA_DS_OPERATIONAL\n"));
448 TI_DBG1((
"itdssTaskCompleted: tiTMFailed\n"));
467#ifdef INITIATOR_DRIVER
490itdssQueryTaskCompleted(
508#ifdef TD_DEBUG_ENABLE
518 bit32 memAllocStatus;
519 void *osMemHandle =
agNULL;
524 TI_DBG2((
"itdssQueryTaskComplted: start\n"));
539 TI_DBG1((
"itdssQueryTaskComplted: agIOStatus failed and tiTMFailed\n"));
551#ifdef TD_DEBUG_ENABLE
556 TI_DBG6((
"itdssQueryTaskCompleted: dataPres %d. should be 1\n", data_status));
562 TI_DBG6((
"itdssQueryTaskCompleted: res code %d. should be 0\n", respData[3]));
568 TI_DBG1((
"itdssQueryTaskComplted: taskTag is NULL \n"));
580 if (TMtdIORequestBody ==
agNULL)
582 TI_DBG1((
"itdssQueryTaskComplted: TMtdIORequestBody is NULL \n"));
592 agTaskedIORequest = &(TMtdIORequestBody->
agIORequest);
593 if (agTaskedIORequest ==
agNULL)
595 TI_DBG1((
"itdssQueryTaskComplted: agTaskedIORequest is NULL \n"));
607 TI_DBG1((
"itdssQueryTaskCompleted: agIOInfoLen is zero, wrong\n"));
641 TI_DBG1((
"itdssQueryTaskCompleted: wrong, tiDeviceHandle is NULL\n"));
651 if (oneDeviceData ==
agNULL)
653 TI_DBG1((
"itdssQueryTaskCompleted: wrong, oneDeviceData is NULL\n"));
664 if (agDevHandle ==
agNULL)
666 TI_DBG1((
"itdssQueryTaskCompleted: wrong, agDevHandle is NULL\n"));
675 (
void **)&tdAbortIORequestBody,
685 TI_DBG1((
"itdssQueryTaskCompleted: ostiAllocMemory failed...\n"));
695 if (tdAbortIORequestBody ==
agNULL)
698 TI_DBG1((
"itdssQueryTaskCompleted: ostiAllocMemory returned NULL tdAbortIORequestBody\n"));
710 tdAbortIORequestBody->IOType.InitiatorTMIO.osMemHandle = osMemHandle;
711 tdAbortIORequestBody->tiDevHandle = tdIORequestBody->
tiDevHandle;
712 tdAbortIORequestBody->tiIOToBeAbortedRequest =
agNULL;
718 agAbortIORequest = &(tdAbortIORequestBody->agIORequest);
719 agAbortIORequest->
osData = (
void *) tdAbortIORequestBody;
722 TI_DBG2((
"itdssQueryTaskCompleted: issuing saSSPAbort()\n"));
726 TI_DBG1((
"itdssQueryTaskCompleted: saSSPAbort failed agIOInfoLen is zero, wrong\n"));
729 tdAbortIORequestBody->IOType.InitiatorTMIO.osMemHandle,
737 TI_DBG1((
"itdssQueryTaskComplted: not expected response 0x%x\n",respData[3]));
742 TI_DBG1((
"itdssQueryTaskCompleted: not expected task management fn %d\n",agSSPTaskMgntRequest->
taskMgntFunction));
787 itdsaIni_t *Initiator = (itdsaIni_t *)osData->
itdsaIni;
793 bit32 scsi_status = 0;
798 TI_DBG6((
"itdssIOCompleted: start\n"));
799 TI_DBG6((
"itdssIOCompleted: agIOInfoLen %d\n", agIOInfoLen));
802 TD_ASSERT((
NULL != tdIORequestBody),
"itdssIOCompleted:tdIORequestBody NULL");
803 if (
NULL == tdIORequestBody )
807 Initiator->NumIOsActive--;
812#ifdef TD_DEBUG_ENABLE
816 TI_DBG1((
"itdssIOCompleted: Error!!!!!! double completion\n"));
817#ifdef TD_DEBUG_ENABLE
818 TI_DBG1((
"itdssIOCompleted: did %d \n", oneDeviceData->
id));
822 if (Initiator->NumIOsActive == 0)
825 TI_DBG6((
"itdssIOCompleted: no acitve IO's. Kill timers\n"));
830 TI_DBG1( (
"itdssIOCompleted: pos 1; "
831 "tdIORequestBody->tiIORequest->osData is null, wrong\n") );
842 TI_DBG6( (
"itdssIOCompleted: CDB 0x%x\n",
843 agSSPInitiatorRequest->sspCmdIU.cdb[0]) );
851 ((agSSPInitiatorRequest->sspCmdIU.cdb[1] & 0x01) == 0))
872 TI_DBG1( (
"itdssIOCompleted: failed to call "
873 "ostiSetDeviceQueueDepth() Q=%d !!!\n", qdepth ) );
877 TI_DBG2((
"itdssIOCompleted: set ostiSetDeviceQueueDepth() Q=%d\n",qdepth));
895 TI_DBG6((
"itdssIOCompleted: SUCCESS but data returned \n"));
896 TI_DBG6( (
"itdssIOCompleted: agIOStatus SUCCESS but data returned 0x%x\n",
914 scsi_status = agSSPRespIU.
status;
919 TI_DBG2( (
"itdssIOCompleted: SCSI_STAT_GOOD %d\n",
920 Initiator->ScsiStatusCounts.GoodStatus) );
921 Initiator->ScsiStatusCounts.GoodStatus++;
924 TI_DBG1( (
"itdssIOCompleted: SCSI_STAT_CHECK_CONDITION %d\n",
925 Initiator->ScsiStatusCounts.CheckCondition) );
926 Initiator->ScsiStatusCounts.CheckCondition++;
929 TI_DBG1( (
"itdssIOCompleted: SCSI_STAT_BUSY %d\n",
930 Initiator->ScsiStatusCounts.BusyStatus) );
931 Initiator->ScsiStatusCounts.BusyStatus++;
934 TI_DBG1( (
"itdssIOCompleted: SCSI_STAT_RESV_CONFLICT %d\n",
935 Initiator->ScsiStatusCounts.ResvConflict) );
936 Initiator->ScsiStatusCounts.ResvConflict++;
939 Initiator->ScsiStatusCounts.TaskSetFull++;
942 TI_DBG1( (
"itdssIOCompleted: SCSI_STAT_TASK_SET_FULL %d\n",
943 Initiator->ScsiStatusCounts.TaskSetFull) );
946 Initiator->ScsiStatusCounts.AcaActive++;
947 TI_DBG1( (
"itdssIOCompleted: SCSI_STAT_ACA_ACTIVE %d\n",
948 Initiator->ScsiStatusCounts.AcaActive) );
951 Initiator->ScsiStatusCounts.TaskAborted++;
952 TI_DBG1( (
"itdssIOCompleted: SCSI_STAT_TASK_ABORTED %d\n",
953 Initiator->ScsiStatusCounts.TaskAborted) );
956 Initiator->ScsiStatusCounts.ConditionMet++;
957 TI_DBG1( (
"itdssIOCompleted: SCSI_STAT_CONDITION_MET %d\n",
958 Initiator->ScsiStatusCounts.ConditionMet) );
961 TI_DBG1( (
"itdssIOCompleted: SCSI_STAT_INTERMEDIATE %d\n",
962 Initiator->ScsiStatusCounts.ObsoleteStatus) );
963 Initiator->ScsiStatusCounts.ObsoleteStatus++;
966 TI_DBG1( (
"itdssIOCompleted: SCSI_STAT_INTER_CONDIT_MET %d\n",
967 Initiator->ScsiStatusCounts.ObsoleteStatus) );
968 Initiator->ScsiStatusCounts.ObsoleteStatus++;
971 TI_DBG1( (
"itdssIOCompleted: SCSI_STAT_COMMANDTERMINATED %d\n",
972 Initiator->ScsiStatusCounts.ObsoleteStatus) );
973 Initiator->ScsiStatusCounts.ObsoleteStatus++;
976 Initiator->ScsiStatusCounts.ObsoleteStatus++;
977 TI_DBG1( (
"itdssIOCompleted: Unknown scsi_status %d 0x%x\n",
978 scsi_status,Initiator->ScsiStatusCounts.ObsoleteStatus) );
1309 TI_DBG1( (
"itdssIOCompleted: Unknown agIOStatus 0x%x\n",agIOStatus) );
1372 bit8 smpRequestHeader[4];
1374 bit8 SMPRequestFunction;
1376 TI_DBG3((
"itdssSMPCompleted: start\n"));
1382 oneDeviceData = tdSMPRequestBody->
tdDevice;
1388 agSMPFrame = &(agSASRequestBody->
smpFrame);
1391 SMPRequestFunction = tdSMPRequestBody->
smpPayload[1];
1395 SMPRequestFunction = tdRequestSMPFrameHeader->
smpFunction;
1398 TI_DBG3((
"itdssSMPCompleted: agIORequest %p\n", agIORequest));
1399 TI_DBG3((
"itdssSMPCompleted: SMPRequestbody %p\n", tdSMPRequestBody));
1401 if (onePortContext !=
agNULL)
1403 TI_DBG3((
"itdssSMPCompleted: pid %d\n", onePortContext->
id));
1407 TI_DBG1((
"itdssSMPCompleted: Wrong!!! onePortContext is NULL\n"));
1429 if (oldonePortContext !=
agNULL)
1431 TI_DBG3((
"itdssSMPCompleted: old pid %d\n", oldonePortContext->
id));
1435 TI_DBG1((
"itdssSMPCompleted: Wrong!!! oldonePortContext is NULL\n"));
1463 if (onePortContext != oldonePortContext)
1465 TI_DBG1((
"itdssSMPCompleted: portcontext has changed!!!\n"));
1488 tdsaCleanAllExp(
tiRoot, oldonePortContext);
1490 tdssInternalRemovals(oldonePortContext->
agRoot,
1539 TI_DBG1((
"itdssSMPCompleted: aborting discovery\n"));
1540 tdsaSASDiscoverAbort(
tiRoot, onePortContext);
1604 TI_DBG3((
"itdssSMPCompleted: report general\n"));
1629 tdsaReportGeneralRespRcvd(
1640 TI_DBG3((
"itdssSMPCompleted: discover\n"));
1644 TI_DBG1((
"itdssSMPCompleted: mismatch len agIOInfoLen 0x%x 0x%x\n", agIOInfoLen, (
unsigned int)
sizeof(
smpRespDiscover_t) + 4));
1665 tdsaDiscoverRespRcvd(
1675 TI_DBG3((
"itdssSMPCompleted: report phy sata\n"));
1700 tdsaReportPhySataRcvd(
1710 TI_DBG1((
"itdssSMPCompleted: configure routing information\n"));
1711 if (agIOInfoLen != 4 &&
1714 TI_DBG1((
"itdssSMPCompleted: mismatch len agIOInfoLen 0x%x 0x%x\n", agIOInfoLen, 4));
1735 tdsaConfigRoutingInfoRespRcvd(
1746 TI_DBG3((
"itdssSMPCompleted: phy control\n"));
1747 if (agIOInfoLen != 4 &&
1750 TI_DBG1((
"itdssSMPCompleted: mismatch len agIOInfoLen 0x%x 0x%x\n", agIOInfoLen, 4));
1785 TI_DBG1((
"itdssSMPCompleted: REPORT_MANUFACTURE_INFORMATION\n"));
1789 TI_DBG1((
"itdssSMPCompleted: mismatch len agIOInfoLen 0x%x 0x%x\n", agIOInfoLen, 4));
1810 tdsaReportManInfoRespRcvd(
1828 TI_DBG1((
"itdssSMPCompleted: wrong SMP function 0x%x\n", tdSMPFrameHeader->
smpFunction));
1832 tdhexdump(
"itdssSMPCompleted: SMP payload", (
bit8 *)agFrameHandle, agIOInfoLen);
1839 TI_DBG1((
"itdssSMPCompleted: OSSA_IO_ABORTED\n"));
1843 TI_DBG1((
"itdssSMPCompleted: OSSA_IO_ERROR_INTERNAL_SMP_RESOURCE\n"));
1877 tdsaSMPBusyTimer(
tiRoot, onePortContext, oneDeviceData, tdSMPRequestBody);
1926 TI_DBG1((
"itdssSMPCompleted: failed! but retries %d agIOStatus 0x%x %d agIOInfoLen %d\n",
1927 tdSMPRequestBody->
retries, agIOStatus, agIOStatus, agIOInfoLen));
1957 TI_DBG1((
"itdssSMPCompleted: failed! no more retry! agIOStatus 0x%x %d\n", agIOStatus, agIOStatus));
1960 TI_DBG1((
"itdssSMPCompleted: failed! agIOStatus is OSSA_IO_DS_NON_OPERATIONAL\n"));
1965 TI_DBG1((
"itdssSMPCompleted: failed! agIOStatus is OSSA_IO_DS_IN_RECOVERY\n"));
1976 TI_DBG1((
"itdssSMPCompleted: discover done with error\n"));
1981 TI_DBG1((
"itdssSMPCompleted: SMP_PHY_CONTROL\n"));
1985 TI_DBG1((
"itdssSMPCompleted: discover done with error\n"));
1991 TI_DBG1((
"itdssSMPCompleted: device reset failed\n"));
1992 if (CurrentTaskTag !=
agNULL )
1994 TI_DBG1((
"itdssSMPCompleted: callback to OS layer with failure\n"));
2010 TI_DBG1((
"itdssSMPCompleted: unknown phy operation 0x%x\n", smpPhyControlReq->
phyOperation));
2054 TI_DBG3((
"itdssSMPCompleted: start\n"));
2088 itdsaIni_t *Initiator = (itdsaIni_t *)osData->
itdsaIni;
2092 bit8 senseDataPayload[256];
2102 TI_DBG2((
"itdssIOSuccessHandler: start\n"));
2103 TI_DBG2((
"itdssIOSuccessHandler: agIOInfoLen %d\n", agIOInfoLen));
2116 TI_DBG1((
"itdssIOSuccessHandler: First agIOInfoLen does not match!!!\n"));
2132 scsi_status = agSSPRespIU.
status;
2137 TI_DBG2((
"itdssIOSuccessHandler: dataPres=%x\n", data_status));
2138 TI_DBG2((
"itdssIOSuccessHandler: scsi status=0x%x, senselen=0x%x resplen 0x%x\n", scsi_status, senseLen, respLen));
2148 TI_DBG1((
"itdssIOSuccessHandler: Second agIOInfoLen does not match!!!\n"));
2149 TI_DBG1((
"itdssIOSuccessHandler: Second agIOInfoLen 0x%x IU 0x%x senselen 0x%x resplen 0x%x\n", agIOInfoLen, (
unsigned int)
sizeof(
agsaSSPResponseInfoUnit_t), senseLen, respLen));
2170 senseDataPayload, senseLen);
2172 if (data_status == 0)
2175 TI_DBG1((
"itdssIOSuccessHandler: no data scsi_status 0x%x\n",scsi_status));
2189 if (data_status == 1)
2192 TI_DBG1((
"itdssIOSuccessHandler: response data \n"));
2205 if (data_status == 2)
2208 TI_DBG2((
"itdssIOSuccessHandler: sense data \n"));
2210 senseData.senseData = &senseDataPayload;
2211 senseData.senseLen =
MIN(256, senseLen);
2217 TI_DBG1((
"sense data Sense Key 0x%2X ASC(Code) 0x%2X ASCQ(Qualifier) 0x%2X, did 0x%x\n",*(senseDataPayload+ 2),*(senseDataPayload + 12),*(senseDataPayload + 13),
2218 oneDeviceData->
id));
2219 tdhexdump(
"sense data I", (
bit8 *)senseDataPayload, senseLen);
2224 Initiator->SenseKeyCounter.SoftError ++;
2228 Initiator->SenseKeyCounter.MediumNotReady++;
2232 Initiator->SenseKeyCounter.MediumError++;
2236 Initiator->SenseKeyCounter.HardwareError++;
2240 Initiator->SenseKeyCounter.IllegalRequest++;
2244 Initiator->SenseKeyCounter.UnitAttention++;
2248 Initiator->SenseKeyCounter.AbortCommand++;
2252 Initiator->SenseKeyCounter.OtherKeyType++;
2256 if ((senseDataPayload[12] == 0x04 && senseDataPayload[13] == 0x11))
2258 TI_DBG2((
"itdssIOSuccessHandler: sending notfify spinup\n"));
2280 if (data_status == 3)
2283 TI_DBG1((
"itdssIOSuccessHandler: reserved wrong!!!\n"));
2332 TI_DBG2((
"itdssIOAbortedHandler: start\n"));
2337 TI_DBG1((
"itdssIOAbortedHandler: incorrect agIOStatus 0x%x\n", agIOStatus));
2340 if (tdIORequestBody ==
agNULL)
2342 TI_DBG1((
"itdssIOAbortedHandler: start\n"));
2346 if (tdIORequestBody !=
agNULL)
2354 if (oneDeviceData !=
agNULL)
2356 TI_DBG2((
"itdssIOAbortedHandler: did %d \n", oneDeviceData->
id));
2360 TI_DBG1((
"itdssIOAbortedHandler: oneDeviceData is NULL\n"));
2394itdssIOOverFlowHandler(
2407 TI_DBG2((
"itdssIOOverFlowHandler: start\n"));
2408 TI_DBG2((
"itdssIOOverFlowHandler: not transferred byte 0x%x\n", agIOInfoLen));
2458 TI_DBG6((
"itdssIOUnderFlowHandler: start\n"));
2459 TI_DBG6((
"itdssIOUnderFlowHandler: agIOInfoLen 0x%x\n", agIOInfoLen));
2507 TI_DBG1((
"itdssIOFailedHandler: start\n"));
2553 TI_DBG2((
"itdssIOAbortResetHandler: start\n"));
2601 TI_DBG2((
"itdssIONotValidHandler: start\n"));
2647 TI_DBG2((
"itdssIONoDeviceHandler: start\n"));
2680itdssIllegalParameterHandler(
2692 TI_DBG2((
"itdssIllegalParameterHandler: start\n"));
2740 TI_DBG1((
"itdssLinkFailureHandler: start\n"));
2787 TI_DBG2((
"itdssProgErrorHandler: start\n"));
2834 TI_DBG1((
"itdssXferErrorBreakHandler: start\n"));
2881 TI_DBG2((
"itdssXferErrorPhyNotReadyHandler: start\n"));
2928 TI_DBG2((
"itdssOpenCnxErrorProtocolNotSupprotedHandler: start\n"));
2975 TI_DBG2((
"itdssOpenCnxErrorZoneViolationHandler: start\n"));
3022 TI_DBG1((
"itdssOpenCnxErrorBreakHandler: start\n"));
3069 TI_DBG1((
"itdssOpenCnxErrorITNexusLossHandler: start\n"));
3116 TI_DBG1((
"itdssOpenCnxErrorBadDestinationHandler: start\n"));
3170 TI_DBG1((
"itdssOpenCnxErrorConnectionRateNotSupportedHandler: start\n"));
3180 if (tdsaAllShared->RateAdjust)
3200 ConnRate = ConnRate - 1;
3202 agContext = &(tdIORequestBody->
agContext);
3203 agContext->
osData = agIORequest;
3253 TI_DBG2((
"itdssOpenCnxErrorSTPResourceBusyHandler: start\n"));
3300 TI_DBG1((
"itdssOpenCnxErrorWrongDestinationHandler: start\n"));
3347 TI_DBG1((
"itdssOpenCnxErrorUnknownErrorHandler: start\n"));
3394 TI_DBG1((
"itdssXferErrorNAKReceivedHandler: start\n"));
3441 TI_DBG1((
"itdssXferErrorACKNAKTimeoutHandler: start\n"));
3488 TI_DBG2((
"itdssXferErrorPeerAbortedHandler: start\n"));
3535 TI_DBG1((
"itdssXferErrorRxFrameHandler: start\n"));
3582 TI_DBG1((
"itdssXferErrorDMAHandler: start\n"));
3629 TI_DBG1((
"itdssXferErrorCreditTimeoutHandler: start\n"));
3676 TI_DBG1((
"itdssXferErrorCMDIssueACKNAKTimeoutHandler: start\n"));
3723 TI_DBG1((
"itdssXferErrorCMDIssueBreakBeforeACKNAKHandler: start\n"));
3770 TI_DBG1((
"itdssXferErrorCMDIssuePhyDownBeforeACKNAKHandler: start\n"));
3817 TI_DBG2((
"itdssXferErrorDisruptedPhyDownHandler: start\n"));
3864 TI_DBG1((
"itdssXferErrorOffsetMismatchHandler: start\n"));
3911 TI_DBG2((
"itdssXferErrorXferZeroDataLenHandler: start\n"));
3958 itdsaIni_t *Initiator = (itdsaIni_t *)tdsaAllShared->
itdsaIni;
3966 TI_DBG2((
"itdssXferOpenRetryTimeoutHandler: start\n"));
3989 TI_DBG2((
"itdssXferOpenRetryTimeoutHandler: retried\n"));
3990 Initiator->NumIOsActive++;
3998 TI_DBG1((
"itdssXferOpenRetryTimeoutHandler: retry failed\n"));
4006 TI_DBG1((
"itdssXferOpenRetryTimeoutHandler: retry is over and fail\n"));
4012 TI_DBG1((
"itdssXferOpenRetryTimeoutHandler: not valid deivce no retry\n"));
4057 TI_DBG2((
"itdssPortInResetHandler: start\n"));
4109 TI_DBG2((
"itdssDsNonOperationalHandler: start\n"));
4169 TI_DBG2((
"itdssDsInRecoveryHandler: start\n"));
4216 TI_DBG2((
"itdssTmTagNotFoundHandler: start\n"));
4263 TI_DBG2((
"itdssSSPExtIUZeroLenHandler: start\n"));
4310 TI_DBG2((
"itdssXferErrorUnexpectedPhaseHandler: start\n"));
4369itdssIOUnderFlowWithChkConditionHandler(
4382 bit8 senseDataPayload[256];
4392 TI_DBG2((
"itdssIOUnderFlowWithChkConditionHandler: start\n"));
4393 TI_DBG2((
"itdssIOUnderFlowWithChkConditionHandler: agIOInfoLen 0x%x\n", agIOInfoLen));
4406 TI_DBG1((
"itdssIOUnderFlowWithChkConditionHandler: First agIOInfoLen does not match!!!\n"));
4422 scsi_status = agSSPRespIU.
status;
4427 TI_DBG2((
"itdssIOUnderFlowWithChkConditionHandler: dataPres=%x\n", data_status));
4428 TI_DBG2((
"itdssIOUnderFlowWithChkConditionHandler: scsi status=0x%x, senselen=0x%x resplen 0x%x\n", scsi_status, senseLen, respLen));
4438 TI_DBG1((
"itdssIOUnderFlowWithChkConditionHandler: Second agIOInfoLen does not match!!!\n"));
4439 TI_DBG1((
"itdssIOUnderFlowWithChkConditionHandler: Second agIOInfoLen 0x%x IU 0x%x senselen 0x%x resplen 0x%x\n", agIOInfoLen, (
unsigned int)
sizeof(
agsaSSPResponseInfoUnit_t), senseLen, respLen));
4460 senseDataPayload, senseLen);
4462 if (data_status == 0)
4465 TI_DBG2((
"itdssIOUnderFlowWithChkConditionHandler: no data\n"));
4479 if (data_status == 1)
4482 TI_DBG2((
"itdssIOUnderFlowWithChkConditionHandler: response data \n"));
4495 if (data_status == 2)
4498 TI_DBG2((
"itdssIOUnderFlowWithChkConditionHandler: sense data \n"));
4500 senseData.
senseData = &senseDataPayload;
4505 tdhexdump(
"sense data I", (
bit8 *)senseDataPayload, senseLen);
4510 Initiator->SenseKeyCounter.SoftError ++;
4514 Initiator->SenseKeyCounter.MediumNotReady++;
4518 Initiator->SenseKeyCounter.MediumError++;
4522 Initiator->SenseKeyCounter.HardwareError++;
4526 Initiator->SenseKeyCounter.IllegalRequest++;
4530 Initiator->SenseKeyCounter.UnitAttention++;
4534 Initiator->SenseKeyCounter.AbortCommand++;
4538 Initiator->SenseKeyCounter.OtherKeyType++;
4542 if ((senseDataPayload[12] == 0x04 && senseDataPayload[13] == 0x11))
4544 TI_DBG2((
"itdssIOUnderFlowWithChkConditionHandler: sending notfify spinup\n"));
4566 if (data_status == 3)
4569 TI_DBG1((
"itdssIOUnderFlowWithChkConditionHandler: reserved wrong!!!\n"));
4618 TI_DBG2((
"itdssXferOpenRetryBackoffThresholdReachedHandler: start\n"));
4665 TI_DBG2((
"itdssOpenCnxErrorItNexusLossOpenTmoHandler: start\n"));
4712 TI_DBG2((
"itdssOpenCnxErrorItNexusLossNoDestHandler: start\n"));
4759 TI_DBG2((
"itdssOpenCnxErrorItNexusLossOpenCollideHandler: start\n"));
4806 TI_DBG2((
"itdssOpenCnxErrorItNexusLossOpenPathwayBlockedHandler: start\n"));
4853 TI_DBG1((
"itdssEncryptionHandler: start\n"));
4854 TI_DBG1((
"itdssEncryptionHandler: agIOStatus 0x%x\n", agIOStatus));
4861 TI_DBG1((
"itdssEncryptionHandler: OSSA_IO_XFR_ERROR_DEK_KEY_CACHE_MISS\n"));
4865 TI_DBG1((
"itdssEncryptionHandler: OSSA_IO_XFR_ERROR_CIPHER_MODE_INVALID\n"));
4869 TI_DBG1((
"itdssEncryptionHandler: OSSA_IO_XFR_ERROR_DEK_IV_MISMATCH\n"));
4873 TI_DBG1((
"itdssEncryptionHandler: OSSA_IO_XFR_ERROR_DEK_RAM_INTERFACE_ERROR\n"));
4877 TI_DBG1((
"itdssEncryptionHandler: OSSA_IO_XFR_ERROR_DEK_INDEX_OUT_OF_BOUNDS\n"));
4881 TI_DBG1((
"itdssEncryptionHandler: OSSA_IO_XFR_ERROR_DEK_ILLEGAL_TABLE\n"));
4885 TI_DBG1((
"itdssEncryptionHandler: other error!!! 0x%x\n", agIOStatus));
4933#ifdef TD_DEBUG_ENABLE
4937 TI_DBG1((
"itdssDifHandler: start\n"));
4938 TI_DBG1((
"itdssDifHandler: agIOStatus 0x%x\n", agIOStatus));
4940#ifdef TD_DEBUG_ENABLE
4947 TI_DBG1((
"itdssDifHandler: OSSA_IO_XFR_ERROR_DIF_MISMATCH\n"));
4951 TI_DBG1((
"itdssDifHandler: OSSA_IO_XFR_ERROR_DIF_APPLICATION_TAG_MISMATCH\n"));
4955 TI_DBG1((
"itdssDifHandler: OSSA_IO_XFR_ERROR_DIF_REFERENCE_TAG_MISMATCH\n"));
4959 TI_DBG1((
"itdssDifHandler: OSSA_IO_XFR_ERROR_DIF_CRC_MISMATCH\n"));
4963 TI_DBG1((
"itdssDifHandler: other error!!! 0x%x\n", agIOStatus));
4966 TI_DBG1((
"itdssDifHandler: DIF detail UpperLBA 0x%08x LowerLBA 0x%08x\n", DifDetail->
UpperLBA, DifDetail->
LowerLBA));
5009 TI_DBG2((
"itdssIOResourceUnavailableHandler: start\n"));
5010 TI_DBG2((
"itdssIOResourceUnavailableHandler: agIOStatus 0x%x\n", agIOStatus));
5055 TI_DBG2((
"itdssIORQEBusyFullHandler: start\n"));
5056 TI_DBG2((
"itdssIORQEBusyFullHandler: agIOStatus 0x%x\n", agIOStatus));
5102 TI_DBG2((
"itdssXferErrorInvalidSSPRspFrameHandler: start\n"));
5103 TI_DBG2((
"itdssXferErrorInvalidSSPRspFrameHandler: agIOStatus 0x%x\n", agIOStatus));
5149 TI_DBG2((
"itdssXferErrorEOBDataOverrunHandler: start\n"));
5150 TI_DBG2((
"itdssXferErrorEOBDataOverrunHandler: agIOStatus 0x%x\n", agIOStatus));
5196 TI_DBG2((
"itdssOpenCnxErrorOpenPreemptedHandler: start\n"));
5197 TI_DBG2((
"itdssOpenCnxErrorOpenPreemptedHandler: agIOStatus 0x%x\n", agIOStatus));
5244 TI_DBG2((
"itdssIODefaultHandler: start\n"));
5245 TI_DBG2((
"itdssIODefaultHandler: agIOStatus 0x%x\n", agIOStatus));
5287 TI_DBG1((
"itdssIOForDebugging1Completed: start, error!!! can't be called. \n"));
5317 TI_DBG1((
"itdssIOForDebugging2Completed: start, error!!! can't be called. \n"));
5347 TI_DBG1((
"itdssIOForDebugging3Completed: start, error!!! can't be called. \n"));
#define SMP_WRITE_GPIO_REGISTER
#define SMP_REPORT_PHY_SATA
#define SMP_PHY_CONTROL_CLEAR_AFFILIATION
#define SMP_PHY_TEST_FUNCTION
#define MIN(a, b)
MIN macro.
#define SAS_CONNECTION_RATE_1_5G
#define SMP_REPORT_MANUFACTURE_INFORMATION
#define SMP_PHY_CONTROL_HARD_RESET
#define SMP_CONFIGURE_ROUTING_INFORMATION
#define DEVINFO_GET_LINKRATE(devInfo)
#define SAS_CONNECTION_RATE_12_0G
#define SMP_READ_GPIO_REGISTER
#define SMP_FUNCTION_ACCEPTED
#define SMP_REPORT_GENERAL
#define SMP_REPORT_PHY_ERROR_LOG
#define SMP_PHY_CONTROL_LINK_RESET
#define SMP_REPORT_ROUTING_INFORMATION
osGLOBAL void itdssTmTagNotFoundHandler(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, bit32 agIOInfoLen, void *agParam, bit32 agOtherInfo)
FORCEINLINE void itdssIOCompleted(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, bit32 agIOInfoLen, void *agParam, bit32 agOtherInfo)
osGLOBAL void itdssOpenCnxErrorBreakHandler(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, bit32 agIOInfoLen, void *agParam, bit32 agOtherInfo)
osGLOBAL void itdssOpenCnxErrorITNexusLossHandler(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, bit32 agIOInfoLen, void *agParam, bit32 agOtherInfo)
osGLOBAL void itdssPortInResetHandler(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, bit32 agIOInfoLen, void *agParam, bit32 agOtherInfo)
osGLOBAL void itdssXferErrorInvalidSSPRspFrameHandler(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, bit32 agIOInfoLen, void *agParam, bit32 agOtherInfo)
osGLOBAL void itdssIOResourceUnavailableHandler(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, bit32 agIOInfoLen, void *agParam, bit32 agOtherInfo)
osGLOBAL void itdssIOForDebugging1Completed(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, bit32 agIOInfoLen, void *agParam, bit32 agOtherInfo)
osGLOBAL void itdssOpenCnxErrorItNexusLossOpenTmoHandler(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, bit32 agIOInfoLen, void *agParam, bit32 agOtherInfo)
osGLOBAL void itdssOpenCnxErrorWrongDestinationHandler(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, bit32 agIOInfoLen, void *agParam, bit32 agOtherInfo)
osGLOBAL void itdssOpenCnxErrorUnknownErrorHandler(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, bit32 agIOInfoLen, void *agParam, bit32 agOtherInfo)
osGLOBAL void itdssIOForDebugging3Completed(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, bit32 agIOInfoLen, void *agParam, bit32 agOtherInfo)
osGLOBAL void itdssIONoDeviceHandler(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, bit32 agIOInfoLen, void *agParam, bit32 agOtherInfo)
osGLOBAL void itdssXferErrorCMDIssueACKNAKTimeoutHandler(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, bit32 agIOInfoLen, void *agParam, bit32 agOtherInfo)
osGLOBAL void itdssEncryptionHandler(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, bit32 agIOInfoLen, void *agParam, bit32 agOtherInfo)
osGLOBAL void itdssIOSuccessHandler(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, bit32 agIOInfoLen, void *agParam, bit32 agOtherInfo)
osGLOBAL void itdssIOAbortedHandler(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, bit32 agIOInfoLen, void *agParam, bit32 agOtherInfo)
osGLOBAL void itdssXferErrorBreakHandler(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, bit32 agIOInfoLen, void *agParam, bit32 agOtherInfo)
osGLOBAL void itdssXferErrorEOBDataOverrunHandler(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, bit32 agIOInfoLen, void *agParam, bit32 agOtherInfo)
osGLOBAL void itdssXferErrorPeerAbortedHandler(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, bit32 agIOInfoLen, void *agParam, bit32 agOtherInfo)
osGLOBAL void itdssIOForDebugging2Completed(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, bit32 agIOInfoLen, void *agParam, bit32 agOtherInfo)
osGLOBAL void itdssOpenCnxErrorItNexusLossOpenCollideHandler(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, bit32 agIOInfoLen, void *agParam, bit32 agOtherInfo)
osGLOBAL void itdssXferErrorACKNAKTimeoutHandler(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, bit32 agIOInfoLen, void *agParam, bit32 agOtherInfo)
osGLOBAL void itdssTaskCompleted(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, bit32 agIOInfoLen, void *agParam, bit32 agOtherInfo)
osGLOBAL void itdssSMPCompleted(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, bit32 agIOInfoLen, agsaFrameHandle_t agFrameHandle)
osGLOBAL void itdssSSPExtIUZeroLenHandler(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, bit32 agIOInfoLen, void *agParam, bit32 agOtherInfo)
osGLOBAL void itdssIODefaultHandler(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, bit32 agIOInfoLen, void *agParam, bit32 agOtherInfo)
osGLOBAL void itdssXferErrorPhyNotReadyHandler(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, bit32 agIOInfoLen, void *agParam, bit32 agOtherInfo)
osGLOBAL void itdssXferErrorCMDIssuePhyDownBeforeACKNAKHandler(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, bit32 agIOInfoLen, void *agParam, bit32 agOtherInfo)
osGLOBAL void itdssXferErrorDMAHandler(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, bit32 agIOInfoLen, void *agParam, bit32 agOtherInfo)
osGLOBAL void itdssIONotValidHandler(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, bit32 agIOInfoLen, void *agParam, bit32 agOtherInfo)
osGLOBAL void itdssIORQEBusyFullHandler(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, bit32 agIOInfoLen, void *agParam, bit32 agOtherInfo)
osGLOBAL void itdssIOFailedHandler(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, bit32 agIOInfoLen, void *agParam, bit32 agOtherInfo)
osGLOBAL void itdssXferOpenRetryBackoffThresholdReachedHandler(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, bit32 agIOInfoLen, void *agParam, bit32 agOtherInfo)
osGLOBAL void itdssXferErrorUnexpectedPhaseHandler(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, bit32 agIOInfoLen, void *agParam, bit32 agOtherInfo)
osGLOBAL void itdssIOUnderFlowHandler(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, bit32 agIOInfoLen, void *agParam, bit32 agOtherInfo)
osGLOBAL void itdssDifHandler(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, bit32 agIOInfoLen, void *agParam, bit32 agOtherInfo)
osGLOBAL void itdssProgErrorHandler(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, bit32 agIOInfoLen, void *agParam, bit32 agOtherInfo)
osGLOBAL void itdssIOAbortResetHandler(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, bit32 agIOInfoLen, void *agParam, bit32 agOtherInfo)
osGLOBAL void itdssDsInRecoveryHandler(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, bit32 agIOInfoLen, void *agParam, bit32 agOtherInfo)
osGLOBAL void itdssLinkFailureHandler(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, bit32 agIOInfoLen, void *agParam, bit32 agOtherInfo)
osGLOBAL void itdssOpenCnxErrorSTPResourceBusyHandler(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, bit32 agIOInfoLen, void *agParam, bit32 agOtherInfo)
osGLOBAL void itdssOpenCnxErrorBadDestinationHandler(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, bit32 agIOInfoLen, void *agParam, bit32 agOtherInfo)
osGLOBAL void itdssXferErrorOffsetMismatchHandler(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, bit32 agIOInfoLen, void *agParam, bit32 agOtherInfo)
osGLOBAL void itdssDsNonOperationalHandler(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, bit32 agIOInfoLen, void *agParam, bit32 agOtherInfo)
osGLOBAL void itdssXferErrorNAKReceivedHandler(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, bit32 agIOInfoLen, void *agParam, bit32 agOtherInfo)
osGLOBAL void itdssOpenCnxErrorZoneViolationHandler(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, bit32 agIOInfoLen, void *agParam, bit32 agOtherInfo)
osGLOBAL void itdssOpenCnxErrorOpenPreemptedHandler(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, bit32 agIOInfoLen, void *agParam, bit32 agOtherInfo)
osGLOBAL void itdssXferOpenRetryTimeoutHandler(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, bit32 agIOInfoLen, void *agParam, bit32 agOtherInfo)
osGLOBAL void itdssXferErrorRxFrameHandler(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, bit32 agIOInfoLen, void *agParam, bit32 agOtherInfo)
osGLOBAL void itdssOpenCnxErrorProtocolNotSupprotedHandler(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, bit32 agIOInfoLen, void *agParam, bit32 agOtherInfo)
osGLOBAL void itdssOpenCnxErrorItNexusLossOpenPathwayBlockedHandler(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, bit32 agIOInfoLen, void *agParam, bit32 agOtherInfo)
osGLOBAL void itdssOpenCnxErrorItNexusLossNoDestHandler(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, bit32 agIOInfoLen, void *agParam, bit32 agOtherInfo)
osGLOBAL void itdssXferErrorXferZeroDataLenHandler(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, bit32 agIOInfoLen, void *agParam, bit32 agOtherInfo)
osGLOBAL void itdssXferErrorCreditTimeoutHandler(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, bit32 agIOInfoLen, void *agParam, bit32 agOtherInfo)
osGLOBAL void itdssXferErrorCMDIssueBreakBeforeACKNAKHandler(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, bit32 agIOInfoLen, void *agParam, bit32 agOtherInfo)
osGLOBAL void itdssOpenCnxErrorConnectionRateNotSupportedHandler(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, bit32 agIOInfoLen, void *agParam, bit32 agOtherInfo)
osGLOBAL void itdssXferErrorDisruptedPhyDownHandler(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, bit32 agIOInfoLen, void *agParam, bit32 agOtherInfo)
osGLOBAL U32 ostiFreeMemory(tiRoot_t *ptiRoot, void *osMemHandle, U32 allocLength)
osGLOBAL U32 ostiAllocMemory(tiRoot_t *ptiRoot, void **osMemHandle, void **agVirtAddr, U32 *agPhysUpper32, U32 *agPhysLower32, U32 alignment, U32 allocLength, agBOOLEAN isCacheable)
void ostiInitiatorEvent(tiRoot_t *ptiRoot, tiPortalContext_t *ptiPortalContext, tiDeviceHandle_t *ptiDevHandle, tiIntrEventType_t eventType, U32 eventStatus, void *parm)
osGLOBAL bit32 ostiSetDeviceQueueDepth(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, bit32 QueueDepth)
void ostiInitiatorIOCompleted(tiRoot_t *ptiRoot, tiIORequest_t *ptiIORequest, tiIOStatus_t IOStatus, U32 statusDetail, tiSenseData_t *pSenseData, U32 context)
#define osti_memset(s, c, n)
The file defines the constants, data structure, and functions defined by LL API.
void * agsaFrameHandle_t
handle to access frame
#define SA_DS_OPERATIONAL
#define AGSA_CLEAR_TASK_SET
#define AGSA_SMP_INIT_REQ
#define AGSA_LOGICAL_UNIT_RESET
#define AGSA_TASK_MANAGEMENT_FUNCTION_COMPLETE
#define AGSA_ABORT_TASK_SET
#define AGSA_PHY_NOTIFY_ENABLE_SPINUP
#define AGSA_TASK_MANAGEMENT_FUNCTION_SUCCEEDED
#define OSSA_IO_XFER_ERROR_DMA
#define OSSA_IO_OPEN_CNX_ERROR_WRONG_DESTINATION
#define OSSA_IO_XFR_ERROR_CIPHER_MODE_INVALID
#define OSSA_IO_OPEN_CNX_ERROR_IT_NEXUS_LOSS_OPEN_COLLIDE
#define OSSA_MPI_ERR_IO_RESOURCE_UNAVAILABLE
#define OSSA_IO_XFR_ERROR_DEK_INDEX_OUT_OF_BOUNDS
#define OSSA_IO_TM_TAG_NOT_FOUND
#define OSSA_IO_DS_IN_RECOVERY
#define OSSA_IO_OPEN_CNX_ERROR_OPEN_PREEMPTED
#define OSSA_IO_DS_NON_OPERATIONAL
#define OSSA_IO_XFR_ERROR_INVALID_SSP_RSP_FRAME
#define OSSA_IO_OPEN_CNX_ERROR_IT_NEXUS_LOSS_OPEN_TMO
#define OSSA_IO_SSP_EXT_IU_ZERO_LEN_ERROR
#define OSSA_IO_XFER_ERROR_PHY_NOT_READY
#define OSSA_IO_XFR_ERROR_DEK_KEY_TAG_MISMATCH
#define OSSA_IO_XFR_ERROR_DIF_CRC_MISMATCH
#define OSSA_IO_XFR_ERROR_DEK_RAM_INTERFACE_ERROR
#define OSSA_IO_XFER_ERROR_UNEXPECTED_PHASE
#define OSSA_IO_OPEN_CNX_ERROR_BREAK
#define OSSA_IO_XFER_ERROR_OFFSET_MISMATCH
#define OSSA_IO_UNDERFLOW
#define OSSA_IO_ERROR_INTERNAL_SMP_RESOURCE
#define OSSA_IO_PORT_IN_RESET
#define OSSA_IO_XFER_ERROR_NAK_RECEIVED
#define OSSA_IO_XFER_ERROR_BREAK
#define OSSA_IO_XFR_ERROR_DIF_MISMATCH
#define OSSA_IO_XFR_ERROR_DEK_ILLEGAL_TABLE
#define OSSA_IO_XFER_ERROR_ACK_NAK_TIMEOUT
#define OSSA_IO_OPEN_CNX_ERROR_IT_NEXUS_LOSS_PATHWAY_BLOCKED
#define OSSA_IO_XFR_ERROR_DEK_KEY_CACHE_MISS
#define OSSA_IO_OPEN_CNX_ERROR_IT_NEXUS_LOSS
#define OSSA_IO_INVALID_LENGTH
#define OSSA_IO_ABORT_RESET
#define OSSA_IO_XFR_ERROR_DIF_APPLICATION_TAG_MISMATCH
#define OSSA_IO_XFER_OPEN_RETRY_TIMEOUT
#define OSSA_IO_XFER_ERR_EOB_DATA_OVERRUN
#define OSSA_IO_XFR_ERROR_DEK_IV_MISMATCH
#define OSSA_IO_OPEN_CNX_ERROR_PROTOCOL_NOT_SUPPORTED
#define OSSA_IO_OPEN_CNX_ERROR_IT_NEXUS_LOSS_OPEN_RETRY_BACKOFF_THRESHOLD_REACHED
#define OSSA_IO_OPEN_CNX_ERROR_ZONE_VIOLATION
#define OSSA_MPI_IO_RQE_BUSY_FULL
#define OSSA_IO_XFR_ERROR_INTERNAL_RAM
#define OSSA_IO_NO_DEVICE
#define OSSA_IO_OPEN_CNX_ERROR_BAD_DESTINATION
#define OSSA_IO_OPEN_CNX_ERROR_UNKNOWN_ERROR
#define OSSA_IO_XFR_ERROR_DIF_REFERENCE_TAG_MISMATCH
#define OSSA_IO_OPEN_CNX_ERROR_CONNECTION_RATE_NOT_SUPPORTED
#define OSSA_IO_OPEN_CNX_ERROR_IT_NEXUS_LOSS_NO_DEST
#define SA_SSPRESP_GET_RESPONSEDATALEN(pSSPResp)
#define SA_SSPRESP_GET_DATAPRES(pSSPResp)
#define SA_SSPRESP_GET_SENSEDATALEN(pSSPResp)
The file defines the declaration of tSDK APIs.
GLOBAL void saFrameReadBlock(agsaRoot_t *agRoot, agsaFrameHandle_t agFrame, bit32 frameOffset, void *frameBuffer, bit32 frameBufLen)
Read a block from a frame.
GLOBAL bit32 saSetDeviceInfo(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 queueNum, agsaDevHandle_t *agDevHandle, bit32 option, bit32 param, ossaSetDeviceInfoCB_t agCB)
Set Device Information.
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 saSMPStart(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 queueNum, agsaDevHandle_t *agDevHandle, bit32 agRequestType, agsaSASRequestBody_t *agRequestBody, ossaSMPCompletedCB_t agCB)
Start SMP request.
GLOBAL bit32 saSSPAbort(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 queueNum, agsaDevHandle_t *agDevHandle, bit32 flag, void *abortParam, ossaGenericAbortCB_t agCB)
Abort SSP request.
GLOBAL bit32 saSetDeviceState(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 queueNum, agsaDevHandle_t *agDevHandle, bit32 newDeviceState)
Set Device State.
GLOBAL bit32 saSSPStart(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 queueNum, agsaDevHandle_t *agDevHandle, bit32 agRequestType, agsaSASRequestBody_t *agRequestBody, agsaIORequest_t *agTMRequest, ossaSSPCompletedCB_t agCB)
Start SSP request.
The file defines the declaration of OS APIs.
GLOBAL void ossaSMPCompleted(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, bit32 agIOInfoLen, agsaFrameHandle_t agFrameHandle)
ossaSMPCompleted
GLOBAL FORCEINLINE void ossaSSPCompleted(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, bit32 agIOInfoLen, void *agParam, bit16 sspTag, bit32 agOtherInfo)
ossaSSPCompleted
#define OPEN_RETRY_RETRIES
data structure stores OS specific and LL specific context
data structure for SAS SSP IO reuqest body This structure contains IO related fields....
tiDeviceHandle_t * tiDevHandle
struct tdIORequestBody_s::@15::@17 SAS
tiIORequest_t * CurrentTaskTag
struct tdIORequestBody_s::@16::@20 InitiatorTMIO
union tdIORequestBody_s::@15 transport
union tdIORequestBody_s::@16 IOType
agsaIORequest_t agIORequest
tiIORequest_t * tiIORequest
agsaSASRequestBody_t agSASRequestBody
data structure for SAS/SATA context at TD layer
struct itdsaIni_s * itdsaIni
data structure for SAS device list This structure maintains the device as a list and information abou...
agsaDevHandle_t * agDevHandle
struct tdsaPortContext_s * tdPortContext
agsaDeviceInfo_t agDeviceInfo
tdsaTimerRequest_t DiscoverySMPTimer
data structure for TD port context This structure maintains information about the port such as ID add...
tdsaDiscovery_t discovery
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
data structure for SAS SMP reuqest body This structure contains IO related fields....
agsaSASRequestBody_t agSASRequestBody
void * IndirectSMPReqosMemHandle
tdsaPortContext_t * tdPortContext
void * IndirectSMPResposMemHandle
bit8 smpPayload[SMP_DIRECT_PAYLOAD_LIMIT]
tdsaDeviceData_t * tdDevice
tiIORequest_t * CurrentTaskTag
#define TD_MAX_NUM_NOTIFY_SPINUP
#define MAX_OUTSTANDING_IO_PER_LUN
void tdhexdump(const char *ptitle, bit8 *pbuf, int len)
osGLOBAL void tdsaPhyControlRespRcvd(tiRoot_t *tiRoot, agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, tdsaDeviceData_t *oneDeviceData, tdssSMPFrameHeader_t *frameHeader, agsaFrameHandle_t frameHandle, tiIORequest_t *CurrentTaskTag)
osGLOBAL void tdsaPhyControlFailureRespRcvd(tiRoot_t *tiRoot, agsaRoot_t *agRoot, tdsaDeviceData_t *oneDeviceData, tdssSMPFrameHeader_t *frameHeader, agsaFrameHandle_t frameHandle, tiIORequest_t *CurrentTaskTag)
FORCEINLINE bit32 tdsaRotateQnumber(tiRoot_t *tiRoot, tdsaDeviceData_t *oneDeviceData)
osGLOBAL void tdsaKillTimer(tiRoot_t *tiRoot, tdsaTimerRequest_t *timerRequest)
#define SCSI_STAT_CHECK_CONDITION
#define SCSI_STAT_CONDITION_MET
#define SCSI_STAT_TASK_ABORTED
@ tiDetailCipherModeInvalid
@ tiDetailDekRamInterfaceError
@ tiDetailDifAppTagMismatch
@ tiDetailDekKeyCacheMiss
@ tiDetailDifRefTagMismatch
@ tiDetailDekIndexOutofBounds
@ tiDetailOtherErrorNoRetry
#define SCSI_SENSE_KEY_RECOVERED_ERROR
#define SCSI_STAT_INTERMEDIATE
#define SCSI_SENSE_KEY_ABORTED_COMMAND
#define SCSI_SENSE_KEY_UNIT_ATTENTION
#define SCSI_SENSE_KEY_NOT_READY
#define SCSI_STAT_RESV_CONFLICT
#define SCSI_SENSE_KEY_HARDWARE_ERROR
#define SCSI_SENSE_KEY_ILLEGAL_REQUEST
#define SCSI_STAT_INTER_CONDIT_MET
#define SCSI_STAT_COMMANDTERMINATED
@ tiIntrEventTypeTaskManagement
#define SCSI_STAT_TASK_SET_FULL
#define SCSI_SENSE_KEY_MEDIUM_ERROR
#define SCSI_STAT_ACA_ACTIVE
union data structure specifies a request
agsaSSPInitiatorRequest_t sspInitiatorReq
agsaSSPScsiTaskMgntReq_t sspTaskMgntReq