63#ifdef INITIATOR_DRIVER
71#include <dev/pms/RefTisa/tisa/sassata/sas/tgt/ttdxchg.h>
83#if defined(SALLSDK_DEBUG)
90#ifdef SA_ENABLE_TRACE_FUNCTIONS
95#define siTraceFileID 'R'
112 TI_DBG6((
"ossaCacheInvalidate: start\n"));
128 TI_DBG6((
"ossaCacheFlush: start\n"));
145 TI_DBG6((
"ossaCachePreFlush: start\n"));
174 bit32 *hostAssignedDeviceId
199 TI_DBG1((
"ossaDeviceHandleAccept: start hostAssignedDeviceId 0x%X\n",*hostAssignedDeviceId));
202 if (agPortContext ==
agNULL)
204 TI_DBG1((
"ossaDeviceHandleAccept: NULL agsaPortContext; wrong\n"));
212 if (onePortContext ==
agNULL)
214 TI_DBG1((
"ossaDeviceHandleAccept: NULL oneportcontext; wrong\n"));
223 TI_DBG1((
"ossaDeviceHandleAccept: NULL tiPortalContext; wrong\n"));
236 TI_DBG4((
"ossaDeviceHandleAccept: pid %d\n", onePortContext->
id));
240 TI_DBG4((
"ossaDeviceHandleAccept: SAS_END_DEVICE\n"));
244 TI_DBG4((
"ossaDeviceHandleAccept: SAS_EDGE_EXPANDER_DEVICE\n"));
248 TI_DBG4((
"ossaDeviceHandleAccept: SAS_FANOUT_EXPANDER_DEVICE\n"));
269 if (oneDeviceData ==
agNULL)
271 TI_DBG1((
"ossaDeviceHandleAccept: NULL oneDeviceData; wrong\n"));
281 TI_DBG1((
"ossaDeviceHandleAccept: NULL tiDeviceHandle; wrong\n"));
291 *hostAssignedDeviceId |= 0xBEEF0000;
293 TI_DBG1((
"ossaDeviceHandleAccept: Now hostAssignedDeviceId 0x%X\n", *hostAssignedDeviceId));
318 param = (1 << 18) | (tdsaAllShared->MCN << 24);
319 TI_DBG1((
"ossaDeviceHandleAccept: option 0x%x param 0x%x MCN 0x%x\n", option, param, tdsaAllShared->MCN));
325#ifdef INITIATOR_DRIVER
331#ifdef INITIATOR_DRIVER
371 TI_DBG2((
"ossaDiscoverSasCB: start\n"));
373 if (agPortContext ==
agNULL)
375 TI_DBG1((
"ossaDiscoverSasCB: NULL agsaPortContext; wrong\n"));
386 TI_DBG3((
"ossaDiscoverSasCB: STARTED pid %d\n", onePortContext->id));
394 TI_DBG3((
"ossaDiscoverSasCB: loop did %d\n", oneDeviceData->id));
395 TI_DBG3((
"ossaDiscoverSasCB: loop sasAddressHi 0x%08x\n", oneDeviceData->SASAddressID.sasAddressHi));
396 TI_DBG6((
"ossaDiscoverSasCB: loop sasAddressLo 0x%08x\n", oneDeviceData->SASAddressID.sasAddressLo));
397 if (oneDeviceData->tdPortContext == onePortContext)
399 TI_DBG3((
"ossaDiscoverSasCB: did %d is invalidated \n", oneDeviceData->id));
402 DeviceListList = DeviceListList->flink;
410 TI_DBG4((
"ossaDiscoverSasCB: $$$$$ FOUND_DEVICE pid %d\n", onePortContext->id));
417 TI_DBG6((
"ossaDiscoverSasCB: phys %d\n", agDeviceInfo->numOfPhys));
418 TI_DBG4((
"ossaDiscoverSasCB: pid %d\n", onePortContext->id));
426 agSASSubID.initiator_ssp_stp_smp = agDeviceInfo->initiator_ssp_stp_smp;
427 agSASSubID.target_ssp_stp_smp = agDeviceInfo->target_ssp_stp_smp;
429 TI_DBG2((
"ossaDiscoverSasCB: adding ....\n"));
437 agDeviceInfo->phyIdentifier,
451 TI_DBG5((
"ossaDiscoverSasCB: $$$$$ not end device. not adding....\n"));
460 TI_DBG3((
"ossaDiscoverSasCB: REMOVED_DEVICE\n"));
465 TI_DBG6((
"ossaDiscoverSasCB: sasAddressHi 0x%08x\n",
467 TI_DBG6((
"ossaDiscoverSasCB: sasAddressLo 0x%08x\n",
469 TI_DBG6((
"ossaDiscoverSasCB: phys %d\n", agDeviceInfo->numOfPhys));
470 TI_DBG6((
"ossaDiscoverSasCB: onePortContext->id %d\n", onePortContext->id));
472 if (oneDeviceData ==
agNULL)
474 TI_DBG1((
"ossaDiscoverSasCB: Wrong. DevHandle->osData is NULL but is being removed\n"));
481 agDevHandle->osData =
agNULL;
496 TI_DBG2((
"ossaDiscoverSasCB: SAS COMPLETE pid %d\n", onePortContext->id));
505 TI_DBG6((
"ossaDiscoverSasCB: COMPLETE pid %d\n", onePortContext->id));
509 TI_DBG2((
"ossaDiscoverSasCB: calling SATA discovery\n"));
513 onePortContext->discoveryOptions);
517#ifdef TD_INTERNAL_DEBUG
524 TI_DBG2((
"ossaDiscoverSasCB: did %d valid %d\n", oneDeviceData->id, oneDeviceData->valid));
525 TI_DBG2((
"ossaDiscoverSasCB: device AddrHi 0x%08x\n", oneDeviceData->SASAddressID.sasAddressHi));
526 TI_DBG2((
"ossaDiscoverSasCB: device AddrLo 0x%08x\n", oneDeviceData->SASAddressID.sasAddressLo));
527 DeviceListList = DeviceListList->flink;
546 TI_DBG3((
"ossaDiscoverSasCB: ABORT\n"));
560 TI_DBG3((
"ossaDiscoverSasCB: ERROR 1\n"));
575 TI_DBG3((
"ossaDiscoverSasCB: ERROR 2\n"));
590 TI_DBG3((
"ossaDiscoverSasCB: ERROR 3\n"));
604 TI_DBG3((
"ossaDiscoverSasCB: ERROR 4\n"));
618 TI_DBG3((
"ossaDiscoverSasCB: ERROR 5\n"));
632 TI_DBG3((
"ossaDiscoverSasCB: ERROR 6\n"));
646 TI_DBG3((
"ossaDiscoverSasCB: ERROR 7\n"));
660 TI_DBG3((
"ossaDiscoverSasCB: ERROR 8\n"));
674 TI_DBG3((
"ossaDiscoverSasCB: ERROR 9\n"));
687 TI_DBG3((
"ossaDiscoverSasCB: ERROR default event 0x%x\n", event));
819 bit32 securitySetModeStatus;
820 bit32 securityModeStatus;
827 dmRoot_t *dmRoot = &(tdsaAllShared->dmRoot);
836 TI_DBG2((
"ossaHwCB: agPortContext %p event 0x%x eventParm1 0x%x eventParm2 %p eventParm3 %p\n",
837 agPortContext,event,eventParm1,eventParm2,eventParm3 ));
850 TI_DBG2((
"ossaHwCB: Phy%d SAS link Up\n", PhyID));
852 if (agPortContext ==
agNULL)
854 TI_DBG1((
"ossaHwCB: agPortContext null, wrong\n"));
858 if (agDevHandle ==
agNULL)
860 TI_DBG3((
"ossaHwCB: agDevHandle null by design change\n"));
865 TI_DBG1((
"ossaHwCB: IDframe null, wrong\n"));
870 if (LinkRate == 0x01)
872 TI_DBG1((
"ossaHwCB: SAS Link Rate is 1.5 Gbps PhyID %d\n",PhyID));
874 if (LinkRate == 0x02)
876 TI_DBG1((
"ossaHwCB: SAS Link Rate is 3.0 Gbps PhyID %d\n",PhyID));
878 if (LinkRate == 0x04)
880 TI_DBG1((
"ossaHwCB: SAS Link Rate is 6.0 Gbps PhyID %d\n",PhyID));
882 if (LinkRate == 0x08)
884 TI_DBG1((
"ossaHwCB: SAS Link Rate is 12.0 Gbps PhyID %d\n",PhyID));
889 TI_DBG1((
"ossaHwCB: Wrong port state with SAS link up\n"));
896 TI_DBG6 ((
"ossaHwCB: PhyID %d tdsaAllShared %p\n", PhyID, tdsaAllShared));
899 TI_DBG6((
"ossaHwCB: NULL portalcontext\n"));
903 TI_DBG6((
"ossaHwCB: NOT NULL portalcontext\n"));
908 TI_DBG1((
"ossaHwCB: IDFrame is NULL; SATA !!!!\n"));
912 TI_DBG3((
"ossaHwCB: IDframe->sasAddressHi 0x%08x \n",
914 TI_DBG3((
"ossaHwCB: IDframe->sasAddressLo 0x%08x \n",
930 TI_DBG2((
"ossaHwCB: pid %d\n", onePortContext->id));
931 TI_DBG6((
"ossaHwCB: onePortContext %p\n", onePortContext));
932 if (onePortContext ==
agNULL)
934 TI_DBG1((
"ossaHwCB: onePortContext is NULL in allocation, wrong!\n"));
939#ifdef INITIATOR_DRIVER
943 onePortContext->PhyIDList[PhyID] =
agTRUE;
946 onePortContext->sasRemoteAddressHi = 0xFFFFFFFF;
947 onePortContext->sasRemoteAddressLo = 0xFFFFFFFF;
948 onePortContext->directAttatchedSAS =
agTRUE;
959 onePortContext->directAttatchedSAS =
agTRUE;
966 onePortContext->UseDM =
agTRUE;
974 onePortContext->agRoot = agRoot;
975 onePortContext->agPortContext = agPortContext;
977 agPortContext->
osData = onePortContext;
978 onePortContext->valid =
agTRUE;
979 if (LinkRate == 0x01)
983 else if (LinkRate == 0x02)
987 else if (LinkRate == 0x04)
1000 dmPortContext = &(onePortContext->dmPortContext);
1001 dmPortContext->
tdData = onePortContext;
1005 PORTINFO_PUT_SAS_LOCAL_ADDRESSLO(&dmPortInfo, onePortContext->
sasLocalAddressLo);
1006 PORTINFO_PUT_SAS_LOCAL_ADDRESSHI(&dmPortInfo, onePortContext->
sasLocalAddressHi);
1008 TI_DBG2((
"ossaHwCB: phy %d hi 0x%x lo 0x%x\n", PhyID,
1011 TI_DBG2((
"ossaHwCB: LocalAddrHi 0x%08x LocaAddrLo 0x%08x\n", onePortContext->sasLocalAddressHi, onePortContext->sasLocalAddressLo));
1013 dmPortInfo.
flag = onePortContext->LinkRate;
1015 if (onePortContext->UseDM ==
agTRUE)
1017 TI_DBG1((
"ossaHwCB: calling dmCreatePort\n"));
1021 TI_DBG1((
"ossaHwCB: dmCreatePort failed!!! 0x%x\n",
status));
1030 TI_DBG1((
"\nossaHwCB: Attention!!! no more free PortContext.\n"));
1032#ifdef TD_INTERNAL_DEBUG
1040#ifdef TD_INTERNAL_DEBUG
1041 PortContextList = tdsaPortContext->MainLink.flink;
1042 while (PortContextList != &(tdsaPortContext->MainLink))
1045 TI_DBG6((
"ossaHwCB: in while portContext ID %d\n", twoPortContext->id));
1046 TI_DBG6((
"ossaHwCB: in while PortContext %p\n", twoPortContext));
1047 PortContextList = PortContextList->flink;
1053#ifdef INITIATOR_DRIVER
1056 agSASSubID.initiator_ssp_stp_smp = IDframe->initiator_ssp_stp_smp;
1057 agSASSubID.target_ssp_stp_smp = IDframe->target_ssp_stp_smp;
1060 TI_DBG2((
"ossaHwCB: adding ....\n"));
1062#ifdef INITIATOR_DRIVER
1078 TI_DBG2((
"ossaHwCB: NOTIFY_ENABLE_SPINUP PhyID %d \n", PhyID));
1087 tdsaUpdateMCN(dmRoot, onePortContext);
1091 TI_DBG1((
"ossaHwCB: target, link up PhyID 0x%x\n",PhyID));
1104 TI_DBG5((
"ossaHwCB: $$$$$ not end device. not adding....\n"));
1146 TI_DBG2((
"ossaHwCB: SAS existing portcontext returned\n"));
1149 if (onePortContext ==
agNULL)
1151 TI_DBG1((
"ossaHwCB: onePortContext is NULL, wrong!\n"));
1154 if (onePortContext->valid ==
agFALSE)
1157 TI_DBG2((
"ossaHwCB: SAS allocating port context\n"));
1165 TI_DBG2((
"ossaHwCB: allocating pid %d\n", onePortContext->id));
1166 TI_DBG6((
"ossaHwCB: allocating onePortContext %p\n", onePortContext));
1167 if (onePortContext ==
agNULL)
1169 TI_DBG1((
"ossaHwCB: onePortContext is NULL in allocation, wrong!\n"));
1173#ifdef INITIATOR_DRIVER
1177 onePortContext->PhyIDList[PhyID] =
agTRUE;
1180 onePortContext->sasRemoteAddressHi = 0xFFFFFFFF;
1181 onePortContext->sasRemoteAddressLo = 0xFFFFFFFF;
1182 onePortContext->directAttatchedSAS =
agTRUE;
1193 onePortContext->directAttatchedSAS =
agTRUE;
1200 onePortContext->agRoot = agRoot;
1201 onePortContext->agPortContext = agPortContext;
1203 agPortContext->
osData = onePortContext;
1204 onePortContext->valid =
agTRUE;
1205 if (LinkRate == 0x01)
1209 else if (LinkRate == 0x02)
1213 else if (LinkRate == 0x04)
1228 TI_DBG1((
"\nossaHwCB: Attention!!! no more free PortContext.\n"));
1236 TI_DBG2((
"ossaHwCB: SAS already allocated port context\n"));
1239 TI_DBG1((
"ossaHwCB: wrong!!! null tdsaPortContext list\n"));
1243 if (onePortContext ==
agNULL)
1245 TI_DBG1((
"ossaHwCB: wrong !!! No corressponding tdsaPortContext\n"));
1250 TI_DBG2((
"ossaHwCB: existing pid %d\n", onePortContext->id));
1253 TI_DBG1((
"ossaHwCB: existing allshared pid is NULL\n"));
1260 onePortContext->PhyIDList[PhyID] =
agTRUE;
1265 TI_DBG2((
"ossaHwCB: NOTIFY_ENABLE_SPINUP PhyID %d \n", PhyID));
1274 tdsaUpdateMCN(dmRoot, onePortContext);
1277 onePortContext->SeenLinkUp =
agTRUE;
1282#ifdef INITIATOR_DRIVER
1291 TI_DBG2((
"ossaHwCB: Phy%d SATA link Up\n", PhyID));
1293 if (agDevHandle ==
agNULL)
1295 TI_DBG3((
"ossaHwCB: agDevHandle null by design change\n"));
1300 TI_DBG1((
"ossaHwCB: RegD2H null, wrong\n"));
1306 TI_DBG2((
"ossaHwCB: agDevHandle %p\n", agDevHandle));
1308 TI_DBG2((
"ossaHwCB: Sector Count %d\n", RegD2H->d.sectorCount));
1309 TI_DBG2((
"ossaHwCB: LBA LOW %d\n", RegD2H->d.lbaLow));
1310 TI_DBG2((
"ossaHwCB: LBA MID %d\n", RegD2H->d.lbaMid));
1311 TI_DBG2((
"ossaHwCB: LBA HIGH %d\n", RegD2H->d.lbaHigh));
1312 TI_DBG2((
"ossaHwCB: DEVICE %d\n", RegD2H->d.device));
1315 if (LinkRate == 0x01)
1317 TI_DBG1((
"ossaHwCB: SATA Link Rate is 1.5 Gbps PhyID %d\n",PhyID));
1319 if (LinkRate == 0x02)
1321 TI_DBG1((
"ossaHwCB: SATA Link Rate is 3.0 Gbps PhyID %d\n",PhyID));
1323 if (LinkRate == 0x04)
1325 TI_DBG1((
"ossaHwCB: SATA Link Rate is 6.0 Gbps PhyID %d\n",PhyID));
1327 if (LinkRate == 0x08)
1329 TI_DBG1((
"ossaHwCB: SATA Link Rate is 12.0 Gbps PhyID %d\n",PhyID));
1334 TI_DBG1((
"ossaHwCB: Wrong port state with SATA link up\n"));
1341 TI_DBG6 ((
"ossaHwCB: PhyID %d tdsaAllShared %p\n", PhyID, tdsaAllShared));
1348 TI_DBG2((
"ossaHwCB: pid %d\n", onePortContext->id));
1349 TI_DBG6((
"ossaHwCB: onePortContext %p\n", onePortContext));
1350 if (onePortContext ==
agNULL)
1352 TI_DBG1((
"ossaHwCB: onePortContext is NULL in allocation, wrong!\n"));
1359 onePortContext->PhyIDList[PhyID] =
agTRUE;
1361 onePortContext->sasRemoteAddressHi = 0xFFFFFFFF;
1362 onePortContext->sasRemoteAddressLo = 0xFFFFFFFF;
1364 onePortContext->remoteSignature[0] = RegD2H->d.sectorCount;
1365 onePortContext->remoteSignature[1] = RegD2H->d.lbaLow;
1366 onePortContext->remoteSignature[2] = RegD2H->d.lbaMid;
1367 onePortContext->remoteSignature[3] = RegD2H->d.lbaHigh;
1368 onePortContext->remoteSignature[4] = RegD2H->d.device;
1373 onePortContext->agRoot = agRoot;
1374 onePortContext->agPortContext = agPortContext;
1376 agPortContext->
osData = onePortContext;
1377 onePortContext->nativeSATAMode =
agTRUE;
1378 onePortContext->valid =
agTRUE;
1379 if (LinkRate == 0x01)
1383 else if (LinkRate == 0x02)
1387 else if (LinkRate == 0x04)
1403 TI_DBG1((
"\nossaHwCB: Attention!!! no more free PortContext.\n"));
1439 TI_DBG1((
"ossaHwCB: SATA existing portcontext returned. need testing\n"));
1442 if (onePortContext->valid ==
agFALSE)
1445 TI_DBG2((
"ossaHwCB: SATA allocating port context\n"));
1450 TI_DBG1((
"ossaHwCB: Wrong!!! SATA already allocated port context\n"));
1461 TI_DBG2((
"ossaHwCB: pid %d\n", onePortContext->id));
1462 TI_DBG6((
"ossaHwCB: onePortContext %p\n", onePortContext));
1463 if (onePortContext ==
agNULL)
1465 TI_DBG1((
"ossaHwCB: onePortContext is NULL in allocation, wrong!\n"));
1472 onePortContext->PhyIDList[PhyID] =
agTRUE;
1474 onePortContext->sasRemoteAddressHi = 0xFFFFFFFF;
1475 onePortContext->sasRemoteAddressLo = 0xFFFFFFFF;
1477 onePortContext->remoteSignature[0] = RegD2H->d.sectorCount;
1478 onePortContext->remoteSignature[1] = RegD2H->d.lbaLow;
1479 onePortContext->remoteSignature[2] = RegD2H->d.lbaMid;
1480 onePortContext->remoteSignature[3] = RegD2H->d.lbaHigh;
1481 onePortContext->remoteSignature[4] = RegD2H->d.device;
1486 onePortContext->agRoot = agRoot;
1487 onePortContext->agPortContext = agPortContext;
1489 agPortContext->
osData = onePortContext;
1490 onePortContext->nativeSATAMode =
agTRUE;
1491 onePortContext->valid =
agTRUE;
1492 if (LinkRate == 0x01)
1496 else if (LinkRate == 0x02)
1500 else if (LinkRate == 0x04)
1516 TI_DBG1((
"\nossaHwCB: Attention!!! no more free PortContext.\n"));
1543 TI_DBG2((
"ossaHwCB: spinup hold PhyID %d\n", PhyID));
1557 TI_DBG2((
"ossaHwCB: Phy%d link Down\n", PhyID));
1559 if (agPortContext ==
agNULL)
1561 TI_DBG1((
"ossaHwCB: agPortContext null, wrong\n"));
1569 TI_DBG1((
"ossaHwCB: NULL portalcontext. Error. Can't be NULL\n"));
1573 TI_DBG3((
"ossaHwCB: NOT NULL portalcontext\n"));
1575 if (onePortContext ==
agNULL)
1577 TI_DBG1((
"ossaHwCB: wrong !!! No corressponding tdsaPortContext\n"));
1581 onePortContext->PhyIDList[PhyID] =
agFALSE;
1584 if (onePortContext->PhyIDList[i] ==
agTRUE)
1586 TI_DBG3((
"ossaHwCB: Phy %d is still up\n", i));
1593 if (AllPhyDown ==
agTRUE)
1596 TI_DBG1((
"ossaHwCB: calling tiPortLinkDown\n"));
1601 (
void *)onePortContext->tiPortalContext
1612 tdsaUpdateMCN(dmRoot, onePortContext);
1621 TI_DBG2((
"ossaHwCB: phy Down and OSSA_PORT_LOSTCOMM\n"));
1629 onePortContext->eventPhyID = PhyID;
1631 onePortContext->valid =
agFALSE;
1636 TI_DBG2((
"ossaHwCB: phy Down and OSSA_PORT_IN_RESET\n"));
1644 onePortContext->eventPhyID = PhyID;
1646 onePortContext->valid =
agFALSE;
1651 TI_DBG1((
"ossaHwCB: Last phy Down and port invalid OSSA_PORT_INVALID\n"));
1664 onePortContext->eventPhyID = PhyID;
1666 onePortContext->valid =
agFALSE;
1668 TI_DBG2((
"ossaHwCB: pid %d\n", onePortContext->id));
1669#ifdef INITIATOR_DRIVER
1675 (
void *)onePortContext->tiPortalContext
1684 (
void *)onePortContext->tiPortalContext
1689#ifdef INITIATOR_DRIVER
1690 tdssReportRemovals(agRoot,
1696 ttdssReportRemovals(agRoot,
1706 if (onePortContext->PhyIDList[i] ==
agTRUE)
1719 TI_DBG2((
"ossaHwCB: portstate 0x%x\n", PortState));
1729 TI_DBG6((
"ossaHwCB: OSSA_HW_EVENT_PHY_START_STATUS\n"));
1730 if (PhyStatus == 0x00)
1732 TI_DBG6((
"ossaHwCB: OSSA_HW_EVENT_PHY_START_STATUS, SUCCESS\n"));
1734 else if (PhyStatus == 0x01)
1736 TI_DBG1((
"ossaHwCB: OSSA_HW_EVENT_PHY_START_STATUS, INVALID_PHY\n"));
1738 else if (PhyStatus == 0x02)
1740 TI_DBG1((
"ossaHwCB: OSSA_HW_EVENT_PHY_START_STATUS, PHY_NOT_DISABLED\n"));
1744 TI_DBG1((
"ossaHwCB: OSSA_HW_EVENT_PHY_START_STATUS, OTHER_FAILURE %d\n", PhyStatus));
1755 TI_DBG2((
"ossaHwCB: OSSA_HW_EVENT_PHY_STOP_STATUS\n"));
1756 if (PhyStatus == 0x00)
1758 TI_DBG1((
"ossaHwCB: OSSA_HW_EVENT_PHY_STOP_STATUS, SUCCESS\n"));
1761 if (onePortContext ==
agNULL)
1763 TI_DBG1((
"ossaHwCB: onePortContext is null, wrong!!!\n"));
1766 onePortContext->PhyIDList[PhyID] =
agFALSE;
1769 TI_DBG1((
"ossaHwCB: OSSA_PORT_INVALID\n"));
1771 onePortContext->eventPhyID = PhyID;
1772 onePortContext->valid =
agFALSE;
1774 TI_DBG2((
"ossaHwCB: pid %d\n", onePortContext->id));
1775#ifdef INITIATOR_DRIVER
1781 (
void *)onePortContext->tiPortalContext
1790 (
void *)onePortContext->tiPortalContext
1795#ifdef INITIATOR_DRIVER
1796 tdssReportRemovals(agRoot,
1802 ttdssReportRemovals(agRoot,
1812 if (onePortContext->PhyIDList[i] ==
agTRUE)
1822 else if (PhyStatus == 0x01)
1824 TI_DBG1((
"ossaHwCB: OSSA_HW_EVENT_PHY_STOP_STATUS, INVALID_PHY\n"));
1826 else if (PhyStatus == 0x02)
1828 TI_DBG1((
"ossaHwCB: OSSA_HW_EVENT_PHY_STOP_STATUS, DEVICES_ATTACHED\n"));
1830 else if (PhyStatus == 0x03)
1832 TI_DBG1((
"ossaHwCB: OSSA_HW_EVENT_PHY_STOP_STATUS, OTHER_FAILURE\n"));
1834 else if (PhyStatus == 0x04)
1836 TI_DBG1((
"ossaHwCB: OSSA_HW_EVENT_PHY_STOP_STATUS, PHY_NOT_DISABLED\n"));
1840 TI_DBG1((
"ossaHwCB: OSSA_HW_EVENT_PHY_STOP_STATUS, Unknown %d\n", PhyStatus));
1848 TI_DBG2((
"ossaHwCB: RESET_START, status %d\n", new_status));
1852 TI_DBG2((
"ossaHwCB: RESET_START, SUCCESS\n"));
1856 TI_DBG1((
"ossaHwCB: RESET_START, FAILURE\n"));
1860 TI_DBG1((
"ossaHwCB: RESET_START, PENDING\n"));
1868#ifdef SOFT_RESET_TEST
1869 DbgPrint(
"Reset Complete\n");
1871 TI_DBG1((
"ossaHwCB: OSSA_HW_EVENT_RESET_COMPLETE, status %d\n", new_status));
1875#ifdef INITIATOR_DRIVER
1912 TI_DBG1((
"ossaHwCB: OSSA_HW_EVENT_PHY_ERR_INBOUND_CRC from PhyID %d; to be tested\n", PhyID));
1916 TI_DBG1((
"ossaHwCB: Wrong port state with OSSA_HW_EVENT_PHY_ERR_INBOUND_CRC\n"));
1921 if (agPhyErrCountersPage !=
agNULL)
1923 TI_DBG2((
"ossaHwCB: OSSA_HW_EVENT_PHY_ERR_INBOUND_CRC from PhyID %d\n", PhyID));
1924 TI_DBG1((
"ossaHwCB: iDw %d rDE %d cV %d lS %d rP %d iCRC %d\n",
1925 agPhyErrCountersPage->invalidDword,
1926 agPhyErrCountersPage->runningDisparityError,
1927 agPhyErrCountersPage->codeViolation,
1928 agPhyErrCountersPage->lossOfDwordSynch,
1929 agPhyErrCountersPage->phyResetProblem,
1930 agPhyErrCountersPage->inboundCRCError ));
1934 TI_DBG1((
"ossaHwCB: OSSA_HW_EVENT_PHY_ERR_INBOUND_CRC: Error!!! eventParm2 is NULL\n"));
1938 eventSource.agPortContext = agPortContext;
1941 eventSource.param = PhyID;
1952 TI_DBG1((
"ossaHwCB: failing in saHwEventAck; status %d\n", HwAckSatus));
1959 case OSSA_HW_EVENT_PORT_INVALID:
1961 TI_DBG1((
"ossaHwCB: PORT_INVALID\n"));
1963 if ( agPortContext ==
agNULL)
1965 TI_DBG1((
"ossaHwCB: agPortContext is NULL, wrong.\n"));
1971 TI_DBG1((
"ossaHwCB: NOT NULL osDATA\n"));
1976 TI_DBG1((
"ossaHwCB: pid %d\n", onePortContext->id));
1978#ifdef INITIATOR_DRIVER
1984 (
void *)onePortContext->tiPortalContext
1993 (
void *)onePortContext->tiPortalContext
2002#ifdef INITIATOR_DRIVER
2005 tdssReportRemovals(agRoot,
2011 onePortContext->DiscoveryRdyGiven =
agFALSE;
2012 onePortContext->SeenLinkUp =
agFALSE;
2023 if (onePortContext->PhyIDList[i] ==
agTRUE)
2032 onePortContext->PhyIDList[i] =
agFALSE;
2037 onePortContext->agPortContext =
agNULL;
2038 onePortContext->valid =
agFALSE;
2040 TI_DBG4((
"ossaHwCB: pid %d count %d\n", onePortContext->id, onePortContext->Count));
2043 onePortContext->Count = 0;
2044 onePortContext->discovery.pendingSMP = 0;
2045 onePortContext->discovery.SeenBC =
agFALSE;
2060 TI_DBG1((
"ossaHwCB: NULL osDATA: wrong\n"));
2062 TI_DBG6((
"ossaHwCB: PORT_INVALID end\n"));
2071 TI_DBG1((
"ossaHwCB: BROADCAST_CHANGE from PhyID %d\n", PhyID));
2075 TI_DBG1((
"ossaHwCB: Wrong port state with BROADCAST_CHANGE\n"));
2080 eventSource.agPortContext = agPortContext;
2083 eventSource.param = PhyID;
2092 TI_DBG4((
"ossaHwCB: calling saHwEventAck\n"));
2096 TI_DBG1((
"ossaHwCB: failing in saHwEventAck; status %d\n", HwAckSatus));
2102 TI_DBG1((
"ossaHwCB: BROADCAST_CHANGE received for SATA Controller\n"));
2111 if (agPortContext ==
agNULL)
2114 TI_DBG2((
"ossaHwCB: agPortContext is NULL. Do nothing.\n"));
2118 dmRoot = &(tdsaAllShared->dmRoot);
2120 dmPortContext = &(onePortContext->dmPortContext);
2132 TI_DBG2((
"ossaHwCB: portcontext pid %d\n", onePortContext->id));
2137 TI_DBG1((
"ossaHwCB: BROADCAST_CHANGE; calling dmNotifyBC and does incremental discovery\n"));
2144 TI_DBG2((
"ossaHwCB: pid %d BROADCAST_CHANGE; updating SeenBC. calling dmNotifyBC\n", onePortContext->id));
2150 TI_DBG1((
"ossaHwCB: BROADCAST_CHANGE NULL osDATA wrong !!! \n"));
2157 if (agPortContext ==
agNULL)
2160 TI_DBG2((
"ossaHwCB: agPortContext is NULL. Do nothing.\n"));
2164 dmRoot = &(tdsaAllShared->dmRoot);
2166 dmPortContext = &(onePortContext->dmPortContext);
2170 TI_DBG2((
"ossaHwCB: portcontext pid %d\n", onePortContext->id));
2175 TI_DBG1((
"ossaHwCB: BROADCAST_CHANGE; calling dmNotifyBC and does incremental discovery, pid %d\n", onePortContext->id));
2181 else if (onePortContext->DMDiscoveryState ==
dmDiscFailed )
2183 TI_DBG1((
"ossaHwCB: dmDiscFailed; pid %d BROADCAST_CHANGE; updating SeenBC. calling dmNotifyBC\n", onePortContext->id));
2184 onePortContext->DiscFailNSeenBC =
agTRUE;
2189 TI_DBG2((
"ossaHwCB: pid %d BROADCAST_CHANGE; updating SeenBC. calling dmNotifyBC\n", onePortContext->id));
2195 TI_DBG1((
"ossaHwCB: BROADCAST_CHANGE NULL osDATA wrong !!! \n"));
2200 if (agPortContext ==
agNULL)
2203 TI_DBG2((
"ossaHwCB: agPortContext is NULL. Do nothing.\n"));
2208 TI_DBG2((
"ossaHwCB: calling dmNotifyBC\n"));
2209 dmRoot = &(tdsaAllShared->dmRoot);
2210 dmPortContext = &(onePortContext->dmPortContext);
2216#ifdef INITIATOR_DRIVER
2217 if (agPortContext ==
agNULL)
2220 TI_DBG2((
"ossaHwCB: agPortContext is NULL. Do nothing.\n"));
2225 TI_DBG2((
"ossaHwCB: portcontext pid %d\n", onePortContext->id));
2228 TI_DBG1((
"ossaHwCB: BROADCAST_CHANGE; does incremental discovery\n"));
2232 onePortContext->discovery.SeenBC =
agFALSE;
2235 onePortContext->discovery.ResetTriggerred ==
agTRUE)
2237 TI_DBG2((
"ossaHwCB: tdsaBCTimer\n"));
2238 tdsaBCTimer(
tiRoot, onePortContext);
2245 TDSA_DISCOVERY_TYPE_SAS,
2246 TDSA_DISCOVERY_OPTION_INCREMENTAL_START
2253 onePortContext->discoveryOptions);
2258 TI_DBG2((
"ossaHwCB: pid %d BROADCAST_CHANGE; updating SeenBC. Do nothing.\n", onePortContext->id));
2259 onePortContext->discovery.SeenBC =
agTRUE;
2264 TI_DBG1((
"ossaHwCB: BROADCAST_CHANGE NULL osDATA wrong !!! \n"));
2283 TI_DBG2((
"ossaHwCB: OSSA_HW_EVENT_PORT_RECOVERY_TIMER_TMO\n"));
2287 TI_DBG1((
"ossaHwCB: Wrong port state\n"));
2292 TD_ASSERT(agPortContext,
"agPortContext");
2296 TI_DBG1((
"ossaHwCB: NULL portalcontext. Error. Can't be NULL\n"));
2301 onePortContext->valid =
agFALSE;
2303 TI_DBG1((
"ossaHwCB: tiPortStopped pid %d\n", onePortContext->id));
2304#ifdef INITIATOR_DRIVER
2310 (
void *)onePortContext->tiPortalContext
2319 (
void *)onePortContext->tiPortalContext
2324#ifdef INITIATOR_DRIVER
2325 tdssReportRemovals(agRoot,
2331 ttdssReportRemovals(agRoot,
2340 if (onePortContext->PhyIDList[i] ==
agTRUE)
2361 TI_DBG2((
"ossaHwCB: OSSA_HW_EVENT_PORT_RESET_TIMER_TMO\n"));
2365 TI_DBG1((
"ossaHwCB: Wrong port state\n"));
2370 if (agPortContext ==
agNULL)
2372 TI_DBG1((
"ossaHwCB: agPortContext is NULL, error\n"));
2380 TI_DBG1((
"ossaHwCB: NULL portalcontext. Error. Can't be NULL\n"));
2385 onePortContext->valid =
agFALSE;
2387 TI_DBG1((
"ossaHwCB: pid %d tiPortStopped\n", onePortContext->id));
2389#ifdef INITIATOR_DRIVER
2395 (
void *)onePortContext->tiPortalContext
2404 (
void *)onePortContext->tiPortalContext
2409#ifdef INITIATOR_DRIVER
2410 tdssReportRemovals(agRoot,
2416 ttdssReportRemovals(agRoot,
2425 if (onePortContext->PhyIDList[i] ==
agTRUE)
2440#ifdef INITIATOR_DRIVER
2445 smRoot_t *smRoot = &(tdsaAllShared->smRoot);
2455 TI_DBG1((
"ossaHwCB: OSSA_HW_EVENT_PORT_RESET_COMPLETE, phyID %d\n", PhyID));
2460 TI_DBG1((
"ossaHwCB: Wrong port state\n"));
2465 if (agPortContext ==
agNULL)
2467 TI_DBG1((
"ossaHwCB: agPortContext null, wrong\n"));
2473 TI_DBG1((
"ossaHwCB: agPortContext->osData null, wrong\n"));
2481 if (onePortContext ==
agNULL)
2483 TI_DBG1((
"ossaHwCB: oneportContext is NULL; wrong??????\n"));
2487 TI_DBG1((
"ossaHwCB: oneportContext %p pid %d\n", onePortContext, onePortContext->id));
2488 onePortContext->valid =
agTRUE;
2489#ifdef INITIATOR_DRIVER
2497 if (oneDeviceData->tdPortContext != onePortContext)
2499 DeviceListList = DeviceListList->flink;
2513 tdIDStart(
tiRoot, agRoot, smRoot, oneDeviceData, onePortContext);
2521 TI_DBG1((
"ossaHwCB: no onedevicedata found!\n"));
2530 if ( oneDeviceData ==
agNULL)
2532 TI_DBG1((
"ossaHwCB: oneDeviceData is NULL!!!\n"));
2536 if ( (oneDeviceData->tdPortContext == onePortContext) &&
2537 (oneDeviceData->directlyAttached ==
agTRUE) &&
2538 (oneDeviceData->phyID == PhyID) )
2540 TI_DBG1((
"ossaHwCB: found the onePortContext and oneDeviceData!!\n"));
2543 if (currentTaskTag !=
agNULL )
2550 if (SMTMtdIORequestBody !=
agNULL)
2561 TI_DBG1((
"ossaHwCB: SATA device but SMTMtdIORequestBody is NULL!!!\n"));
2568 oneDeviceData->agDevHandle,
2583 TI_DBG1((
"ossaHwCB: currentTaskTag is NULL!!!\n"));
2590 DeviceListList = DeviceListList->flink;
2602 TI_DBG2((
"ossaHwCB: OSSA_HW_EVENT_BROADCAST_ASYNCH_EVENT\n"));
2605 TI_DBG1((
"ossaHwCB: BROADCAST_ASYNCH_EVENT received for SATA Controller\n"));
2608 if (agPortContext ==
agNULL)
2610 TI_DBG1((
"ossaHwCB: Error!!! agPortContext is NULL %d\n", PhyID));
2615 if (onePortContext ==
agNULL)
2617 TI_DBG1((
"ossaHwCB: Error!!! onePortContext is NULL %d\n", PhyID));
2622 if (onePortContext->tiPortalContext !=
agNULL)
2627 onePortContext->tiPortalContext,
2637 TI_DBG1((
"ossaHwCB: Error!!! onePortContext->tiPortalContext is NULL\n"));
2649 if (agPortContext ==
agNULL)
2651 TI_DBG1((
"ossaHwCB: Error!!! agPortContext is NULL %d\n", PhyID));
2668 TI_DBG2((
"ossaHwCB: OSSA_HW_EVENT_PORT_RECOVER, phyID %d\n", PhyID));
2672 TI_DBG1((
"ossaHwCB: Wrong port state\n"));
2679 TI_DBG1((
"ossaHwCB: NULL portalcontext. Error. Can't be NULL\n"));
2684 TI_DBG2((
"ossaHwCB: pid %d\n", onePortContext->id));
2685 onePortContext->PhyIDList[PhyID] =
agTRUE;
2686 onePortContext->valid =
agTRUE;
2689 onePortContext->PortRecoverPhyID = PhyID;
2690 if (LinkRate == 0x01)
2694 else if (LinkRate == 0x02)
2698 else if (LinkRate == 0x04)
2710 TI_DBG2((
"ossaHwCB: OSSA_HW_EVENT_PORT_RECOVER, sending spinup on phyID %d\n", PhyID));
2718 if (onePortContext->Transient ==
agTRUE && onePortContext->RegisteredDevNums == 0)
2720 TI_DBG2((
"ossaHwCB: OSSA_HW_EVENT_PORT_RECOVER transient period"));
2723#ifdef INITIATOR_DRIVER
2726 agSASSubID.initiator_ssp_stp_smp = IDframe->initiator_ssp_stp_smp;
2727 agSASSubID.target_ssp_stp_smp = IDframe->target_ssp_stp_smp;
2739 onePortContext->Transient =
agFALSE;
2754 TI_DBG2((
"ossaHwCB: BROADCAST_SES from PhyID %d; to be tested\n", PhyID));
2757 TI_DBG1((
"ossaHwCB: BROADCAST_SES received for SATA Controller\n"));
2762 TI_DBG1((
"ossaHwCB: Wrong port state with BROADCAST_SES\n"));
2777 TI_DBG2((
"ossaHwCB: BROADCAST_EXP from PhyID %d; to be tested\n", PhyID));
2780 TI_DBG1((
"ossaHwCB: BROADCAST_EXP received for SATA Controller\n"));
2786 TI_DBG1((
"ossaHwCB: Wrong port state with BROADCAST_EXP\n"));
2801 TI_DBG2((
"ossaHwCB: HARD_RESET_RECEIVED from PhyID %d\n", PhyID));
2805 TI_DBG1((
"ossaHwCB: calling saPortControl and OSSA_PORT_VALID\n"));
2810 TI_DBG1((
"ossaHwCB: calling saPortControl and OSSA_PORT_3RDPARTY_RESET\n"));
2815 TI_DBG1((
"ossaHwCB: Error. Port state is invalid\n"));
2817 TI_DBG1((
"ossaHwCB: calling saLocalPhyControl on phyID %d\n", PhyID));
2827#ifdef TD_DEBUG_ENABLE
2830 TI_DBG1((
"ossaHwCB: OSSA_HW_EVENT_MALFUNCTION \n"));
2837 if (eventParm1 ==
agTRUE)
2839 TI_DBG1((
"ossaHwCB: fatal error\n"));
2850 TI_DBG1((
"ossaHwCB: non-fatal error \n"));
2860 TI_DBG2((
"ossaHwCB: OSSA_HW_EVENT_ID_FRAME_TIMEOUT from PhyID %d\n", PhyID));
2864 TI_DBG1((
"ossaHwCB: Wrong port state with OSSA_HW_EVENT_ID_FRAME_TIMEOUT\n"));
2876 TI_DBG2((
"ossaHwCB: OSSA_HW_EVENT_PHY_ERR_INVALID_DWORD\n"));
2880 TI_DBG1((
"ossaHwCB: Wrong port state with OSSA_HW_EVENT_PHY_ERR_INVALID_DWORD\n"));
2885 if (agPhyErrCountersPage !=
agNULL)
2887 TI_DBG1((
"ossaHwCB: OSSA_HW_EVENT_PHY_ERR_INVALID_DWORD from PhyID %d\n", PhyID));
2888 TI_DBG1((
"ossaHwCB: invalidDword %d\n", agPhyErrCountersPage->invalidDword));
2892 TI_DBG1((
"ossaHwCB: OSSA_HW_EVENT_PHY_ERR_INVALID_DWORD: Error!!! eventParm2 is NULL\n"));
2896 eventSource.agPortContext = agPortContext;
2899 eventSource.param = PhyID;
2910 TI_DBG1((
"ossaHwCB: failing in saHwEventAck; status %d\n", HwAckSatus));
2923 TI_DBG1((
"ossaHwCB: OSSA_HW_EVENT_PHY_ERR_DISPARITY_ERROR\n"));
2927 TI_DBG1((
"ossaHwCB: Wrong port state with OSSA_HW_EVENT_PHY_ERR_DISPARITY_ERROR\n"));
2932 if (agPhyErrCountersPage !=
agNULL)
2934 TI_DBG1((
"ossaHwCB: OSSA_HW_EVENT_PHY_ERR_DISPARITY_ERROR from PhyID %d\n", PhyID));
2935 TI_DBG1((
"ossaHwCB: runningDisparityError %d\n", agPhyErrCountersPage->runningDisparityError));
2939 TI_DBG1((
"ossaHwCB: OSSA_HW_EVENT_PHY_ERR_DISPARITY_ERROR: Error!!! eventParm2 is NULL\n"));
2943 eventSource.agPortContext = agPortContext;
2946 eventSource.param = PhyID;
2957 TI_DBG1((
"ossaHwCB: failing in saHwEventAck; status %d\n", HwAckSatus));
2970 TI_DBG2((
"ossaHwCB: OSSA_HW_EVENT_PHY_ERR_CODE_VIOLATION\n"));
2974 TI_DBG1((
"ossaHwCB: Wrong port state with OSSA_HW_EVENT_PHY_ERR_CODE_VIOLATION\n"));
2979 if (agPhyErrCountersPage !=
agNULL)
2981 TI_DBG1((
"ossaHwCB: OSSA_HW_EVENT_PHY_ERR_CODE_VIOLATION from PhyID %d\n", PhyID));
2982 TI_DBG1((
"ossaHwCB: codeViolation %d\n", agPhyErrCountersPage->codeViolation));
2986 TI_DBG1((
"ossaHwCB: OSSA_HW_EVENT_PHY_ERR_CODE_VIOLATION: Error!!! eventParm2 is NULL\n"));
2990 eventSource.agPortContext = agPortContext;
2993 eventSource.param = PhyID;
3004 TI_DBG1((
"ossaHwCB: failing in saHwEventAck; status %d\n", HwAckSatus));
3013 case OSSA_HW_EVENT_LINK_ERR_CODE_VIOLATION1:
3015 PhyID = eventParm1 & 0xFF;
3018 if (agPhyErrCountersPage !=
agNULL)
3020 TI_DBG1((
"ossaHwCB: OSSA_HW_EVENT_LINK_ERR_CODE_VIOLATION1 from PhyID %d\n", PhyID));
3021 TI_DBG1((
"ossaHwCB: invalidDword %d\n", agPhyErrCountersPage->invalidDword));
3022 TI_DBG1((
"ossaHwCB: runningDisparityError %d\n", agPhyErrCountersPage->runningDisparityError));
3023 TI_DBG1((
"ossaHwCB: codeViolation %d\n", agPhyErrCountersPage->codeViolation));
3024 TI_DBG1((
"ossaHwCB: lostOfDwordSynch %d\n", agPhyErrCountersPage->lossOfDwordSynch));
3025 TI_DBG1((
"ossaHwCB: phyResetProblem %d\n", agPhyErrCountersPage->phyResetProblem));
3026 TI_DBG1((
"ossaHwCB: inboundCRCError %d\n", agPhyErrCountersPage->inboundCRCError));
3030 TI_DBG1((
"ossaHwCB: OSSA_HW_EVENT_LINK_ERR_CODE_VIOLATION1: Error!!! eventParm2 is NULL\n"));
3041 TI_DBG2((
"ossaHwCB: OSSA_HW_EVENT_PHY_ERR_LOSS_OF_DWORD_SYNCH\n"));
3045 TI_DBG1((
"ossaHwCB: Wrong port state with OSSA_HW_EVENT_PHY_ERR_LOSS_OF_DWORD_SYNCH\n"));
3050 if (agPhyErrCountersPage !=
agNULL)
3052 TI_DBG1((
"ossaHwCB: OSSA_HW_EVENT_PHY_ERR_LOSS_OF_DWORD_SYNCH from PhyID %d\n", PhyID));
3053 TI_DBG1((
"ossaHwCB: lostOfDwordSynch %d\n", agPhyErrCountersPage->lossOfDwordSynch));
3057 TI_DBG1((
"ossaHwCB: OSSA_HW_EVENT_PHY_ERR_LOSS_OF_DWORD_SYNCH: Error!!! eventParm2 is NULL\n"));
3061 eventSource.agPortContext = agPortContext;
3064 eventSource.param = PhyID;
3075 TI_DBG1((
"ossaHwCB: failing in saHwEventAck; status %d\n", HwAckSatus));
3089 TI_DBG2((
"ossaHwCB: OSSA_HW_EVENT_PHY_ERR_PHY_RESET_FAILED\n"));
3093 TI_DBG1((
"ossaHwCB: Wrong port state with OSSA_HW_EVENT_PHY_ERR_PHY_RESET_FAILED\n"));
3098 if (agPhyErrCountersPage !=
agNULL)
3100 TI_DBG1((
"ossaHwCB: OSSA_HW_EVENT_PHY_ERR_PHY_RESET_FAILED from PhyID %d\n", PhyID));
3101 TI_DBG1((
"ossaHwCB: phyResetProblem %d\n", agPhyErrCountersPage->phyResetProblem));
3105 TI_DBG1((
"ossaHwCB: OSSA_HW_EVENT_PHY_ERR_PHY_RESET_FAILED: Error!!! eventParm2 is NULL\n"));
3109 eventSource.agPortContext = agPortContext;
3112 eventSource.param = PhyID;
3123 TI_DBG1((
"ossaHwCB: failing in saHwEventAck; status %d\n", HwAckSatus));
3135 TI_DBG1((
"ossaHwCB: OSSA_HW_EVENT_ENCRYPTION: encryptOperation 0x%x\n",pEncryptCBData->encryptOperation));
3136 TI_DBG1((
"ossaHwCB: event 0x%x eventParm1 0x%x eventParm2 %p eventParm3 %p\n",event,eventParm1,eventParm2,eventParm3));
3146 TI_DBG1((
"ossaHwCB: OSSA_HW_ENCRYPT_KEK_UPDATE_AND_STORE\n"));
3151 TI_DBG1((
"ossaHwCB:OSSA_HW_ENCRYPT_KEK_UPDATE \n"));
3156 TI_DBG1((
"ossaHwCB:OSSA_HW_ENCRYPT_KEK_INVALIDTE \n"));
3161 TI_DBG1((
"ossaHwCB: OSSA_HW_ENCRYPT_DEK_UPDATE\n"));
3166 TI_DBG1((
"ossaHwCB: OSSA_HW_ENCRYPT_DEK_INVALIDTE\n"));
3171 TI_DBG1((
"ossaHwCB: OSSA_HW_ENCRYPT_OPERATOR_MANAGEMENT\n"));
3176 TI_DBG1((
"ossaHwCB: OSSA_HW_ENCRYPT_TEST_EXECUTE\n"));
3178 encryptEventData.subEvent = pEncryptCBData->eq;
3182 TI_DBG1((
"ossaHwCB: unknown encryptOperation 0x%x\n",pEncryptCBData->encryptOperation));
3190 TI_DBG1((
"ossaHwCB: encrypt response status 0x%x error qualifier 0x%x\n", pEncryptCBData->status, pEncryptCBData->eq));
3201 encryptEventData.pData = pEncryptCBData->handle;
3206 encryptEventData.pData = pEncryptCBData->param;
3217 securitySetModeStatus = eventParm1;
3220 TI_DBG1((
"ossaHwCB: OSSA_HW_EVENT_SECURITY_MODE\n"));
3233 TI_DBG1((
"ossaHwCB: pEncryptInfo->status 0x%x\n", pEncryptInfo->status));
3238 else if (pEncryptInfo->status == 0x24)
3242 else if (pEncryptInfo->status == 0x05 || pEncryptInfo->status == 0x20 || pEncryptInfo->status == 0x21)
3251 encryptEventData.pData =
agNULL;
3262 pModePage = (
bit32 *) pModeEvent->modePage;
3264 TI_DBG1((
"ossaHwCB: OSSA_HW_EVENT_MODE modePageOperation 0x%x status 0x%x modePageLen 0x%x\n",
3265 pModeEvent->modePageOperation, pModeEvent->status, pModeEvent->modePageLen));
3269 TI_DBG1((
"ossaHwCB: OSSA_HW_EVENT_MODE page code 0x%x error qualifier 0x%x\n", (eventParm1 & 0xFF), (eventParm1 >> 16)));
3277 TI_DBG1((
"ossaHwCB: OSSA_HW_EVENT_MODE error qualifier 0x%x\n", eventParm1));
3278 switch ((*pModePage) & 0xFF)
3281 TI_DBG1((
"ossaHwCB: AGSA_ENCRYPTION_GENERAL_CONFIG_PAGE 0x%x %p\n", pModeEvent->status,eventParm2));
3282 TI_DBG1((
"ossaHwCB:modePageOperation 0x%x status 0x%x modePageLen 0x%x modePage %p context %p\n",
3283 pModeEvent->modePageOperation,
3285 pModeEvent->modePageLen,
3286 pModeEvent->modePage,
3287 pModeEvent->context));
3294 TI_DBG1((
"ossaHwCB: AGSA_ENCRYPTION_DEK_CONFIG_PAGE 0x%x %p\n", pModeEvent->status,eventParm2));
3301 TI_DBG1((
"ossaHwCB: AGSA_ENCRYPTION_HMAC_CONFIG_PAGE 0x%x %p\n", pModeEvent->status,eventParm2));
3308 TI_DBG1((
"ossaHwCB: AGSA_ENCRYPTION_CONTROL_PARM_PAGE 0x%x %p\n", pModeEvent->status,eventParm2));
3315 securityMode = *pModePage & 0x0F00 >> 8;
3316 cipherMode = *pModePage & 0xF000 >> 12;
3342 encryptInfo.status = 0;
3344 encryptInfo.sectorSize[0] = 512;
3345 encryptInfo.sectorSize[1] = 520;
3346 encryptInfo.sectorSize[2] = 528;
3347 encryptInfo.sectorSize[3] = 4104;
3348 encryptInfo.sectorSize[4] = 4168;
3349 encryptInfo.sectorSize[5] = 4232;
3352 encryptEventData.subEvent = 0;
3353 encryptEventData.pData = &encryptInfo;
3361 TI_DBG1((
"ossaHwCB: AGSA_SAS_PROTOCOL_TIMER_CONFIG_PAGE 0x%x %p\n", pModeEvent->status,eventParm2));
3363#ifdef IOCTL_INTERRUPT_TIME_CONFIG
3377 TI_DBG1((
"ossaHwCB: AGSA_INTERRUPT_CONFIGURATION_PAGE 0x%x %p\n", pModeEvent->status,eventParm2));
3379#ifdef IOCTL_INTERRUPT_TIME_CONFIG
3389 TI_DBG1((
"ossaHwCB: Unknown Mode Event %x\n", *pModePage));
3396 TI_DBG1((
"ossaHwCB: Unknown modePageOperation %x\n", pModeEvent->modePageOperation));
3404 case OSSA_HW_EVENT_PHY_UNRECOVERABLE_ERROR:
3409 TI_DBG1((
"ossaHwCB: OSSA_HW_EVENT_PHY_UNRECOVERABLE_ERROR\n"));
3413 TI_DBG1((
"ossaHwCB: INVALID port state\n"));
3417 TI_DBG1((
"ossaHwCB: VALID port state\n"));
3424 TI_DBG1((
"ossaHwCB: OSSA_HW_EVENT_OPEN_RETRY_BACKOFF_THR_ADJUSTED\n"));
3430 TI_DBG1((
"ossaHwCB: default error (0x%X)!!!!!\n",event));
3443 bit32 portOperation,
3450 TI_DBG6((
"ossaPortControlCB: start\n"));
3455 TI_DBG1((
"ossaPortControlCB: portOperation AGSA_PORT_SET_SMP_PHY_WIDTH\n"));
3459 TI_DBG1((
"ossaPortControlCB: portOperation AGSA_PORT_SET_PORT_RECOVERY_TIME\n"));
3463 TI_DBG1((
"ossaPortControlCB: portOperation AGSA_PORT_IO_ABORT\n"));
3468 if (onePortContext ==
agNULL)
3470 TI_DBG1((
"ossaPortControlCB: onePortContext is NULL\n"));
3479 TI_DBG1((
"ossaPortControlCB: portOperation AGSA_PORT_SET_PORT_RESET_TIME\n"));
3483 TI_DBG1((
"ossaPortControlCB: portOperation AGSA_PORT_HARD_RESET\n"));
3487 TI_DBG1((
"ossaPortControlCB: portOperation AGSA_PORT_CLEAN_UP\n"));
3491 TI_DBG1((
"ossaPortControlCB: portOperation AGSA_STOP_PORT_RECOVERY_TIMER\n"));
3495 TI_DBG1((
"ossaPortControlCB: undefined portOperation %d\n", portOperation));
3541 return(return_value);
3605 bit32 busBaseNumber,
3630 return(return_value);
3662 bit32 busBaseNumber,
3698 TI_DBG4((
"ossaHwRegReadConfig32: regOffset 0x%x returns 0x%x\n",regOffset,to_ret));
3705#ifdef TD_INT_COALESCE
3707ossaIntCoalesceInitCB(
3709 agsaIntCoalesceContext_t *agIntCoContext,
3716 tiIntCoalesceContext_t *tiIntCoalesceCxt;
3717 tdsaIntCoalesceContext_t *tdsaIntCoalCxt;
3718 tdsaIntCoalesceContext_t *tdsaIntCoalCxtHead
3719 = (tdsaIntCoalesceContext_t *)tdsaAllShared->IntCoalesce;
3722 TI_DBG2((
"ossaIntCoalesceInitCB: start\n"));
3724 tdsaIntCoalCxt = (tdsaIntCoalesceContext_t *)agIntCoContext->osData;
3725 tiIntCoalesceCxt = tdsaIntCoalCxt->tiIntCoalesceCxt;
3738 TI_DBG1((
"ossaIntCoalesceInitCB: unknown status %d\n",
status));
3743 TI_DBG2((
"ossaIntCoalesceInitCB: status %d\n", tiStatus));
3746 tdsaIntCoalCxt->tiIntCoalesceCxt =
agNULL;
3747 TI_DBG2((
"ossaIntCoalesceInitCB: id %d\n", tdsaIntCoalCxt->id));
3754#ifdef OS_INT_COALESCE
3755 ostiInitiatorIntCoalesceInitCB(
tiRoot,
3760 TI_DBG2((
"ossaIntCoalesceInitCB: return end\n"));
3798 ptiRoot = pOsData->
tiRoot;
3802 TD_ASSERT(tdsaAllShared,
"tdsaAllShared");
3839 ptiRoot = pOsData->
tiRoot;
3843 TD_ASSERT(tdsaAllShared,
"tdsaAllShared");
3880 bit8 scsiOpcode = 0;
3883 agSSPFrame = &(agSASRequestBody->sspInitiatorReq);
3884 scsiOpcode = agSSPFrame->sspCmdIU.cdb[0];
3886 TI_DBG2((
"ossaSSPIoctlCompleted: start\n"));
3890 TI_DBG2((
"ossaSSPIoctlCompleted: Success status\n"));
3894 TI_DBG1((
"ossaSSPIoctlCompleted: Status 0x%x\n", agIOStatus));
3903 TI_DBG1((
"ossaSSPIoctlCompleted: Unsupported SCSI command Response 0x%x\n",scsiOpcode));
3922 TI_DBG2((
"ossaSMPIoctlCompleted: start\n"));
3926 TI_DBG2((
"ossaSMPIoctlCompleted: Success status\n"));
3930 TI_DBG1((
"ossaSMPIoctlCompleted: Status 0x%x\n", agIOStatus));
3972 tdPassthroughCmndBody_t *tdPTCmndBody = (tdPassthroughCmndBody_t *)agIORequest->
osData;
3973 bit32 tiStatus = tiPassthroughError;
3975 bit8 SMPpayload[agIOInfoLen];
3977 TI_DBG2((
"ossaSMPCompleted: start and passthrough\n"));
3981 TI_DBG4((
"ossaSMPCompleted: start\n"));
3988 if (tdPTCmndBody ==
agNULL)
3990 TI_DBG1((
"ossaSMPCompleted: tdPTCmndBody is NULL \n"));
3995 if (tdPTCmndBody->EventCB ==
agNULL)
3997 TI_DBG1((
"ossaSMPCompleted: tdPTCmndBody->EventCB is NULL \n"));
4004 tiStatus = tiPassthroughSuccess;
4008 tiStatus = tiPassthroughAborted;
4012 tiStatus = tiPassthroughError;
4023 tdPTCmndBody->EventCB(
tiRoot,
4024 tdPTCmndBody->tiPassthroughRequest,
4043 TI_DBG4((
"ossaSMPCompleted: start\n"));
4045 if (pSMPRequestBody ==
agNULL)
4047 TI_DBG1((
"ossaSMPCompleted: pSMPRequestBody is NULL \n"));
4054 TI_DBG1((
"ossaSMPCompleted: pSMPRequestBody->SMPCompletionFunc is NULL \n"));
4058#ifdef TD_INTERNAL_DEBUG
4059 TI_DBG4((
"ossaSMPCompleted: agIOrequest %p\n", agIORequest->
osData));
4062 TI_DBG4((
"ossaSMPCompleted: SMPRequestbody %p\n", pSMPRequestBody));
4063 TI_DBG4((
"ossaSMPCompleted: calling callback fn\n"));
4135 bit32 memAllocStatus;
4138 TI_DBG2((
"ossaSMPCAMCompleted: start\n"));
4139 TI_DBG2((
"ossaSMPCAMCompleted: agIOInfoLen %d\n", agIOInfoLen));
4140 if (!agIORequest->
osData)
4142 TD_ASSERT((0),
"ossaSMPCAMCompleted agIORequest->osData");
4148 TI_DBG1((
"ossaSMPCAMCompleted: tdIORequestBody->tiIORequest->osData is null, wrong\n"));
4155 (
void **)&SMPpayload,
4165 TI_DBG1((
"ossaSMPCAMCompleted: ostiAllocMemory failed...\n"));
4168 if (SMPpayload ==
agNULL)
4170 TI_DBG1((
"ossaSMPCAMCompleted: ostiAllocMemory returned NULL SMPpayload\n"));
4175 TI_DBG1((
"ossaSMPCAMCompleted: Success status\n"));
4177 TI_DBG1((
"ossaSMPCAMCompleted: after memset\n"));
4179 TI_DBG1((
"ossaSMPCAMCompleted: after read \n"));
4184 TI_DBG1((
"ossaSMPCAMCompleted: SMP Aborted status\n"));
4186 TI_DBG1((
"ossaSMPCAMCompleted: failed status=%d\n",
status));
4196 TI_DBG1((
"ossaSMPCAMCompleted: SMP failed status\n"));
4198 TI_DBG1((
"ossaSMPCAMCompleted: failed status=%d\n",
status));
4241 bit32 agFrameLength,
4251 ttdsaTgt_t *Target = (ttdsaTgt_t *)osData->
ttdsaTgt;
4254 bit8 SMPpayload[agIOInfoLen];
4256 TI_DBG2((
"ossaSMPReqReceived: start and passthrough\n"));
4264 Target->PasthroughCB(
4283 TI_DBG4((
"ossaSMPReqReceived: start\n"));
4332#ifdef TD_DEBUG_ENABLE
4342 TD_ASSERT((0),
"ossaSSPCompleted agIORequest->osData");
4349 TI_DBG4((
"ossaSSPCompleted: start\n"));
4351 if (pIORequestBody ==
agNULL)
4353 TI_DBG1((
"ossaSSPCompleted: pIORequestBody is NULL \n"));
4359#ifdef TD_DEBUG_ENABLE
4363 TI_DBG1((
"ossaSSPCompleted: IOCompletionFunc is NULL \n"));
4364 TI_DBG1((
"ossaSSPCompleted: did %d \n", oneDeviceData->
id));
4389GLOBAL void ossaFastSSPCompleted(
4399 agsaFastCBBuf_t *safb = (agsaFastCBBuf_t*)cbArg;
4412 TI_DBG4((
"ossaSSPCompleted: start\n"));
4416 TI_DBG1((
"ossaFastSSPCompleted: pIORequestBody is NULL \n"));
4438 scsi_status = agSSPRespIU.
status;
4440 TI_DBG1((
"itdssIOSuccessHandler: scsi_status %d\n", scsi_status));
4445 TI_DBG2((
"itdssIOSuccessHandler: scsi status=0x%x, senselen=0x%x resplen "
4446 "0x%x\n", scsi_status, senseLen, respLen));
4460 + respLen, safb->pSenseData, senseLen);
4462 if (data_status == 0)
4465 TI_DBG2((
"ossaFastSSPCompleted: no data\n"));
4471 if (data_status == 1)
4474 TI_DBG1((
"ossaFastSSPCompleted: response data \n"));
4479 if (data_status == 2)
4484 TI_DBG2((
"itdssIOSuccessHandler: sense data \n"));
4487 senseData.
senseLen =
MIN(*(safb->senseLen), senseLen);
4492 if (((
char*)safb->pSenseData)[12] == 0x04 &&
4493 ((
char*)safb->pSenseData)[13] == 0x11)
4497 TI_DBG2((
"ossaFastSSPCompleted: sending notfify spinup\n"));
4512 if (*(safb->senseLen) > senseData.
senseLen)
4513 *(safb->senseLen) = senseData.
senseLen;
4521 if (data_status == 3)
4524 TI_DBG1((
"ossaFastSSPCompleted: reserved wrong!!!\n"));
4607 bit16 agInitiatorTag,
4693#ifdef INITIATOR_DRIVER
4701 bit32 memAllocStatus;
4702 bit32 agRequestType;
4707 bit32 agIORequestType;
4718 bit8 framePayload[256];
4720 bit16 frameOffset = 0;
4724 TI_DBG6((
"ossaSSPEvent: start\n"));
4736#ifdef INITIATOR_DRIVER
4745#ifdef INITIATOR_DRIVER
4751 TI_DBG1((
"ossaSSPEvent: incorrect frame 0x%x. Should be command\n", agIORequestType));
4760 (
void **)&TMtdIORequestBody,
4771 TI_DBG1((
"ossaSSPEvent: ostiAllocMemory failed...\n"));
4776 if (TMtdIORequestBody ==
agNULL)
4779 TI_DBG1((
"ossaSSPEvent: ostiAllocMemory returned NULL TMIORequestBody\n"));
4785 TMtdIORequestBody->IOType.InitiatorTMIO.osMemHandle = osMemHandle;
4787 TMtdIORequestBody->IOType.InitiatorTMIO.CurrentTaskTag =
agNULL;
4788 TMtdIORequestBody->IOType.InitiatorTMIO.TaskTag = taskTag;
4791 TMtdIORequestBody->IOCompletionFunc = itdssQueryTaskCompleted;
4794 TMtdIORequestBody->tiDevHandle = tdIORequestBody->
tiDevHandle;
4798 agTMIORequest = &(TMtdIORequestBody->agIORequest);
4799 agTMIORequest->
osData = (
void *) TMtdIORequestBody;
4810 agSASRequestBody = &(TMtdIORequestBody->transport.SAS.agSASRequestBody);
4819 if (TMtdIORequestBody->IOCompletionFunc ==
agNULL)
4821 TI_DBG1((
"ossaSSPEvent: Error !!! IOCompletionFunc is NULL\n"));
4838 TMtdIORequestBody->IOType.InitiatorTMIO.osMemHandle,
4841 TI_DBG1((
"ossaSSPEvent: saSSPStart failed\n"));
4849 TI_DBG2((
"ossaSSPEvent: OSSA_IO_ABORTED\n"));
4861 TI_DBG1((
"ossaSSPEvent: OSSA_IO_NOT_VALID\n"));
4874 TI_DBG2((
"ossaSSPEvent: OSSA_IO_XFER_CMD_FRAME_ISSUED\n"));
4878 TI_DBG1((
"ossaSSPEvent: OSSA_IO_XFER_ERROR_OFFSET_MISMATCH\n"));
4882 TI_DBG1((
"ossaSSPEvent: OSSA_IO_OVERFLOW\n"));
4899 TI_DBG1((
"ossaSSPEvent: OSSA_IO_OPEN_CNX_ERROR_IT_NEXUS_LOSS_OPEN_RETRY_BACKOFF_THRESHOLD_REACHED\n"));
4903 TI_DBG1((
"ossaSSPEvent: OSSA_IO_OPEN_CNX_ERROR_IT_NEXUS_LOSS_OPEN_TMO\n"));
4907 TI_DBG1((
"ossaSSPEvent: OSSA_IO_OPEN_CNX_ERROR_IT_NEXUS_LOSS_NO_DEST\n"));
4911 TI_DBG1((
"ossaSSPEvent: OSSA_IO_OPEN_CNX_ERROR_IT_NEXUS_LOSS_OPEN_COLLIDE\n"));
4915 TI_DBG1((
"ossaSSPEvent: OSSA_IO_OPEN_CNX_ERROR_IT_NEXUS_LOSS_PATHWAY_BLOCKED\n"));
4919 TI_DBG1((
"ossaSSPEvent: OSSA_IO_XFR_ERROR_DEK_KEY_TAG_MISMATCH\n"));
4923 TI_DBG1((
"ossaSSPEvent: OSSA_IO_XFER_ERROR_XFER_RDY_OVERRUN\n"));
4930 TI_DBG1((
"ossaSSPEvent: DIF related, event 0x%x\n", event));
4932 TI_DBG2((
"ossaSSPEvent: agIOInfoLen %d\n", agIOInfoLen));
4935 TI_DBG2((
"ossaSSPEvent: agParam is NULL!!!\n"));
4940 TI_DBG2((
"ossaSSPEvent: wrong agIOInfoLen!!! agIOInfoLen %d sizeof(agsaDifDetails_t) %d\n", agIOInfoLen, (
int)
sizeof(
agsaDifDetails_t)));
4951 TI_DBG2((
"ossaSSPEvent: SASAddrHI 0x%08x SASAddrLO 0x%08x\n",
4953 TI_DBG2((
"ossaSSPEvent: DIF error mask 0x%x Device ID 0x%x\n",
4955 if (frameLen != 0 && frameLen <= 256)
4958 tdhexdump(
"ossaSSPEvent frame", framePayload, frameLen);
4963 TI_DBG1((
"ossaSSPEvent: other event 0x%x\n", event));
4981 TI_DBG1((
"ossaSATAIDAbortCB: start flag %d status %d\n", flag,
status));
4997#ifdef INITIATOR_DRIVER
5011 TI_DBG2((
"ossaSSPAbortCB: start\n"));
5015 if (tdAbortIORequestBody ==
agNULL)
5017 TI_DBG1((
"ossaSSPAbortCB: tdAbortIORequestBody is NULL warning!!!!\n"));
5024 TI_DBG1((
"ossaSSPAbortCB: abort per port\n"));
5028 TI_DBG2((
"ossaSSPAbortCB: abort all\n"));
5033 TI_DBG1((
"ossaSSPAbortCB: tiDeviceHandle is NULL warning!!!!\n"));
5043 if (oneDeviceData ==
agNULL)
5045 TI_DBG1((
"ossaSSPAbortCB: oneDeviceData is NULL warning!!!!\n"));
5056 TI_DBG2((
"ossaSSPAbortCB: OSSA_IO_SUCCESS\n"));
5070 TI_DBG2((
"ossaSSPAbortCB: calling saDeregisterDeviceHandle\n"));
5073 TI_DBG2((
"ossaSSPAbortCB: did %d\n", oneDeviceData->
id));
5083 TI_DBG1((
"ossaSSPAbortCB: OSSA_IO_NOT_VALID\n"));
5097 TI_DBG2((
"ossaSSPAbortCB: calling saDeregisterDeviceHandle\n"));
5100 TI_DBG2((
"ossaSSPAbortCB: did %d\n", oneDeviceData->
id));
5109 TI_DBG1((
"ossaSSPAbortCB: OSSA_IO_NO_DEVICE\n"));
5123 TI_DBG2((
"ossaSSPAbortCB: calling saDeregisterDeviceHandle\n"));
5126 TI_DBG2((
"ossaSSPAbortCB: did %d\n", oneDeviceData->
id));
5135 TI_DBG1((
"ossaSSPAbortCB: OSSA_IO_ABORT_IN_PROGRESS\n"));
5149 TI_DBG2((
"ossaSSPAbortCB: calling saDeregisterDeviceHandle\n"));
5152 TI_DBG2((
"ossaSSPAbortCB: did %d\n", oneDeviceData->
id));
5162 TI_DBG1((
"ossaSSPAbortCB: OSSA_IO_ABORT_DELAYED\n"));
5176 TI_DBG2((
"ossaSSPAbortCB: calling saDeregisterDeviceHandle\n"));
5179 TI_DBG2((
"ossaSSPAbortCB: did %d\n", oneDeviceData->
id));
5203 TI_DBG2((
"ossaSSPAbortCB: calling saDeregisterDeviceHandle\n"));
5206 TI_DBG2((
"ossaSSPAbortCB: did %d\n", oneDeviceData->
id));
5216 TI_DBG2((
"ossaSSPAbortCB: abort one\n"));
5221 TI_DBG1((
"ossaSSPAbortCB: taskTag is NULL; triggered by itdssQueryTaskCompleted\n"));
5225 TI_DBG2((
"ossaSSPAbortCB: OSSA_IO_SUCCESS\n"));
5244 TI_DBG1((
"ossaSSPAbortCB: OSSA_IO_NOT_VALID\n"));
5263 TI_DBG1((
"ossaSSPAbortCB: OSSA_IO_NO_DEVICE\n"));
5282 TI_DBG1((
"ossaSSPAbortCB: OSSA_IO_ABORT_IN_PROGRESS\n"));
5302 TI_DBG1((
"ossaSSPAbortCB: OSSA_IO_ABORT_DELAYED\n"));
5342 TI_DBG1((
"ossaSSPAbortCB: wrong flag %d\n", flag));
5364 TI_DBG3((
"ossaSSPAbortCB: start\n"));
5370 TI_DBG2((
"ossaSSPAbortCB: abort per port\n"));
5374 TI_DBG2((
"ossaSSPAbortCB: abort all\n"));
5379 TI_DBG2((
"ossaSSPAbortCB: OSSA_IO_SUCCESS\n"));
5381 TI_DBG3((
"ossaSSPAbortCB: calling saDeregisterDeviceHandle\n"));
5383 TI_DBG2((
"ossaSSPAbortCB: did %d\n", oneDeviceData->
id));
5393 TI_DBG1((
"ossaSSPAbortCB: OSSA_IO_NOT_VALID\n"));
5395 TI_DBG2((
"ossaSSPAbortCB: calling saDeregisterDeviceHandle\n"));
5397 TI_DBG2((
"ossaSSPAbortCB: did %d\n", oneDeviceData->
id));
5406 TI_DBG1((
"ossaSSPAbortCB: OSSA_IO_NO_DEVICE\n"));
5408 TI_DBG2((
"ossaSSPAbortCB: calling saDeregisterDeviceHandle\n"));
5410 TI_DBG2((
"ossaSSPAbortCB: did %d\n", oneDeviceData->
id));
5419 TI_DBG1((
"ossaSSPAbortCB: OSSA_IO_ABORT_IN_PROGRESS\n"));
5421 TI_DBG2((
"ossaSSPAbortCB: calling saDeregisterDeviceHandle\n"));
5423 TI_DBG2((
"ossaSSPAbortCB: did %d\n", oneDeviceData->
id));
5433 TI_DBG1((
"ossaSSPAbortCB: OSSA_IO_ABORT_DELAYED\n"));
5435 TI_DBG2((
"ossaSSPAbortCB: calling saDeregisterDeviceHandle\n"));
5437 TI_DBG2((
"ossaSSPAbortCB: did %d\n", oneDeviceData->
id));
5449 TI_DBG2((
"ossaSSPAbortCB: calling saDeregisterDeviceHandle\n"));
5451 TI_DBG1((
"ossaSSPAbortCB: did %d\n", oneDeviceData->
id));
5461 TI_DBG2((
"ossaSSPAbortCB: abort one\n"));
5464 TI_DBG2((
"ossaSSPAbortCB: OSSA_IO_SUCCESS\n"));
5474 TI_DBG1((
"ossaSSPAbortCB: OSSA_IO_NOT_VALID\n"));
5483 TI_DBG1((
"ossaSSPAbortCB: OSSA_IO_NO_DEVICE\n"));
5492 TI_DBG1((
"ossaSSPAbortCB: OSSA_IO_ABORT_IN_PROGRESS\n"));
5502 TI_DBG1((
"ossaSSPAbortCB: OSSA_IO_ABORT_DELAYED\n"));
5522 TI_DBG1((
"ossaSSPAbortCB: wrong flag %d\n", flag));
5561#ifdef INITIATOR_DRIVER
5572 TI_DBG3((
"ossaLocalPhyControlCB: start phyID %d\n", phyId));
5573 TI_DBG3((
"ossaLocalPhyControlCB: phyOperation %d status 0x%x\n", phyOperation,
status));
5574 switch (phyOperation)
5580 TI_DBG1((
"ossaLocalPhyControlCB: AGSA_PHY_LINK_RESET, status 0x%x\n",
status));
5584 TI_DBG1((
"ossaLocalPhyControlCB: AGSA_PHY_HARD_RESET, status 0x%x\n",
status));
5586#ifdef INITIATOR_DRIVER
5592 if (currentTaskTag !=
agNULL)
5594 TI_DBG2((
"ossaLocalPhyControlCB: callback to OS layer with success\n"));
5617 if (agDevHandle ==
agNULL)
5619 TI_DBG1((
"ossaLocalPhyControlCB: wrong, agDevHandle is NULL\n"));
5623 agContextDevice->
osData = currentTaskTag;
5638 if (currentTaskTag !=
agNULL)
5640 TI_DBG1((
"ossaLocalPhyControlCB: callback to OS layer with failure\n"));
5673 TI_DBG2((
"ossaLocalPhyControlCB: AGSA_PHY_GET_ERROR_COUNTS, status 0x%x\n",
status));
5686 TI_DBG2((
"ossaLocalPhyControlCB: AGSA_PHY_CLEAR_ERROR_COUNTS, status 0x%x\n",
status));
5690 TI_DBG2((
"ossaLocalPhyControlCB: AGSA_PHY_NOTIFY_ENABLE_SPINUP, status 0x%x\n",
status));
5693 TI_DBG2((
"ossaLocalPhyControlCB: AGSA_PHY_BROADCAST_ASYNCH_EVENT, status 0x%x\n",
status));
5696 TI_DBG1((
"ossaLocalPhyControlCB: BROADCAST_ASYNCH_EVENT received for SATA Controller\n"));
5701 TI_DBG2((
"ossaLocalPhyControlCB: AGSA_PHY_COMINIT_OOB, status 0x%x\n",
status));
5704 TI_DBG1((
"ossaLocalPhyControlCB: UNKNOWN default case. phyOperation %d status 0x%x\n", phyOperation,
status));
5724#ifdef CCFLAGS_PHYCONTROL_COUNTS
5731 TI_DBG1((
"ossaGetPhyProfileCB: agContext %p parm %p\n", agContext, parm));
5742 TI_DBG1((
"ossaGetPhyProfileCB: AGSA_SAS_PHY_BW_COUNTERS_PAGE, status 0x%x phyID %d\n",
status, phyID));
5766 TI_DBG1((
"ossaGetPhyProfileCB: AGSA_SAS_PHY_ERR_COUNTERS_PAGE, status 0x%x phyID %d\n",
status, phyID));
5791 TI_DBG1((
"ossaGetPhyProfileCB: AGSA_SAS_PHY_ERR_COUNTERS_CLR_PAGE status 0x%x phyID %d\n",
status, phyID));
5794 TI_DBG1((
"ossaGetPhyProfileCB:AGSA_SAS_PHY_ANALOG_SETTINGS_PAGE status 0x%x phyID %d\n",
status, phyID));
5795#ifdef CCFLAGS_PHYCONTROL_COUNTS
5799 TI_DBG1((
"ossaGetPhyProfileCB: 0x%08x 0x%08x 0x%08x 0x%08x 0x%08x 0x%08x 0x%08x 0x%08x 0x%08x 0x%08x\n",
5802 tdsaAllShared->analog[phyID].spaRegister0 = analog->
Dword0;
5803 tdsaAllShared->analog[phyID].spaRegister1 = analog->
Dword1;
5804 tdsaAllShared->analog[phyID].spaRegister2 = analog->
Dword2;
5805 tdsaAllShared->analog[phyID].spaRegister3 = analog->
Dword3;
5806 tdsaAllShared->analog[phyID].spaRegister4 = analog->
Dword4;
5813 TI_DBG1((
"ossaGetPhyProfileCB:AGSA_SAS_PHY_OPEN_REJECT_RETRY_BACKOFF_THRESHOLD_PAGE status 0x%x phyID %d\n",
status, phyID));
5816#ifdef TD_DEBUG_ENABLE
5820 TI_DBG2((
"ossaGetPhyProfileCB: DW0 0x%X DW1 0x%X DW2 0x%X DW3 0x%X\n",
5831 TI_DBG1((
"ossaGetPhyProfileCB: AGSA_SAS_PHY_GENERAL_STATUS_PAGE status 0x%x phyID %d\n",
5837 TI_DBG2((
"ossaGetPhyProfileCB: "
5838 "AGSA_SAS_PHY_GENERAL_STATUS_PAGE status %d DW0 0x%x DW1 0x%x\n",
5847 TI_DBG1((
"ossaGetPhyProfileCB: UNKNOWN default case. phyOperation %d status 0x%x\n", ppc,
status));
5865 TI_DBG1((
"ossaSetPhyProfileCB:agContext %p status 0x%x ppc %d phyID %d parm %p\n",agContext,
status, ppc, phyID,parm));
5899 TI_DBG2((
"ossaGetDeviceHandlesCB: start\n"));
5900 TI_DBG2((
"ossaGetDeviceHandlesCB: validDevs %d\n", validDevs));
5903 for (i = 0 ; i < validDevs ; i++)
5940#ifdef TD_DEBUG_ENABLE
5947 TI_DBG1((
"ossaGetDeviceInfoCB: start agContext %p\n",agContext));
5951 TI_DBG1((
"ossaGetDeviceInfoCB: OSSA_DEV_INFO_INVALID_HANDLE\n"));
5955#ifdef TD_DEBUG_ENABLE
5958 TI_DBG1((
"ossaGetDeviceInfoCB: OSSA_DEV_INFO_NO_EXTENDED_INFO\n"));
5968#ifdef TD_DEBUG_ENABLE
5971 TI_DBG2((
"ossaGetDeviceInfoCB: OSSA_DEV_INFO_SAS_EXTENDED_INFO\n"));
5976 TI_DBG2((
"ossaGetDeviceInfoCB: numOfPhys %d\n", agSASDeviceInfo->
numOfPhys));
5981#ifdef TD_DEBUG_ENABLE
5984 TI_DBG2((
"ossaGetDeviceInfoCB: OSSA_DEV_INFO_SATA_EXTENDED_INFO\n"));
5987 TI_DBG2((
"ossaGetDeviceInfoCB: connection %d\n", agSATADeviceInfo->
connection));
5990#ifdef TD_DEBUG_ENABLE
5995 TI_DBG2((
"ossaGetDeviceInfoCB: error default case, status is %d\n",
status));
6029#ifdef INITIATOR_DRIVER
6040 dmRoot_t *dmRoot = &(tdsaAllShared->dmRoot);
6045 bit32 expanderType = 1;
6048#if defined(FDS_DM) && !defined(FDS_SM)
6053 smRoot_t *smRoot = &(tdsaAllShared->smRoot);
6057 TI_DBG3((
"ossaDeviceRegistrationCB: start status 0x%x\n",
status));
6060 TI_DBG3((
"ossaDeviceRegistrationCB: did 0x%x\n", oneDeviceData->
id));
6061 TI_DBG3((
"ossaDeviceRegistrationCB: deviceID 0x%x\n", deviceID));
6062 TI_DBG3((
"ossaDeviceRegistrationCB: agDevHandle %p %p %p\n",agDevHandle,agDevHandle->
osData,agDevHandle->
sdkData ));
6072 TI_DBG2((
"ossaDeviceRegistrationCB: transient, calling saDeregisterDeviceHandle, did %d\n", oneDeviceData->
id));
6074 agDevHandle->
osData = oneDeviceData;
6094 TI_DBG2((
"ossaDeviceRegistrationCB: transient, do nothing did %d\n", oneDeviceData->
id));
6099 if (agDevHandle ==
agNULL)
6101 TI_DBG3((
"ossaDeviceRegistrationCB: agDevHandle is NULL\n"));
6105 TI_DBG3((
"ossaDeviceRegistrationCB: agDevHandle is NOT NULL\n"));
6111 TI_DBG3((
"ossaDeviceRegistrationCB: success\n"));
6112 TI_DBG2((
"ossaDeviceRegistrationCB: Success did %d FW did 0x%x\n", oneDeviceData->
id, deviceID));
6113 TI_DBG2((
"ossaDeviceRegistrationCB: Success pid %d\n", onePortContext->id));
6114 if (agDevHandle ==
agNULL)
6116 TI_DBG1((
"ossaDeviceRegistrationCB: agDevHandle is NULL, wrong!\n"));
6120 agDevHandle->
osData = oneDeviceData;
6122 oneDeviceData->
InQID = oneDeviceData->
id % Indenom;
6123 oneDeviceData->
OutQID = oneDeviceData->
id % Outdenom;
6124 onePortContext->RegisteredDevNums++;
6127 TI_DBG3((
"ossaDeviceRegistrationCB: pid %d registeredNumDevice %d\n", onePortContext->id, onePortContext->RegisteredDevNums));
6128 TI_DBG3((
"ossaDeviceRegistrationCB: pid %d Count %d\n", onePortContext->id, onePortContext->Count));
6132 if (onePortContext->valid ==
agTRUE)
6136 TI_DBG1((
"ossaDeviceRegistrationCB: calling dmRegisterDevice\n"));
6149 ext = (
bit16)(ext | 0x100);
6151 ext = (
bit16)( ext | (expanderType << 9));
6154 TI_DBG1((
"ossaDeviceRegistrationCB: directlyAttached ext 0x%x\n", ext));
6155 dmDeviceInfo.
ext = ext;
6160 TI_DBG1((
"ossaDeviceRegistrationCB: dmRegisterDevice failed!!! 0x%x\n", DMstatus));
6167 if (onePortContext->valid ==
agTRUE)
6171 TI_DBG1((
"ossaDeviceRegistrationCB: calling smRegisterDevice\n"));
6176 &(oneDeviceData->smDeviceHandle),
6185 TI_DBG1((
"ossaDeviceRegistrationCB: oneDeviceData->ExpDevice NULL!!!\n"));
6190 TI_DBG1((
"ossaDeviceRegistrationCB: oneDeviceData->ExpDevice->agDevHandle NULL!!!\n"));
6194 &(oneDeviceData->smDeviceHandle),
6201 TI_DBG1((
"ossaDeviceRegistrationCB: smRegisterDevice failed!!! 0x%x\n", DMstatus));
6209 TI_DBG3((
"ossaDeviceRegistrationCB: directly attached did %d\n", oneDeviceData->
id));
6212 TI_DBG3((
"ossaDeviceRegistrationCB: SAS target\n"));
6213 if (onePortContext->valid ==
agTRUE)
6215 if (onePortContext->PortRecoverPhyID != 0xFF)
6217 oneDeviceData->
phyID = (
bit8)onePortContext->PortRecoverPhyID;
6218 onePortContext->PortRecoverPhyID = 0xFF;
6219 TI_DBG3((
"ossaDeviceRegistrationCB: PortRecoverPhyID %d\n", oneDeviceData->
phyID));
6222 if (onePortContext->DiscoveryRdyGiven ==
agFALSE)
6224 TI_DBG2((
"ossaDeviceRegistrationCB: link up and discovery ready\n"));
6225 TI_DBG3((
"ossaDeviceRegistrationCB: phyID %d pid %d\n", oneDeviceData->
phyID, onePortContext->id));
6227 TI_DBG3((
"ossaDeviceRegistrationCB: onePortContext->tiPortalContext %p\n", onePortContext->tiPortalContext));
6228 onePortContext->DiscoveryRdyGiven =
agTRUE;
6231 TI_DBG1((
"ossaDeviceRegistrationCB: wrong discovery state 0x%x\n", onePortContext->DiscoveryState));
6238 (
void *)onePortContext->tiPortalContext
6240#ifdef INITIATOR_DRIVER
6246 (
void *)onePortContext->tiPortalContext
6253 TI_DBG2((
"ossaDeviceRegistrationCB: abort call\n"));
6260 TI_DBG2((
"ossaDeviceRegistrationCB: SATA target\n"));
6261 if (onePortContext->valid ==
agTRUE)
6267 tdIDStart(
tiRoot, agRoot, smRoot, oneDeviceData, onePortContext);
6277 TI_DBG2((
"ossaDeviceRegistrationCB: abort call\n"));
6285#if defined(FDS_DM) && defined(FDS_SM)
6294 tdIDStart(
tiRoot, agRoot, smRoot, oneDeviceData, onePortContext);
6297#elif defined(FDS_DM)
6302 IDstatus = tdsaDiscoveryStartIDDev(
tiRoot,
6311 TI_DBG1((
"ossaDeviceRegistrationCB: fail or busy %d\n", IDstatus));
6322 TI_DBG2((
"ossaDeviceRegistrationCB: calling new device arrival\n"));
6327 if (tdsaAllShared->SASConnectTimeLimit)
6359 TI_DBG1((
"ossaDeviceRegistrationCB: OSSA_FAILURE_OUT_OF_RESOURCE or OSSA_ERR_DEVICE_HANDLE_UNAVAILABLE\n"));
6365 TI_DBG1((
"ossaDeviceRegistrationCB: OSSA_FAILURE_DEVICE_ALREADY_REGISTERED or OSSA_ERR_DEVICE_ALREADY_REGISTERED\n"));
6369 TI_DBG1((
"ossaDeviceRegistrationCB: OSSA_FAILURE_INVALID_PHY_ID or OSSA_ERR_PHY_ID_INVALID\n"));
6375 TI_DBG1((
"ossaDeviceRegistrationCB: OSSA_FAILURE_PHY_ID_ALREADY_REGISTERED or OSSA_ERR_PHY_ID_ALREADY_REGISTERED\n"));
6379 TI_DBG1((
"ossaDeviceRegistrationCB: OSSA_FAILURE_PORT_ID_OUT_OF_RANGE or OSSA_ERR_PORT_INVALID\n"));
6384 TI_DBG1((
"ossaDeviceRegistrationCB: OSSA_FAILURE_PORT_NOT_VALID_STATE or OSSA_ERR_PORT_STATE_NOT_VALID\n"));
6385 TI_DBG2((
"ossaDeviceRegistrationCB: did %d pid %d\n", oneDeviceData->
id, onePortContext->id));
6388 onePortContext->Transient =
agTRUE;
6391 TI_DBG1((
"ossaDeviceRegistrationCB: retries regisration\n"));
6402 onePortContext->agPortContext,
6408 TI_DBG1((
"ossaDeviceRegistrationCB: directly attached SATA, put back into free list\n"));
6417 TI_DBG1((
"ossaDeviceRegistrationCB: OSSA_FAILURE_DEVICE_TYPE_NOT_VALID or OSSA_ERR_DEVICE_TYPE_NOT_VALID\n"));
6421 TI_DBG1((
"ossaDeviceRegistrationCB: wrong. default status is %d\n",
status));
6465 dmRoot_t *dmRoot = &(tdsaAllShared->dmRoot);
6471 smRoot_t *smRoot = &(tdsaAllShared->smRoot);
6474 TI_DBG3((
"ossaDeregisterDeviceHandleCB: start\n"));
6480 TI_DBG2((
"ossaDeregisterDeviceHandleCB: OSSA_ERR_DEVICE_HANDLE_INVALID\n"));
6487 dmPortContext = &(onePortContext->dmPortContext);
6493 TI_DBG2((
"ossaDeregisterDeviceHandleCB: transient did %d\n", oneDeviceData->
id));
6497 if (onePortContext !=
agNULL)
6499 TI_DBG2((
"ossaDeregisterDeviceHandleCB: pid %d registeredNumDevice %d\n", onePortContext->
id, onePortContext->
RegisteredDevNums));
6505 TI_DBG3((
"ossaDeregisterDeviceHandleCB: Success\n"));
6506 if (onePortContext ==
agNULL)
6508 TI_DBG1((
"ossaDeregisterDeviceHandleCB: onePortContext is NULL, wrong!\n"));
6517 TI_DBG2((
"ossaDeregisterDeviceHandleCB: delete from MainLink\n"));
6521 TI_DBG1((
"ossaDeregisterDeviceHandleCB: did %d calling smDeregisterDevice\n", oneDeviceData->
id));
6535 TI_DBG3((
"ossaDeregisterDeviceHandleCB: PhyID %d\n", PhyID));
6546 TI_DBG2((
"ossaDeregisterDeviceHandleCB: calling saHwEventAck\n"));
6558 TI_DBG1((
"ossaDeregisterDeviceHandleCB: failing in saHwEventAck; status %d\n", HwAckSatus));
6565 if (onePortContext->UseDM ==
agTRUE)
6567 TI_DBG1((
"ossaDeregisterDeviceHandleCB: calling dmDestroyPort\n"));
6571 PORTINFO_PUT_SAS_LOCAL_ADDRESSLO(&dmPortInfo, onePortContext->
sasLocalAddressLo);
6572 PORTINFO_PUT_SAS_LOCAL_ADDRESSHI(&dmPortInfo, onePortContext->
sasLocalAddressHi);
6573 DMstatus =
dmDestroyPort(dmRoot, dmPortContext, &dmPortInfo);
6576 TI_DBG1((
"ossaDeregisterDeviceHandleCB: dmDestroyPort failed!!! 0x%x\n", DMstatus));
6595 TI_DBG2((
"ossaDeregisterDeviceHandleCB: NO ACK case\n"));
6597 if (onePortContext->UseDM ==
agTRUE)
6599 TI_DBG1((
"ossaDeregisterDeviceHandleCB: calling dmDestroyPort\n"));
6603 PORTINFO_PUT_SAS_LOCAL_ADDRESSLO(&dmPortInfo, onePortContext->
sasLocalAddressLo);
6604 PORTINFO_PUT_SAS_LOCAL_ADDRESSHI(&dmPortInfo, onePortContext->
sasLocalAddressHi);
6605 DMstatus =
dmDestroyPort(dmRoot, dmPortContext, &dmPortInfo);
6608 TI_DBG1((
"ossaDeregisterDeviceHandleCB: dmDestroyPort failed!!! 0x%x\n", DMstatus));
6631 TI_DBG3((
"ossaDeregisterDeviceHandleCB: pid %d registeredNumDevice %d wrong phyid %d\n", onePortContext->
id, onePortContext->
RegisteredDevNums, PhyID));
6638 TI_DBG3((
"ossaDeregisterDeviceHandleCB: PhyID %d\n", PhyID));
6656 TI_DBG2((
"ossaDeregisterDeviceHandleCB: calling saHwEventAck\n"));
6668 TI_DBG1((
"ossaDeregisterDeviceHandleCB: failing in saHwEventAck; status %d\n", HwAckSatus));
6674#ifdef INITIATOR_DRIVER
6677 TI_DBG1((
"ossaDeregisterDeviceHandleCB: all devices have been deregistered except directly attached EXP\n"));
6681 TI_DBG1((
"ossaDeregisterDeviceHandleCB: calling dmDiscover, incremental, pid %d\n", onePortContext->
id));
6687 TI_DBG1((
"ossaDeregisterDeviceHandleCB: not calling dmDiscover\n"));
6705 TI_DBG3((
"ossaDeregisterDeviceHandleCB: pid %d registeredNumDevice %d wrong phyid %d\n", onePortContext->
id, onePortContext->
RegisteredDevNums, PhyID));
6711 TI_DBG1((
"ossaDeregisterDeviceHandleCB: OSSA_INVALID_HANDLE\n"));
6714 case OSSA_FAILURE_DEVICE_DIRECT_ATTACH:
6715 TI_DBG1((
"ossaDeregisterDeviceHandleCB: OSSA_FAILURE_DEVICE_DIRECT_ATTACH\n"));
6719 TI_DBG1((
"ossaDeregisterDeviceHandleCB: OSSA_ERR_DEVICE_HANDLE_INVALID\n"));
6722 TI_DBG1((
"ossaDeregisterDeviceHandleCB: OSSA_ERR_DEVICE_BUSY\n"));
6725 TI_DBG1((
"ossaDeregisterDeviceHandleCB: unknown status 0x%x\n",
status));
6764 TI_DBG2((
"ossaDeviceHandleRemovedEvent: start\n"));
6765 if (oneDeviceData ==
agNULL)
6767 TI_DBG1((
"ossaDeviceHandleRemovedEvent: Wrong! oneDeviceData is NULL\n"));
6771 TI_DBG2((
"ossaDeviceHandleRemovedEvent: did %d\n", oneDeviceData->
id));
6774 if (onePortContext ==
agNULL)
6776 TI_DBG1((
"ossaDeviceHandleRemovedEvent: Wrong! onePortContext is NULL\n"));
6780 TI_DBG2((
"ossaDeviceHandleRemovedEvent: pid %d\n", onePortContext->
id));
6797#ifdef SPC_ENABLE_PROFILE
6824 TI_DBG2((
"ossaFwProfileCB: start\n"));
6830 TI_DBG2((
"ossaFwProfileCB: SUCCESS\n"));
6835 TI_DBG1((
"ossaFwProfileCB: FAIL\n"));
6840 TI_DBG1((
"ossaFwProfileCB: !!! default, status %d\n",
status));
6875 TI_DBG2((
"ossaFwFlashUpdateCB: start\n"));
6882 TI_DBG2((
"ossaFwFlashUpdateCB: OSSA_FLASH_UPDATE_COMPLETE_PENDING_REBOOT\n"));
6887 TI_DBG2((
"ossaFwFlashUpdateCB: OSSA_FLASH_UPDATE_IN_PROGRESS\n"));
6892 TI_DBG1((
"ossaFwFlashUpdateCB: OSSA_FLASH_UPDATE_HDR_ERR\n"));
6897 TI_DBG1((
"ossaFwFlashUpdateCB: OSSA_FLASH_UPDATE_OFFSET_ERR\n"));
6902 TI_DBG1((
"ossaFwFlashUpdateCB: OSSA_FLASH_UPDATE_CRC_ERR\n"));
6907 TI_DBG1((
"ossaFwFlashUpdateCB: OSSA_FLASH_UPDATE_LENGTH_ERR\n"));
6912 TI_DBG1((
"ossaFwFlashUpdateCB: OSSA_FLASH_UPDATE_HW_ERR\n"));
6917 TI_DBG1((
"ossaFwFlashUpdateCB: OSSA_FLASH_UPDATE_DNLD_NOT_SUPPORTED\n"));
6922 TI_DBG1((
"ossaFwFlashUpdateCB: OSSA_FLASH_UPDATE_DISABLED\n"));
6927 TI_DBG1((
"ossaFwFlashUpdateCB: OSSA_FLASH_FWDNLD_DEVICE_UNSUPPORT\n"));
6932 TI_DBG1((
"ossaFwFlashUpdateCB: OSSA_MPI_ERR_IO_RESOURCE_UNAVAILABLE\n"));
6937 TI_DBG1((
"ossaFwFlashUpdateCB: OSSA_FLASH_UPDATE_HMAC_ERR\n"));
6943 TI_DBG1((
"ossaFwFlashUpdateCB: !!! default, status 0x%X\n",
status));
6962 TI_DBG1((
"ossaFlashExtExecuteCB: command 0x%X status 0x%X\n",command,
status));
6993 bit8 indirectPayload,
7000 TI_DBG2((
"ossaGetNVMDResponseCB: start\n"));
7001 TI_DBG2((
"ossaGetNVMDResponseCB: agInfoLen %d\n", agInfoLen));
7006 TI_DBG2((
"ossaGetNVMDResponseCB: Success status\n"));
7007 if (indirectPayload == 0 && agInfoLen != 0)
7009 TI_DBG2((
"ossaGetNVMDResponseCB: direct\n"));
7010 tdhexdump(
"ossaGetNVMDResponseCB", (
bit8 *)agFrameHandle, agInfoLen);
7018 if (indirectPayload == 0)
7020 TI_DBG2((
"ossaGetNVMDResponseCB: direct\n"));
7024 TI_DBG2((
"ossaGetNVMDResponseCB: indirect\n"));
7058 TI_DBG2((
"ossaSetNVMDResponseCB: start\n"));
7062 TI_DBG2((
"ossaSetNVMDResponseCB: success\n"));
7066 TI_DBG1((
"ossaSetNVMDResponseCB: fail or undefined staus %d\n",
status));
7105 TI_DBG2((
"ossaGetVPDResponseCB: start\n"));
7110 TI_DBG2((
"ossaGetVPDResponseCB: agInfoLen %d\n", agInfoLen));
7114 tdhexdump(
"ossaGetVPDResponseCB", (
bit8 *)VPDData, agInfoLen);
7121 TI_DBG1((
"ossaGetVPDResponseCB: fail or undefined staus %d\n",
status));
7154 TI_DBG2((
"ossaSetVPDResponseCB: start\n"));
7159 TI_DBG2((
"ossaSetVPDResponseCB: success\n"));
7173 TI_DBG1((
"ossaSetVPDResponseCB: fail or undefined staus %d\n",
status));
7209 TI_DBG2((
"ossaEchoCB: start\n"));
7213 tdhexdump(
"ossaEchoCB: echoPayload", (
bit8 *)(echoPayload), 56);
7222 payload[55] = gEcho;
7224 TI_DBG2((
"ossaEchoCB: gEcho %d\n", gEcho));
7270 bit32 gpioReadValue,
7275 TI_DBG2((
"ossaGpioResponseCB: start\n"));
7279 TI_DBG2((
"ossaGpioResponseCB: Success\n"));
7281 TI_DBG2((
"ossaGpioResponseCB: gpioReadValue 0x%x\n", gpioReadValue));
7283 TI_DBG2((
"ossaGpioResponseCB: PinSetupInfo gpioTypePart1 0x%x\n", gpioPinSetupInfo->
gpioTypePart1));
7284 TI_DBG2((
"ossaGpioResponseCB: PinSetupInfo gpioTypePart2 0x%x\n", gpioPinSetupInfo->
gpioTypePart2));
7285 TI_DBG2((
"ossaGpioResponseCB: EventSetupInfo gpioEventLevel 0x%x\n", gpioEventSetupInfo->
gpioEventLevel));
7291 TI_DBG1((
"ossaGpioResponseCB: Failure\n"));
7319 TI_DBG2((
"ossaGpioEvent: start\n"));
7320 TI_DBG2((
"ossaGpioEvent: gpioEvent 0x%x\n", gpioEvent));
7355 TI_DBG2((
"ossaSASDiagExecuteCB: start\n"));
7357 TI_DBG2((
"ossaSASDiagExecuteCB: command %d\n", command));
7358 TI_DBG2((
"ossaSASDiagExecuteCB: reportData %d\n", reportData));
7388 TI_DBG2((
"ossaSASDiagStartEndCB: start\n"));
7433 TI_DBG2((
"ossaPCIeDiagExecuteCB: DWord8 0x%X\n",resp->
DWord8 ));
7434 TI_DBG2((
"ossaPCIeDiagExecuteCB: DWord9 0x%X\n",resp->
DWord9 ));
7435 TI_DBG2((
"ossaPCIeDiagExecuteCB: DWord10 0x%X\n",resp->
DWord10 ));
7436 TI_DBG2((
"ossaPCIeDiagExecuteCB: DWord11 0x%X\n",resp->
DWord11 ));
7437 TI_DBG2((
"ossaPCIeDiagExecuteCB: DIF_ERR 0x%X\n",resp->
DIF_ERR ));
7455 TI_DBG2((
"ossaSGpioCB: function: 0x%02x \n", pSgpioResponse->
function));
7493#if defined(SALLSDK_DEBUG)
7522 TI_DBG3((
"ossaHwEventAckCB: start\n"));
7526 TI_DBG3((
"ossaHwEventAckCB: SUCCESS status\n"));
7531 TI_DBG1((
"ossaHwEventAckCB: invalid event status bit0 %d\n",
status & 0x01));
7532 TI_DBG1((
"ossaHwEventAckCB: invalid phyid status bit1 %d\n", (
status & 0x02) >> 1 ));
7533 TI_DBG1((
"ossaHwEventAckCB: invalid portcontext status bit2 %d\n", (
status & 0x04) >> 2));
7534 TI_DBG1((
"ossaHwEventAckCB: invalid param0 status bit3 %d\n", (
status & 0x08) >> 3));
7564 bit32 timeStampLower,
7565 bit32 timeStampUpper
7569 TI_DBG4((
"ossaGetTimeStampCB: start\n"));
7570 TI_DBG4((
"ossaGetTimeStampCB: timeStampUpper 0x%x timeStampLower 0x%x\n", timeStampUpper, timeStampLower));
7604 TI_DBG4((
"ossaSMPAbortCB: start\n"));
7605 TI_DBG4((
"ossaSMPAbortCB: flag %d\n", flag));
7610 if (tdAbortIORequestBody ==
agNULL)
7612 TI_DBG1((
"ossaSMPAbortCB: tdAbortIORequestBody is NULL warning!!!!\n"));
7619 TI_DBG2((
"ossaSMPAbortCB: abort per port\n"));
7623 TI_DBG2((
"ossaSMPAbortCB: abort all\n"));
7628 TI_DBG1((
"ossaSMPAbortCB: tiDeviceHandle is NULL warning!!!!\n"));
7638 if (oneDeviceData ==
agNULL)
7640 TI_DBG1((
"ossaSMPAbortCB: oneDeviceData is NULL warning!!!!\n"));
7651 TI_DBG2((
"ossaSMPAbortCB: OSSA_IO_SUCCESS\n"));
7653 TI_DBG3((
"ossaSMPAbortCB: calling saDeregisterDeviceHandle\n"));
7655 TI_DBG2((
"ossaSMPAbortCB: did %d\n", oneDeviceData->
id));
7665 TI_DBG1((
"ossaSMPAbortCB: OSSA_IO_NOT_VALID\n"));
7667 TI_DBG1((
"ossaSMPAbortCB: calling saDeregisterDeviceHandle\n"));
7669 TI_DBG1((
"ossaSMPAbortCB: did %d\n", oneDeviceData->
id));
7678 TI_DBG1((
"ossaSMPAbortCB: OSSA_IO_NO_DEVICE\n"));
7680 TI_DBG1((
"ossaSMPAbortCB: calling saDeregisterDeviceHandle\n"));
7682 TI_DBG1((
"ossaSMPAbortCB: did %d\n", oneDeviceData->
id));
7691 TI_DBG1((
"ossaSMPAbortCB: OSSA_IO_ABORT_IN_PROGRESS\n"));
7693 TI_DBG1((
"ossaSMPAbortCB: calling saDeregisterDeviceHandle\n"));
7695 TI_DBG1((
"ossaSMPAbortCB: did %d\n", oneDeviceData->
id));
7705 TI_DBG1((
"ossaSMPAbortCB: OSSA_IO_ABORT_DELAYED\n"));
7707 TI_DBG1((
"ossaSMPAbortCB: calling saDeregisterDeviceHandle\n"));
7709 TI_DBG1((
"ossaSMPAbortCB: did %d\n", oneDeviceData->
id));
7721 TI_DBG1((
"ossaSMPAbortCB: calling saDeregisterDeviceHandle\n"));
7723 TI_DBG1((
"ossaSMPAbortCB: did %d\n", oneDeviceData->
id));
7733 TI_DBG2((
"ossaSMPAbortCB: abort one\n"));
7736 TI_DBG2((
"ossaSMPAbortCB: OSSA_IO_SUCCESS\n"));
7746 TI_DBG1((
"ossaSMPAbortCB: OSSA_IO_NOT_VALID\n"));
7755 TI_DBG1((
"ossaSMPAbortCB: OSSA_IO_NO_DEVICE\n"));
7764 TI_DBG1((
"ossaSMPAbortCB: OSSA_IO_ABORT_IN_PROGRESS\n"));
7774 TI_DBG1((
"ossaSMPAbortCB: OSSA_IO_ABORT_DELAYED\n"));
7794 TI_DBG1((
"ossaSMPAbortCB: wrong flag %d\n", flag));
7828 TI_DBG1((
"ossaGeneralEvent: start\n"));
7833 TI_DBG1((
"ossaGeneralEvent: *msg %X\n", *msg));
7856#ifdef INITIATOR_DRIVER
7923 TI_DBG4((
"ossaGetRegisterDumpCB: start\n"));
7957 bit32 newDeviceState,
7958 bit32 previousDeviceState
7963 TI_DBG2((
"ossaSetDeviceStateCB: start\n"));
7965 TI_DBG2((
"ossaSetDeviceStateCB: newDeviceState %d\n", newDeviceState));
7966 TI_DBG2((
"ossaSetDeviceStateCB: previousDeviceState %d\n", previousDeviceState));
7968 if (agDevHandle ==
agNULL)
7970 TI_DBG4((
"ossaSetDeviceStateCB: agDevHandle is NULL\n"));
7976 if (oneDeviceData ==
agNULL)
7978 TI_DBG1((
"ossaSetDeviceStateCB: wrong; oneDeviceData is NULL\n"));
7982 TI_DBG2((
"ossaSetDeviceStateCB: did %d\n", oneDeviceData->
id));
8015 TI_DBG4((
"ossaGetDeviceStateCB: start\n"));
8017 TI_DBG4((
"ossaGetDeviceStateCB: deviceState %d\n", deviceState));
8022#ifdef INITIATOR_DRIVER
8044ossaIniSetDeviceInfoCB(
8057 itdsaIni_t *Initiator = (itdsaIni_t *)tdsaAllShared->
itdsaIni;
8062 bit8 devType_S_Rate;
8065 TI_DBG4((
"ossaIniSetDeviceInfoCB: start\n"));
8067 TI_DBG4((
"ossaIniSetDeviceInfoCB: option 0x%x\n", option));
8068 TI_DBG4((
"ossaIniSetDeviceInfoCB: param 0x%x\n", param));
8073 TI_DBG1((
"ossaIniSetDeviceInfoCB: option 0x%x\n", option));
8074 TI_DBG1((
"ossaIniSetDeviceInfoCB: param 0x%x\n", param));
8077 TI_DBG1((
"ossaIniSetDeviceInfoCB: IO failure\n"));
8082 tdIORequestBody->tiIORequest,
8090 if (agDevHandle ==
agNULL)
8092 TI_DBG4((
"ossaIniSetDeviceInfoCB: agDevHandle is NULL\n"));
8096 if (oneDeviceData ==
agNULL)
8098 TI_DBG1((
"ossaIniSetDeviceInfoCB: wrong; oneDeviceData is NULL\n"));
8103 TI_DBG4((
"ossaIniSetDeviceInfoCB: did %d\n", oneDeviceData->
id));
8109 TI_DBG1((
"ossaIniSetDeviceInfoCB: set connection rate option\n"));
8113 devType_S_Rate = (devType_S_Rate & 0xF0) | (param >> 28);
8123 tdIORequestBody->agRequestType,
8124 &(tdIORequestBody->transport.SAS.agSASRequestBody),
8129 TI_DBG1((
"ossaIniSetDeviceInfoCB: retried\n"));
8130 Initiator->NumIOsActive++;
8131 tdIORequestBody->ioStarted =
agTRUE;
8132 tdIORequestBody->ioCompleted =
agFALSE;
8137 TI_DBG1((
"ossaIniSetDeviceInfoCB: retry failed\n"));
8138 tdIORequestBody->ioStarted =
agFALSE;
8139 tdIORequestBody->ioCompleted =
agTRUE;
8142 tdIORequestBody->tiIORequest,
8185 TI_DBG4((
"ossaSetDeviceInfoCB: start\n"));
8187 TI_DBG4((
"ossaSetDeviceInfoCB: option 0x%x\n", option));
8188 TI_DBG4((
"ossaSetDeviceInfoCB: param 0x%x\n", param));
8193 TI_DBG1((
"ossaSetDeviceInfoCB: option 0x%x\n", option));
8194 TI_DBG1((
"ossaSetDeviceInfoCB: param 0x%x\n", param));
8197 if (agDevHandle ==
agNULL)
8199 TI_DBG4((
"ossaSetDeviceInfoCB: agDevHandle is NULL\n"));
8205 if (oneDeviceData ==
agNULL)
8207 TI_DBG1((
"ossaSetDeviceInfoCB: wrong; oneDeviceData is NULL\n"));
8211 TI_DBG4((
"ossaSetDeviceInfoCB: did %d\n", oneDeviceData->
id));
8241 TI_DBG1((
"ossaGetDFEDataCB: start\n"));
8242 TI_DBG1((
"ossaGetDFEDataCB: status 0x%x agInfoLen 0x%x\n",
status, agInfoLen));
8271 TI_DBG1((
"ossaVhistCaptureCB: start\n"));
8272 TI_DBG1((
"ossaVhistCaptureCB: status 0x%x agInfoLen 0x%x\n",
status,len ));
8287 TI_DBG1((
"ossaOperatorManagementCB: status 0x%x eq 0x%x\n",
status, eq));
8313 TI_DBG1((
"ossaEncryptSelftestExecuteCB: status 0x%x type 0x%x length 0x%x\n",
status, type, length));
8318 encryptEventData.
pData = (
void*)TestResult;
8341 TI_DBG1((
"ossaGetOperatorCB: status 0x%x option 0x%x num 0x%x role 0x%x\n",
8342 status, option, num, role));
8343 TI_DBG1((
"ossaGetOperatorCB: agContext %p id %p\n",agContext,
id));
8346 encryptEventData.
subEvent = option;
8352 TI_DBG1((
"ossaGetOperatorCB: OSSA_IO_SUCCESS option 0x%x\n", option));
8355 TI_DBG2((
"ossaGetOperatorCB: 0x%02x 0x%02x 0x%02x 0x%02x\n",id->
ID[0], id->
ID[1], id->
ID[2], id->
ID[3]));
8356 TI_DBG2((
"ossaGetOperatorCB: 0x%02x 0x%02x 0x%02x 0x%02x\n",id->
ID[4], id->
ID[5], id->
ID[6], id->
ID[7]));
8357 TI_DBG2((
"ossaGetOperatorCB: 0x%02x 0x%02x 0x%02x 0x%02x\n",id->
ID[8], id->
ID[9], id->
ID[10],id->
ID[11]));
8358 TI_DBG2((
"ossaGetOperatorCB: 0x%02x 0x%02x 0x%02x 0x%02x\n",id->
ID[12],id->
ID[13],id->
ID[14],id->
ID[15]));
8359 TI_DBG2((
"ossaGetOperatorCB: 0x%02x 0x%02x 0x%02x 0x%02x\n",id->
ID[16],id->
ID[17],id->
ID[18],id->
ID[19]));
8360 TI_DBG2((
"ossaGetOperatorCB: 0x%02x 0x%02x 0x%02x 0x%02x\n",id->
ID[20],id->
ID[21],id->
ID[22],id->
ID[23]));
8361 TI_DBG2((
"ossaGetOperatorCB: 0x%02x 0x%02x 0x%02x 0x%02x\n",id->
ID[24],id->
ID[25],id->
ID[26],id->
ID[27]));
8362 TI_DBG2((
"ossaGetOperatorCB: 0x%02x 0x%02x 0x%02x\n", id->
ID[28],id->
ID[29],id->
ID[30]));
8363 }
else if(option == 2)
8365 TI_DBG1((
"ossaGetOperatorCB: number operators 0x%02x\n", num ));
8368 encryptEventData.
pData = id;
8371 TI_DBG1((
"ossaGetOperatorCB: OSSA_MPI_ENC_ERR_UNSUPPORTED_OPTION 0x%x\n",option));
8374 TI_DBG1((
"ossaGetOperatorCB: OSSA_MPI_ENC_ERR_ID_TRANSFER_FAILURE 0x%x\n",option));
8377 TI_DBG1((
"ossaGetOperatorCB: Unknown status 0x%x\n",
status));
8397 TI_DBG1((
"ossaSetOperatorCB: agContext %p status 0x%x eq 0x%x\n",agContext,
status, eq));
8405 TI_DBG1((
"ossaSetOperatorCB: OSSA_IO_SUCCESS\n"));
8409 TI_DBG1((
"ossaSetOperatorCB: OSSA_MPI_ENC_ERR_CONTROLLER_NOT_IDLE\n"));
8412 TI_DBG1((
"ossaSetOperatorCB: OSSA_MPI_ENC_OPERATOR_AUTH_FAILURE error qualifier 0x%x\n",eq));
8415 TI_DBG1((
"ossaSetOperatorCB: OSSA_MPI_ENC_OPERATOR_OPERATOR_ALREADY_LOGGED_IN\n"));
8418 TI_DBG1((
"ossaSetOperatorCB: OSSA_MPI_ENC_OPERATOR_ILLEGAL_PARAMETER\n"));
8421 TI_DBG1((
"ossaSetOperatorCB: OSSA_MPI_ENC_ERR_UNSUPPORTED_OPTION\n"));
8424 TI_DBG1((
"ossaSetOperatorCB: OSSA_MPI_ENC_ERR_ID_TRANSFER_FAILURE\n"));
8427 TI_DBG1((
"ossaGetOperatorCB: Unknown status 0x%x\n",
status));
8441 TI_DBG1((
"ossaDIFEncryptionOffloadStartCB: start\n"));
8442 TI_DBG1((
"ossaDIFEncryptionOffloadStartCB: status 0x%x agsaOffloadDifDetails=%p\n",
status, agsaOffloadDifDetails));
8485 itdsaIni_t *Initiator = (itdsaIni_t *)tdsaAllShared->
itdsaIni;
8487 TI_DBG1((
"tdIDStartTimer: start\n"));
8490 if (oneDeviceData->tdIDTimer.timerRunning ==
agTRUE)
8495 &oneDeviceData->tdIDTimer
8505 &oneDeviceData->tdIDTimer,
8515 &Initiator->timerlist,
8516 &oneDeviceData->tdIDTimer
8518 TI_DBG1((
"tdIDStartTimer: end\n"));
8547 bit32 memAllocStatus;
8550#ifdef TD_DEBUG_ENABLE
8554 TI_DBG1((
"tdIDStartTimerCB start\n"));
8557 smRoot = &(tdsaAllShared->smRoot);
8559 agRoot = oneDeviceData->
agRoot;
8562 if (smIORequest ==
agNULL)
8564 TI_DBG1((
"tdIDStartTimerCB: smIORequest == agNULL !!!!!!\n"));
8568 if (oneDeviceData ==
agNULL)
8570 TI_DBG1((
"tdIDStartTimerCB: oneDeviceData == agNULL !!!!!!\n"));
8583 if (tdIORequestBody ==
agNULL)
8585 TI_DBG1((
"tdIDStartTimerCB: tdIORequestBody == agNULL !!!!!!\n"));
8589 if (smDeviceHandle ==
agNULL)
8591 TI_DBG1((
"tdIDStartTimerCB: smDeviceHandle == agNULL !!!!!!\n"));
8595 if (onePortContext ==
agNULL)
8597 TI_DBG1((
"tdIDStartTimerCB: onePortContext == agNULL !!!!!!\n"));
8601 TI_DBG1((
"tdIDStartTimerCB: did %d\n", oneDeviceData->
id));
8608 TI_DBG1((
"tdIDStartTimerCB: invalid device\n"));
8611#ifdef TD_DEBUG_ENABLE
8622 (
void **)&tdAbortIORequestBody,
8632 TI_DBG1((
"tdIDStartTimerCB: ostiAllocMemory failed...; can't retry ID data \n"));
8635 if (tdAbortIORequestBody ==
agNULL)
8638 TI_DBG1((
"tdIDStartTimerCB: ostiAllocMemory returned NULL tdAbortIORequestBody; can't retry ID data\n"));
8642 tdAbortIORequestBody->IOType.InitiatorTMIO.osMemHandle = osMemHandle;
8644 tdAbortIORequestBody->IOCompletionFunc =
agNULL;
8648 agAbortIORequest = &(tdAbortIORequestBody->agIORequest);
8649 agAbortIORequest->
osData = (
void *) tdAbortIORequestBody;
8673 TI_DBG1((
"tdIDStartTimerCB: saSATAAbort failed; can't retry ID data\n"));
8677 TI_DBG1((
"tdIDStartTimerCB: IDDeviceValid is valid, no need to retry\n"));
8680 if (tdIORequestBody->
reTries <= SM_RETRIES)
8683 tdIORequestBody->pid = onePortContext->
id;
8684 smIORequest->
tdData = tdIORequestBody;
8685 smIORequest->
smData = &tdIORequestBody->smIORequestBody;
8686 smDeviceHandle->
tdData = oneDeviceData;
8687 IDstatus =
smIDStart(smRoot, smIORequest, smDeviceHandle );
8690 TI_DBG1((
"tdIDStartTimerCB: being retried!!!\n"));
8694 tdIDStartTimer(
tiRoot, smIORequest, oneDeviceData);
8699 TI_DBG1((
"tdIDStartTimerCB: smIDStart fail or busy %d!!!\n", IDstatus));
8708 smReportRemoval(
tiRoot, agRoot, oneDeviceData, onePortContext);
8715 TI_DBG1((
"tdIDStartTimerCB: retries are over!!!\n"));
8716 if (oneDeviceData->tdIDTimer.timerRunning ==
agTRUE)
8730 if (oneDeviceData->SMNumOfID <= 0)
8732 TI_DBG1((
"tdIDStartTimerCB: fail; sending HARD_RESET\n"));
8733 oneDeviceData->SMNumOfID++;
8740 tdsaPhyControlSend(
tiRoot,
8749 TI_DBG1((
"tdIDStartTimerCB: fail; but giving up sending HARD_RESET!!!\n"));
8752 smReportRemovalDirect(
tiRoot, agRoot, oneDeviceData);
8756 smReportRemoval(
tiRoot, agRoot, oneDeviceData, onePortContext);
8762 TI_DBG1((
"tdIDStartTimerCB: end, smIOAbort status %d\n",
status));
8768#if defined(FDS_DM) && defined(FDS_SM)
8787 bit32 memAllocStatus;
8791 TI_DBG1((
"tdIDStart: start, did %d\n",oneDeviceData->
id));
8800 TI_DBG2((
"tdIDStart: in loop, did %d\n", oneDeviceData->
id));
8805 (
void **)&tdIORequestBody,
8815 TI_DBG1((
"tdIDStart: ostiAllocMemory failed... or ostiAllocMemory returned NULL tdIORequestBody!!!\n"));
8826#ifdef INITIATOR_DRIVER
8842 tdIORequestBody->osMemHandle = osMemHandle;
8843 TI_DBG2((
"tdIDStart: tdIORequestBody %p tdIORequestBody->osMemHandle %p\n", tdIORequestBody, tdIORequestBody->osMemHandle));
8846 tdIORequestBody->IOCompletionFunc =
agNULL;
8847 tdIORequestBody->tiDevHandle =
agNULL;
8849 tdIORequestBody->tiIORequest =
agNULL;
8850 tdIORequestBody->pid = onePortContext->
id;
8851 tdIORequestBody->reTries = 0;
8852 smIORequest = (
smIORequest_t *)&(tdIORequestBody->smIORequest);
8853 smIORequest->
tdData = tdIORequestBody;
8854 smIORequest->
smData = &tdIORequestBody->smIORequestBody;
8857 smDeviceHandle->
tdData = oneDeviceData;
8859 TI_DBG2((
"tdIDStart: smIORequest %p\n", smIORequest));
8863 &(oneDeviceData->smDeviceHandle)
8870 TI_DBG2((
"tdIDStart: successfully sent identify device data\n"));
8876 TI_DBG6((
"tdIDStart: one case did %d \n", oneDeviceData->
id));
8880 tdIDStartTimer(
tiRoot, smIORequest, oneDeviceData);
8885 TI_DBG1((
"tdIDStart: smIDStart fail or busy %d\n", SMstatus));
8890 tdIORequestBody->IOType.InitiatorTMIO.osMemHandle,
8897 TI_DBG1((
"tdIDStart: failed in sending identify device data\n"));
8909#ifdef INITIATOR_DRIVER
8921 smReportRemoval(
tiRoot, agRoot, oneDeviceData, onePortContext);
8926 TI_DBG1((
"tdIDStart: exit\n"));
8932#ifdef SALLSDK_OS_IOMB_LOG_ENABLE
#define DM_DISCOVERY_OPTION_INCREMENTAL_START
#define DM_DISCOVERY_OPTION_ABORT
osGLOBAL bit32 dmQueryDiscovery(dmRoot_t *dmRoot, dmPortContext_t *dmPortContext)
osGLOBAL bit32 dmRegisterDevice(dmRoot_t *dmRoot, dmPortContext_t *dmPortContext, dmDeviceInfo_t *dmDeviceInfo, agsaDevHandle_t *agDevHandle)
osGLOBAL void dmNotifyBC(dmRoot_t *dmRoot, dmPortContext_t *dmPortContext, bit32 type)
osGLOBAL bit32 dmCreatePort(dmRoot_t *dmRoot, dmPortContext_t *dmPortContext, dmPortInfo_t *dmPortInfo)
osGLOBAL bit32 dmResetFailedDiscovery(dmRoot_t *dmRoot, dmPortContext_t *dmPortContext)
osGLOBAL bit32 dmDestroyPort(dmRoot_t *dmRoot, dmPortContext_t *dmPortContext, dmPortInfo_t *dmPortInfo)
osGLOBAL bit32 dmDiscover(dmRoot_t *dmRoot, dmPortContext_t *dmPortContext, bit32 option)
#define DEVICE_IS_SATA_DEVICE(DeviceData)
#define SAS_CONNECTION_RATE_6_0G
#define SATA_ID_DEVICE_DATA_TIMER_VALUE
#define SAS_EDGE_EXPANDER_DEVICE
#define DEVICE_IS_STP_TARGET(DeviceData)
#define MIN(a, b)
MIN macro.
#define SAS_CONNECTION_RATE_1_5G
#define DEVINFO_PUT_SAS_ADDRESSLO(devInfo, src32)
#define DEVICE_IS_SMP_TARGET(DeviceData)
#define SMP_PHY_CONTROL_HARD_RESET
#define SAS_FANOUT_EXPANDER_DEVICE
#define DEVINFO_GET_LINKRATE(devInfo)
#define SAS_CONNECTION_RATE_12_0G
#define DEVINFO_PUT_SAS_ADDRESSHI(devInfo, src32)
#define SAS_CONNECTION_RATE_3_0G
#define DEVICE_IS_SSP_TARGET(DeviceData)
#define DEVINFO_GET_DEVICETTYPE(devInfo)
#define ITD_DSTATE_NOT_STARTED
#define ITD_DSTATE_COMPLETED
#define ITD_DSTATE_STARTED
U32 ostiTimeStamp(tiRoot_t *ptiRoot)
void ostiChipWriteBit32(tiRoot_t *ptiRoot, U32 chipOffset, U32 chipValue)
U32 ostiChipConfigReadBit32(tiRoot_t *ptiRoot, U32 chipConfigOffset)
U32 ostiChipReadBit32(tiRoot_t *ptiRoot, U32 chipOffset)
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 ostiChipWriteBit32Ext(tiRoot_t *ptiRoot, U32 busBaseNumber, U32 chipOffset, U32 aData)
U32 ostiChipReadBit32Ext(tiRoot_t *ptiRoot, U32 busBaseNumber, U32 chipOffset)
osGLOBAL void ostiCacheInvalidate(tiRoot_t *ptiRoot, void *osMemHandle, void *virtPtr, bit32 length)
void ostiStallThread(tiRoot_t *ptiRoot, U32 microseconds)
osGLOBAL void ostiCacheFlush(tiRoot_t *ptiRoot, void *osMemHandle, void *virtPtr, bit32 length)
void ostiPortEvent(tiRoot_t *ptiRoot, tiPortEvent_t eventType, U32 status, void *pParm)
osGLOBAL void ostiCachePreFlush(tiRoot_t *tiRoot, void *osMemHandle, void *virtPtr, bit32 length)
U64 ostiTimeStamp64(tiRoot_t *ptiRoot)
The file defines the debug constants and structures.
#define smTraceFuncEnter(L, I)
#define smTraceFuncExit(L, S, I)
void ostiSingleThreadedLeave(tiRoot_t *ptiRoot, U32 queueId)
void ostiInitiatorEvent(tiRoot_t *ptiRoot, tiPortalContext_t *ptiPortalContext, tiDeviceHandle_t *ptiDevHandle, tiIntrEventType_t eventType, U32 eventStatus, void *parm)
void ostiInitiatorSMPCompleted(tiRoot_t *ptiRoot, tiIORequest_t *ptiSMPRequest, tiSMPStatus_t smpStatus, bit32 tiSMPInfoLen, void *tiFrameHandle, bit32 context)
osGLOBAL void ostiPCI_TRIGGER(tiRoot_t *tiRoot)
void ostiInitiatorIOCompleted(tiRoot_t *ptiRoot, tiIORequest_t *ptiIORequest, tiIOStatus_t IOStatus, U32 statusDetail, tiSenseData_t *pSenseData, U32 context)
void ostiSingleThreadedEnter(tiRoot_t *ptiRoot, U32 queueId)
#define TIDEBUG_MSG(mask, val, format)
GLOBAL void ossaGetIOErrorStatsCB(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 status, agsaIOErrorEventStats_t *stats)
GLOBAL void ossaGetIOEventStatsCB(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 status, agsaIOErrorEventStats_t *stats)
osGLOBAL void ossaSMPReqReceived(agsaRoot_t *agRoot, agsaDevHandle_t *agDevHandle, agsaFrameHandle_t agFrameHandle, bit32 agIOInfoLen, bit32 phyId)
osGLOBAL void ossaSMPIoctlCompleted(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, bit32 agIOInfoLen, agsaFrameHandle_t agFrameHandle)
FORCEINLINE void ossaCachePreFlush(agsaRoot_t *agRoot, void *osMemHandle, void *virtPtr, bit32 length)
GLOBAL void ossaSetPhyProfileCB(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 status, bit32 ppc, bit32 phyID, void *parm)
osGLOBAL void ossaLogTrace2(agsaRoot_t *agRoot, bit32 traceCode, bit32 value1, bit32 value2)
osGLOBAL void ossaReconfigSASParamsCB(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 status, agsaSASReconfig_t *agSASConfig)
ossaReconfigSASParamsCB
osGLOBAL void ossaStallThread(agsaRoot_t *agRoot, bit32 microseconds)
ossaStallThread
FORCEINLINE void ossaSingleThreadedLeave(agsaRoot_t *agRoot, bit32 syncLockId)
ossaSingleThreadedLeave
FORCEINLINE void ossaCacheInvalidate(agsaRoot_t *agRoot, void *osMemHandle, void *virtPtr, bit32 length)
GLOBAL void ossaGetForensicDataCB(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 status, agsaForensicData_t *forensicData)
osGLOBAL void ossaSATADeviceResetCB(agsaRoot_t *agRoot, agsaDevHandle_t *agDevHandle, bit32 resetStatus, void *resetparm)
GLOBAL void ossaGetDFEDataCB(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 status, bit32 agInfoLen)
ossaGetDFEDataCB
osGLOBAL void ossaSSPEvent(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, agsaPortContext_t *agPortContext, agsaDevHandle_t *agDevHandle, bit32 event, bit16 sspTag, bit32 agIOInfoLen, void *agParam)
GLOBAL bit32 ossaTimeStamp(agsaRoot_t *agRoot)
FORCEINLINE void ossaHwRegWrite(agsaRoot_t *agRoot, bit32 regOffset, bit32 regValue)
osGLOBAL void ossaEchoCB(agsaRoot_t *agRoot, agsaContext_t *agContext, void *echoPayload)
ossaEchoCB
osGLOBAL void ossaLogTrace0(agsaRoot_t *agRoot, bit32 traceCode)
osGLOBAL void ossaFwFlashUpdateCB(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 status)
ossaFwFlashUpdateCB
osGLOBAL void ossaSASDiagExecuteCB(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 status, bit32 command, bit32 reportData)
ossaSASDiagExecuteCB
GLOBAL void ossaEncryptSelftestExecuteCB(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 status, bit32 type, bit32 length, void *TestResult)
GLOBAL void ossaDIFEncryptionOffloadStartCB(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 status, agsaOffloadDifDetails_t *agsaOffloadDifDetails)
osGLOBAL void ossaGpioEvent(agsaRoot_t *agRoot, bit32 gpioEvent)
ossaGpioEvent
osGLOBAL void ossaDiscoverSasCB(agsaRoot_t *agRoot, agsaPortContext_t *agPortContext, bit32 event, void *pParm1, void *pParm2)
osGLOBAL void ossaLocalPhyControlCB(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 phyId, bit32 phyOperation, bit32 status, void *parm)
ossaLocalPhyControlCB
osGLOBAL void ossaSATAEvent(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, agsaPortContext_t *agPortContext, agsaDevHandle_t *agDevHandle, bit32 event, bit32 agIOInfoLen, void *agParam)
osGLOBAL void ossaSetNVMDResponseCB(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 status)
ossaSetNVMDResponseCB
GLOBAL void ossaSATACompleted(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, void *agFirstDword, bit32 agIOInfoLen, void *agParam)
GLOBAL void ossaOperatorManagementCB(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 status, bit32 eq)
GLOBAL void ossaSetOperatorCB(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 status, bit32 eq)
GLOBAL void ossaPCIeDiagExecuteCB(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 status, bit32 command, agsaPCIeDiagResponse_t *resp)
osGLOBAL void ossaSMPCAMCompleted(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, bit32 agIOInfoLen, agsaFrameHandle_t agFrameHandle)
ossaSMPCAMCompleted
osGLOBAL void ossaDeregisterDeviceHandleCB(agsaRoot_t *agRoot, agsaContext_t *agContext, agsaDevHandle_t *agDevHandle, bit32 status)
ossaDeregisterDeviceHandleCB
osGLOBAL void ossaPortControlCB(agsaRoot_t *agRoot, agsaContext_t *agContext, agsaPortContext_t *agPortContext, bit32 portOperation, bit32 status)
osGLOBAL void ossaLogTrace1(agsaRoot_t *agRoot, bit32 traceCode, bit32 value1)
osGLOBAL bit32 ossaDeviceHandleAccept(agsaRoot_t *agRoot, agsaDevHandle_t *agDevHandle, agsaSASDeviceInfo_t *agDevInfo, agsaPortContext_t *agPortContext, bit32 *hostAssignedDeviceId)
GLOBAL void ossaGetPhyProfileCB(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 status, bit32 ppc, bit32 phyID, void *parm)
osGLOBAL bit32 ossaHwRegReadConfig32(agsaRoot_t *agRoot, bit32 regOffset)
osGLOBAL void ossaSMPCompleted(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, bit32 agIOInfoLen, agsaFrameHandle_t agFrameHandle)
ossaSMPCompleted
osGLOBAL void ossaSASDiagStartEndCB(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 status)
ossaSASDiagStartEndCB
void ossaPCI_TRIGGER(agsaRoot_t *agRoot)
osGLOBAL void ossaSSPReqReceived(agsaRoot_t *agRoot, agsaDevHandle_t *agDevHandle, agsaFrameHandle_t agFrameHandle, bit16 agInitiatorTag, bit32 parameter, bit32 agFrameLen)
ossaSSPReqReceived
GLOBAL void ossaFlashExtExecuteCB(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 status, bit32 command, agsaFlashExtResponse_t *agFlashExtRsp)
osGLOBAL void ossaGetDeviceHandlesCB(agsaRoot_t *agRoot, agsaContext_t *agContext, agsaPortContext_t *agPortContext, agsaDevHandle_t *agDev[], bit32 validDevs)
ossaGetDeviceHandlesCB
osGLOBAL void ossaLogTrace4(agsaRoot_t *agRoot, bit32 traceCode, bit32 value1, bit32 value2, bit32 value3, bit32 value4)
osGLOBAL void ossaDeviceRegistrationCB(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 status, agsaDevHandle_t *agDevHandle, bit32 deviceID)
ossaDeviceRegistrationCB
GLOBAL void ossaSMPAbortCB(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 flag, bit32 status)
ossaSMPAbortCB
FORCEINLINE bit32 ossaHwRegRead(agsaRoot_t *agRoot, bit32 regOffset)
GLOBAL void ossaSetDeviceStateCB(agsaRoot_t *agRoot, agsaContext_t *agContext, agsaDevHandle_t *agDevHandle, bit32 status, bit32 newDeviceState, bit32 previousDeviceState)
ossaSetDeviceStateCB
GLOBAL void ossaHwEventAckCB(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 status)
ossaHwEventAckCB
GLOBAL void ossaSetDeviceInfoCB(agsaRoot_t *agRoot, agsaContext_t *agContext, agsaDevHandle_t *agDevHandle, bit32 status, bit32 option, bit32 param)
ossaSetDeviceInfoCB
osGLOBAL void ossaDeviceHandleRemovedEvent(agsaRoot_t *agRoot, agsaDevHandle_t *agDevHandle, agsaPortContext_t *agPortContext)
ossaDeviceHandleRemovedEvent
osGLOBAL void ossaHwCB(agsaRoot_t *agRoot, agsaPortContext_t *agPortContext, bit32 event, bit32 eventParm1, void *eventParm2, void *eventParm3)
FORCEINLINE void ossaSSPCompleted(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, bit32 agIOInfoLen, void *agParam, bit16 sspTag, bit32 agOtherInfo)
ossaSSPCompleted
GLOBAL void ossaSGpioCB(agsaRoot_t *agRoot, agsaContext_t *agContext, agsaSGpioReqResponse_t *pSgpioResponse)
osGLOBAL void ossaSSPIoctlCompleted(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, bit32 agIOInfoLen, void *agParam, bit16 sspTag, bit32 agOtherInfo)
GLOBAL void ossaGetDeviceStateCB(agsaRoot_t *agRoot, agsaContext_t *agContext, agsaDevHandle_t *agDevHandle, bit32 status, bit32 deviceState)
ossaGetDeviceStateCB
GLOBAL bit64 ossaTimeStamp64(agsaRoot_t *agRoot)
GLOBAL void ossaGetTimeStampCB(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 timeStampLower, bit32 timeStampUpper)
ossaGetTimeStampCB
GLOBAL void ossaGeneralEvent(agsaRoot_t *agRoot, bit32 status, agsaContext_t *agContext, bit32 *msg)
ossaGeneralEvent
GLOBAL void ossaLogDebugString(agsaRoot_t *agRoot, bit32 level, char *string, void *ptr1, void *ptr2, bit32 value1, bit32 value2)
ossaLogDebugString
GLOBAL void ossaGetOperatorCB(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 status, bit32 option, bit32 num, bit32 role, agsaID_t *id)
osGLOBAL void ossaGpioResponseCB(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 status, bit32 gpioReadValue, agsaGpioPinSetupInfo_t *gpioPinSetupInfo, agsaGpioEventSetupInfo_t *gpioEventSetupInfo)
ossaGpioResponseCB
FORCEINLINE void ossaHwRegWriteExt(agsaRoot_t *agRoot, bit32 busBaseNumber, bit32 regOffset, bit32 regValue)
osGLOBAL void ossaGetNVMDResponseCB(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 status, bit8 indirectPayload, bit32 agInfoLen, agsaFrameHandle_t agFrameHandle)
ossaGetNVMDResponseCB
GLOBAL void ossaGetRegisterDumpCB(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 status)
ossaGetRegisterDumpCB
FORCEINLINE void ossaSingleThreadedEnter(agsaRoot_t *agRoot, bit32 syncLockId)
ossaSingleThreadedEnter
FORCEINLINE void ossaCacheFlush(agsaRoot_t *agRoot, void *osMemHandle, void *virtPtr, bit32 length)
osGLOBAL void ossaLogTrace3(agsaRoot_t *agRoot, bit32 traceCode, bit32 value1, bit32 value2, bit32 value3)
void ossaVhistCaptureCB(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 status, bit32 len)
ossaVhistCaptureCB
osGLOBAL void ossaGetDeviceInfoCB(agsaRoot_t *agRoot, agsaContext_t *agContext, agsaDevHandle_t *agDevHandle, bit32 status, void *agInfo)
ossaGetDeviceInfoCB
FORCEINLINE bit32 ossaHwRegReadExt(agsaRoot_t *agRoot, bit32 busBaseNumber, bit32 regOffset)
osGLOBAL void ossaDiscoverSataCB(agsaRoot_t *agRoot, agsaPortContext_t *agPortContext, bit32 event, void *pParm1, void *pParm2)
#define osti_memset(s, c, n)
#define osti_memcpy(des, src, n)
osGLOBAL bit32 ostiTargetEvent(tiRoot_t *tiRoot, tiPortalContext_t *portalContext, tiDeviceHandle_t *tiDeviceHandle, tiTgtEventType_t eventType, bit32 eventStatus, void *parm)
The file defines the constants, data structure, and functions defined by LL API.
#define AGSA_PHY_HARD_RESET
#define AGSA_REQ_TYPE_UNKNOWN
#define AGSA_PORT_SET_PORT_RESET_TIME
#define OSSA_HW_ENCRYPT_DEK_UPDATE
#define OSSA_ERR_DEVICE_TYPE_NOT_VALID
#define OSSA_FLASH_UPDATE_DISABLED
#define OSSA_FLASH_UPDATE_HDR_ERR
#define OSSA_PORT_IN_RESET
void * agsaFrameHandle_t
handle to access frame
#define OSSA_DEV_INFO_NO_EXTENDED_INFO
#define OSSA_FLASH_UPDATE_IN_PROGRESS
#define SA_DS_OPERATIONAL
#define OSSA_DISCOVER_ABORT_ERROR_9
#define OSSA_HW_EVENT_PHY_ERR_PHY_RESET_FAILED
#define AGSA_ENCRYPTION_GENERAL_CONFIG_PAGE
#define OSSA_HW_EVENT_ID_FRAME_TIMEOUT
#define OSSA_HW_EVENT_BROADCAST_EXP
#define AGSA_ENCRYPTION_HMAC_CONFIG_PAGE
#define OSSA_DEV_INFO_INVALID_HANDLE
#define OSSA_ERR_PORT_STATE_NOT_VALID
#define OSSA_HW_EVENT_RESET_START
#define OSSA_DISCOVER_ABORT_ERROR_5
#define OSSA_DEV_INFO_SATA_EXTENDED_INFO
#define OSSA_FLASH_UPDATE_COMPLETE_PENDING_REBOOT
#define OSSA_FLASH_UPDATE_HW_ERR
#define OSSA_FLASH_UPDATE_DNLD_NOT_SUPPORTED
#define AGSA_SAS_PHY_BW_COUNTERS_PAGE
#define OSSA_HW_EVENT_SECURITY_MODE
#define OSSA_HW_ENCRYPT_KEK_UPDATE_AND_STORE
#define AGSA_PORT_SET_SMP_PHY_WIDTH
#define OSSA_HW_EVENT_PORT_RESET_TIMER_TMO
#define OSSA_FAILURE_PHY_ID_ALREADY_REGISTERED
#define OSSA_FAILURE_INVALID_PHY_ID
#define OSSA_HW_EVENT_BROADCAST_SES
#define OSSA_DISCOVER_ABORT_ERROR_4
#define OSSA_DISCOVER_ABORT_ERROR_2
#define OSSA_DISCOVER_ABORT_ERROR_6
#define OSSA_DISCOVER_REMOVED_DEVICE
#define OSSA_DISCOVER_ABORT_ERROR_1
#define OSSA_DEV_INFO_SAS_EXTENDED_INFO
#define OSSA_FLASH_UPDATE_CRC_ERR
#define OSSA_HW_EVENT_RESET_COMPLETE
#define AGSA_PHY_CLEAR_ERROR_COUNTS
#define AGSA_SAS_PHY_ANALOG_SETTINGS_PAGE
#define OSSA_PORT_3RDPARTY_RESET
#define OSSA_DISCOVER_ABORT_ERROR_8
#define AGSA_STOP_PORT_RECOVERY_TIMER
#define OSSA_FAILURE_OUT_OF_RESOURCE
#define AGSA_PORT_IO_ABORT
#define OSSA_ERR_DEVICE_HANDLE_INVALID
#define OSSA_HW_EVENT_PORT_RESET_COMPLETE
#define AGSA_SAS_PHY_GENERAL_STATUS_PAGE
#define AGSA_ENCRYPTION_DEK_CONFIG_PAGE
#define AGSA_PHY_LINK_RESET
#define AGSA_INTERRUPT_CONFIGURATION_PAGE
#define AG_SA_DISCOVERY_TYPE_SATA
#define OSSA_FLASH_FWDNLD_DEVICE_UNSUPPORT
#define AG_SA_DISCOVERY_OPTION_INCREMENTAL_START
#define OSSA_ERR_PHY_ID_INVALID
#define OSSA_HW_EVENT_SAS_PHY_UP
#define AGSA_ENCRYPTION_CONTROL_PARM_PAGE
#define OSSA_ERR_DEVICE_ALREADY_REGISTERED
#define OSSA_ERR_DEVICE_HANDLE_UNAVAILABLE
#define OSSA_DISCOVER_STARTED
#define OSSA_INVALID_HANDLE
#define OSSA_HW_EVENT_PHY_ERR_CODE_VIOLATION
#define OSSA_FLASH_UPDATE_LENGTH_ERR
#define agsaEncryptCipherModeECB
#define AGSA_PORT_CLEAN_UP
#define OSSA_DISCOVER_ABORT
#define OSSA_HW_EVENT_PHY_ERR_DISPARITY_ERROR
#define OSSA_HW_EVENT_SATA_SPINUP_HOLD
#define OSSA_HW_EVENT_SATA_PHY_UP
#define OSSA_HW_EVENT_ENCRYPTION
#define agsaEncryptCipherModeXTS
#define OSSA_PORT_LOSTCOMM
#define AG_SA_DISCOVERY_TYPE_SAS
#define OSSA_HW_ENCRYPT_KEK_UPDATE
#define OSSA_DISCOVER_COMPLETE
#define AG_SA_DISCOVERY_OPTION_FULL_START
#define OSSA_HW_EVENT_HARD_RESET_RECEIVED
#define OSSA_FAILURE_PORT_NOT_VALID_STATE
#define OSSA_HW_ENCRYPT_OPERATOR_MANAGEMENT
#define OSSA_PORT_INVALID
#define OSSA_HW_EVENT_OPEN_RETRY_BACKOFF_THR_ADJUSTED
#define OSSA_HW_ENCRYPT_TEST_EXECUTE
#define OSSA_HW_ENCRYPT_KEK_INVALIDTE
#define AGSA_SAS_PHY_ERR_COUNTERS_PAGE
#define OSSA_HW_EVENT_PHY_ERR_LOSS_OF_DWORD_SYNCH
#define OSSA_HW_EVENT_PORT_RECOVERY_TIMER_TMO
#define OSSA_DISCOVER_FOUND_DEVICE
#define SA_DEVINFO_GET_SAS_ADDRESSLO(devInfo)
#define OSSA_FLASH_UPDATE_OFFSET_ERR
#define OSSA_HW_EVENT_MALFUNCTION
#define AGSA_PHY_NOTIFY_ENABLE_SPINUP
#define OSSA_HW_EVENT_PHY_DOWN
#define OSSA_FAILURE_DEVICE_TYPE_NOT_VALID
#define OSSA_ERR_PORT_INVALID
#define OSSA_FAILURE_DEVICE_ALREADY_REGISTERED
#define OSSA_HW_EVENT_MODE
#define OSSA_ERR_PHY_ID_ALREADY_REGISTERED
#define OSSA_HW_EVENT_PHY_START_STATUS
#define OSSA_HW_EVENT_PORT_RECOVER
#define OSSA_HW_EVENT_BROADCAST_ASYNCH_EVENT
#define OSSA_ERR_DEVICE_BUSY
#define SA_DEVINFO_GET_SAS_ADDRESSHI(devInfo)
#define AGSA_PHY_BROADCAST_ASYNCH_EVENT
#define OSSA_FAILURE_PORT_ID_OUT_OF_RANGE
#define AGSA_SAS_PHY_ERR_COUNTERS_CLR_PAGE
#define OSSA_MPI_ENC_ERR_CONTROLLER_NOT_IDLE
#define AGSA_SAS_PROTOCOL_TIMER_CONFIG_PAGE
#define OSSA_DISCOVER_ABORT_ERROR_3
#define OSSA_FLASH_UPDATE_HMAC_ERR
#define OSSA_HW_EVENT_BROADCAST_CHANGE
#define OSSA_HW_ENCRYPT_DEK_INVALIDTE
#define AGSA_PORT_HARD_RESET
#define AGSA_SSP_TASK_MGNT_REQ
#define AGSA_PHY_GET_ERROR_COUNTS
#define OSSA_HW_EVENT_PHY_STOP_STATUS
#define AGSA_PORT_SET_PORT_RECOVERY_TIME
#define OSSA_HW_EVENT_PHY_ERR_INVALID_DWORD
#define OSSA_DISCOVER_ABORT_ERROR_7
#define AGSA_SAS_PHY_OPEN_REJECT_RETRY_BACKOFF_THRESHOLD_PAGE
#define OSSA_HW_EVENT_PHY_ERR_INBOUND_CRC
#define AGSA_PHY_COMINIT_OOB
#define OSSA_IO_OPEN_CNX_ERROR_IT_NEXUS_LOSS_OPEN_COLLIDE
#define OSSA_MPI_ERR_IO_RESOURCE_UNAVAILABLE
#define OSSA_IO_DS_NON_OPERATIONAL
#define OSSA_IO_XFER_CMD_FRAME_ISSUED
#define OSSA_IO_OPEN_CNX_ERROR_IT_NEXUS_LOSS_OPEN_TMO
#define OSSA_MPI_ENC_ERR_ID_TRANSFER_FAILURE
#define OSSA_IO_XFER_ERROR_PHY_NOT_READY
#define OSSA_IO_ABORT_DELAYED
#define OSSA_IO_XFR_ERROR_DEK_KEY_TAG_MISMATCH
#define OSSA_MPI_ENC_OPERATOR_OPERATOR_ALREADY_LOGGED_IN
#define OSSA_IO_XFR_ERROR_DIF_CRC_MISMATCH
#define OSSA_IO_XFER_ERROR_OFFSET_MISMATCH
#define OSSA_IO_UNDERFLOW
#define OSSA_MPI_ENC_OPERATOR_AUTH_FAILURE
#define OSSA_IO_XFER_ERROR_BREAK
#define OSSA_IO_XFR_ERROR_DIF_MISMATCH
#define OSSA_IO_NOT_VALID
#define OSSA_MPI_ENC_ERR_UNSUPPORTED_OPTION
#define OSSA_IO_XFER_ERROR_CMD_ISSUE_ACK_NAK_TIMEOUT
#define OSSA_IO_OPEN_CNX_ERROR_IT_NEXUS_LOSS_PATHWAY_BLOCKED
#define OSSA_MPI_ENC_OPERATOR_ILLEGAL_PARAMETER
#define OSSA_IO_ABORT_RESET
#define OSSA_IO_XFR_ERROR_DIF_APPLICATION_TAG_MISMATCH
#define OSSA_IO_OPEN_CNX_ERROR_IT_NEXUS_LOSS_OPEN_RETRY_BACKOFF_THRESHOLD_REACHED
#define OSSA_IO_NO_DEVICE
#define OSSA_IO_XFER_ERROR_XFER_RDY_OVERRUN
#define OSSA_IO_ABORT_IN_PROGRESS
#define OSSA_IO_XFR_ERROR_DIF_REFERENCE_TAG_MISMATCH
#define OSSA_IO_OPEN_CNX_ERROR_IT_NEXUS_LOSS_NO_DEST
#define SA_SSPRESP_GET_RESPONSEDATALEN(pSSPResp)
#define SA_IDFRM_IS_SSP_TARGET(identFrame)
#define SA_SSPRESP_GET_DATAPRES(pSSPResp)
#define SA_SSPRESP_GET_SENSEDATALEN(pSSPResp)
#define SA_IDFRM_GET_SAS_ADDRESSLO(identFrame)
#define SA_IDFRM_GET_DEVICETTYPE(identFrame)
#define SA_IDFRM_GET_SAS_ADDRESSHI(identFrame)
The file defines the declaration of tSDK APIs.
GLOBAL bit32 saSetPhyProfile(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 queueNum, bit32 ppc, bit32 length, void *buffer, bit32 phyID)
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 saSATAAbort(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 queueNum, agsaDevHandle_t *agDevHandle, bit32 flag, void *abortParam, ossaGenericAbortCB_t agCB)
Abort SATA command.
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 saSetDeviceState(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 queueNum, agsaDevHandle_t *agDevHandle, bit32 newDeviceState)
Set Device State.
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 saDeregisterDeviceHandle(agsaRoot_t *agRoot, agsaContext_t *agContext, agsaDevHandle_t *agDevHandle, bit32 queueNum)
Function for target to remove stale initiator device handle.
GLOBAL bit32 saPortControl(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 queueNum, agsaPortContext_t *agPortContext, bit32 portOperation, bit32 param0, bit32 param1)
Initiate a Port COntrol IOMB command.
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.
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 saDiscover(agsaRoot_t *agRoot, agsaPortContext_t *agPortContext, bit32 type, bit32 option)
Start/Abort SAS/SATA discovery.
The file defines the declaration of OS APIs.
#define ossaLogIomb(a, b, c, d, e)
GLOBAL void ossaSSPAbortCB(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 flag, bit32 status)
osGLOBAL bit32 smDeregisterDevice(smRoot_t *smRoot, agsaDevHandle_t *agDevHandle, smDeviceHandle_t *smDeviceHandle)
osGLOBAL bit32 smIDStart(smRoot_t *smRoot, smIORequest_t *smIORequest, smDeviceHandle_t *smDeviceHandle)
osGLOBAL bit32 smIOAbort(smRoot_t *smRoot, smIORequest_t *tasktag)
osGLOBAL bit32 smRegisterDevice(smRoot_t *smRoot, agsaDevHandle_t *agDevHandle, smDeviceHandle_t *smDeviceHandle, agsaDevHandle_t *agExpDevHandle, bit32 phyID, bit32 DeviceType)
#define SAT_DEV_STATE_NORMAL
data structure stores OS specific and LL specific context
describe a Phy Analog Setting
structure describes bandwidth counters of a PHY in the SAS/SATA
bit32 runningDisparityError
for the SAS/SATA LL Layer
describe a Open reject retry backoff threshold page
bit8 initiator_ssp_stp_smp
bit8 sasRemoteAddressHi[4]
bit8 sasRemoteAddressLo[4]
bit8 sasLocalAddressHi[4]
bit8 sasLocalAddressLo[4]
agsaSATAIdentifyData_t satIdentifyData
data structure for SAS SSP IO reuqest body This structure contains IO related fields....
tiIORequest_t * tiIOToBeAbortedRequest
tiDeviceHandle_t * tiDevHandle
tdssIOCompleted_t IOCompletionFunc
struct tdIORequestBody_s::@15::@17 SAS
struct tdIORequestBody_s::@16::@20 InitiatorTMIO
union tdIORequestBody_s::@15 transport
union tdIORequestBody_s::@16 IOType
tiIORequest_t * tiIORequest
agsaSASRequestBody_t agSASRequestBody
bit32 runningDisparityError
agBOOLEAN resetInProgress
data structure for SAS/SATA context at TD layer
agsaQueueConfig_t QueueConfig
tdList_t MainPortContextList
tdList_t FreePortContextList
tdFWControlEx_t tdFWControlEx
tdsaHwEventSource_t eventSource[TD_MAX_NUM_PHYS]
tdsaPortStartInfo_t Ports[TD_MAX_NUM_PHYS]
struct tdsaComMemFlags_s flags
struct itdsaIni_s * itdsaIni
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 tdsaPortContext_s * tdPortContext
agsaContext_t agDeviceResetContext
TDSASAddressID_t SASAddressID
satDeviceData_t satDevData
agsaDeviceInfo_t agDeviceInfo
tdsaJumpTable_t * pJumpTable
struct tdsaDeviceData_s * ExpDevice
tdssSMPReqReceived_t pSMPReqReceived
tdssSSPReqReceived_t pSSPReqReceived
data structure for TD port context This structure maintains information about the port such as ID add...
tiPortalContext_t * tiPortalContext
tdsaPortContext_t * portContext
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
data structure for SAS SMP reuqest body This structure contains IO related fields....
tdssSMPCompleted_t SMPCompletionFunc
#define TD_MAX_NUM_NOTIFY_SPINUP
#define TD_GET_PORT_STATE(input)
#define SAS_PORT_RESET_TMO
#define SATA_PORT_RESET_TMO
#define TD_GET_SAS_ADDRESSHI(sasAddressHi)
#define TD_GET_LINK_RATE(input)
#define TD_OPERATION_TARGET
#define TD_GET_RESET_STATUS(input)
#define TD_GET_SAS_ADDRESSLO(sasAddressLo)
#define tIsSPC12SATA(agr)
#define TD_GET_PHY_ID(input)
#define TD_GET_PHY_STATUS(input)
#define tIsSPCV12or6G(agr)
#define SAS_12G_PORT_RESET_TMO
#define TD_OPERATION_INITIATOR
osGLOBAL void tdsaPortContextReInit(tiRoot_t *tiRoot, tdsaPortContext_t *onePortContext)
osGLOBAL void tdsaDeviceDataReInit(tiRoot_t *tiRoot, tdsaDeviceData_t *oneDeviceData)
osGLOBAL void ostiGetPhyGeneralStatusRsp(tiRoot_t *tiRoot, agsaSASPhyGeneralStatusPage_t *GenStatus, bit32 phyID)
osGLOBAL void ostiSgpioIoctlRsp(tiRoot_t *tiRoot, agsaSGpioReqResponse_t *pSgpioResponse)
osGLOBAL void ostiCOMMgntVPDSetIOCTLRsp(tiRoot_t *tiRoot, bit32 status)
#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)
void tdsaSingleThreadedEnter(tiRoot_t *ptiRoot, bit32 queueId)
void tdhexdump(const char *ptitle, bit8 *pbuf, int len)
void tdsaSingleThreadedLeave(tiRoot_t *ptiRoot, bit32 queueId)
osGLOBAL bit32 tdsaAbortAll(tiRoot_t *tiRoot, agsaRoot_t *agRoot, tdsaDeviceData_t *oneDeviceData)
osGLOBAL void print_tdlist_flink(tdList_t *hdr, int type, int flag)
osGLOBAL void tdsaDeregisterDevicesInPort(tiRoot_t *tiRoot, tdsaPortContext_t *onePortContext)
osGLOBAL void tdssRemoveSASFromSharedcontext(tdsaPortContext_t *tdsaPortContext_Ins, tdsaDeviceData_t *tdsaDeviceData_Ins, agsaRoot_t *agRoot)
FORCEINLINE bit32 tdsaRotateQnumber(tiRoot_t *tiRoot, tdsaDeviceData_t *oneDeviceData)
osGLOBAL void tdssAddSASToSharedcontext(tdsaPortContext_t *tdsaPortContext_Instance, agsaRoot_t *agRoot, agsaDevHandle_t *agDevHandle, tdsaSASSubID_t *agSASSubID, bit32 registered, bit8 phyID, bit32 flag)
osGLOBAL void tdssRemoveSASSATAFromSharedcontextByReset(agsaRoot_t *agRoot)
osGLOBAL void tdssSubAddSATAToSharedcontext(tiRoot_t *tiRoot, tdsaDeviceData_t *oneDeviceData)
osGLOBAL void tdssRetrySATAID(tiRoot_t *tiRoot, tdsaDeviceData_t *oneDeviceData)
osGLOBAL void tdssAddSATAToSharedcontext(tdsaPortContext_t *tdsaPortContext_Instance, agsaRoot_t *agRoot, agsaDevHandle_t *agDevHandle, agsaSATADeviceInfo_t *agSATADeviceInfo, bit32 registered, bit8 phyID)
osGLOBAL void tdsaAddTimer(tiRoot_t *tiRoot, tdList_t *timerListHdr, tdsaTimerRequest_t *timerRequest)
#define TDSA_OUT_LEAVE(root)
osGLOBAL void tdsaKillTimer(tiRoot_t *tiRoot, tdsaTimerRequest_t *timerRequest)
#define TDSA_OUT_ENTER(root)
osGLOBAL void tdsaSetTimerRequest(tiRoot_t *tiRoot, tdsaTimerRequest_t *timerRequest, bit32 timeout, tdsaTimerCBFunc_t CBFunc, void *timerData1, void *timerData2, void *timerData3)
#define TD_DEFAULT_DEVICE
#define REPORT_LUN_OPCODE
osGLOBAL void ostiSendSMPIOCTLRsp(tiRoot_t *tiRoot, bit32 status)
osGLOBAL void ostiGetNVMDIOCTLRsp(tiRoot_t *tiRoot, bit32 status)
osGLOBAL void ostiCOMMgntIOCTLRsp(tiRoot_t *tiRoot, bit32 status)
osGLOBAL void ostiGetIoErrorStatsIOCTLRsp(tiRoot_t *tiRoot, bit32 status, void *param)
osGLOBAL void ostiNumOfLUNIOCTLRsp(tiRoot_t *tiRoot, bit32 status)
osGLOBAL void ostiGetPhyProfileIOCTLRsp(tiRoot_t *tiRoot, bit32 status)
osGLOBAL void ostiGenEventIOCTLRsp(tiRoot_t *tiRoot, bit32 status)
osGLOBAL void ostiGetForensicDataIOCTLRsp(tiRoot_t *tiRoot, bit32 status, void *param)
osGLOBAL void ostiGetIoEventStatsIOCTLRsp(tiRoot_t *tiRoot, bit32 status, void *param)
osGLOBAL void ostiRegDumpIOCTLRsp(tiRoot_t *tiRoot, bit32 status)
osGLOBAL void ostiSetNVMDIOCTLRsp(tiRoot_t *tiRoot, bit32 status)
#define TI_ENCRYPT_SEC_MODE_B
#define TI_ENCRYPT_SEC_MODE_A
#define TI_ENCRYPT_ATTRIB_CIPHER_XTS
@ tiTgtEventTypeDeviceChange
#define TI_ENCRYPT_ATTRIB_CIPHER_ECB
@ tiEncryptOperatorManagement
@ tiIntrEventTypeLocalAbort
@ tiIntrEventTypeTransportRecovery
@ tiIntrEventTypeDeviceChange
@ tiIntrEventTypeDiscovery
@ tiIntrEventTypeTaskManagement
#define TI_ENCRYPT_SEC_MODE_FACT_INIT
union data structure specifies a request
agsaSSPScsiTaskMgntReq_t sspTaskMgntReq