• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-13-stable/sys/dev/pms/RefTisa/sallsdk/spc/

Lines Matching refs:agRoot

48                       agsaRoot_t     *agRoot,
59 * \param agRoot Handles for this instance of SAS/SATA LL
71 agsaRoot_t *agRoot,
78 agsaLLRoot_t *saRoot = (agsaLLRoot_t *) (agRoot->sdkData);
88 SA_ASSERT((agNULL != agRoot), "");
91 ossaSingleThreadedEnter(agRoot, LL_IOREQ_LOCKEQ_LOCK);
97 ossaSingleThreadedLeave(agRoot, LL_IOREQ_LOCKEQ_LOCK);
115 ossaSingleThreadedLeave(agRoot, LL_IOREQ_LOCKEQ_LOCK);
118 ossaSingleThreadedEnter(agRoot, LL_IOREQ_IBQ0_LOCK + inq);
128 ossaSingleThreadedLeave(agRoot, LL_IOREQ_IBQ0_LOCK + inq);
130 ossaSingleThreadedEnter(agRoot, LL_IOREQ_LOCKEQ_LOCK);
138 ossaSingleThreadedLeave(agRoot, LL_IOREQ_LOCKEQ_LOCK);
148 ossaSingleThreadedLeave(agRoot, LL_IOREQ_IBQ0_LOCK + inq);
151 ossaSingleThreadedEnter(agRoot, LL_IOREQ_LOCKEQ_LOCK);
159 ossaSingleThreadedLeave(agRoot, LL_IOREQ_LOCKEQ_LOCK);
167 OSSA_WRITE_LE_32(agRoot, pPayload, OSSA_OFFSET_OF(agsaFwProfileIOMB_t, tag), pRequest->HTag);
168 OSSA_WRITE_LE_32(agRoot, pPayload, OSSA_OFFSET_OF(agsaFwProfileIOMB_t, tcid_processor_cmd), tcid_processor_cmd);
169 OSSA_WRITE_LE_32(agRoot, pPayload, OSSA_OFFSET_OF(agsaFwProfileIOMB_t, codeStartAdd), fwProfileInfo->codeStartAdd);
170 OSSA_WRITE_LE_32(agRoot, pPayload, OSSA_OFFSET_OF(agsaFwProfileIOMB_t, codeEndAdd), fwProfileInfo->codeEndAdd);
187 ossaSingleThreadedLeave(agRoot, LL_IOREQ_IBQ0_LOCK + inq);
192 ossaSingleThreadedEnter(agRoot, LL_IOREQ_LOCKEQ_LOCK);
200 ossaSingleThreadedLeave(agRoot, LL_IOREQ_LOCKEQ_LOCK);
212 * \param agRoot Handles for this instance of SAS/SATA LL
224 agsaRoot_t *agRoot,
239 SA_ASSERT((agNULL != agRoot), "");
240 if (agRoot == agNULL)
242 SA_DBG1(("saFwFlashUpdate: agRoot == agNULL\n"));
245 saRoot = (agsaLLRoot_t *)(agRoot->sdkData);
256 SA_ASSERT((agNULL != agRoot), "");
258 ossaSingleThreadedEnter(agRoot, LL_IOREQ_LOCKEQ_LOCK);
262 ossaSingleThreadedLeave(agRoot, LL_IOREQ_LOCKEQ_LOCK);
280 ossaSingleThreadedLeave(agRoot, LL_IOREQ_LOCKEQ_LOCK);
282 ossaSingleThreadedEnter(agRoot, LL_IOREQ_IBQ0_LOCK + inq);
291 ossaSingleThreadedLeave(agRoot, LL_IOREQ_IBQ0_LOCK + inq);
293 ossaSingleThreadedEnter(agRoot, LL_IOREQ_LOCKEQ_LOCK);
301 ossaSingleThreadedLeave(agRoot, LL_IOREQ_LOCKEQ_LOCK);
310 ossaSingleThreadedLeave(agRoot, LL_IOREQ_IBQ0_LOCK + inq);
312 ossaSingleThreadedEnter(agRoot, LL_IOREQ_LOCKEQ_LOCK);
320 ossaSingleThreadedLeave(agRoot, LL_IOREQ_LOCKEQ_LOCK);
327 OSSA_WRITE_LE_32( agRoot, pPayload,
329 OSSA_WRITE_LE_32( agRoot, pPayload,
332 OSSA_WRITE_LE_32( agRoot, pPayload,
335 OSSA_WRITE_LE_32( agRoot, pPayload,
350 ossaSingleThreadedLeave( agRoot, LL_IOREQ_IBQ0_LOCK + inq );
353 ossaSingleThreadedEnter( agRoot, LL_IOREQ_LOCKEQ_LOCK );
361 ossaSingleThreadedLeave( agRoot, LL_IOREQ_LOCKEQ_LOCK );
371 agsaRoot_t *agRoot,
378 agsaLLRoot_t *saRoot = (agsaLLRoot_t *) (agRoot->sdkData);
388 SA_ASSERT((agNULL != agRoot), "");
391 ossaSingleThreadedEnter(agRoot, LL_IOREQ_LOCKEQ_LOCK);
397 ossaSingleThreadedLeave(agRoot, LL_IOREQ_LOCKEQ_LOCK);
416 ossaSingleThreadedLeave(agRoot, LL_IOREQ_LOCKEQ_LOCK);
419 ossaSingleThreadedEnter(agRoot, LL_IOREQ_IBQ0_LOCK + inq);
429 ossaSingleThreadedLeave(agRoot, LL_IOREQ_IBQ0_LOCK + inq);
431 ossaSingleThreadedEnter(agRoot, LL_IOREQ_LOCKEQ_LOCK);
439 ossaSingleThreadedLeave(agRoot, LL_IOREQ_LOCKEQ_LOCK);
450 ossaSingleThreadedLeave(agRoot, LL_IOREQ_IBQ0_LOCK + inq);
452 ossaSingleThreadedEnter(agRoot, LL_IOREQ_LOCKEQ_LOCK);
461 ossaSingleThreadedLeave(agRoot, LL_IOREQ_LOCKEQ_LOCK);
474 OSSA_WRITE_LE_32(agRoot, pPayload, OSSA_OFFSET_OF(agsaFwFlashOpExt_t, tag), pRequest->HTag);
475 OSSA_WRITE_LE_32(agRoot, pPayload, OSSA_OFFSET_OF(agsaFwFlashOpExt_t,Command ), agFlashExtExe->command);
476 OSSA_WRITE_LE_32(agRoot, pPayload, OSSA_OFFSET_OF(agsaFwFlashOpExt_t,PartOffset ), agFlashExtExe->partOffset);
477 OSSA_WRITE_LE_32(agRoot, pPayload, OSSA_OFFSET_OF(agsaFwFlashOpExt_t,DataLength ), agFlashExtExe->dataLen);
478 OSSA_WRITE_LE_32(agRoot, pPayload, OSSA_OFFSET_OF(agsaFwFlashOpExt_t,SGLAL ), agFlashExtExe->agSgl->sgLower);
479 OSSA_WRITE_LE_32(agRoot, pPayload, OSSA_OFFSET_OF(agsaFwFlashOpExt_t,SGLAH ), agFlashExtExe->agSgl->sgUpper);
480 OSSA_WRITE_LE_32(agRoot, pPayload, OSSA_OFFSET_OF(agsaFwFlashOpExt_t,Len ), agFlashExtExe->agSgl->len);
481 OSSA_WRITE_LE_32(agRoot, pPayload, OSSA_OFFSET_OF(agsaFwFlashOpExt_t,E_sgl ), agFlashExtExe->agSgl->extReserved);
487 ossaSingleThreadedLeave(agRoot, LL_IOREQ_IBQ0_LOCK + inq);
493 ossaSingleThreadedEnter(agRoot, LL_IOREQ_LOCKEQ_LOCK);
501 ossaSingleThreadedLeave(agRoot, LL_IOREQ_LOCKEQ_LOCK);
518 * \param agRoot Handles for this instance of SAS/SATA LL
528 agsaRoot_t *agRoot,
533 agsaLLRoot_t *saRoot = (agsaLLRoot_t *) (agRoot->sdkData);
557 ossaSingleThreadedEnter(agRoot, LL_IOREQ_LOCKEQ_LOCK);
570 ossaSingleThreadedLeave(agRoot, LL_IOREQ_LOCKEQ_LOCK);
572 ossaFwProfileCB(agRoot, agContext, status, len);
582 * \param agRoot Handles for this instance of SAS/SATA LL
592 agsaRoot_t *agRoot,
597 agsaLLRoot_t *saRoot = (agsaLLRoot_t *) (agRoot->sdkData);
613 ossaSingleThreadedEnter(agRoot, LL_IOREQ_LOCKEQ_LOCK);
627 ossaSingleThreadedLeave(agRoot, LL_IOREQ_LOCKEQ_LOCK);
634 ossaFwFlashUpdateCB(agRoot, agContext, status);
642 agsaRoot_t *agRoot,
647 agsaLLRoot_t *saRoot = (agsaLLRoot_t *) (agRoot->sdkData);
669 ossaSingleThreadedEnter(agRoot, LL_IOREQ_LOCKEQ_LOCK);
683 ossaSingleThreadedLeave(agRoot, LL_IOREQ_LOCKEQ_LOCK);
690 ossaFlashExtExecuteCB(agRoot, agContext, Status,Command,&FlashExtRsp);
704 * \param agRoot Handles for this instance of SAS/SATA LL
715 agsaRoot_t *agRoot,
727 if (agNULL != agRoot->sdkData)
734 if(smIS_SPC6V(agRoot))
738 controllerInfo->hwRevision = (ossaHwRegReadConfig32(agRoot,8) & 0xFF);
739 }else if(smIS_SPC12V(agRoot))
743 controllerInfo->hwRevision = (ossaHwRegReadConfig32(agRoot,8) & 0xFF);
744 } else if(smIS_SPC(agRoot))
752 controllerInfo->hwRevision = (ossaHwRegReadConfig32(agRoot,8) & 0xFF);
755 SA_DBG1(("saGetControllerInfo: SCRATCH_PAD0 value = 0x%x\n", siHalRegReadExt(agRoot,GEN_MSGU_SCRATCH_PAD_0, MSGU_SCRATCH_PAD_0)));
756 SA_DBG1(("saGetControllerInfo: SCRATCH_PAD1 value = 0x%x\n", siHalRegReadExt(agRoot,GEN_MSGU_SCRATCH_PAD_1, MSGU_SCRATCH_PAD_1)));
757 SA_DBG1(("saGetControllerInfo: SCRATCH_PAD2 value = 0x%x\n", siHalRegReadExt(agRoot,GEN_MSGU_SCRATCH_PAD_2, MSGU_SCRATCH_PAD_2)));
758 SA_DBG1(("saGetControllerInfo: SCRATCH_PAD3 value = 0x%x\n", siHalRegReadExt(agRoot,GEN_MSGU_SCRATCH_PAD_3, MSGU_SCRATCH_PAD_3)));
759 SA_DBG1(("saGetControllerInfo: SCRATCH_PAD3 value = 0x%x\n", siHalRegReadExt(agRoot,GEN_MSGU_SCRATCH_PAD_3, MSGU_SCRATCH_PAD_3)));
761 if(siHalRegReadExt(agRoot,GEN_MSGU_SCRATCH_PAD_0, MSGU_SCRATCH_PAD_0) == 0xFFFFFFFF)
764 siHalRegReadExt(agRoot,GEN_MSGU_SCRATCH_PAD_0, MSGU_SCRATCH_PAD_0) ) );
768 if(siHalRegReadExt(agRoot,GEN_MSGU_SCRATCH_PAD_0, MSGU_SCRATCH_PAD_0) == 0xFFFFFFFF)
771 siHalRegReadExt(agRoot,GEN_MSGU_SCRATCH_PAD_0, MSGU_SCRATCH_PAD_0) ) );
775 if( SCRATCH_PAD1_V_ERROR_STATE(siHalRegReadExt(agRoot,GEN_MSGU_SCRATCH_PAD_1, MSGU_SCRATCH_PAD_1)) )
778 siHalRegReadExt(agRoot,GEN_MSGU_SCRATCH_PAD_1, MSGU_SCRATCH_PAD_1),
779 ( SCRATCH_PAD1_V_ILA_ERROR_STATE(siHalRegReadExt(agRoot,GEN_MSGU_SCRATCH_PAD_1, MSGU_SCRATCH_PAD_1)) ? 1 : 0),
780 ( SCRATCH_PAD1_V_RAAE_ERROR_STATE(siHalRegReadExt(agRoot,GEN_MSGU_SCRATCH_PAD_1,MSGU_SCRATCH_PAD_1)) ? 1 : 0),
781 ( SCRATCH_PAD1_V_IOP0_ERROR_STATE(siHalRegReadExt(agRoot,GEN_MSGU_SCRATCH_PAD_1,MSGU_SCRATCH_PAD_1)) ? 1 : 0),
782 ( SCRATCH_PAD1_V_IOP1_ERROR_STATE(siHalRegReadExt(agRoot,GEN_MSGU_SCRATCH_PAD_1,MSGU_SCRATCH_PAD_1)) ? 1 : 0) ));
786 if(smIS_SPC(agRoot))
789 value = ossaHwRegReadExt(agRoot, PCIBAR3, HDA_RSP_OFFSET1MB+HDA_CMD_CODE_OFFSET) & HDA_STATUS_BITS;
800 if(siHalRegReadExt(agRoot,GEN_MSGU_SCRATCH_PAD_1, MSGU_SCRATCH_PAD_1) & SCRATCH_PAD1_V_RESERVED )
802 SA_DBG1(("saGetControllerInfo: Warning SCRATCH_PAD1 reserved bits set value = 0x%x\n", siHalRegReadExt(agRoot,GEN_MSGU_SCRATCH_PAD_1, MSGU_SCRATCH_PAD_1)));
804 if( si_check_V_HDA(agRoot))
818 if(smIS_SPCV(agRoot))
822 ossaStallThread(agRoot, WAIT_INCREMENT);
823 value = siHalRegReadExt(agRoot, GEN_MSGU_SCRATCH_PAD_1, MSGU_SCRATCH_PAD_1);
824 value1 =siHalRegReadExt(agRoot, GEN_MSGU_SCRATCH_PAD_2, MSGU_SCRATCH_PAD_2);
825 if(smIS_SPCV(agRoot))
848 ossaStallThread(agRoot, WAIT_INCREMENT);
849 value = siHalRegReadExt(agRoot, GEN_MSGU_SCRATCH_PAD_1, MSGU_SCRATCH_PAD_1);
857 value1 =siHalRegReadExt(agRoot, GEN_MSGU_SCRATCH_PAD_2,MSGU_SCRATCH_PAD_2);
884 MSGUCfgTblBase = siHalRegReadExt(agRoot,GEN_MSGU_SCRATCH_PAD_0, MSGU_SCRATCH_PAD_0);
891 pcibar = (bit8)mpiGetPCIBarIndex(agRoot, MSGUCfgTblBase);
894 controllerInfo->signature = ossaHwRegReadExt(agRoot, pcibar, (bit32)CfgTblDWIdx);
895 controllerInfo->fwInterfaceRev = ossaHwRegReadExt(agRoot, pcibar, (bit32)CfgTblDWIdx + MAIN_INTERFACE_REVISION);
896 controllerInfo->fwRevision = ossaHwRegReadExt(agRoot, pcibar, (bit32)CfgTblDWIdx + MAIN_FW_REVISION);
897 controllerInfo->ilaRevision = ossaHwRegReadExt(agRoot, pcibar, (bit32)CfgTblDWIdx + MAIN_ILAT_ILAV_ILASMRN_ILAMRN_ILAMJN);
898 controllerInfo->maxPendingIO = ossaHwRegReadExt(agRoot, pcibar, (bit32)CfgTblDWIdx + MAIN_MAX_OUTSTANDING_IO_OFFSET);
899 controllerInfo->maxDevices = (ossaHwRegReadExt(agRoot, pcibar, (bit32)CfgTblDWIdx + MAIN_MAX_SGL_OFFSET) & MAIN_MAX_DEV_BITS);
901 controllerInfo->maxSgElements = (ossaHwRegReadExt(agRoot, pcibar, (bit32)CfgTblDWIdx + MAIN_MAX_SGL_OFFSET) & MAIN_MAX_SGL_BITS);
903 if( smIS_SPC(agRoot))
905 SA_DBG2(("saGetControllerInfo: LINK_CTRL 0x%08x Speed 0x%X Lanes 0x%X \n", ossaHwRegReadConfig32(agRoot,128),
906 ((ossaHwRegReadConfig32(agRoot,128) & 0x000F0000) >> 16),
907 ((ossaHwRegReadConfig32(agRoot,128) & 0x0FF00000) >> 20) ));
908 controllerInfo->PCILinkRate = ((ossaHwRegReadConfig32(agRoot,128) & 0x000F0000) >> 16);
909 controllerInfo->PCIWidth = ((ossaHwRegReadConfig32(agRoot,128) & 0x0FF00000) >> 20);
913 SA_DBG2(("saGetControllerInfo: LINK_CTRL 0x%08x Speed 0x%X Lanes 0x%X \n", ossaHwRegReadConfig32(agRoot,208),
914 ((ossaHwRegReadConfig32(agRoot,208) & 0x000F0000) >> 16),
915 ((ossaHwRegReadConfig32(agRoot,208) & 0x0FF00000) >> 20) ));
916 controllerInfo->PCILinkRate = ((ossaHwRegReadConfig32(agRoot,208) & 0x000F0000) >> 16);
917 controllerInfo->PCIWidth = ((ossaHwRegReadConfig32(agRoot,208) & 0x0FF00000) >> 20);
921 ContrlCapFlag = ossaHwRegReadExt(agRoot, pcibar, (bit32)CfgTblDWIdx + MAIN_CNTRL_CAP_OFFSET);
926 if(smIS_SPCV(agRoot))
928 controllerInfo->controllerSetting = (bit8)((siHalRegReadExt(agRoot,GEN_MSGU_SCRATCH_PAD_1, MSGU_SCRATCH_PAD_1) & SCRATCH_PAD1_V_BOOTSTATE_MASK ) >> SHIFT4);
932 controllerInfo->controllerSetting = (bit8)(ossaHwRegReadExt(agRoot, pcibar, (bit32)CfgTblDWIdx + MAIN_HDA_FLAGS_OFFSET) & MAIN_HDA_FLAG_BITS);
953 if (agNULL != agRoot->sdkData)
965 * \param agRoot Handles for this instance of SAS/SATA LL
975 agsaRoot_t *agRoot,
980 agsaLLRoot_t *saRoot = (agsaLLRoot_t *) (agRoot->sdkData);
993 if(siHalRegReadExt(agRoot,GEN_MSGU_SCRATCH_PAD_0, MSGU_SCRATCH_PAD_0) == 0xFFFFFFFF)
995 SA_DBG1(("saGetControllerStatus:AGSA_RC_FAILURE SCRATCH_PAD0 value = 0x%x\n", siHalRegReadExt(agRoot,GEN_MSGU_SCRATCH_PAD_0, MSGU_SCRATCH_PAD_0)));
999 if(siHalRegReadExt(agRoot,GEN_MSGU_SCRATCH_PAD_1, MSGU_SCRATCH_PAD_3) & (OSSA_ENCRYPT_ENGINE_FAILURE_MASK | OSSA_DIF_ENGINE_FAILURE_MASK))
1001 SA_DBG1(("saGetControllerStatus: BIST error in SCRATCHPAD 3 0x%x\n", siHalRegReadExt(agRoot,GEN_MSGU_SCRATCH_PAD_3, MSGU_SCRATCH_PAD_3)));
1004 if(smIS_SPC(agRoot))
1008 controllerStatus->fatalErrorInfo.errorInfo0 = ossaHwRegRead(agRoot, MSGU_SCRATCH_PAD_0);
1009 controllerStatus->fatalErrorInfo.errorInfo1 = ossaHwRegRead(agRoot, MSGU_SCRATCH_PAD_1);
1010 controllerStatus->fatalErrorInfo.errorInfo2 = ossaHwRegRead(agRoot, MSGU_SCRATCH_PAD_2);
1011 controllerStatus->fatalErrorInfo.errorInfo3 = ossaHwRegRead(agRoot, MSGU_SCRATCH_PAD_3);
1021 value = ossaHwRegReadExt(agRoot, PCIBAR3, HDA_RSP_OFFSET1MB+HDA_CMD_CODE_OFFSET) & HDA_STATUS_BITS;
1031 value = ossaHwRegRead(agRoot, MSGU_SCRATCH_PAD_1);
1032 value1 = ossaHwRegRead(agRoot, MSGU_SCRATCH_PAD_2);
1069 ossaStallThread(agRoot, WAIT_INCREMENT);
1070 value = ossaHwRegRead(agRoot, MSGU_SCRATCH_PAD_1);
1079 value1 = ossaHwRegRead(agRoot, MSGU_SCRATCH_PAD_2);
1106 value = ossaHwRegRead(agRoot, MSGU_SCRATCH_PAD_0);
1113 mpiReadGSTable(agRoot, &GSTable);
1119 value = (bit8)mpiGetPCIBarIndex(agRoot, value);
1120 controllerStatus->fatalErrorInfo.regDumpOffset0 = ossaHwRegReadExt(agRoot, value, value1 + MAIN_FATAL_ERROR_RDUMP0_OFFSET);
1121 controllerStatus->fatalErrorInfo.regDumpLen0 = ossaHwRegReadExt(agRoot, value, value1 + MAIN_FATAL_ERROR_RDUMP0_LENGTH);
1122 controllerStatus->fatalErrorInfo.regDumpOffset1 = ossaHwRegReadExt(agRoot, value, value1 + MAIN_FATAL_ERROR_RDUMP1_OFFSET);
1123 controllerStatus->fatalErrorInfo.regDumpLen1 = ossaHwRegReadExt(agRoot, value, value1 + MAIN_FATAL_ERROR_RDUMP1_LENGTH);
1155 if(siHalRegReadExt(agRoot,GEN_MSGU_SCRATCH_PAD_1, MSGU_SCRATCH_PAD_1) & SCRATCH_PAD1_V_RESERVED )
1157 SA_DBG1(("saGetControllerStatus: Warning SCRATCH_PAD1 reserved bits set value = 0x%x\n", siHalRegReadExt(agRoot,GEN_MSGU_SCRATCH_PAD_1, MSGU_SCRATCH_PAD_1)));
1159 if( si_check_V_HDA(agRoot))
1163 controllerStatus->fatalErrorInfo.errorInfo0 = ossaHwRegRead(agRoot,V_Scratchpad_0_Register );
1164 controllerStatus->fatalErrorInfo.errorInfo1 = ossaHwRegRead(agRoot,V_Scratchpad_1_Register );
1165 controllerStatus->fatalErrorInfo.errorInfo2 = ossaHwRegRead(agRoot,V_Scratchpad_2_Register );
1166 controllerStatus->fatalErrorInfo.errorInfo3 = ossaHwRegRead(agRoot,V_Scratchpad_3_Register );
1171 ret = si_check_V_Ready(agRoot);
1176 mpiReadGSTable(agRoot, &GSTable);
1194 if( IS_SDKDATA(agRoot))
1213 SA_DBG1(("saGetControllerStatus: SCRATCH_PAD0 value = 0x%x\n", ossaHwRegRead(agRoot, V_Scratchpad_0_Register)));
1214 SA_DBG1(("saGetControllerStatus: SCRATCH_PAD1 value = 0x%x\n", ossaHwRegRead(agRoot, V_Scratchpad_1_Register)));
1215 SA_DBG1(("saGetControllerStatus: SCRATCH_PAD2 value = 0x%x\n", ossaHwRegRead(agRoot, V_Scratchpad_2_Register)));
1216 SA_DBG1(("saGetControllerStatus: SCRATCH_PAD3 value = 0x%x\n", ossaHwRegRead(agRoot, V_Scratchpad_3_Register)));
1218 controllerStatus->fatalErrorInfo.errorInfo0 = ossaHwRegRead(agRoot,V_Scratchpad_0_Register );
1219 controllerStatus->fatalErrorInfo.errorInfo1 = ossaHwRegRead(agRoot,V_Scratchpad_1_Register );
1220 controllerStatus->fatalErrorInfo.errorInfo2 = ossaHwRegRead(agRoot,V_Scratchpad_2_Register );
1221 controllerStatus->fatalErrorInfo.errorInfo3 = ossaHwRegRead(agRoot,V_Scratchpad_3_Register );
1336 * \param agRoot Handles for this instance of SAS/SATA LL
1346 agsaRoot_t *agRoot,
1351 agsaLLRoot_t *saRoot = (agsaLLRoot_t *) (agRoot->sdkData);
1356 SA_ASSERT((agNULL != agRoot), "");
1373 * \param agRoot Handles for this instance of SAS/SATA LL
1385 agsaRoot_t *agRoot,
1392 agsaLLRoot_t *saRoot = (agsaLLRoot_t *) (agRoot->sdkData);
1399 SA_ASSERT((agNULL != agRoot), "");
1402 ossaSingleThreadedEnter(agRoot, LL_IOREQ_LOCKEQ_LOCK);
1408 ossaSingleThreadedLeave(agRoot, LL_IOREQ_LOCKEQ_LOCK);
1426 OSSA_WRITE_LE_32(agRoot, &payload, OSSA_OFFSET_OF(agsaGPIOCmd_t, tag), pRequest->HTag);
1427 OSSA_WRITE_LE_32(agRoot, &payload, OSSA_OFFSET_OF(agsaGPIOCmd_t, eOBIDGeGsGrGw), GPIO_GE_BIT);
1428 OSSA_WRITE_LE_32(agRoot, &payload, OSSA_OFFSET_OF(agsaGPIOCmd_t, GPIEVChange), gpioEventSetupInfo->gpioEventLevel);
1429 OSSA_WRITE_LE_32(agRoot, &payload, OSSA_OFFSET_OF(agsaGPIOCmd_t, GPIEVFall), gpioEventSetupInfo->gpioEventFallingEdge);
1430 OSSA_WRITE_LE_32(agRoot, &payload, OSSA_OFFSET_OF(agsaGPIOCmd_t, GPIEVRise), gpioEventSetupInfo->gpioEventRisingEdge);
1431 ret = mpiBuildCmd(agRoot, (bit32 *)&payload, MPI_CATEGORY_SAS_SATA, OPC_INB_GPIO, IOMB_SIZE64, queueNum);
1455 ossaSingleThreadedLeave(agRoot, LL_IOREQ_LOCKEQ_LOCK);
1466 * \param agRoot Handles for this instance of SAS/SATA LL
1478 agsaRoot_t *agRoot,
1485 agsaLLRoot_t *saRoot = (agsaLLRoot_t *) (agRoot->sdkData);
1492 SA_ASSERT((agNULL != agRoot), "");
1495 ossaSingleThreadedEnter(agRoot, LL_IOREQ_LOCKEQ_LOCK);
1501 ossaSingleThreadedLeave(agRoot, LL_IOREQ_LOCKEQ_LOCK);
1518 OSSA_WRITE_LE_32(agRoot, &payload, OSSA_OFFSET_OF(agsaGPIOCmd_t, tag), pRequest->HTag);
1519 OSSA_WRITE_LE_32(agRoot, &payload, OSSA_OFFSET_OF(agsaGPIOCmd_t, eOBIDGeGsGrGw), GPIO_GS_BIT);
1520 OSSA_WRITE_LE_32(agRoot, &payload, OSSA_OFFSET_OF(agsaGPIOCmd_t, GpioIe), gpioPinSetupInfo->gpioInputEnabled);
1521 OSSA_WRITE_LE_32(agRoot, &payload, OSSA_OFFSET_OF(agsaGPIOCmd_t, OT11_0), gpioPinSetupInfo->gpioTypePart1);
1522 OSSA_WRITE_LE_32(agRoot, &payload, OSSA_OFFSET_OF(agsaGPIOCmd_t, OT19_12), gpioPinSetupInfo->gpioTypePart2);
1523 ret = mpiBuildCmd(agRoot, (bit32 *)&payload, MPI_CATEGORY_SAS_SATA, OPC_INB_GPIO, IOMB_SIZE64, queueNum);
1546 ossaSingleThreadedLeave(agRoot, LL_IOREQ_LOCKEQ_LOCK);
1557 * \param agRoot Handles for this instance of SAS/SATA LL
1568 agsaRoot_t *agRoot,
1574 agsaLLRoot_t *saRoot = (agsaLLRoot_t *) (agRoot->sdkData);
1581 SA_ASSERT((agNULL != agRoot), "");
1584 ossaSingleThreadedEnter(agRoot, LL_IOREQ_LOCKEQ_LOCK);
1590 ossaSingleThreadedLeave(agRoot, LL_IOREQ_LOCKEQ_LOCK);
1609 OSSA_WRITE_LE_32(agRoot, &payload, OSSA_OFFSET_OF(agsaGPIOCmd_t, tag), pRequest->HTag);
1610 OSSA_WRITE_LE_32(agRoot, &payload, OSSA_OFFSET_OF(agsaGPIOCmd_t, eOBIDGeGsGrGw), GPIO_GR_BIT);
1611 ret = mpiBuildCmd(agRoot, (bit32 *)&payload, MPI_CATEGORY_SAS_SATA, OPC_INB_GPIO, IOMB_SIZE64, queueNum);
1633 ossaSingleThreadedLeave(agRoot, LL_IOREQ_LOCKEQ_LOCK);
1645 * \param agRoot Handles for this instance of SAS/SATA LL
1658 agsaRoot_t *agRoot,
1666 agsaLLRoot_t *saRoot = (agsaLLRoot_t *) (agRoot->sdkData);
1673 SA_ASSERT((agNULL != agRoot), "");
1676 ossaSingleThreadedEnter(agRoot, LL_IOREQ_LOCKEQ_LOCK);
1682 ossaSingleThreadedLeave(agRoot, LL_IOREQ_LOCKEQ_LOCK);
1701 OSSA_WRITE_LE_32(agRoot, &payload, OSSA_OFFSET_OF(agsaGPIOCmd_t, tag), pRequest->HTag);
1702 OSSA_WRITE_LE_32(agRoot, &payload, OSSA_OFFSET_OF(agsaGPIOCmd_t, eOBIDGeGsGrGw), GPIO_GW_BIT);
1703 OSSA_WRITE_LE_32(agRoot, &payload, OSSA_OFFSET_OF(agsaGPIOCmd_t, GpioWrMsk), gpioWriteMask);
1704 OSSA_WRITE_LE_32(agRoot, &payload, OSSA_OFFSET_OF(agsaGPIOCmd_t, GpioWrVal), gpioWriteValue);
1705 ret = mpiBuildCmd(agRoot, (bit32 *)&payload, MPI_CATEGORY_SAS_SATA, OPC_INB_GPIO, IOMB_SIZE64, queueNum);
1729 ossaSingleThreadedLeave(agRoot, LL_IOREQ_LOCKEQ_LOCK);
1740 * \param agRoot Handles for this instance of SAS/SATA LL
1752 agsaRoot_t *agRoot,
1763 SA_ASSERT((agNULL != agRoot), "");
1765 saRoot = (agsaLLRoot_t *) (agRoot->sdkData);
1779 ossaSingleThreadedEnter(agRoot, LL_IOREQ_LOCKEQ_LOCK);
1785 ossaSingleThreadedLeave(agRoot, LL_IOREQ_LOCKEQ_LOCK);
1799 if(smIS_SPC(agRoot))
1807 if(smIS_SPCV(agRoot))
1810 OSSA_WRITE_LE_32(agRoot, &payload, OSSA_OFFSET_OF(agsaSASDiagExecuteCmd_t, tag), pRequest->HTag);
1811 OSSA_WRITE_LE_32(agRoot, &payload, OSSA_OFFSET_OF(agsaSASDiagExecuteCmd_t, CmdTypeDescPhyId),diag->command );
1812 OSSA_WRITE_LE_32(agRoot, &payload, OSSA_OFFSET_OF(agsaSASDiagExecuteCmd_t, Pat1Pat2), diag->param0 );
1813 OSSA_WRITE_LE_32(agRoot, &payload, OSSA_OFFSET_OF(agsaSASDiagExecuteCmd_t, Threshold), diag->param1 );
1814 OSSA_WRITE_LE_32(agRoot, &payload, OSSA_OFFSET_OF(agsaSASDiagExecuteCmd_t, CodePatErrMsk), diag->param2 );
1815 OSSA_WRITE_LE_32(agRoot, &payload, OSSA_OFFSET_OF(agsaSASDiagExecuteCmd_t, Pmon), diag->param3 );
1816 OSSA_WRITE_LE_32(agRoot, &payload, OSSA_OFFSET_OF(agsaSASDiagExecuteCmd_t, PERF1CTL), diag->param4 );
1817 OSSA_WRITE_LE_32(agRoot, &payload, OSSA_OFFSET_OF(agsaSASDiagExecuteCmd_t, THRSHLD1), diag->param5 );
1818 ret = mpiBuildCmd(agRoot, (bit32 *)&payload, MPI_CATEGORY_SAS_SATA, OPC_INB_SAS_DIAG_EXECUTE, IOMB_SIZE128, queueNum);
1823 OSSA_WRITE_LE_32(agRoot, &payload, OSSA_OFFSET_OF(agsa_SPC_SASDiagExecuteCmd_t, tag), pRequest->HTag);
1824 OSSA_WRITE_LE_32(agRoot, &payload, OSSA_OFFSET_OF(agsa_SPC_SASDiagExecuteCmd_t, CmdTypeDescPhyId),diag->command );
1825 OSSA_WRITE_LE_32(agRoot, &payload, OSSA_OFFSET_OF(agsa_SPC_SASDiagExecuteCmd_t, Pat1Pat2), diag->param0 );
1826 OSSA_WRITE_LE_32(agRoot, &payload, OSSA_OFFSET_OF(agsa_SPC_SASDiagExecuteCmd_t, Threshold), diag->param1 );
1827 OSSA_WRITE_LE_32(agRoot, &payload, OSSA_OFFSET_OF(agsa_SPC_SASDiagExecuteCmd_t, CodePatErrMsk), diag->param2 );
1828 OSSA_WRITE_LE_32(agRoot, &payload, OSSA_OFFSET_OF(agsa_SPC_SASDiagExecuteCmd_t, Pmon), diag->param3 );
1829 OSSA_WRITE_LE_32(agRoot, &payload, OSSA_OFFSET_OF(agsa_SPC_SASDiagExecuteCmd_t, PERF1CTL), diag->param4 );
1830 ret = mpiBuildCmd(agRoot, (bit32 *)&payload, MPI_CATEGORY_SAS_SATA, OPC_INB_SAS_DIAG_EXECUTE, IOMB_SIZE64, queueNum);
1853 ossaSingleThreadedLeave(agRoot, LL_IOREQ_LOCKEQ_LOCK);
1859 ossaSingleThreadedLeave(agRoot, LL_IOREQ_LOCKEQ_LOCK);
1868 * \param agRoot Handles for this instance of SAS/SATA LL
1881 agsaRoot_t *agRoot,
1894 SA_ASSERT((agNULL != agRoot), "");
1895 if (agRoot == agNULL)
1897 SA_DBG1(("saSASDiagStartEnd: agRoot == agNULL\n"));
1900 saRoot = (agsaLLRoot_t *)(agRoot->sdkData);
1913 ossaSingleThreadedEnter(agRoot, LL_IOREQ_LOCKEQ_LOCK);
1919 ossaSingleThreadedLeave(agRoot, LL_IOREQ_LOCKEQ_LOCK);
1937 OSSA_WRITE_LE_32(agRoot, &payload, OSSA_OFFSET_OF(agsaSASDiagStartEndCmd_t, tag), pRequest->HTag);
1938 OSSA_WRITE_LE_32(agRoot, &payload, OSSA_OFFSET_OF(agsaSASDiagStartEndCmd_t, OperationPhyId), ((phyId & SM_PHYID_MASK) | (operation << SHIFT8)));
1939 ret = mpiBuildCmd(agRoot, (bit32 *)&payload, MPI_CATEGORY_SAS_SATA, OPC_INB_SAS_DIAG_MODE_START_END, IOMB_SIZE64, queueNum);
1964 ossaSingleThreadedLeave(agRoot, LL_IOREQ_LOCKEQ_LOCK);
1974 * \param agRoot handles for this instance of SAS/SATA hardware
1983 agsaRoot_t *agRoot,
1992 SA_ASSERT((agNULL != agRoot), "");
1993 if (agRoot == agNULL)
1995 SA_DBG1(("saGetTimeStamp: agRoot == agNULL\n"));
1998 saRoot = (agsaLLRoot_t *)(agRoot->sdkData);
2009 SA_ASSERT((agNULL != agRoot), "");
2014 ossaSingleThreadedEnter(agRoot, LL_IOREQ_LOCKEQ_LOCK);
2020 ossaSingleThreadedLeave(agRoot, LL_IOREQ_LOCKEQ_LOCK);
2040 OSSA_WRITE_LE_32(agRoot, &payload, OSSA_OFFSET_OF(agsaGetTimeStampCmd_t, tag), pRequest->HTag);
2043 ret = mpiBuildCmd(agRoot, (bit32 *)&payload, MPI_CATEGORY_SAS_SATA, OPC_INB_GET_TIME_STAMP, IOMB_SIZE64, queueNum);
2067 ossaSingleThreadedLeave(agRoot, LL_IOREQ_LOCKEQ_LOCK);
2103 * \param agRoot Handles for this instance of SAS/SATA LL
2113 agsaRoot_t *agRoot,
2117 agsaLLRoot_t *saRoot = (agsaLLRoot_t *)(agRoot->sdkData);
2121 ossaSingleThreadedEnter(agRoot, LL_IOREQ_LOCKEQ_LOCK);
2131 ossaSingleThreadedLeave(agRoot, LL_IOREQ_LOCKEQ_LOCK);
2140 ossaSingleThreadedLeave(agRoot, LL_IOREQ_LOCKEQ_LOCK);
2151 * \param agRoot Handles for this instance of SAS/SATA LL
2159 agsaRoot_t *agRoot,
2163 agsaLLRoot_t *saRoot = (agsaLLRoot_t *)(agRoot->sdkData);
2172 ossaSingleThreadedEnter(agRoot, LL_IOREQ_LOCKEQ_LOCK);
2186 ossaSingleThreadedLeave(agRoot, LL_IOREQ_LOCKEQ_LOCK);
2194 * \param agRoot handles for this instance of SAS/SATA hardware
2204 agsaRoot_t *agRoot,
2218 SA_ASSERT((agNULL != agRoot), "");
2223 pRequest = saGetRequestFromFreePool(agRoot, agContext);
2235 OSSA_WRITE_LE_32(agRoot, &payload, OSSA_OFFSET_OF(agsaSGpioCmd_t, tag), pRequest->HTag);
2236 OSSA_WRITE_LE_32(agRoot, &payload, OSSA_OFFSET_OF(agsaSGpioCmd_t, regIndexRegTypeFunctionFrameType),
2241 OSSA_WRITE_LE_32(agRoot, &payload, OSSA_OFFSET_OF(agsaSGpioCmd_t, regCount), pSGpioReq->registerCount);
2247 OSSA_WRITE_LE_32(agRoot, &payload, OSSA_OFFSET_OF(agsaSGpioCmd_t, writeData) + (i * 4), pSGpioReq->readWriteData[i]);
2252 ret = mpiBuildCmd(agRoot, (bit32 *)&payload, MPI_CATEGORY_SAS_SATA, OPC_INB_SGPIO, IOMB_SIZE64, queueNum);
2256 saReturnRequestToFreePool(agRoot, pRequest);
2271 * \param agRoot handles for this instance of SAS/SATA hardware
2277 agsaRoot_t *agRoot
2281 agsaLLRoot_t *saRoot = (agsaLLRoot_t *)(agRoot->sdkData);
2284 value = siHalRegReadExt(agRoot, GEN_MSGU_SCRATCH_PAD_1, MSGU_SCRATCH_PAD_1) & SCRATCH_PAD_STATE_MASK;
2285 value1 = siHalRegReadExt(agRoot, GEN_MSGU_SCRATCH_PAD_2, MSGU_SCRATCH_PAD_2) & SCRATCH_PAD_STATE_MASK;
2291 siGetRegisterDumpGSM(agRoot, (void *)&saRoot->registerDump0[0],
2293 siGetRegisterDumpGSM(agRoot, (void *)&saRoot->registerDump1[0],
2304 * \param agRoot handles for this instance of SAS/SATA hardware
2310 agsaRoot_t *agRoot
2314 agsaLLRoot_t *saRoot = (agsaLLRoot_t *)(agRoot->sdkData);
2318 value = siHalRegReadExt(agRoot, GEN_MSGU_SCRATCH_PAD_1, MSGU_SCRATCH_PAD_1);
2327 siGetRegisterDumpGSM(agRoot, (void *)&saRoot->registerDump0[0],
2329 siGetRegisterDumpGSM(agRoot, (void *)&saRoot->registerDump1[0],
2360 LOCAL bit32 siWaitForNonFatalTransfer( agsaRoot_t *agRoot,bit32 pcibar)
2368 SA_DBG4(("siWaitForNonFatalTransfer:0 IBDBS 0x%x\n",ossaHwRegReadExt(agRoot,0 ,V_Inbound_Doorbell_Set_Register ) ));
2373 ossaHwRegWriteExt(agRoot, 0,V_Inbound_Doorbell_Set_Register, SPCV_MSGU_CFG_TABLE_TRANSFER_DEBUG_INFO );
2374 SA_DBG4(("siWaitForNonFatalTransfer:1 IBDBS 0x%x\n",ossaHwRegReadExt(agRoot,0 ,V_Inbound_Doorbell_Set_Register ) ));
2381 ossaStallThread(agRoot, WAIT_INCREMENT);
2382 ready = ossaHwRegReadExt(agRoot,0 ,V_Inbound_Doorbell_Set_Register );
2386 SA_DBG1(("siWaitForNonFatalTransfer:Timeout IBDBS 0x%x\n",ossaHwRegReadExt(agRoot,0 ,V_Inbound_Doorbell_Set_Register ) ));
2390 SA_DBG4(("siWaitForNonFatalTransfer:3 IBDBS 0x%x\n",ossaHwRegReadExt(agRoot,0 ,V_Inbound_Doorbell_Set_Register ) ));
2396 LOCAL bit32 siWaitForFatalTransfer( agsaRoot_t *agRoot,bit32 pcibar)
2406 ErrorTableOffset = siGetTableOffset( agRoot, MAIN_MERRDCTO_MERRDCES );
2408 SA_DBG4(("siWaitForFatalTransfer: MPI_FATAL_EDUMP_TABLE_STATUS Offset 0x%x 0x%x\n",ErrorTableOffset+MPI_FATAL_EDUMP_TABLE_STATUS, ossaHwRegReadExt(agRoot,pcibar ,ErrorTableOffset+MPI_FATAL_EDUMP_TABLE_STATUS )));
2409 SA_DBG4(("siWaitForFatalTransfer: MPI_FATAL_EDUMP_TABLE_ACCUM_LEN Offset 0x%x 0x%x\n",ErrorTableOffset+MPI_FATAL_EDUMP_TABLE_ACCUM_LEN, ossaHwRegReadExt(agRoot,pcibar ,ErrorTableOffset+ MPI_FATAL_EDUMP_TABLE_ACCUM_LEN)));
2419 ossaHwRegWriteExt(agRoot,pcibar ,ErrorTableOffset+MPI_FATAL_EDUMP_TABLE_HANDSHAKE, MPI_FATAL_EDUMP_HANDSHAKE_RDY );
2420 SA_DBG4(("siWaitForFatalTransfer:1 MPI_FATAL_EDUMP_TABLE_HANDSHAKE 0x%x\n",ossaHwRegReadExt(agRoot,pcibar ,ErrorTableOffset+MPI_FATAL_EDUMP_TABLE_HANDSHAKE ) ));
2427 ossaStallThread(agRoot, WAIT_INCREMENT);
2428 ready = ossaHwRegReadExt(agRoot,0 ,ErrorTableOffset+MPI_FATAL_EDUMP_TABLE_HANDSHAKE );
2443 agsaRoot_t *agRoot,
2454 SA_ASSERT( (agNULL != agRoot), "");
2455 saRoot = (agsaLLRoot_t *)(agRoot->sdkData);
2475 pcibar = siGetPciBar(agRoot);
2476 ErrorTableOffset = siGetTableOffset( agRoot, MAIN_MERRDCTO_MERRDCES );
2479 ossaHwRegReadExt(agRoot,pcibar ,ErrorTableOffset+MPI_FATAL_EDUMP_TABLE_STATUS),
2480 ossaHwRegReadExt(agRoot,pcibar ,ErrorTableOffset+ MPI_FATAL_EDUMP_TABLE_ACCUM_LEN) ));
2502 ossaHwRegWriteExt(agRoot, pcibar,V_MEMBASE_II_ShiftRegister, saRoot->FatalForensicShiftOffset); // set base to zero
2509 SA_DBG1(("siFatalErrorBuffer: directOffset zero SCRATCH_PAD1 0x%x\n", siHalRegReadExt(agRoot,GEN_MSGU_SCRATCH_PAD_1, MSGU_SCRATCH_PAD_1) ));
2513 Accum_len = ossaHwRegReadExt(agRoot,pcibar ,ErrorTableOffset+ MPI_FATAL_EDUMP_TABLE_ACCUM_LEN);
2533 siPciCpyMem(agRoot,saRoot->FatalBarLoc ,forensicData->BufferType.dataBuf.directData,forensicData->BufferType.dataBuf.directLen ,1 );
2566 ossaHwRegWriteExt(agRoot, pcibar,V_MEMBASE_II_ShiftRegister, saRoot->FatalForensicShiftOffset);
2595 ossaHwRegReadExt(agRoot,pcibar ,ErrorTableOffset+ MPI_FATAL_EDUMP_TABLE_ACCUM_LEN)));
2601 ossaHwRegWriteExt(agRoot, pcibar,V_MEMBASE_II_ShiftRegister ,saRoot->FatalForensicShiftOffset);
2610 siWaitForFatalTransfer( agRoot,pcibar);
2617 if( ossaHwRegReadExt(agRoot,pcibar ,ErrorTableOffset+ MPI_FATAL_EDUMP_TABLE_STATUS) != MPI_FATAL_EDUMP_TABLE_STAT_NF_SUCCESS_DONE )
2621 SA_DBG3(("siFatalErrorBuffer:Step 3 MPI_FATAL_EDUMP_TABLE_STATUS 0x%x\n", ossaHwRegReadExt(agRoot,pcibar ,ErrorTableOffset+ MPI_FATAL_EDUMP_TABLE_STATUS )));
2626 ossaHwRegWriteExt(agRoot,pcibar ,ErrorTableOffset+MPI_FATAL_EDUMP_TABLE_STATUS, 0 );
2648 ossaHwRegReadExt(agRoot,pcibar ,ErrorTableOffset+ MPI_FATAL_EDUMP_TABLE_ACCUM_LEN)));
2651 SA_DBG1(("siFatalErrorBuffer: SCRATCH_PAD1_V_ERROR_STATE 0x%x\n",SCRATCH_PAD1_V_ERROR_STATE( siHalRegReadExt(agRoot,GEN_MSGU_SCRATCH_PAD_1, MSGU_SCRATCH_PAD_1) )));
2652 SA_DBG1(("siFatalErrorBuffer: SCRATCH_PAD0 value = 0x%x\n", siHalRegReadExt(agRoot,GEN_MSGU_SCRATCH_PAD_0, MSGU_SCRATCH_PAD_0)));
2653 SA_DBG1(("siFatalErrorBuffer: SCRATCH_PAD1 value = 0x%x\n", siHalRegReadExt(agRoot,GEN_MSGU_SCRATCH_PAD_1, MSGU_SCRATCH_PAD_1)));
2654 SA_DBG1(("siFatalErrorBuffer: SCRATCH_PAD2 value = 0x%x\n", siHalRegReadExt(agRoot,GEN_MSGU_SCRATCH_PAD_2, MSGU_SCRATCH_PAD_2)));
2655 SA_DBG1(("siFatalErrorBuffer: SCRATCH_PAD3 value = 0x%x\n", siHalRegReadExt(agRoot,GEN_MSGU_SCRATCH_PAD_3, MSGU_SCRATCH_PAD_3)));
2676 agsaRoot_t *agRoot,
2691 SA_ASSERT( (agNULL != agRoot), "agRoot");
2692 saRoot = (agsaLLRoot_t *)(agRoot->sdkData);
2701 pcibar = siGetPciBar(agRoot);
2702 ErrorTableOffset = siGetTableOffset( agRoot, MAIN_MERRDCTO_MERRDCES );
2708 ossaHwRegReadExt(agRoot,pcibar,ErrorTableOffset + MPI_FATAL_EDUMP_TABLE_STATUS)));
2711 ossaHwRegReadExt(agRoot,pcibar,ErrorTableOffset + MPI_FATAL_EDUMP_TABLE_ACCUM_LEN)));
2741 ossaHwRegWriteExt(agRoot, pcibar, ErrorTableOffset + MPI_FATAL_EDUMP_TABLE_STATUS, 0);
2753 ossaHwRegReadExt(agRoot,pcibar ,ErrorTableOffset+MPI_FATAL_EDUMP_TABLE_STATUS),
2754 ossaHwRegReadExt(agRoot,pcibar ,ErrorTableOffset+ MPI_FATAL_EDUMP_TABLE_ACCUM_LEN) ));
2757 ossaHwRegReadExt(agRoot, 0,V_Scratchpad_Rsvd_0_Register) ));
2758 ossaHwRegWriteExt(agRoot, 0,V_Scratchpad_Rsvd_0_Register ,0);
2763 /*ossaHwRegWriteExt(agRoot, pcibar, ErrorTableOffset + MPI_FATAL_EDUMP_TABLE_ACCUM_LEN ,0);*/
2766 ossaHwRegWriteExt(agRoot, pcibar, ErrorTableOffset + MPI_FATAL_EDUMP_TABLE_LO_OFFSET, saRoot->memoryAllocated.agMemory[HDA_DMA_BUFFER].phyAddrLower);
2767 ossaHwRegWriteExt(agRoot, pcibar, ErrorTableOffset + MPI_FATAL_EDUMP_TABLE_HI_OFFSET, saRoot->memoryAllocated.agMemory[HDA_DMA_BUFFER].phyAddrUpper);
2768 ossaHwRegWriteExt(agRoot, pcibar, ErrorTableOffset + MPI_FATAL_EDUMP_TABLE_LENGTH, biggest);
2771 ossaHwRegWriteExt(agRoot, pcibar, ErrorTableOffset + MPI_FATAL_EDUMP_TABLE_STATUS, 0);
2772 ossaHwRegWriteExt(agRoot, pcibar, ErrorTableOffset + MPI_FATAL_EDUMP_TABLE_ACCUM_LEN, 0);
2776 ossaHwRegReadExt(agRoot,pcibar,ErrorTableOffset + MPI_FATAL_EDUMP_TABLE_STATUS )));
2779 ossaHwRegReadExt(agRoot, pcibar, ErrorTableOffset + MPI_FATAL_EDUMP_TABLE_ACCUM_LEN)));
2781 if( 0 != ossaHwRegReadExt(agRoot, pcibar, ErrorTableOffset + MPI_FATAL_EDUMP_TABLE_ACCUM_LEN))
2785 ossaHwRegReadExt(agRoot, pcibar, ErrorTableOffset + MPI_FATAL_EDUMP_TABLE_ACCUM_LEN)));
2798 siWaitForNonFatalTransfer(agRoot,pcibar);
2801 ossaHwRegReadExt(agRoot,pcibar ,ErrorTableOffset+MPI_FATAL_EDUMP_TABLE_STATUS),
2802 ossaHwRegReadExt(agRoot,pcibar ,ErrorTableOffset+ MPI_FATAL_EDUMP_TABLE_ACCUM_LEN) ));
2808 ready = ossaHwRegReadExt(agRoot,pcibar,ErrorTableOffset + MPI_FATAL_EDUMP_TABLE_STATUS );
2811 ossaStallThread(agRoot, WAIT_INCREMENT);
2812 ready = ossaHwRegReadExt(agRoot,pcibar ,ErrorTableOffset + MPI_FATAL_EDUMP_TABLE_STATUS );
2813 forensicData->BufferType.dataBuf.directOffset = ossaHwRegReadExt(agRoot,pcibar,ErrorTableOffset + MPI_FATAL_EDUMP_TABLE_ACCUM_LEN);
2816 SA_DBG2(("siNonFatalErrorBuffer: More data available MPI_FATAL_EDUMP_TABLE_ACCUM_LEN 0x%x\n", ossaHwRegReadExt(agRoot,pcibar,ErrorTableOffset+ MPI_FATAL_EDUMP_TABLE_ACCUM_LEN) ));
2858 agsaRoot_t *agRoot,
2864 agsaLLRoot_t *saRoot = (agsaLLRoot_t *)(agRoot->sdkData);
2887 if(smIS_SPC(agRoot))
2901 if (AGSA_RC_FAILURE == siBar4Shift(agRoot, BAR_SHIFT_GSM_OFFSET + forensicData->BufferType.dataBuf.directOffset))
2916 status = siGSMDump( agRoot,
2973 // if(smIS_SPCV(agRoot))
2976 status = siNonFatalErrorBuffer(agRoot,forensicData);
2983 // if(smIS_SPCV(agRoot))
2986 status = siFatalErrorBuffer(agRoot,forensicData );
3005 agsaRoot_t *agRoot,
3011 status = siGetForensicData(agRoot, agContext, forensicData);
3012 ossaGetForensicDataCB(agRoot, agContext, status, forensicData);
3017 agsaRoot_t *agRoot,
3022 agsaLLRoot_t *saRoot = (agsaLLRoot_t*)agRoot->sdkData;
3025 ossaGetIOErrorStatsCB(agRoot, agContext, status, &saRoot->IoErrorCount);
3037 agsaRoot_t *agRoot,
3042 agsaLLRoot_t *saRoot = (agsaLLRoot_t*)agRoot->sdkData;
3045 ossaGetIOEventStatsCB(agRoot, agContext, status, &saRoot->IoEventCount);
3061 * \param agRoot handles for this instance of SAS/SATA hardware
3072 agsaRoot_t *agRoot,
3085 SA_ASSERT((agNULL != agRoot), "");
3087 saRoot = (agsaLLRoot_t *)(agRoot->sdkData);
3102 ossaGetRegisterDumpCB(agRoot, agContext, OSSA_FAILURE);
3113 ret = siGSMDump(agRoot, regDumpInfo->regDumpOffset, regDumpInfo->directLen, regDumpInfo->directData);
3115 ossaGetRegisterDumpCB(agRoot, agContext, ret);
3124 if(smIS_SPC(agRoot))
3127 }else if(smIS_SPCV(agRoot))
3136 ret = siGSMDump(agRoot, offset, regDumpInfo->directLen, regDumpInfo->directData);
3138 ossaGetRegisterDumpCB(agRoot, agContext, ret);
3143 if(smIS_SPC(agRoot)) {
3144 siSpcGetErrorContent(agRoot);
3146 else if(smIS_SPCV(agRoot)) {
3147 siSpcvGetErrorContent(agRoot);
3174 ossaGetRegisterDumpCB(agRoot, agContext, OSSA_SUCCESS);
3179 ret = mpiNVMReadRegDumpCmd(agRoot, agContext, queueNum,
3202 * \param agRoot handles for this instance of SAS/SATA hardware
3214 agsaRoot_t *agRoot,
3221 agsaLLRoot_t *saRoot = (agsaLLRoot_t *)(agRoot->sdkData);
3229 SA_ASSERT((agNULL != agRoot), "");
3269 ret = siGSMDump(agRoot, rDumpOffset, len, dst);
3280 * \param agRoot Handles for this instance of SAS/SATA LL
3293 agsaRoot_t *agRoot,
3302 SA_ASSERT((agNULL != agRoot), "");
3305 ret = mpiGetNVMDCmd(agRoot, agContext, NVMDInfo, queueNum);
3315 * \param agRoot Handles for this instance of SAS/SATA LL
3328 agsaRoot_t *agRoot,
3337 SA_ASSERT((agNULL != agRoot), "");
3340 ret = mpiSetNVMDCmd(agRoot, agContext, NVMDInfo, queueNum);
3347 agsaRoot_t *agRoot,
3368 saRoot = (agsaLLRoot_t *)(agRoot->sdkData);
3372 SA_ASSERT((agNULL != agRoot), "");
3377 ossaSingleThreadedEnter(agRoot, LL_IOREQ_LOCKEQ_LOCK);
3392 ossaSingleThreadedLeave(agRoot, LL_IOREQ_LOCKEQ_LOCK);
3410 ossaSingleThreadedLeave(agRoot, LL_IOREQ_LOCKEQ_LOCK);
3437 ossaSingleThreadedLeave(agRoot, LL_IOREQ_LOCKEQ_LOCK);
3455 ossaSingleThreadedEnter(agRoot, LL_IOREQ_IBQ0_LOCK + inq);
3466 ossaSingleThreadedLeave(agRoot, LL_IOREQ_IBQ0_LOCK + inq);
3469 ossaSingleThreadedEnter(agRoot, LL_IOREQ_LOCKEQ_LOCK);
3473 ossaSingleThreadedLeave(agRoot, LL_IOREQ_LOCKEQ_LOCK);
3484 ossaSingleThreadedLeave(agRoot, LL_IOREQ_IBQ0_LOCK + inq);
3487 ossaSingleThreadedEnter(agRoot, LL_IOREQ_LOCKEQ_LOCK);
3491 ossaSingleThreadedLeave(agRoot, LL_IOREQ_LOCKEQ_LOCK);
3498 ossaSingleThreadedLeave(agRoot, LL_IOREQ_IBQ0_LOCK + inq);
3502 if(smIS_SPC(agRoot))
3510 OSSA_WRITE_LE_32(agRoot, &payload, OSSA_OFFSET_OF(agsaSMPCmd_t, tag), pRequest->HTag);
3511 OSSA_WRITE_LE_32(agRoot, &payload, OSSA_OFFSET_OF(agsaSMPCmd_t, deviceId), pDevice->DeviceMapIndex);
3527 OSSA_WRITE_LE_32(agRoot, &payload, OSSA_OFFSET_OF(agsaSMPCmd_t, SMPCmd[4]), (pSMPFrame->outFrameAddrLower32));
3528 OSSA_WRITE_LE_32(agRoot, &payload, OSSA_OFFSET_OF(agsaSMPCmd_t, SMPCmd[5]), (pSMPFrame->outFrameAddrUpper32));
3529 OSSA_WRITE_LE_32(agRoot, &payload, OSSA_OFFSET_OF(agsaSMPCmd_t, SMPCmd[6]), (pSMPFrame->outFrameLen));
3531 OSSA_WRITE_LE_32(agRoot, &payload, OSSA_OFFSET_OF(agsaSMPCmd_t, SMPCmd[8]), (pSMPFrame->inFrameAddrLower32));
3532 OSSA_WRITE_LE_32(agRoot, &payload, OSSA_OFFSET_OF(agsaSMPCmd_t, SMPCmd[9]), (pSMPFrame->inFrameAddrUpper32));
3533 OSSA_WRITE_LE_32(agRoot, &payload, OSSA_OFFSET_OF(agsaSMPCmd_t, SMPCmd[10]), (pSMPFrame->inFrameLen));
3540 OSSA_WRITE_LE_32(agRoot, &payload, OSSA_OFFSET_OF(agsaSMPCmd_t, IR_IP_OV_res_phyId_DPdLen_res), IR_IP_OV_res_phyId_DPdLen_res);
3549 ossaSingleThreadedEnter(agRoot, LL_IOREQ_IBQ0_LOCK + inq);
3552 ret = mpiSMPCmd(agRoot, pMessage, OPC_INB_SMP_REQUEST, (agsaSMPCmd_t *)payload_ptr, inq, outq);
3555 ossaSingleThreadedLeave(agRoot, LL_IOREQ_IBQ0_LOCK + inq);
3568 OSSA_WRITE_LE_32(agRoot, &vpayload, OSSA_OFFSET_OF(agsaSMPCmd_V_t, tag), pRequest->HTag);
3569 OSSA_WRITE_LE_32(agRoot, &vpayload, OSSA_OFFSET_OF(agsaSMPCmd_V_t, deviceId), pDevice->DeviceMapIndex);
3570 OSSA_WRITE_LE_32(agRoot, &vpayload, OSSA_OFFSET_OF(agsaSMPCmd_V_t,SMPHDR ), *((bit32*)pSMPFrame->outFrameBuf+0) );
3584 OSSA_WRITE_LE_32(agRoot, &vpayload, OSSA_OFFSET_OF(agsaSMPCmd_V_t,IndirL_SMPRF15_12 ), (pSMPFrame->outFrameAddrLower32));
3585 OSSA_WRITE_LE_32(agRoot, &vpayload, OSSA_OFFSET_OF(agsaSMPCmd_V_t,IndirH_or_SMPRF19_16 ), (pSMPFrame->outFrameAddrUpper32));
3586 OSSA_WRITE_LE_32(agRoot, &vpayload, OSSA_OFFSET_OF(agsaSMPCmd_V_t,IndirLen_or_SMPRF23_20 ), (pSMPFrame->outFrameLen));
3588 OSSA_WRITE_LE_32(agRoot, &vpayload, OSSA_OFFSET_OF(agsaSMPCmd_V_t,ISRAL_or_SMPRF31_28), (pSMPFrame->inFrameAddrLower32));
3589 OSSA_WRITE_LE_32(agRoot, &vpayload, OSSA_OFFSET_OF(agsaSMPCmd_V_t,ISRAH_or_SMPRF35_32), (pSMPFrame->inFrameAddrUpper32));
3590 OSSA_WRITE_LE_32(agRoot, &vpayload, OSSA_OFFSET_OF(agsaSMPCmd_V_t,ISRL_or_SMPRF39_36), (pSMPFrame->inFrameLen));
3603 OSSA_WRITE_LE_32(agRoot, &vpayload, OSSA_OFFSET_OF(agsaSMPCmd_V_t, IR_IP_OV_res_phyId_DPdLen_res), IR_IP_OV_res_phyId_DPdLen_res);
3605 OSSA_WRITE_LE_32(agRoot, &vpayload, OSSA_OFFSET_OF(agsaSMPCmd_V_t, ISRAL_or_SMPRF31_28 ), (pSMPFrame->inFrameAddrLower32));
3606 OSSA_WRITE_LE_32(agRoot, &vpayload, OSSA_OFFSET_OF(agsaSMPCmd_V_t, ISRAH_or_SMPRF35_32 ), (pSMPFrame->inFrameAddrUpper32));
3607 OSSA_WRITE_LE_32(agRoot, &vpayload, OSSA_OFFSET_OF(agsaSMPCmd_V_t, ISRL_or_SMPRF39_36 ), (pSMPFrame->inFrameLen));
3612 OSSA_WRITE_LE_32(agRoot, &vpayload, OSSA_OFFSET_OF(agsaSMPCmd_V_t, IR_IP_OV_res_phyId_DPdLen_res), IR_IP_OV_res_phyId_DPdLen_res);
3619 ossaSingleThreadedEnter(agRoot, LL_IOREQ_IBQ0_LOCK + inq);
3623 ret = mpiSMPCmd(agRoot, pMessage, OPC_INB_SMP_REQUEST, (agsaSMPCmd_t *)payload_ptr, inq, outq);
3626 ossaSingleThreadedLeave(agRoot, LL_IOREQ_IBQ0_LOCK + inq);
3642 * \param agRoot Handles for this instance of SAS/SATA LL
3655 agsaRoot_t *agRoot,
3664 SA_ASSERT((agNULL != agRoot), "");
3666 if(smIS_SPCV(agRoot))
3673 ret = mpiSasReinitializeCmd(agRoot, agContext, agSASConfig, queueNum);
3681 * \param agRoot Handles for this instance of SAS/SATA hardware
3694 agsaRoot_t *agRoot,
3725 if( smIS_SPCV(agRoot))
3729 else if( smIS_SPC(agRoot))
3755 value = ossaHwRegReadExt(agRoot, bar, (workOffset + offset) & 0x0000FFFF);
3764 value = ossaHwRegReadExt(agRoot, bar, (workOffset + offset) & 0x0000FFFF);
3773 if (AGSA_RC_FAILURE == siBar4Shift(agRoot, 0x0))
3784 agsaRoot_t *agRoot,
3797 SA_ASSERT((agNULL != agRoot), "");
3799 saRoot = (agsaLLRoot_t *) (agRoot->sdkData);
3836 ossaSingleThreadedEnter(agRoot, LL_IOREQ_LOCKEQ_LOCK);
3842 ossaSingleThreadedLeave(agRoot, LL_IOREQ_LOCKEQ_LOCK);
3855 ossaSingleThreadedLeave(agRoot, LL_IOREQ_LOCKEQ_LOCK);
3860 if(smIS_SPCV(agRoot))
3868 OSSA_WRITE_LE_32(agRoot, &payload, OSSA_OFFSET_OF(agsaPCIeDiagExecuteCmd_t, tag) , pRequest->HTag);
3869 OSSA_WRITE_LE_32(agRoot, &payload, OSSA_OFFSET_OF(agsaPCIeDiagExecuteCmd_t, CmdTypeDesc), diag->command );
3870 OSSA_WRITE_LE_32(agRoot, &payload, OSSA_OFFSET_OF(agsaPCIeDiagExecuteCmd_t, UUM_EDA) , diag->flags);
3871 OSSA_WRITE_LE_32(agRoot, &payload, OSSA_OFFSET_OF(agsaPCIeDiagExecuteCmd_t, UDTR1_UDT0) , UDTR1_UDT0);
3872 OSSA_WRITE_LE_32(agRoot, &payload, OSSA_OFFSET_OF(agsaPCIeDiagExecuteCmd_t, UDT5_UDT2) , UDT5_UDT2);
3873 OSSA_WRITE_LE_32(agRoot, &payload, OSSA_OFFSET_OF(agsaPCIeDiagExecuteCmd_t, UDTR5_UDTR2), UDTR5_UDTR2);
3874 OSSA_WRITE_LE_32(agRoot, &payload, OSSA_OFFSET_OF(agsaPCIeDiagExecuteCmd_t, Res_IOS) , diag->initialIOSeed);
3875 OSSA_WRITE_LE_32(agRoot, &payload, OSSA_OFFSET_OF(agsaPCIeDiagExecuteCmd_t, rdAddrLower), diag->rdAddrLower);
3876 OSSA_WRITE_LE_32(agRoot, &payload, OSSA_OFFSET_OF(agsaPCIeDiagExecuteCmd_t, rdAddrUpper), diag->rdAddrUpper);
3877 OSSA_WRITE_LE_32(agRoot, &payload, OSSA_OFFSET_OF(agsaPCIeDiagExecuteCmd_t, wrAddrLower), diag->wrAddrLower);
3878 OSSA_WRITE_LE_32(agRoot, &payload, OSSA_OFFSET_OF(agsaPCIeDiagExecuteCmd_t, wrAddrUpper), diag->wrAddrUpper);
3879 OSSA_WRITE_LE_32(agRoot, &payload, OSSA_OFFSET_OF(agsaPCIeDiagExecuteCmd_t, len), diag->len);
3880 OSSA_WRITE_LE_32(agRoot, &payload, OSSA_OFFSET_OF(agsaPCIeDiagExecuteCmd_t, pattern), diag->pattern);
3881 ret = mpiBuildCmd(agRoot, (bit32 *)&payload, MPI_CATEGORY_SAS_SATA, OPC_INB_PCIE_DIAG_EXECUTE, IOMB_SIZE128, queueNum);
3886 OSSA_WRITE_LE_32(agRoot, &payload, OSSA_OFFSET_OF(agsa_SPC_PCIDiagExecuteCmd_t, tag), pRequest->HTag);
3887 OSSA_WRITE_LE_32(agRoot, &payload, OSSA_OFFSET_OF(agsa_SPC_PCIDiagExecuteCmd_t, CmdTypeDesc), diag->command );
3888 OSSA_WRITE_LE_32(agRoot, &payload, OSSA_OFFSET_OF(agsa_SPC_PCIDiagExecuteCmd_t, rdAddrLower), diag->rdAddrLower);
3889 OSSA_WRITE_LE_32(agRoot, &payload, OSSA_OFFSET_OF(agsa_SPC_PCIDiagExecuteCmd_t, rdAddrUpper), diag->rdAddrUpper);
3890 OSSA_WRITE_LE_32(agRoot, &payload, OSSA_OFFSET_OF(agsa_SPC_PCIDiagExecuteCmd_t, wrAddrLower), diag->wrAddrLower);
3891 OSSA_WRITE_LE_32(agRoot, &payload, OSSA_OFFSET_OF(agsa_SPC_PCIDiagExecuteCmd_t, wrAddrUpper), diag->wrAddrUpper);
3892 OSSA_WRITE_LE_32(agRoot, &payload, OSSA_OFFSET_OF(agsa_SPC_PCIDiagExecuteCmd_t, len), diag->len);
3893 OSSA_WRITE_LE_32(agRoot, &payload, OSSA_OFFSET_OF(agsa_SPC_PCIDiagExecuteCmd_t, pattern), diag->pattern);
3894 ret = mpiBuildCmd(agRoot, (bit32 *)&payload, MPI_CATEGORY_SAS_SATA, OPC_INB_PCIE_DIAG_EXECUTE, IOMB_SIZE64, queueNum);
3904 ossaSingleThreadedEnter(agRoot, LL_IOREQ_LOCKEQ_LOCK);
3910 ossaSingleThreadedLeave(agRoot, LL_IOREQ_LOCKEQ_LOCK);
3924 agsaRoot_t *agRoot,
3940 SA_ASSERT((agNULL != agRoot), "");
3941 saRoot = (agsaLLRoot_t *) (agRoot->sdkData);
3946 ossaSingleThreadedEnter(agRoot, LL_IOREQ_LOCKEQ_LOCK);
3952 ossaSingleThreadedLeave(agRoot, LL_IOREQ_LOCKEQ_LOCK);
3965 ossaSingleThreadedLeave(agRoot, LL_IOREQ_LOCKEQ_LOCK);
3970 if(smIS_SPCV(agRoot))
3973 OSSA_WRITE_LE_32(agRoot, &payload, OSSA_OFFSET_OF(agsaGetDDEFDataCmd_t, tag) , pRequest->HTag);
3974 OSSA_WRITE_LE_32(agRoot, &payload, OSSA_OFFSET_OF(agsaGetDDEFDataCmd_t, reserved_In_Ln) , reserved_In_Ln);
3975 OSSA_WRITE_LE_32(agRoot, &payload, OSSA_OFFSET_OF(agsaGetDDEFDataCmd_t, MCNT) , interations);
3976 OSSA_WRITE_LE_32(agRoot, &payload, OSSA_OFFSET_OF(agsaGetDDEFDataCmd_t, Buf_AddrL) , agSgl->sgLower);
3977 OSSA_WRITE_LE_32(agRoot, &payload, OSSA_OFFSET_OF(agsaGetDDEFDataCmd_t, Buf_AddrH) , agSgl->sgUpper);
3978 OSSA_WRITE_LE_32(agRoot, &payload, OSSA_OFFSET_OF(agsaGetDDEFDataCmd_t, Buf_Len) , agSgl->len);
3979 OSSA_WRITE_LE_32(agRoot, &payload, OSSA_OFFSET_OF(agsaGetDDEFDataCmd_t, E_reserved) , agSgl->extReserved);
3980 ret = mpiBuildCmd(agRoot, (bit32 *)&payload, MPI_CATEGORY_SAS_SATA, OPC_INB_GET_DFE_DATA, IOMB_SIZE128, queueNum);
3996 ossaSingleThreadedEnter(agRoot, LL_IOREQ_LOCKEQ_LOCK);
4000 ossaSingleThreadedLeave(agRoot, LL_IOREQ_LOCKEQ_LOCK);