63#ifdef INITIATOR_DRIVER
71#include <dev/pms/RefTisa/tisa/sassata/sas/tgt/ttdxchg.h>
86#define agFieldOffset(baseType,fieldName) \
88 ((bit32)((bitptr)(&(((baseType *)0)->fieldName)))) \
101#ifdef SPC_ENABLE_PROFILE
136 bit32 bufAddrUpper = 0;
137 bit32 bufAddrLower = 0;
138 tdFWProfile_t *fwProfile;
140 void *osMemHandle =
agNULL;
142 agsaFwProfile_t fwProfileInfo = {0};
146 agsaRoot_t *agRoot = &tdsaAllShared->agRootInt;
151 fwProfileInfo.processor = fwProfile->processor;
152 fwProfileInfo.cmd = fwProfile->cmd;
153 fwProfileInfo.len = fwProfile->len;
154 fwProfileInfo.tcid = fwProfile->tcid;
155 if(fwProfile->cmd == START_CODE_PROFILE)
157 fwProfileInfo.codeStartAdd = fwProfile->codeStartAdd;
158 fwProfileInfo.codeEndAdd = fwProfile->codeEndAdd;
160 if((fwProfile->cmd == STOP_TIMER_PROFILE) || (fwProfile->cmd == STOP_CODE_PROFILE))
162 if(fwProfile->len != 0)
177 fwProfileInfo.agSgl.sgLower = bufAddrLower;
178 fwProfileInfo.agSgl.sgUpper = bufAddrUpper;
179 fwProfileInfo.agSgl.len = fwProfile->len;
180 fwProfileInfo.agSgl.extReserved = 0;
181 tdsaAllShared->tdFWProfileEx.buffer = osMemHandle;
182 tdsaAllShared->tdFWProfileEx.virtAddr = buffer;
183 tdsaAllShared->tdFWProfileEx.len = fwProfile->len;
185 tdsaAllShared->tdFWProfileEx.tdFWProfile = fwProfile;
186 tdsaAllShared->tdFWProfileEx.param1 = agParam1;
187 tdsaAllShared->tdFWProfileEx.param2 = agParam2;
188 tdsaAllShared->tdFWProfileEx.payload = agIOCTLPayload;
189 tdsaAllShared->tdFWProfileEx.inProgress = 1;
190 status = saFwProfile(agRoot,
197 if((fwProfile->cmd == STOP_TIMER_PROFILE) || (fwProfile->cmd == STOP_CODE_PROFILE))
244 bit32 bufAddrUpper = 0;
245 bit32 bufAddrLower = 0;
247 void *osMemHandle =
agNULL;
252 agsaRoot_t *agRoot = &tdsaAllShared->agRootInt;
254 if( agIOCTLPayload->
Length <
263 if(fwControl->
len != 0)
290 TI_DBG6((
"tdipFWControlIoctl: calling saFwFlashUpdate\n"));
291 tdsaAllShared->tdFWControlEx.tdFWControl = fwControl;
292 tdsaAllShared->tdFWControlEx.
buffer = osMemHandle;
293 tdsaAllShared->tdFWControlEx.param1 = agParam1;
294 tdsaAllShared->tdFWControlEx.param2 = agParam2;
295 tdsaAllShared->tdFWControlEx.payload = agIOCTLPayload;
296 tdsaAllShared->tdFWControlEx.inProgress = 1;
312 TI_DBG1( (
"tdipFWControlIoctl: ERROR: Wrong IOCTL code %d\n",
375 agsaRoot_t *agRoot = &(tdsaAllShared->agRootNonInt);
376 bit32 EventLogLength = 0;
377 bit32 EventLogOption;
378 bit32 ReadLength = 0;
380 bit32 RequestLength = 0;
384 TI_DBG3((
"tiCOMMgntIOCTL: start\n"));
386 TI_DBG3((
"tiCOMMgntIOCTL: tiRoot %p agIOCTLPayload %p agParam1 %p agParam2 %p agParam3 %p\n",
387 tiRoot,agIOCTLPayload,agParam1,agParam2,agParam3 ));
389 TI_DBG3((
"tiCOMMgntIOCTL: Signature %X\ntiCOMMgntIOCTL: MajorFunction 0x%X\ntiCOMMgntIOCTL: MinorFunction 0x%X\ntiCOMMgntIOCTL: Length 0x%X\ntiCOMMgntIOCTL: Status 0x%X\ntiCOMMgntIOCTL: Reserved 0x%X\ntiCOMMgntIOCTL: FunctionSpecificArea 0x%X\n",
401 TI_DBG1((
"tiCOMMgntIOCTL:agIOCTLPayload->Signature %x IOCTL_CALL_INVALID_CODE\n",agIOCTLPayload->
Signature ));
409#ifdef IOCTL_INTERRUPT_TIME_CONFIG
458 agParam1,agParam2,agParam3);
465 agParam1, agParam2, agParam3);
479 TI_DBG6((
"tiCOMMgntIOCTL: IOCTL_MJ_GET_EVENT_LOG1 Length %d\n", agIOCTLPayload->
Length));
480 RequestLength = agIOCTLPayload->
Length;
484 if (EventLogLength <= Offset)
486 TI_DBG1((
"tiCOMMgntIOCTL: 1 out of range Requestlength %d Offset %d event log length %d\n", RequestLength, Offset, EventLogLength));
489 agIOCTLPayload->
Length = 0;
490 if(EventLogOption == 0)
497 ReadLength =
MIN(EventLogLength - Offset, RequestLength);
508 TI_DBG6((
"tiCOMMgntIOCTL: IOCTL_MN_FW_GET_EVENT_FLASH_LOG1\n"));
524 TI_DBG6((
"tiCOMMgntIOCTL: IOCTL_MJ_GET_EVENT_LOG2 Length %d\n", agIOCTLPayload->
Length));
525 RequestLength = agIOCTLPayload->
Length;
529 if (EventLogLength <= Offset)
531 TI_DBG1((
"tiCOMMgntIOCTL: 2 out of range Requestlength %d Offset %d event log length %d\n", RequestLength, Offset, EventLogLength));
534 agIOCTLPayload->
Length = 0;
535 if(EventLogOption == 0)
542 ReadLength =
MIN(EventLogLength - Offset, RequestLength);
553 TI_DBG6((
"tiCOMMgntIOCTL: IOCTL_MN_FW_GET_EVENT_FLASH_LOG2\n"));
566 TI_DBG1((
"tiCOMMgntIOCTL: IOCTL_MJ_FW_INFO Length %d\n", agIOCTLPayload->
Length));
567 RequestLength = agIOCTLPayload->
Length;
569 if (RequestLength == 0)
571 TI_DBG1((
"tiCOMMgntIOCTL: IOCTL_MJ_FW_INFO: No more Data!\n"));
574 agIOCTLPayload->
Length = 0;
581 TI_DBG1((
"tiCOMMgntIOCTL:IOCTL_MJ_FW_INFO ControllerInfo signature 0x%X\n",ControllerInfo.
signature));
582 TI_DBG1((
"tiCOMMgntIOCTL:IOCTL_MJ_FW_INFO ControllerInfo PCILinkRate 0x%X\n",ControllerInfo.
PCILinkRate));
583 TI_DBG1((
"tiCOMMgntIOCTL:IOCTL_MJ_FW_INFO ControllerInfo PCIWidth 0x%X\n",ControllerInfo.
PCIWidth));
594 TI_DBG3((
"tiCOMMgntIOCTL: IOCTL_MJ_GET_FW_REV Length %d\n", agIOCTLPayload->
Length));
595 RequestLength = agIOCTLPayload->
Length;
597 if (RequestLength == 0)
599 TI_DBG1((
"tiCOMMgntIOCTL: IOCTL_MJ_GET_FW_REV: No more Data!\n"));
602 agIOCTLPayload->
Length = 0;
617#ifdef SPC_ENABLE_PROFILE
620 TI_DBG6((
"tiCOMMgntIOCTL: IOCTL_MJ_FW_PROFILE\n"));
622 agParam1, agParam2, agParam3);
629 TI_DBG6((
"tiCOMMgntIOCTL: IOCTL_MJ_GET_CORE_DUMP\n"));
645 TI_DBG6((
"tiCOMMgntIOCTL: IOCTL_MJ_NVMD_SET\n"));
647 agIOCTLPayload->
Status = 0;
655 TI_DBG6((
"tiCOMMgntIOCTL: IOCTL_MJ_GPIO\n"));
659 sVid = sVid & 0xFFFF;
679 TI_DBG6((
"tiCOMMgntIOCTL: IOCTL_MJ_SGPIO\n"));
687 TI_DBG3((
"tiCOMMgntIOCTL: IOCTL_MJ_NVMD_GET\n"));
689 agIOCTLPayload->
Status = 0;
696 TI_DBG3((
"tiCOMMgntIOCTL: IOCTL_MJ_GET_FORENSIC_DATA\n"));
702 TI_DBG3((
"tiCOMMgntIOCTL: IOCTL_MJ_GET_DEVICE_INFO\n"));
709 TI_DBG3((
"tiCOMMgntIOCTL: IOCTL_MJ_GET_IO_ERROR_STATISTIC\n"));
716 TI_DBG3((
"tiCOMMgntIOCTL: IOCTL_MJ_GET_IO_EVENT_STATISTIC\n"));
723 TI_DBG1((
"tiCOMMgntIOCTL: IOCTL_MJ_SEND_BIST\n"));
731 TI_DBG3((
"tiCOMMgntIOCTL: IOCTL_MJ_SET_OR_GET_REGISTER\n"));
740 agsaRoot_t *agRoot = &(tdsaAllShared->agRootNonInt);
748 for( i = 0; i < saRoot->
phyCount ; i++)
760 if ((saRoot->
phys[i].
status == 1) && (sas_dev_type == 0)){
772 osti_memcpy(&PhyDetails[i].sasAddressLo,&(tdsaAllShared->Ports[i].SASID.sasAddressLo),
sizeof(
bit32));
773 osti_memcpy(&PhyDetails[i].sasAddressHi,&(tdsaAllShared->Ports[i].SASID.sasAddressHi),
sizeof(
bit32));
795 tdsaAllShared->tdFWControlEx.param1 = agParam1;
796 tdsaAllShared->tdFWControlEx.param2 = agParam2;
797 tdsaAllShared->tdFWControlEx.payload = agIOCTLPayload;
798 tdsaAllShared->tdFWControlEx.inProgress = 1;
805 tdsaAllShared->tdFWControlEx.payload =
NULL;
806 tdsaAllShared->tdFWControlEx.inProgress = 0;
825 TI_DBG1((
"tiCOMMgntIOCTL: IOCTL_MJ_GET_PHY_PROFILE %p %p %p\n",agParam1,agParam2,agParam3));
839#ifdef SA_ENABLE_TRACE_FUNCTIONS
842 TI_DBG5((
"tdReturnIOCTL_Info: hpIOCTL_ResetTraceIndex\n"));
855 TI_DBG5((
"tdReturnIOCTL_Info: pTrace %p\n",BufferParms.
pTrace));
860 if( llist->
Flag != 0)
888 TI_DBG5((
"tdReturnIOCTL_Info: hpIOCTL_GetTraceBufferInfo\n"));
898#ifdef SA_ENABLE_TRACE_FUNCTIONS
917#ifdef SA_ENABLE_TRACE_FUNCTIONS
931 TI_DBG6((
"tdReturnIOCTL_Info: hpIOCTL_GetTraceBuffer\n"));
963 agParam1,agParam2,agParam3 );
973 bit32 pageLength = 0;
977 pageCode = pModePage->
pageCode & 0xFF;
978 modeOperation = *(
bit32 *) agParam2;
980 switch(modeOperation)
1012#ifdef PHY_RESTART_TEST
1015 bit32 portID, tiStatus;
1035 bit32 portID, tiStatus;
1110 agsaRoot_t *agRoot = &(tdsaAllShared->agRootInt);
1113 TI_DBG3((
"tdsaGpioSetup: start\n"));
1118 osIoctlTimer = &tdsaAllShared->osIoctlTimer;
1120 tdIoctlStartTimer(
tiRoot, osIoctlTimer);
1121 tdsaAllShared->tdFWControlEx.virtAddr = (
bit8 *)osIoctlTimer;
1124 tdsaAllShared->tdFWControlEx.param1 = agParam1;
1125 tdsaAllShared->tdFWControlEx.param2 = agParam2;
1126 tdsaAllShared->tdFWControlEx.payload = agIOCTLPayload;
1127 tdsaAllShared->tdFWControlEx.inProgress = 1;
1134 TI_DBG3((
"tdsaGpioSetup: IOCTL_MN_GPIO_PINSETUP\n"));
1142 TI_DBG3((
"tdsaGpioSetup: IOCTL_MN_GPIO_EVENTSETUP\n"));
1151 TI_DBG3((
"tdsaGpioSetup: IOCTL_MN_GPIO_READ\n"));
1159 TI_DBG3((
"tdsaGpioSetup: IOCTL_MN_GPIO_WRITE\n"));
1186 TI_DBG3((
"tdsaGpioPinSetup: End\n"));
1210 bit32 gpioReadValue,
1223 TI_DBG2((
"ostiGetGpioIOCTLRsp: start, status = %d \n",
status));
1225 agIoctlPayload = (
tiIOCTLPayload_t *)(tdsaAllShared->tdFWControlEx.payload);
1227 if(agIoctlPayload ==
agNULL){
1245 tdsaAllShared->tdFWControlEx.inProgress = 0;
1248 tdsaAllShared->tdFWControlEx.param2,
NULL);
1253 TI_DBG3((
" ostiGetGpioIOCTLRsp:Got GPIO response from OUTBuf"));
1255 tdsaAllShared->tdFWControlEx.inProgress = 0;
1257 tdsaAllShared->tdFWControlEx.param2,
NULL);
1266 TI_DBG3((
" ostiGetGpioIOCTLRsp:Got GPIO response for IOCTL_MN_GPIO_PINSETUP"));
1272 TI_DBG3((
" ostiGetGpioIOCTLRsp:Got GPIO response for IOCTL_MN_GPIO_EVENTSETUP"));
1279 TI_DBG3((
" ostiGetGpioIOCTLRsp:Got GPIO response for IOCTL_MN_GPIO_WRITE"));
1304 if(tdsaAllShared->tdFWControlEx.inProgress)
1306 tdsaAllShared->tdFWControlEx.inProgress = 0;
1308 tdsaAllShared->tdFWControlEx.param2,
NULL);
1310 TI_DBG2((
"ostiGetGpioIOCTLRsp: end \n"));
1342 agsaRoot_t *agRoot = &(tdsaAllShared->agRootInt);
1346 TI_DBG3((
"tdsaSGpioIoctlSetup: start\n"));
1360 TI_DBG3((
"Invalid length\n"));
1369 TI_DBG4((
"Invalid Parameter\n"));
1385 tdsaAllShared->tdFWControlEx.param1 = agParam1;
1386 tdsaAllShared->tdFWControlEx.param2 = agParam2;
1387 tdsaAllShared->tdFWControlEx.payload = agIOCTLPayload;
1388 tdsaAllShared->tdFWControlEx.inProgress = 1;
1400 TI_DBG3((
"tdsaGpioPinSetup: End\n"));
1427 TI_DBG3((
"ostiSgpioIoctlRsp: start\n"));
1429 if (tdsaAllShared->tdFWControlEx.inProgress)
1431 agIoctlPayload = (
tiIOCTLPayload_t *)(tdsaAllShared->tdFWControlEx.payload);
1434 tdsaAllShared->tdFWControlEx.payload =
NULL;
1439 tdsaAllShared->sgpioResponseSet = 1;
1442 tdsaAllShared->tdFWControlEx.param2,
agNULL);
1444 tdsaAllShared->tdFWControlEx.inProgress = 0;
1447 TI_DBG3((
"ostiSgpioIoctlRsp: end\n"));
1475 (tdsaAllShared->tdFWControlEx.tdFWControl)->retcode =
status;
1478 tdsaAllShared->tdFWControlEx.buffer,
1479 tdsaAllShared->tdFWControlEx.tdFWControl->len);
1482 tdsaAllShared->tdFWControlEx.param1,
1483 tdsaAllShared->tdFWControlEx.param2,
1513 TI_DBG1((
"ostiRegDumpIOCTLRsp: start\n"));
1515 osti_memcpy((
void *)(tdsaAllShared->tdFWControlEx.usrAddr),
1516 (
void *)(tdsaAllShared->tdFWControlEx.virtAddr),
1517 tdsaAllShared->tdFWControlEx.len);
1520 tdsaAllShared->tdFWControlEx.buffer,
1521 tdsaAllShared->tdFWControlEx.len);
1524 tdsaAllShared->tdFWControlEx.param1,
1525 tdsaAllShared->tdFWControlEx.param2,
1557 agIOCTLPayload = (
tiIOCTLPayload_t *)(tdsaAllShared->tdFWControlEx.payload);
1561 TI_DBG1((
"ostiSetNVMDIOCTLRsp: start, status = %d\n",
status));
1564 tdsaAllShared->tdFWControlEx.buffer,
1565 tdsaAllShared->tdFWControlEx.len);
1568 tdsaAllShared->tdFWControlEx.param1,
1569 tdsaAllShared->tdFWControlEx.param2,
1572#ifdef SPC_ENABLE_PROFILE
1590osGLOBAL void ostiFWProfileIOCTLRsp(
1597 tdFWProfile_t *fwProfile;
1599 TI_DBG1((
"ostiFWProfileIOCTLRsp: start\n"));
1600 fwProfile = (tdFWProfile_t *)tdsaAllShared->tdFWProfileEx.tdFWProfile;
1604 if((fwProfile->cmd == STOP_TIMER_PROFILE) || (fwProfile->cmd == STOP_CODE_PROFILE))
1607 (
void *)(tdsaAllShared->tdFWProfileEx.virtAddr),
1611 tdsaAllShared->tdFWProfileEx.buffer,
1612 tdsaAllShared->tdFWProfileEx.len);
1615 fwProfile->status =
status;
1616 fwProfile->len = len;
1618 tdsaAllShared->tdFWProfileEx.param1,
1619 tdsaAllShared->tdFWProfileEx.param2,
1651 agIOCTLPayload = (
tiIOCTLPayload_t *)(tdsaAllShared->tdFWControlEx.payload);
1655 TI_DBG1((
"ostiGetNVMDIOCTLRsp: start, status = %d\n",
status));
1656 tdsaAllShared->NvmdResponseSet = 1;
1658 if(tdsaAllShared->tdFWControlEx.param1 !=
agNULL)
1660 osti_memcpy((
void *)(tdsaAllShared->tdFWControlEx.usrAddr),
1661 (
void *)(tdsaAllShared->tdFWControlEx.virtAddr),
1662 tdsaAllShared->tdFWControlEx.len);
1665 tdsaAllShared->tdFWControlEx.buffer,
1666 tdsaAllShared->tdFWControlEx.len);
1669 tdsaAllShared->tdFWControlEx.param1,
1670 tdsaAllShared->tdFWControlEx.param2,
1704 agIOCTLPayload = (
tiIOCTLPayload_t *)(tdsaAllShared->tdFWControlEx.payload);
1715 TI_DBG1((
"ostiGetPhyProfileIOCTLRsp: PhyBlob->Phy 0x%x\n",PhyBlob->
Phy));
1716 TI_DBG1((
"ostiGetPhyProfileIOCTLRsp: PhyBlob->BW_rx 0x%x\n",PhyBlob->
BW_rx));
1717 TI_DBG1((
"ostiGetPhyProfileIOCTLRsp: PhyBlob->BW_tx 0x%x\n",PhyBlob->
BW_tx));
1718 TI_DBG1((
"ostiGetPhyProfileIOCTLRsp: PhyBlob->InvalidDword 0x%x\n",PhyBlob->
InvalidDword));
1729 TI_DBG1((
"ostiGetPhyProfileIOCTLRsp: start, status = %d\n",
status));
1730 TI_DBG1((
"ostiGetPhyProfileIOCTLRsp: start, len = %d %p %p\n", tdsaAllShared->tdFWControlEx.len,tdsaAllShared->tdFWControlEx.usrAddr,tdsaAllShared->tdFWControlEx.virtAddr));
1737 tdsaAllShared->tdFWControlEx.buffer,
1738 tdsaAllShared->tdFWControlEx.len);
1741 tdsaAllShared->tdFWControlEx.param1,
1742 tdsaAllShared->tdFWControlEx.param2,
1773 TI_DBG1((
"ostiGenEventIOCTLRsp: start\n"));
1775 if(tdsaAllShared->tdFWControlEx.inProgress)
1777 agIOCTLPayload = (
tiIOCTLPayload_t *)(tdsaAllShared->tdFWControlEx.payload);
1782 tdsaAllShared->tdFWControlEx.buffer,
1783 tdsaAllShared->tdFWControlEx.len);
1786 tdsaAllShared->tdFWControlEx.param1,
1787 tdsaAllShared->tdFWControlEx.param2,
1789 tdsaAllShared->tdFWControlEx.inProgress = 0;
1791#ifdef SPC_ENABLE_PROFILE
1792 if(tdsaAllShared->tdFWProfileEx.inProgress)
1794 agIOCTLPayload = (
tiIOCTLPayload_t *)(tdsaAllShared->tdFWProfileEx.payload);
1796 if(tdsaAllShared->tdFWProfileEx.virtAddr !=
NULL)
1799 tdsaAllShared->tdFWProfileEx.buffer,
1800 tdsaAllShared->tdFWProfileEx.len);
1801 tdsaAllShared->tdFWProfileEx.virtAddr =
NULL;
1804 tdsaAllShared->tdFWProfileEx.param1,
1805 tdsaAllShared->tdFWProfileEx.param2,
1807 tdsaAllShared->tdFWProfileEx.inProgress = 0;
1827 TI_DBG1((
"ostiGetDeviceInfoIOCTLRsp: start\n"));
1829 agIOCTLPayload = (
tiIOCTLPayload_t *)(tdsaAllShared->tdFWControlEx.payload);
1833 if (pSADeviceInfo !=
agNULL)
1852 if(tdsaAllShared->tdFWControlEx.inProgress)
1855 tdsaAllShared->tdFWControlEx.param1,
1856 tdsaAllShared->tdFWControlEx.param2,
1858 tdsaAllShared->tdFWControlEx.inProgress = 0;
1863#ifdef INITIATOR_DRIVER
1873 itdsaIni_t *Initiator = (itdsaIni_t *)tdsaAllShared->
itdsaIni;
1879 TI_DBG1((
"ostiGetIoErrorStatsIOCTLRsp: start\n"));
1881 agIOCTLPayload = (
tiIOCTLPayload_t *)(tdsaAllShared->tdFWControlEx.payload);
1889 if (pIoErrorPayload->flag)
1912 TI_DBG1((
"ostiGetIoEventStatsIOCTLRsp: start\n"));
1914 agIOCTLPayload = (
tiIOCTLPayload_t *)(tdsaAllShared->tdFWControlEx.payload);
1936 TI_DBG3((
"ostiGetForensicDataIOCTLRsp: start, status = %d\n",
status));
1938 agIOCTLPayload = (
tiIOCTLPayload_t *)(tdsaAllShared->tdFWControlEx.payload);
1942 if (
agNULL == agIOCTLPayload)
1971 TI_DBG1((
"ostiGetForensicDataIOCTLRsp: forensic data type error %d\n", pForensicData->
DataType));
1986 if(tdsaAllShared->tdFWControlEx.inProgress)
1988 TI_DBG3((
"ostiGetForensicDataIOCTLRsp: Waiting for the signal \n"));
1990 tdsaAllShared->tdFWControlEx.param1,
1991 tdsaAllShared->tdFWControlEx.param2,
1993 TI_DBG3((
"ostiGetForensicDataIOCTLRsp: Signal wait completed \n"));
1994 tdsaAllShared->tdFWControlEx.inProgress = 0;
2035 agsaRoot_t *agRoot = &(tdsaAllShared->agRootInt);
2038 bit32 RequestLength = 0;
2041 void *osMemHandle =
agNULL;
2043 bit32 CoreDumpLength = 16384;
2044 bit32 EventLogOffset = 65536;
2048 RequestLength = agIOCTLPayload->
Length;
2053 if((CoreDumpLength <= Offset)&&
2058 agIOCTLPayload->
Length = 0;
2072 tdsaAllShared->tdFWControlEx.param1 = agParam1;
2073 tdsaAllShared->tdFWControlEx.param2 = agParam2;
2080 tdsaAllShared->tdFWControlEx.inProgress = 1;
2087 tdsaAllShared->tdFWControlEx.param1 = agParam1;
2088 tdsaAllShared->tdFWControlEx.param2 = agParam2;
2095 tdsaAllShared->tdFWControlEx.inProgress = 1;
2101 if(RequestLength != 0)
2117 tdsaAllShared->tdFWControlEx.buffer = osMemHandle;
2118 tdsaAllShared->tdFWControlEx.virtAddr = buffer;
2120 tdsaAllShared->tdFWControlEx.len = RequestLength;
2121 tdsaAllShared->tdFWControlEx.param1 = agParam1;
2122 tdsaAllShared->tdFWControlEx.param2 = agParam2;
2123 tdsaAllShared->tdFWControlEx.payload = agIOCTLPayload;
2124 tdsaAllShared->tdFWControlEx.inProgress = 1;
2130 if(RequestLength != 0)
2146 tdsaAllShared->tdFWControlEx.buffer = osMemHandle;
2147 tdsaAllShared->tdFWControlEx.virtAddr = buffer;
2149 tdsaAllShared->tdFWControlEx.len = RequestLength;
2150 tdsaAllShared->tdFWControlEx.param1 = agParam1;
2151 tdsaAllShared->tdFWControlEx.param2 = agParam2;
2152 tdsaAllShared->tdFWControlEx.payload = agIOCTLPayload;
2153 tdsaAllShared->tdFWControlEx.inProgress = 1;
2158 if(CoreDumpLength + EventLogOffset <= Offset)
2161 agIOCTLPayload->
Length = 0;
2167 if(RequestLength != 0)
2183 tdsaAllShared->tdFWControlEx.buffer = osMemHandle;
2184 tdsaAllShared->tdFWControlEx.virtAddr = buffer;
2186 tdsaAllShared->tdFWControlEx.len = RequestLength;
2187 tdsaAllShared->tdFWControlEx.param1 = agParam1;
2188 tdsaAllShared->tdFWControlEx.param2 = agParam2;
2189 tdsaAllShared->tdFWControlEx.payload = agIOCTLPayload;
2190 tdsaAllShared->tdFWControlEx.inProgress = 1;
2194 if(CoreDumpLength + EventLogOffset <= Offset)
2197 agIOCTLPayload->
Length = 0;
2203 if(RequestLength != 0)
2219 tdsaAllShared->tdFWControlEx.buffer = osMemHandle;
2220 tdsaAllShared->tdFWControlEx.virtAddr = buffer;
2222 tdsaAllShared->tdFWControlEx.len = RequestLength;
2223 tdsaAllShared->tdFWControlEx.param1 = agParam1;
2224 tdsaAllShared->tdFWControlEx.param2 = agParam2;
2225 tdsaAllShared->tdFWControlEx.payload = agIOCTLPayload;
2226 tdsaAllShared->tdFWControlEx.inProgress = 1;
2253 TI_DBG1((
"ostiCOMMgntVPDSetIOCTLRsp: start\n"));
2254 (tdsaAllShared->tdFWControlEx.tdFWControl)->retcode =
status;
2257 tdsaAllShared->tdFWControlEx.buffer,
2258 tdsaAllShared->tdFWControlEx.len);
2261 tdsaAllShared->tdFWControlEx.param2,
2300 bit32 RequestLength = 0;
2301 bit32 bufAddrUpper = 0;
2302 bit32 bufAddrLower = 0;
2305 agsaRoot_t *agRoot = &(tdsaAllShared->agRootInt);
2307 void *osMemHandle =
agNULL;
2312 TI_DBG2((
"tdsaNVMDSetIoctl: start\n"));
2314 RequestLength = agIOCTLPayload->
Length;
2336 if(RequestLength != 0)
2362 tdsaAllShared->tdFWControlEx.buffer = osMemHandle;
2363 tdsaAllShared->tdFWControlEx.virtAddr = buffer;
2365 tdsaAllShared->tdFWControlEx.len = RequestLength;
2366 tdsaAllShared->tdFWControlEx.param1 = agParam1;
2367 tdsaAllShared->tdFWControlEx.param2 = agParam2;
2368 tdsaAllShared->tdFWControlEx.payload = agIOCTLPayload;
2369 tdsaAllShared->tdFWControlEx.inProgress = 1;
2425 agsaRoot_t *agRoot = &(tdsaAllShared->agRootInt);
2427 void *osMemHandle =
agNULL;
2431 bit32 RequestLength = 0;
2432 bit32 ostiMemoryStatus = 0;
2434 bit8* seepromBuffer;
2435 bit8* phySettingsBuffer;
2438 TI_DBG2((
"tdsaNVMDGetIoctl: start\n"));
2440 RequestLength = agIOCTLPayload->
Length;
2475 if(RequestLength != 0)
2495 tdsaAllShared->tdFWControlEx.buffer = osMemHandle;
2496 tdsaAllShared->tdFWControlEx.virtAddr = buffer;
2498 tdsaAllShared->tdFWControlEx.len = RequestLength;
2499 tdsaAllShared->tdFWControlEx.param1 = agParam1;
2500 tdsaAllShared->tdFWControlEx.param2 = agParam2;
2501 tdsaAllShared->tdFWControlEx.payload = agIOCTLPayload;
2502 tdsaAllShared->tdFWControlEx.inProgress = 1;
2510 tdsaAllShared->NvmdResponseSet = 0;
2522 while(!tdsaAllShared->NvmdResponseSet)
2528 seepromBuffer = buffer;
2545 phySettingsBuffer = buffer;
2549 tdsaAllShared->NvmdResponseSet = 0;
2599 TI_DBG3((
"tdsaDeviceInfoGetIoctl: %d:%3d:%d %p %p %p\n",
2615 TI_DBG1((
"tdsaDeviceInfoGetIoctl: tiDeviceHandle is NULL !!!! SCSI address = %d:%3d:%d\n",
2623 if(oneDeviceData ==
agNULL)
2625 TI_DBG1((
"tdsaDeviceInfoGetIoctl: tiDeviceHandle=%p DeviceData is NULL!!! SCSI address = %d:%3d:%d\n",
2636 TI_DBG1((
"tdsaDeviceInfoGetIoctl: tiDeviceHandle=%p did %d DeviceData was removed!!! SCSI address = %d:%3d:%d\n",
2656 TI_DBG3((
"tdsaDeviceInfoGetIoctl:IOCTL_CALL_SUCCESS\n"));
2700 agsaRoot_t *agRoot = &(tdsaAllShared->agRootInt);
2706 tdsaAllShared->tdFWControlEx.buffer =
agNULL;
2707 tdsaAllShared->tdFWControlEx.virtAddr =
agNULL;
2709 tdsaAllShared->tdFWControlEx.len = 0;
2710 tdsaAllShared->tdFWControlEx.param1 = agParam1;
2711 tdsaAllShared->tdFWControlEx.param2 = agParam2;
2712 tdsaAllShared->tdFWControlEx.payload = agIOCTLPayload;
2713 tdsaAllShared->tdFWControlEx.inProgress = 0;
2756 agsaRoot_t *agRoot = &(tdsaAllShared->agRootInt);
2762 tdsaAllShared->tdFWControlEx.buffer =
agNULL;
2763 tdsaAllShared->tdFWControlEx.virtAddr =
agNULL;
2765 tdsaAllShared->tdFWControlEx.len = 0;
2766 tdsaAllShared->tdFWControlEx.param1 = agParam1;
2767 tdsaAllShared->tdFWControlEx.param2 = agParam2;
2768 tdsaAllShared->tdFWControlEx.payload = agIOCTLPayload;
2769 tdsaAllShared->tdFWControlEx.inProgress = 0;
2818 tdsaAllShared->tdFWControlEx.buffer =
agNULL;
2819 tdsaAllShared->tdFWControlEx.virtAddr =
agNULL;
2821 tdsaAllShared->tdFWControlEx.len = 0;
2822 tdsaAllShared->tdFWControlEx.param1 = agParam1;
2823 tdsaAllShared->tdFWControlEx.param2 = agParam2;
2824 tdsaAllShared->tdFWControlEx.payload = agIOCTLPayload;
2825 tdsaAllShared->tdFWControlEx.inProgress = 0;
2827 TI_DBG1((
"tdsaRegisterIoctl: Flag %d RegAddr 0x%x RegValue 0x%x\n",
2830 if (pRegisterPayload->
flag)
2852 agsaRoot_t *agRoot = &(tdsaAllShared->agRootNonInt);
2860 TI_DBG3((
"tdsaGetPhyGeneralStatusIoctl: start\n"));
2879 TI_DBG3((
"tdsaGetPhyGeneralStatusIoctl: End\n"));
2910 TI_DBG1((
"ostiGetPhyGeneralStatusRsp: start\n"));
2912 if (tdsaAllShared->tdFWControlEx.inProgress)
2914 agIoctlPayload = (
tiIOCTLPayload_t *)(tdsaAllShared->tdFWControlEx.payload);
2923 tdsaAllShared->tdFWControlEx.payload =
NULL;
2925 tdsaAllShared->tdFWControlEx.param2,
agNULL);
2926 tdsaAllShared->tdFWControlEx.inProgress = 0;
2933 TI_DBG1((
"ostiGetPhyGeneralStatusRsp: end\n"));
2948 agsaRoot_t *agRoot = &(tdsaAllShared->agRootInt);
2950 void *osMemHandle =
agNULL;
2954 bit32 bufAddrUpper = 0;
2955 bit32 bufAddrLower = 0;
2971 tdsaAllShared->tdFWControlEx.buffer = osMemHandle;
2972 tdsaAllShared->tdFWControlEx.virtAddr = buffer;
2974 tdsaAllShared->tdFWControlEx.len = 32;
2975 tdsaAllShared->tdFWControlEx.param1 = agParam1;
2976 tdsaAllShared->tdFWControlEx.param2 = agParam2;
2977 tdsaAllShared->tdFWControlEx.payload = agIOCTLPayload;
2978 tdsaAllShared->tdFWControlEx.inProgress = 1;
3004 TI_DBG2((
"tdsaPhyProfileIoctl: after\n"));
3046 agsaRoot_t *agRoot = &(tdsaAllShared->agRootInt);
3053 tdsaAllShared->tdFWControlEx.buffer =
agNULL;
3054 tdsaAllShared->tdFWControlEx.virtAddr =
agNULL;
3056 tdsaAllShared->tdFWControlEx.len = 0;
3057 tdsaAllShared->tdFWControlEx.param1 = agParam1;
3058 tdsaAllShared->tdFWControlEx.param2 = agParam2;
3059 tdsaAllShared->tdFWControlEx.payload = agIOCTLPayload;
3060 tdsaAllShared->tdFWControlEx.inProgress = 0;
3097 TI_DBG1((
"tdsaGetForensicDataIoctl: forensic data type error %d\n", pForensicDataPayload->
DataType));
3121 agsaRoot_t *agRoot = &(tdsaAllShared->agRootInt);
3122 void *reqBuffer =
agNULL;
3123 void *respBuffer =
agNULL;
3124 void *osMemHandle =
agNULL;
3128 bit32 ostiMemoryStatus = 0;
3136 TI_DBG2((
"tdsaSendSMPIoctl: start\n"));
3148 if(devHandle ==
NULL)
3166 tdsaAllShared->tdFWControlEx.param3 = osMemHandle;
3175 agSMPFrame.
flag = 1;
3181 agSMPFrame.
flag = 3;
3184 (
void **)&reqBuffer,
3190 tdsaAllShared->tdFWControlEx.param3 = osMemHandle;
3205 (
void **)&respBuffer,
3218 tdsaAllShared->tdFWControlEx.buffer = osMemHandle;
3219 tdsaAllShared->tdFWControlEx.virtAddr = respBuffer;
3222 tdsaAllShared->tdFWControlEx.param1 = agParam1;
3223 tdsaAllShared->tdFWControlEx.param2 = agParam2;
3224 tdsaAllShared->tdFWControlEx.payload = agIOCTLPayload;
3225 tdsaAllShared->tdFWControlEx.inProgress = 1;
3246 agIOCTLPayload = (
tiIOCTLPayload_t *)(tdsaAllShared->tdFWControlEx.payload);
3249 TI_DBG1((
"ostiSendSMPIOCTLRsp: start, status = %d\n",
status));
3253 osti_memcpy((
void *)(tdsaAllShared->tdFWControlEx.usrAddr),
3254 (
void *)(tdsaAllShared->tdFWControlEx.virtAddr),
3255 tdsaAllShared->tdFWControlEx.len);
3258 tdsaAllShared->tdFWControlEx.buffer,
3259 tdsaAllShared->tdFWControlEx.len);
3261 tdsaAllShared->tdFWControlEx.param3,
3262 tdsaAllShared->tdFWControlEx.len);
3266 tdsaAllShared->tdFWControlEx.param1,
3267 tdsaAllShared->tdFWControlEx.param2,
3311 agsaRoot_t *agRoot = &(tdsaAllShared->agRootInt);
3319 tdsaAllShared->tdFWControlEx.buffer =
agNULL;
3320 tdsaAllShared->tdFWControlEx.virtAddr =
agNULL;
3322 tdsaAllShared->tdFWControlEx.len = 0;
3323 tdsaAllShared->tdFWControlEx.param1 = agParam1;
3324 tdsaAllShared->tdFWControlEx.param2 = agParam2;
3325 tdsaAllShared->tdFWControlEx.payload = agIOCTLPayload;
3326 tdsaAllShared->tdFWControlEx.inProgress = 0;
3328 TI_DBG1((
"tdsaSendBISTIoctl: Type %d Length %d Data %p\n",
3387 unsigned long resetType
3392#
if !(defined(__FreeBSD__))
3395 TI_DBG3((
"Status returned from ostiSendResetDeviceIoctl is %d\n",
status));
3415 agsaRoot_t *agRoot = &(tdsaAllShared->agRootInt);
3420 bit32 bufAddrUpper = 0;
3421 bit32 bufAddrLower = 0;
3424 void *osMemHandle =
agNULL;
3428 bit8 VPDPayload[32];
3430 TI_DBG2((
"tdsaVPDSet: start\n"));
3432 for(i=0;i<
sizeof(VPDPayload);i++)
3449 sizeof(VPDPayload));
3455 VPDInfo.indirectMode = 0;
3456 VPDInfo.VPDDevice = 1;
3457 VPDInfo.directLen = (
bit8)
sizeof(VPDPayload);
3458 VPDInfo.VPDOffset = 0;
3459 VPDInfo.directData = buffer;
3460 VPDInfo.indirectAddrUpper32 = bufAddrUpper;
3461 VPDInfo.indirectAddrLower32 = bufAddrLower;
3462 VPDInfo.indirectLen =
sizeof(VPDPayload);
3466 VPDInfo.indirectMode = 1;
3467 VPDInfo.VPDDevice = 1;
3468 VPDInfo.directLen = 0;
3469 VPDInfo.VPDOffset = 0;
3470 VPDInfo.directData =
agNULL;
3471 VPDInfo.indirectAddrUpper32 = bufAddrUpper;
3472 VPDInfo.indirectAddrLower32 = bufAddrLower;
3473 VPDInfo.indirectLen =
sizeof(VPDPayload);
3475 tdsaAllShared->tdFWControlEx.buffer = osMemHandle;
3476 tdsaAllShared->tdFWControlEx.param1 = agParam1;
3477 tdsaAllShared->tdFWControlEx.param2 = agParam2;
3480 tdsaAllShared->addrUpper = bufAddrUpper;
3481 tdsaAllShared->addrLower = bufAddrLower;
3483 ret = saSetVPDCommand(agRoot,
agNULL, 0, &VPDInfo);
3504 agsaRoot_t *agRoot = &(tdsaAllShared->agRootInt);
3510 TI_DBG2((
"tdsaVPDGet: start\n"));
3515 VPDInfo.indirectMode = 0;
3516 VPDInfo.VPDDevice = 1;
3517 VPDInfo.directLen = 32;
3518 VPDInfo.VPDOffset = 0;
3519 VPDInfo.directData =
agNULL;
3520 VPDInfo.indirectAddrUpper32 = 0;
3521 VPDInfo.indirectAddrLower32 = 0;
3522 VPDInfo.indirectLen = 0;
3526 VPDInfo.indirectMode = 1;
3527 VPDInfo.VPDDevice = 1;
3528 VPDInfo.directLen = 0;
3529 VPDInfo.VPDOffset = 0;
3530 VPDInfo.directData =
agNULL;
3531 VPDInfo.indirectAddrUpper32 = tdsaAllShared->addrUpper;
3532 VPDInfo.indirectAddrLower32 = tdsaAllShared->addrLower;
3533 VPDInfo.indirectLen = 32;
3535 ret = saGetVPDCommand(agRoot,
agNULL, 0, &VPDInfo);
3576 agsaRoot_t *agRoot = &(tdsaAllShared->agRootInt);
3579 void *tiRequestBody =
agNULL;
3583 TI_DBG2((
"tdsaGetNumOfLUNIOCTL: Start\n"));
3620 TI_DBG2((
"tdsaGetNumOfLUNIOCTL: End\n"));
3651 TI_DBG1((
"ostiNumOfLUNIOCTLRsp: start, status = %d\n",
status));
3653 if(tdsaAllShared->tdFWControlEx.inProgress == 1)
3655 agIOCTLPayload = (
tiIOCTLPayload_t *)(tdsaAllShared->tdFWControlEx.payload);
3661 numOfLUN = ((tdsaAllShared->tdFWControlEx.virtAddr[0] << 24)|(tdsaAllShared->tdFWControlEx.virtAddr[1] << 16)|\
3662 (tdsaAllShared->tdFWControlEx.virtAddr[2] << 8)|(tdsaAllShared->tdFWControlEx.virtAddr[3]));
3663 numOfLUN = numOfLUN/8;
3664 pDeviceLUNInfo->
numOfLun = numOfLUN;
3671 tdsaAllShared->tdFWControlEx.param1,
3672 tdsaAllShared->tdFWControlEx.param2,
3674 tdsaAllShared->tdFWControlEx.payload =
NULL;
3677 tdsaAllShared->tdFWControlEx.inProgress = 0;
3680 TI_DBG1((
"ostiNumOfLUNIOCTLRsp: End\n"));
#define SMP_WRITE_GPIO_REGISTER
#define MIN(a, b)
MIN macro.
#define SMP_READ_GPIO_REGISTER
U32 ostiChipConfigReadBit32(tiRoot_t *ptiRoot, U32 chipConfigOffset)
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)
osGLOBAL void ostiIOCTLSetSignal(tiRoot_t *ptiRoot, void *agParam1, void *agParam2, void *agParam3)
U32 ostiChipReadBit32Ext(tiRoot_t *ptiRoot, U32 busBaseNumber, U32 chipOffset)
osGLOBAL void ostiIOCTLComplete(tiRoot_t *ptiRoot, void *agParam1, void *agParam2, void *agParam3)
The file defines the MPI constants and structures.
The file defines the debug constants and structures.
#define smTraceGetInfo(R, P)
#define smResetTraceBuffer(agRoot)
#define smTraceSetMask(R, P)
osGLOBAL bit32 ostiNumOfLUNIOCTLreq(tiRoot_t *root, void *param1, void *param2, void **tiRequestBody, tiIORequest_t **tiIORequest)
osGLOBAL tiDeviceHandle_t * ostiMapToDevHandle(tiRoot_t *root, bit8 pathId, bit8 targetId, bit8 LUN)
osGLOBAL tiDeviceHandle_t * ostiGetDevHandleFromSasAddr(tiRoot_t *root, unsigned char *sas_addr)
#define OS_ASSERT(expr, message)
#define osti_memset(s, c, n)
#define osti_memcpy(des, src, n)
osGLOBAL bit32 ostiSendResetDeviceIoctl(tiRoot_t *root, void *pccb, bit8 pathId, bit8 targetId, bit8 lun, unsigned long resetType)
#define AGTIAPI_DRIVER_VERSION
The file defines the constants, data structure, and functions defined by LL API.
#define AGSA_SGPIO_CONFIG_REG
#define AGSA_SGPIO_GENERAL_PURPOSE_TRANSMIT_REG
#define AGSA_SAS_PHY_GENERAL_STATUS_PAGE
#define AGSA_INTERRUPT_CONFIGURATION_PAGE
#define AGSA_SAS_PROTOCOL_TIMER_CONFIG_PAGE
The file defines the declaration of tSDK APIs.
bit32 saGetIOErrorStats(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 flag)
bit32 saGetIOEventStats(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 flag)
GLOBAL bit32 saGpioPinSetup(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 queueNum, agsaGpioPinSetupInfo_t *gpioPinSetupInfo)
SPC Set GPIO Pin Setup 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 saGetNVMDCommand(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 queueNum, agsaNVMDData_t *NVMDInfo)
SPC Get NVMD Command.
GLOBAL bit32 saGetControllerInfo(agsaRoot_t *agRoot, agsaControllerInfo_t *controllerInfo)
SPC Get Controller Information Command.
GLOBAL bit32 saGetControllerEventLogInfo(agsaRoot_t *agRoot, agsaControllerEventLog_t *eventLogInfo)
SPC Get Controller Event Log Information Command.
GLOBAL bit32 saGetPhyProfile(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 queueNum, bit32 ppc, bit32 phyID)
GLOBAL bit32 saGpioRead(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 queueNum)
SPC GPIO Read Command.
GLOBAL bit32 saSetNVMDCommand(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 queueNum, agsaNVMDData_t *NVMDInfo)
SPC Set NVMD Command.
GLOBAL bit32 saGpioEventSetup(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 queueNum, agsaGpioEventSetupInfo_t *gpioEventSetupInfo)
SPC Set GPIO Event Setup Command.
GLOBAL bit32 saGetRegisterDump(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 queueNum, agsaRegDumpInfo_t *regDumpInfo)
Initiate a GET REGISTER DUMP command.
GLOBAL bit32 saGpioWrite(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 queueNum, bit32 gpioWriteMask, bit32 gpioWriteValue)
SPC GPIO Write Command.
GLOBAL bit32 saEncryptSelftestExecute(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 queueNum, bit32 type, bit32 length, void *TestDescriptor)
GLOBAL bit32 saGetControllerConfig(agsaRoot_t *agRoot, bit32 queueNum, bit32 modePage, bit32 flag0, bit32 flag1, agsaContext_t *agContext)
GLOBAL bit32 saSendSMPIoctl(agsaRoot_t *agRoot, agsaDevHandle_t *agDevHandle, bit32 queueNum, agsaSMPFrame_t *pSMPFrame, ossaSMPCompletedCB_t agCB)
GLOBAL bit32 saFwFlashUpdate(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 queueNum, agsaUpdateFwFlash_t *flashUpdateInfo)
SPC FW Flash Update Command.
GLOBAL bit32 saSgpio(agsaRoot_t *agRoot, agsaContext_t *agContext, bit32 queueNum, agsaSGpioReqResponse_t *pSGpioReq)
Initiate a serial GPIO command.
GLOBAL bit32 saSetControllerConfig(agsaRoot_t *agRoot, bit32 queueNum, bit32 modePage, bit32 length, void *buffer, agsaContext_t *agContext)
GLOBAL bit32 saGetForensicData(agsaRoot_t *agRoot, agsaContext_t *agContext, agsaForensicData_t *forensicData)
The file defines the constants used by LL layer.
The file contains link list manipulation helper routines.
The file defines the declaration of OS APIs.
osGLOBAL void ossaSMPIoctlCompleted(agsaRoot_t *agRoot, agsaIORequest_t *agIORequest, bit32 agIOStatus, bit32 agIOInfoLen, agsaFrameHandle_t agFrameHandle)
The file defines the internal data structure types used by LL layer.
The file defines the MPI Application Programming Interface (API)
#define IOCTL_ERROR_NO_FATAL_ERROR
bit8 attached_sasAddressLo[4]
bit8 Data[FetchBufferSIZE]
bit32 CurrentTraceIndexWrapCount
data structure stores OS specific and LL specific context
for the SAS/SATA LL Layer
bit32 * pTraceIndexWrapCount
bit32 CurrentTraceIndexWrapCount
bit32 * pCurrentTraceIndex
tdDeviceInfoIOCTL_t devInfo
unsigned long tiDeviceHandle
struct tdForensicDataPayload_s::@10::@14 dataBuffer
struct tdForensicDataPayload_s::@10::@13 queueBuffer
struct tdForensicDataPayload_s::@10::@12 gsmBuffer
tdIoErrorEventStatisticIOCTL_t IoEvent
bit32 runningDisparityError
data structure for SAS/SATA context at TD layer
struct itdsaIni_s * itdsaIni
data structure for SAS device list This structure maintains the device as a list and information abou...
agsaDevHandle_t * agDevHandle
struct tdsaPortContext_s * tdPortContext
agsaDeviceInfo_t agDeviceInfo
the root data structure for TD layer
tdsaContext_t tdsaAllShared
data structure for timer request Timer requests are enqueued and dequeued using tdList_t and have a c...
bit8 FunctionSpecificArea[1]
#define PMC_IOCTL_SIGNATURE
osGLOBAL void ostiSendSMPIOCTLRsp(tiRoot_t *tiRoot, bit32 status)
osGLOBAL void ostiGetNVMDIOCTLRsp(tiRoot_t *tiRoot, bit32 status)
osGLOBAL bit32 tdipFWControlIoctl(tiRoot_t *tiRoot, tiIOCTLPayload_t *agIOCTLPayload, void *agParam1, void *agParam2, void *agParam3)
osGLOBAL bit32 tdsaPhyProfileIoctl(tiRoot_t *tiRoot, tiIOCTLPayload_t *agIOCTLPayload, void *agParam1, void *agParam2, void *agParam3)
bit32 volatile sgpioResponseSet
osGLOBAL bit32 tdsaDeviceInfoGetIoctl(tiRoot_t *tiRoot, tiIOCTLPayload_t *agIOCTLPayload, void *agParam1, void *agParam2, void *agParam3)
osGLOBAL void ostiCOMMgntIOCTLRsp(tiRoot_t *tiRoot, bit32 status)
osGLOBAL bit32 tdsaRegisterIoctl(tiRoot_t *tiRoot, tiIOCTLPayload_t *agIOCTLPayload, void *agParam1, void *agParam2, void *agParam3)
osGLOBAL bit32 tdsaIoErrorStatisticGetIoctl(tiRoot_t *tiRoot, tiIOCTLPayload_t *agIOCTLPayload, void *agParam1, void *agParam2, void *agParam3)
osGLOBAL void ostiGetDeviceInfoIOCTLRsp(tiRoot_t *tiRoot, bit32 status, void *param)
osGLOBAL bit32 tdsaIoEventStatisticGetIoctl(tiRoot_t *tiRoot, tiIOCTLPayload_t *agIOCTLPayload, void *agParam1, void *agParam2, void *agParam3)
osGLOBAL void ostiNumOfLUNIOCTLRsp(tiRoot_t *tiRoot, bit32 status)
osGLOBAL bit32 tdsaNVMDSetIoctl(tiRoot_t *tiRoot, tiIOCTLPayload_t *agIOCTLPayload, void *agParam1, void *agParam2, void *agParam3)
osGLOBAL bit32 tdsaSendBISTIoctl(tiRoot_t *tiRoot, tiIOCTLPayload_t *agIOCTLPayload, void *agParam1, void *agParam2, void *agParam3)
osGLOBAL bit32 tdsaSendSMPIoctl(tiRoot_t *tiRoot, tiIOCTLPayload_t *agIOCTLPayload, void *agParam1, void *agParam2, void *agParam3)
osGLOBAL bit32 tdsaRegDumpGetIoctl(tiRoot_t *tiRoot, tiIOCTLPayload_t *agIOCTLPayload, void *agParam1, void *agParam2, void *agParam3)
osGLOBAL bit32 tdsaGetPhyGeneralStatusIoctl(tiRoot_t *tiRoot, agsaPhyGeneralState_t *PhyData)
osGLOBAL void ostiGetPhyGeneralStatusRsp(tiRoot_t *tiRoot, agsaSASPhyGeneralStatusPage_t *GenStatus, bit32 phyID)
osGLOBAL void ostiGetPhyProfileIOCTLRsp(tiRoot_t *tiRoot, bit32 status)
osGLOBAL bit32 tdsaSendTMFIoctl(tiRoot_t *tiRoot, tiIOCTLPayload_t *agIOCTLPayload, void *agParam1, void *agParam2, unsigned long resetType)
osGLOBAL void ostiGenEventIOCTLRsp(tiRoot_t *tiRoot, bit32 status)
#define agFieldOffset(baseType, fieldName)
osGLOBAL void ostiGetForensicDataIOCTLRsp(tiRoot_t *tiRoot, bit32 status, void *param)
osGLOBAL void ostiGetIoEventStatsIOCTLRsp(tiRoot_t *tiRoot, bit32 status, void *param)
osGLOBAL bit32 tdsaGetNumOfLUNIOCTL(tiRoot_t *tiRoot, tiIOCTLPayload_t *agIOCTLPayload, void *agParam1, void *agParam2, void *agParam3)
osGLOBAL void ostiSgpioIoctlRsp(tiRoot_t *tiRoot, agsaSGpioReqResponse_t *pSgpioResponse)
osGLOBAL void ostiGetGpioIOCTLRsp(tiRoot_t *tiRoot, bit32 status, bit32 gpioReadValue, agsaGpioPinSetupInfo_t *gpioPinSetupInfo, agsaGpioEventSetupInfo_t *gpioEventSetupInfo)
osGLOBAL bit32 tiCOMMgntIOCTL(tiRoot_t *tiRoot, tiIOCTLPayload_t *agIOCTLPayload, void *agParam1, void *agParam2, void *agParam3)
osGLOBAL void ostiCOMMgntVPDSetIOCTLRsp(tiRoot_t *tiRoot, bit32 status)
osGLOBAL bit32 tdsaSGpioIoctlSetup(tiRoot_t *tiRoot, agsaContext_t *agContext, tiIOCTLPayload_t *agIOCTLPayload, void *agParam1, void *agParam2)
osGLOBAL bit32 tdsaNVMDGetIoctl(tiRoot_t *tiRoot, tiIOCTLPayload_t *agIOCTLPayload, void *agParam1, void *agParam2, void *agParam3)
osGLOBAL void ostiRegDumpIOCTLRsp(tiRoot_t *tiRoot, bit32 status)
osGLOBAL bit32 tdsaForensicDataGetIoctl(tiRoot_t *tiRoot, tiIOCTLPayload_t *agIOCTLPayload, void *agParam1, void *agParam2, void *agParam3)
osGLOBAL void ostiSetNVMDIOCTLRsp(tiRoot_t *tiRoot, bit32 status)
#define IOCTL_MN_TMF_DEVICE_RESET
#define FORENSIC_DATA_TYPE_QUEUE
#define IOCTL_MN_FW_GET_TRACE_BUFFER
#define IOCTL_MN_GPIO_EVENTSETUP
#define IOCTL_MJ_SET_OR_GET_REGISTER
#define IOCTL_MN_NVMD_SET_CONFIG
#define IOCTL_MJ_GET_FORENSIC_DATA
#define IOCTL_MJ_SEND_TMF
#define IOCTL_MJ_LL_TRACING
#define FORENSIC_DATA_TYPE_FATAL
#define IOCTL_MN_GPIO_WRITE
#define IOCTL_MJ_FW_PROFILE
#define FORENSIC_DATA_TYPE_OB_QUEUE
#define IOCTL_MN_LL_RESET_TRACE_INDEX
#define IOCTL_MJ_NVMD_SET
#define IOCTL_MN_GPIO_READ
#define IOCTL_MJ_SMP_REQUEST
#define IOCTL_MN_FW_GET_CORE_DUMP_FLASH_AAP1
#define FORENSIC_DATA_TYPE_NON_FATAL
#define IOCTL_MJ_MODE_CTL_PAGE
#define IOCTL_MN_FW_DOWNLOAD_DATA
#define IOCTL_MJ_GET_IO_EVENT_STATISTIC
#define IOCTL_MN_FW_GET_CORE_DUMP_AAP1
#define IOCTL_MJ_LL_API_TEST
#define IOCTL_MJ_GET_IO_ERROR_STATISTIC
#define IOCTL_MJ_PHY_DETAILS
#define IOCTL_MJ_GET_DEVICE_INFO
#define IOCTL_MJ_GET_EVENT_LOG1
#define IOCTL_MJ_CARD_PARAMETER
#define IOCTL_MJ_PORT_START
#define IOCTL_MN_FW_GET_EVENT_FLASH_LOG2
#define IOCTL_MN_LL_GET_TRACE_BUFFER
#define IOCTL_MJ_SEND_BIST
#define IOCTL_MJ_GET_EVENT_LOG2
#define IOCTL_MN_NVMD_GET_CONFIG
#define IOCTL_MJ_INI_DRIVER_IDENTIFY
#define IOCTL_MN_GPIO_PINSETUP
#define IOCTL_MN_LL_GET_TRACE_BUFFER_INFO
#define IOCTL_MN_FW_GET_CORE_DUMP_FLASH_IOP
#define IOCTL_MJ_GET_DRIVER_VERSION
#define IOCTL_MJ_PORT_STOP
#define IOCTL_MJ_GET_DEVICE_LUN
#define IOCTL_MN_FW_GET_CORE_DUMP_IOP
struct tdIoErrorEventStatisticIOCTL_s tdIoErrorEventStatisticIOCTL_t
#define IOCTL_MJ_GET_FW_REV
#define FORENSIC_DATA_TYPE_CHECK_FATAL
#define IOCTL_MJ_GET_CORE_DUMP
#define IOCTL_MN_CARD_GET_INTERRUPT_CONFIG
#define IOCTL_MJ_FW_CONTROL
#define IOCTL_MN_TMF_LUN_RESET
#define IOCTL_MJ_PHY_GENERAL_STATUS
#define FORENSIC_DATA_TYPE_GSM_SPACE
#define FORENSIC_DATA_TYPE_IB_QUEUE
#define IOCTL_MN_FW_GET_EVENT_FLASH_LOG1
#define IOCTL_MJ_GET_PHY_PROFILE
#define IOCTL_MJ_NVMD_GET
#define IOCTL_MN_CARD_GET_TIMER_CONFIG
void tdsaSingleThreadedEnter(tiRoot_t *ptiRoot, bit32 queueId)
void tdsaSingleThreadedLeave(tiRoot_t *ptiRoot, bit32 queueId)
FORCEINLINE bit32 tdsaRotateQnumber(tiRoot_t *tiRoot, tdsaDeviceData_t *oneDeviceData)
osGLOBAL void tdsaInitTimerRequest(tiRoot_t *tiRoot, tdsaTimerRequest_t *timerRequest)
osGLOBAL bit32 tdsaGpioSetup(tiRoot_t *tiRoot, agsaContext_t *agContext, tiIOCTLPayload_t *agIOCTLPayload, void *agParam1, void *agParam2)
osGLOBAL void tdsaKillTimer(tiRoot_t *tiRoot, tdsaTimerRequest_t *timerRequest)
osGLOBAL void ostiGetIoErrorStatsIOCTLRsp(tiRoot_t *tiRoot, bit32 status, void *param)
osGLOBAL bit32 tiCOMPortStart(tiRoot_t *tiRoot, bit32 portID, tiPortalContext_t *portalContext, bit32 option)
osGLOBAL bit32 tiNumOfLunIOCTLreq(tiRoot_t *tiRoot, tiIORequest_t *tiIORequest, tiDeviceHandle_t *tiDeviceHandle, void *tiRequestBody, tiIOCTLPayload_t *agIOCTLPayload, void *agParam1, void *agParam2)
osGLOBAL void tiIniGetDirectSataSasAddr(tiRoot_t *tiRoot, bit32 phyId, bit8 **sasAddressHi, bit8 **sasAddressLo)
osGLOBAL bit32 tiCOMPortStop(tiRoot_t *tiRoot, tiPortalContext_t *portalContext)
#define IOCTL_ERR_FW_EVENTLOG_DISABLED
#define ADAPTER_WWN_START_OFFSET
#define AG_LOGICAL_UNIT_RESET
#define IOCTL_CALL_PENDING
#define IOCTL_ERR_STATUS_NOT_RESPONDING
#define IOCTL_CALL_INVALID_DEVICE
#define IOCTL_ERR_STATUS_NOT_SUPPORTED
#define IOCTL_CALL_INVALID_CODE
#define TI_ENCRYPTION_CONTROL_PARM_PAGE
#define ADAPTER_WWN_SPC_END_OFFSET
#define IOCTL_ERR_STATUS_NO_MORE_DATA
#define IOCTL_CALL_TIMEOUT
#define TI_ENCRYPTION_DEK_CONFIG_PAGE
#define ADAPTER_WWN_SPC_START_OFFSET
#define TI_ENCRYPTION_GENERAL_CONFIG_PAGE
#define IOCTL_ERR_STATUS_OK
#define ADAPTER_WWN_END_OFFSET
#define IOCTL_ERR_STATUS_INTERNAL_ERROR
#define IOCTL_CALL_SUCCESS
#define IOCTL_ERR_STATUS_INVALID_DEVICE
#define AG_TARGET_WARM_RESET
struct tiEncryptControlParamPage_s tiEncryptControlParamPage_t
struct tiEncryptDekConfigPage tiEncryptDekConfigPage_t