1 /******************************************************************************* 2 *Copyright (c) 2014 PMC-Sierra, Inc. All rights reserved. 3 * 4 *Redistribution and use in source and binary forms, with or without modification, are permitted provided 5 *that the following conditions are met: 6 *1. Redistributions of source code must retain the above copyright notice, this list of conditions and the 7 *following disclaimer. 8 *2. Redistributions in binary form must reproduce the above copyright notice, 9 *this list of conditions and the following disclaimer in the documentation and/or other materials provided 10 *with the distribution. 11 * 12 *THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED 13 *WARRANTIES,INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 14 *FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 15 *FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 16 *NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR 17 *BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 18 *LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 19 *SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE 20 * 21 * $FreeBSD$ 22 * 23 ********************************************************************************/ 24 /*******************************************************************************/ 25 /*! \file saproto.h 26 * \brief The file defines the function delcaration for internal used function 27 * 28 */ 29 /******************************************************************************/ 30 31 #ifndef __SAPROTO_H__ 32 33 #define __SAPROTO_H__ 34 35 /* function declaration */ 36 /*** SATIMER.C ***/ 37 GLOBAL agsaTimerDesc_t *siTimerAdd( 38 agsaRoot_t *agRoot, 39 bit32 timeout, 40 agsaCallback_t pfnTimeout, 41 bit32 Event, 42 void * pParm 43 ); 44 45 GLOBAL void siTimerRemove( 46 agsaRoot_t *agRoot, 47 agsaTimerDesc_t *pTimer 48 ); 49 50 GLOBAL void siTimerRemoveAll(agsaRoot_t *agRoot); 51 52 /*** SAINIT.C ***/ 53 GLOBAL bit32 siConfiguration(agsaRoot_t *agRoot, 54 mpiConfig_t *mpiConfig, 55 agsaHwConfig_t *hwConfig, 56 agsaSwConfig_t *swConfig 57 ); 58 59 GLOBAL bit32 mpiInitialize(agsaRoot_t *agRoot, 60 mpiMemReq_t *memoryAllocated, 61 mpiConfig_t *config 62 ); 63 64 GLOBAL bit32 mpiWaitForConfigTable(agsaRoot_t *agRoot, 65 spc_configMainDescriptor_t *config 66 ); 67 68 GLOBAL void mpiUpdateIBQueueCfgTable(agsaRoot_t *agRoot, 69 spc_inboundQueueDescriptor_t *inQueueCfg, 70 bit32 QueueTableOffset, 71 bit8 pcibar 72 ); 73 74 GLOBAL void mpiUpdateOBQueueCfgTable(agsaRoot_t *agRoot, 75 spc_outboundQueueDescriptor_t *outQueueCfg, 76 bit32 QueueTableOffset, 77 bit8 pcibar 78 ); 79 GLOBAL void mpiUpdateFatalErrorTable(agsaRoot_t *agRoot, 80 bit32 FerrTableOffset, 81 bit32 lowerBaseAddress, 82 bit32 upperBaseAddress, 83 bit32 length, 84 bit8 pcibar); 85 86 GLOBAL bit32 mpiGetPCIBarIndex(agsaRoot_t *agRoot, 87 bit32 pciBar 88 ); 89 90 GLOBAL bit32 mpiUnInitConfigTable(agsaRoot_t *agRoot); 91 92 GLOBAL void mpiReadGSTable(agsaRoot_t *agRoot, 93 spc_GSTableDescriptor_t *mpiGSTable); 94 95 GLOBAL void siInitResources(agsaRoot_t *agRoot, 96 agsaMemoryRequirement_t *memoryAllocated, 97 agsaHwConfig_t *hwConfig, 98 agsaSwConfig_t *swConfig, 99 bit32 usecsPerTick); 100 101 GLOBAL void mpiReadCALTable(agsaRoot_t *agRoot, 102 spc_SPASTable_t *mpiCALTable, 103 bit32 index); 104 105 GLOBAL void mpiWriteCALTable(agsaRoot_t *agRoot, 106 spc_SPASTable_t *mpiCALTable, 107 bit32 index); 108 109 GLOBAL void mpiWriteCALAll(agsaRoot_t *agRoot, 110 agsaPhyAnalogSetupTable_t *mpiCALTable); 111 112 GLOBAL void mpiWrIntVecTable(agsaRoot_t *agRoot, 113 mpiConfig_t* config 114 ); 115 116 GLOBAL void mpiWrAnalogSetupTable(agsaRoot_t *agRoot, 117 mpiConfig_t *config 118 ); 119 120 121 GLOBAL void mpiWrPhyAttrbTable(agsaRoot_t *agRoot, 122 sasPhyAttribute_t *phyAttrib 123 ); 124 125 /*** SAPHY.C ***/ 126 GLOBAL bit32 siPhyStopCB( 127 agsaRoot_t *agRoot, 128 bit32 phyId, 129 bit32 status, 130 agsaContext_t *agContext, 131 bit32 portId, 132 bit32 npipps 133 ); 134 135 /*** SAPORT.C ***/ 136 GLOBAL void siPortInvalid( 137 agsaRoot_t *agRoot, 138 agsaPort_t *pPort 139 ); 140 141 GLOBAL agsaDeviceDesc_t *siPortSASDeviceAdd( 142 agsaRoot_t *agRoot, 143 agsaPort_t *pPort, 144 agsaSASIdentify_t sasIdentify, 145 bit32 sasInitiator, 146 bit32 smpTimeout, 147 bit32 itNexusTimeout, 148 bit32 firstBurstSize, 149 bit8 dTypeSRate, 150 bit32 flag 151 ); 152 153 GLOBAL void siPortDeviceRemove( 154 agsaRoot_t *agRoot, 155 agsaPort_t *pPort, 156 agsaDeviceDesc_t *pDevice, 157 bit32 unmap 158 ); 159 160 GLOBAL agsaDeviceDesc_t *siPortSATADeviceAdd( 161 agsaRoot_t *agRoot, 162 agsaPort_t *pPort, 163 agsaDeviceDesc_t *pSTPBridge, 164 bit8 *pSignature, 165 bit8 pm, 166 bit8 pmField, 167 bit32 smpReqTimeout, 168 bit32 itNexusTimeout, 169 bit32 firstBurstSize, 170 bit8 dTypeSRate, 171 bit32 flag 172 ); 173 174 GLOBAL void siPortDeviceListRemove( 175 agsaRoot_t *agRoot, 176 agsaPort_t *pPort, 177 agsaDeviceDesc_t *pDevice 178 ); 179 180 /*** SASATA.C ***/ 181 GLOBAL void siSATASignatureCpy( 182 bit8 *pDstSignature, 183 bit8 *pSrcSignature 184 ); 185 186 /*** SASSP.C ***/ 187 188 /*** SAHW.C ***/ 189 #ifdef SA_ENABLE_HDA_FUNCTIONS 190 GLOBAL bit32 siHDAMode( 191 agsaRoot_t *agRoot, 192 bit32 HDAMode, 193 agsaFwImg_t *userFwImg 194 ); 195 196 GLOBAL bit32 siHDAMode_V( 197 agsaRoot_t *agRoot, 198 bit32 HDAMode, 199 agsaFwImg_t *userFwImg 200 ); 201 202 #endif 203 204 GLOBAL bit32 siBar4Shift( 205 agsaRoot_t *agRoot, 206 bit32 shiftValue 207 ); 208 209 210 GLOBAL bit32 siSoftReset( 211 agsaRoot_t *agRoot, 212 bit32 signature 213 ); 214 215 GLOBAL bit32 siSpcSoftReset( 216 agsaRoot_t *agRoot, 217 bit32 signature 218 ); 219 220 GLOBAL void siChipReset( 221 agsaRoot_t *agRoot 222 ); 223 224 225 GLOBAL bit32 siChipResetV( 226 agsaRoot_t *agRoot, 227 bit32 signature 228 ); 229 230 GLOBAL void siChipResetSpc( 231 agsaRoot_t *agRoot 232 ); 233 234 235 /*** SAUTIL.C ***/ 236 GLOBAL void siPrintBuffer( 237 bit32 debugLevel, 238 siPrintType type, 239 char *header, 240 void *a, 241 bit32 length 242 ); 243 int siIsHexDigit(char a); 244 GLOBAL FORCEINLINE void* si_memcpy(void *dst, void *src, bit32 count); 245 GLOBAL FORCEINLINE void* si_memset(void *s, int c, bit32 n); 246 247 GLOBAL void siDumpActiveIORequests( 248 agsaRoot_t *agRoot, 249 bit32 count); 250 251 252 GLOBAL void siClearActiveIORequests( agsaRoot_t *agRoot); 253 254 GLOBAL void siCountActiveIORequestsOnDevice( agsaRoot_t *agRoot, bit32 device ); 255 GLOBAL void siClearActiveIORequestsOnDevice( agsaRoot_t *agRoot, bit32 device ); 256 257 258 259 /*** SAINT.C ***/ 260 GLOBAL void siEventPhyUpRcvd( 261 agsaRoot_t *agRoot, 262 bit32 phyId, 263 agsaSASIdentify_t *agSASIdentify, 264 bit32 portId, 265 bit32 npipps, 266 bit8 linkRate 267 ); 268 269 GLOBAL void siEventSATASignatureRcvd( 270 agsaRoot_t *agRoot, 271 bit32 phyId, 272 void *pMsg, 273 bit32 portId, 274 bit32 npipps, 275 bit8 linkRate 276 ); 277 278 GLOBAL FORCEINLINE void siIODone( 279 agsaRoot_t *agRoot, 280 agsaIORequestDesc_t *pRequest, 281 bit32 status, 282 bit32 sspTag 283 ); 284 285 GLOBAL void siAbnormal( 286 agsaRoot_t *agRoot, 287 agsaIORequestDesc_t *pRequest, 288 bit32 status, 289 bit32 param, 290 bit32 sspTag 291 ); 292 293 GLOBAL void siDifAbnormal( 294 agsaRoot_t *agRoot, 295 agsaIORequestDesc_t *pRequest, 296 bit32 status, 297 bit32 param, 298 bit32 sspTag, 299 bit32 *pMsg1 300 ); 301 302 GLOBAL void siEventSSPResponseWtDataRcvd( 303 agsaRoot_t *agRoot, 304 agsaIORequestDesc_t *pRequest, 305 agsaSSPResponseInfoUnit_t *pRespIU, 306 bit32 param, 307 bit32 sspTag 308 ); 309 310 GLOBAL void siSMPRespRcvd( 311 agsaRoot_t *agRoot, 312 agsaSMPCompletionRsp_t *pIomb, 313 bit32 payloadSize, 314 bit32 tag 315 ); 316 317 GLOBAL void siEventSATAResponseWtDataRcvd( 318 agsaRoot_t *agRoot, 319 agsaIORequestDesc_t *pRequest, 320 bit32 *agFirstDword, 321 bit32 *pResp, 322 bit32 lengthResp 323 ); 324 325 /*** SADISC.C ***/ 326 GLOBAL bit32 siRemoveDevHandle( 327 agsaRoot_t *agRoot, 328 agsaDevHandle_t *agDevHandle 329 ); 330 331 /*** SAMPIRSP.C ***/ 332 GLOBAL FORCEINLINE bit32 mpiParseOBIomb( 333 agsaRoot_t *agRoot, 334 bit32 *pMsg1, 335 mpiMsgCategory_t category, 336 bit16 opcode 337 ); 338 339 GLOBAL bit32 mpiEchoRsp( 340 agsaRoot_t *agRoot, 341 agsaEchoRsp_t *pIomb 342 ); 343 344 GLOBAL bit32 mpiGetNVMDataRsp( 345 agsaRoot_t *agRoot, 346 agsaGetNVMDataRsp_t *pIomb 347 ); 348 349 GLOBAL bit32 mpiHWevent( 350 agsaRoot_t *agRoot, 351 agsaHWEvent_SPC_OUB_t *pIomb 352 ); 353 354 GLOBAL bit32 mpiPhyStartEvent( 355 agsaRoot_t *agRoot, 356 agsaHWEvent_Phy_OUB_t *pIomb 357 ); 358 359 GLOBAL bit32 mpiPhyStopEvent( 360 agsaRoot_t *agRoot, 361 agsaHWEvent_Phy_OUB_t *pIomb 362 ); 363 364 GLOBAL bit32 mpiSMPCompletion( 365 agsaRoot_t *agRoot, 366 agsaSMPCompletionRsp_t *pIomb 367 ); 368 369 GLOBAL bit32 mpiGetDevInfoRspSpc( 370 agsaRoot_t *agRoot, 371 agsaGetDevInfoRsp_t *pIomb 372 ); 373 374 GLOBAL bit32 mpiGetPhyProfileRsp( 375 agsaRoot_t *agRoot, 376 agsaGetPhyProfileRspV_t *pIomb 377 ); 378 379 GLOBAL bit32 mpiSetPhyProfileRsp( 380 agsaRoot_t *agRoot, 381 agsaSetPhyProfileRspV_t *pIomb 382 ); 383 384 GLOBAL bit32 mpiGetDevInfoRsp( 385 agsaRoot_t *agRoot, 386 agsaGetDevInfoRspV_t *pIomb 387 ); 388 389 GLOBAL bit32 mpiGetDevHandleRsp( 390 agsaRoot_t *agRoot, 391 agsaGetDevHandleRsp_t *pIomb 392 ); 393 394 GLOBAL bit32 mpiPhyCntrlRsp( 395 agsaRoot_t *agRoot, 396 agsaLocalPhyCntrlRsp_t *pIomb 397 ); 398 399 GLOBAL bit32 mpiDeviceRegRsp( 400 agsaRoot_t *agRoot, 401 agsaDeviceRegistrationRsp_t *pIomb 402 ); 403 404 GLOBAL bit32 mpiDeregDevHandleRsp( 405 agsaRoot_t *agRoot, 406 agsaDeregDevHandleRsp_t *pIomb 407 ); 408 409 GLOBAL FORCEINLINE bit32 mpiSSPCompletion( 410 agsaRoot_t *agRoot, 411 bit32 *pIomb 412 ); 413 414 GLOBAL FORCEINLINE bit32 mpiSATACompletion( 415 agsaRoot_t *agRoot, 416 bit32 *pIomb 417 ); 418 419 GLOBAL bit32 mpiSSPEvent( 420 agsaRoot_t *agRoot, 421 agsaSSPEventRsp_t *pIomb 422 ); 423 424 GLOBAL bit32 mpiSATAEvent( 425 agsaRoot_t *agRoot, 426 agsaSATAEventRsp_t *pIomb 427 ); 428 429 GLOBAL bit32 mpiFwFlashUpdateRsp( 430 agsaRoot_t *agRoot, 431 agsaFwFlashUpdateRsp_t *payload 432 ); 433 434 435 GLOBAL bit32 mpiFwExtFlashUpdateRsp( 436 agsaRoot_t *agRoot, 437 agsaFwFlashOpExtRsp_t *payload 438 ); 439 440 #ifdef SPC_ENABLE_PROFILE 441 GLOBAL bit32 mpiFwProfileRsp( 442 agsaRoot_t *agRoot, 443 agsaFwProfileRsp_t *payload 444 ); 445 #endif 446 GLOBAL bit32 mpiSetNVMDataRsp( 447 agsaRoot_t *agRoot, 448 agsaSetNVMDataRsp_t *pIomb 449 ); 450 451 GLOBAL bit32 mpiSSPAbortRsp( 452 agsaRoot_t *agRoot, 453 agsaSSPAbortRsp_t *pIomb 454 ); 455 456 GLOBAL bit32 mpiSATAAbortRsp( 457 agsaRoot_t *agRoot, 458 agsaSATAAbortRsp_t *pIomb 459 ); 460 461 GLOBAL bit32 mpiGPIORsp( 462 agsaRoot_t *agRoot, 463 agsaGPIORsp_t *pIomb 464 ); 465 466 GLOBAL bit32 mpiGPIOEventRsp( 467 agsaRoot_t *agRoot, 468 agsaGPIOEvent_t *pIomb 469 ); 470 471 GLOBAL bit32 mpiSASDiagStartEndRsp( 472 agsaRoot_t *agRoot, 473 agsaSASDiagStartEndRsp_t *pIomb 474 ); 475 476 GLOBAL bit32 mpiSASDiagExecuteRsp( 477 agsaRoot_t *agRoot, 478 agsaSASDiagExecuteRsp_t *pIomb 479 ); 480 481 GLOBAL bit32 mpiGeneralEventRsp( 482 agsaRoot_t *agRoot, 483 agsaGeneralEventRsp_t *pIomb 484 ); 485 486 GLOBAL bit32 mpiSSPReqReceivedNotify( 487 agsaRoot_t *agRoot, 488 agsaSSPReqReceivedNotify_t *pMsg1 489 ); 490 491 GLOBAL bit32 mpiDeviceHandleArrived( 492 agsaRoot_t *agRoot, 493 agsaDeviceHandleArrivedNotify_t *pMsg1 494 ); 495 496 GLOBAL bit32 mpiGetTimeStampRsp( 497 agsaRoot_t *agRoot, 498 agsaGetTimeStampRsp_t *pIomb 499 ); 500 501 GLOBAL bit32 mpiSASHwEventAckRsp( 502 agsaRoot_t *agRoot, 503 agsaSASHwEventAckRsp_t *pIomb 504 ); 505 506 GLOBAL bit32 mpiSetDevInfoRsp( 507 agsaRoot_t *agRoot, 508 agsaSetDeviceInfoRsp_t *pIomb 509 ); 510 511 GLOBAL bit32 mpiSetDeviceStateRsp( 512 agsaRoot_t *agRoot, 513 agsaSetDeviceStateRsp_t *pIomb 514 ); 515 516 GLOBAL bit32 mpiGetDeviceStateRsp( 517 agsaRoot_t *agRoot, 518 agsaGetDeviceStateRsp_t *pIomb 519 ); 520 521 GLOBAL bit32 mpiSasReInitializeRsp( 522 agsaRoot_t *agRoot, 523 agsaSasReInitializeRsp_t *pIomb 524 ); 525 526 GLOBAL bit32 mpiSetControllerConfigRsp( 527 agsaRoot_t *agRoot, 528 agsaSetControllerConfigRsp_t *pIomb 529 ); 530 531 GLOBAL bit32 mpiGetControllerConfigRsp( 532 agsaRoot_t *agRoot, 533 agsaGetControllerConfigRsp_t *pIomb 534 ); 535 536 GLOBAL bit32 mpiKekManagementRsp( 537 agsaRoot_t *agRoot, 538 agsaKekManagementRsp_t *pIomb 539 ); 540 541 GLOBAL bit32 mpiDekManagementRsp( 542 agsaRoot_t *agRoot, 543 agsaDekManagementRsp_t *pIomb 544 ); 545 546 GLOBAL bit32 mpiOperatorManagementRsp( 547 agsaRoot_t *agRoot, 548 agsaOperatorMangmenRsp_t *pIomb 549 ); 550 551 GLOBAL bit32 mpiBistRsp( 552 agsaRoot_t *agRoot, 553 agsaEncryptBistRsp_t *pIomb 554 ); 555 556 GLOBAL bit32 mpiSetOperatorRsp( 557 agsaRoot_t *agRoot, 558 agsaSetOperatorRsp_t *pIomb 559 ); 560 561 GLOBAL bit32 mpiGetOperatorRsp( 562 agsaRoot_t *agRoot, 563 agsaGetOperatorRsp_t *pIomb 564 ); 565 566 GLOBAL bit32 mpiDifEncOffloadRsp( 567 agsaRoot_t *agRoot, 568 agsaDifEncOffloadRspV_t *pIomb 569 ); 570 571 GLOBAL bit32 mpiGetVHistRsp( 572 agsaRoot_t *agRoot, 573 agsaGetVHistCapRsp_t *pIomb 574 ); 575 576 577 /*** SAMPICMD.C ***/ 578 GLOBAL bit32 mpiBuildCmd( 579 agsaRoot_t *agRoot, 580 bit32 *payload, 581 mpiMsgCategory_t category, 582 bit16 opcode, 583 bit16 size, 584 bit32 queueNum 585 ); 586 587 588 GLOBAL bit32 mpiVHistCapCmd( 589 agsaRoot_t *agRoot, 590 agsaContext_t *agContext, 591 bit32 queueNum, 592 bit32 Channel, 593 bit32 NumBitLo, 594 bit32 NumBitHi, 595 bit32 PcieAddrLo, 596 bit32 PcieAddrHi, 597 bit32 ByteCount ); 598 599 GLOBAL bit32 mpiEchoCmd( 600 agsaRoot_t *agRoot, 601 bit32 queueNum, 602 agsaContext_t *agContext, 603 void *echoPayload 604 ); 605 606 GLOBAL bit32 mpiGetPhyProfileCmd( 607 agsaRoot_t *agRoot, 608 agsaContext_t *agContext, 609 bit32 Operation, 610 bit32 PhyId, 611 void *agCB 612 ); 613 614 GLOBAL bit32 mpiSetPhyProfileCmd( 615 agsaRoot_t *agRoot, 616 agsaContext_t *agContext, 617 bit32 Operation, 618 bit32 PhyId, 619 bit32 length, 620 void * buffer 621 ); 622 623 GLOBAL bit32 mpiPhyStartCmd( 624 agsaRoot_t *agRoot, 625 bit32 tag, 626 bit32 phyId, 627 agsaPhyConfig_t *agPhyConfig, 628 agsaSASIdentify_t *agSASIdentify, 629 bit32 queueNum 630 ); 631 632 GLOBAL bit32 mpiPhyStopCmd( 633 agsaRoot_t *agRoot, 634 bit32 tag, 635 bit32 phyId, 636 bit32 queueNum 637 ); 638 639 GLOBAL bit32 mpiSMPCmd( 640 agsaRoot_t *agRoot, 641 void *pIomb, 642 bit16 opcode, 643 agsaSMPCmd_t *payload, 644 bit8 inq, 645 bit8 outq 646 ); 647 648 GLOBAL bit32 mpiDeregDevHandleCmd( 649 agsaRoot_t *agRoot, 650 agsaContext_t *agContext, 651 agsaDeviceDesc_t *pDevice, 652 bit32 deviceId, 653 bit32 portId, 654 bit32 queueNum 655 ); 656 657 GLOBAL bit32 mpiGetDeviceHandleCmd( 658 agsaRoot_t *agRoot, 659 agsaContext_t *agContext, 660 bit32 portId, 661 bit32 flags, 662 bit32 maxDevs, 663 bit32 queueNum, 664 bit32 skipCount 665 ); 666 667 GLOBAL bit32 mpiLocalPhyControlCmd( 668 agsaRoot_t *agRoot, 669 bit32 tag, 670 bit32 phyId, 671 bit32 operation, 672 bit32 queueNum 673 ); 674 675 GLOBAL bit32 mpiGetDeviceInfoCmd( 676 agsaRoot_t *agRoot, 677 agsaContext_t *agContext, 678 bit32 deviceid, 679 bit32 option, 680 bit32 queueNum 681 ); 682 683 GLOBAL bit32 mpiDevHandleAcceptCmd( 684 agsaRoot_t *agRoot, 685 agsaContext_t *agContext, 686 bit32 ctag, 687 bit32 deviceId, 688 bit32 action, 689 bit32 flag, 690 bit32 itlnx, 691 bit32 queueNum 692 ); 693 694 GLOBAL bit32 mpiPortControlRsp( 695 agsaRoot_t *agRoot, 696 agsaPortControlRsp_t *pIomb 697 ); 698 699 GLOBAL bit32 mpiSMPAbortRsp( 700 agsaRoot_t *agRoot, 701 agsaSMPAbortRsp_t *pIomb 702 ); 703 704 GLOBAL bit32 siGetRegisterDumpGSM( 705 agsaRoot_t *agRoot, 706 void *destinationAddress, 707 bit32 regDumpNum, 708 bit32 regDumpOffset, 709 bit32 len 710 ); 711 712 GLOBAL bit32 mpiNVMReadRegDumpCmd( 713 agsaRoot_t *agRoot, 714 agsaContext_t *agContext, 715 bit32 queueNum, 716 bit32 cpuId, 717 bit32 cOffset, 718 bit32 addrHi, 719 bit32 addrLo, 720 bit32 len 721 ); 722 723 GLOBAL bit32 mpiDeviceHandleRemoval( 724 agsaRoot_t *agRoot, 725 agsaDeviceHandleRemoval_t *pMsg1); 726 727 GLOBAL bit32 mpiGetNVMDCmd( 728 agsaRoot_t *agRoot, 729 agsaContext_t *agContext, 730 agsaNVMDData_t *NVMDInfo, 731 bit32 queueNum 732 ); 733 734 GLOBAL bit32 mpiSetNVMDCmd( 735 agsaRoot_t *agRoot, 736 agsaContext_t *agContext, 737 agsaNVMDData_t *NVMDInfo, 738 bit32 queueNum 739 ); 740 741 GLOBAL bit32 mpiSetDeviceInfoCmd( 742 agsaRoot_t *agRoot, 743 agsaContext_t *agContext, 744 bit32 deviceid, 745 bit32 option, 746 bit32 queueNum, 747 bit32 param, 748 ossaSetDeviceInfoCB_t agCB 749 ); 750 751 GLOBAL bit32 mpiSetDeviceStateCmd( 752 agsaRoot_t *agRoot, 753 agsaContext_t *agContext, 754 bit32 deviceId, 755 bit32 nds, 756 bit32 queueNum 757 ); 758 759 GLOBAL bit32 mpiGetDeviceStateCmd( 760 agsaRoot_t *agRoot, 761 agsaContext_t *agContext, 762 bit32 deviceId, 763 bit32 queueNum 764 ); 765 766 GLOBAL bit32 mpiSasReinitializeCmd( 767 agsaRoot_t *agRoot, 768 agsaContext_t *agContext, 769 agsaSASReconfig_t *agSASConfig, 770 bit32 queueNum 771 ); 772 773 GLOBAL bit32 mpiSGpioRsp( 774 agsaRoot_t *agRoot, 775 agsaSGpioRsp_t *pInIomb 776 ); 777 778 GLOBAL bit32 mpiPCIeDiagExecuteRsp( 779 agsaRoot_t *agRoot, 780 void *pInIomb 781 ); 782 783 GLOBAL bit32 mpiGetDFEDataRsp( 784 agsaRoot_t *agRoot, 785 void *pInIomb 786 ); 787 788 GLOBAL bit32 mpiGetVisDataRsp( 789 agsaRoot_t *agRoot, 790 void *pIomb 791 ); 792 793 GLOBAL bit32 mpiSetControllerConfigCmd( 794 agsaRoot_t *agRoot, 795 agsaContext_t *agContext, 796 agsaSetControllerConfigCmd_t *agControllerConfig, 797 bit32 queueNum, 798 bit8 modePageContext 799 ); 800 801 GLOBAL bit32 mpiGetControllerConfigCmd( 802 agsaRoot_t *agRoot, 803 agsaContext_t *agContext, 804 agsaGetControllerConfigCmd_t *agControllerConfig, 805 bit32 queueNum 806 ); 807 808 GLOBAL bit32 mpiKekManagementCmd( 809 agsaRoot_t *agRoot, 810 agsaContext_t *agContext, 811 agsaKekManagementCmd_t *agKekMgmt, 812 bit32 queueNum 813 ); 814 815 GLOBAL bit32 mpiDekManagementCmd( 816 agsaRoot_t *agRoot, 817 agsaContext_t *agContext, 818 agsaDekManagementCmd_t *agDekMgmt, 819 bit32 queueNum 820 ); 821 822 GLOBAL bit32 mpiOperatorManagementCmd( 823 agsaRoot_t *agRoot, 824 bit32 queueNum, 825 agsaContext_t *agContext, 826 agsaOperatorMangmentCmd_t *operatorcode ); 827 828 GLOBAL bit32 mpiEncryptBistCmd( 829 agsaRoot_t *agRoot, 830 bit32 queueNum, 831 agsaContext_t *agContext, 832 agsaEncryptBist_t *bist ); 833 834 GLOBAL bit32 mpiSetOperatorCmd( 835 agsaRoot_t *agRoot, 836 bit32 queueNum, 837 agsaContext_t *agContext, 838 agsaSetOperatorCmd_t *operatorcode 839 ); 840 841 GLOBAL bit32 mpiGetOperatorCmd( 842 agsaRoot_t *agRoot, 843 bit32 queueNum, 844 agsaContext_t *agContext, 845 agsaGetOperatorCmd_t *operatorcode 846 ); 847 848 GLOBAL bit32 mpiDIFEncryptionOffloadCmd( 849 agsaRoot_t *agRoot, 850 agsaContext_t *agContext, 851 bit32 queueNum, 852 bit32 op, 853 agsaDifEncPayload_t *agDifEncOffload, 854 ossaDIFEncryptionOffloadStartCB_t agCB 855 ); 856 857 bit32 siOurMSIXInterrupt(agsaRoot_t *agRoot,bit32 interruptVectorIndex); 858 void siDisableMSIXInterrupts(agsaRoot_t *agRoot,bit32 interruptVectorIndex); 859 void siReenableMSIXInterrupts(agsaRoot_t *agRoot,bit32 interruptVectorIndex); 860 861 bit32 siOurMSIInterrupt(agsaRoot_t *agRoot,bit32 interruptVectorIndex); 862 void siDisableMSIInterrupts(agsaRoot_t *agRoot,bit32 interruptVectorIndex); 863 void siReenableMSIInterrupts(agsaRoot_t *agRoot,bit32 interruptVectorIndex); 864 865 866 bit32 siOurLegacyInterrupt(agsaRoot_t *agRoot,bit32 interruptVectorIndex); 867 void siDisableLegacyInterrupts(agsaRoot_t *agRoot,bit32 interruptVectorIndex); 868 void siReenableLegacyInterrupts(agsaRoot_t *agRoot,bit32 interruptVectorIndex); 869 870 bit32 siOurMSIX_V_Interrupt(agsaRoot_t *agRoot,bit32 interruptVectorIndex); 871 bit32 siOurMSI_V_Interrupt(agsaRoot_t *agRoot,bit32 interruptVectorIndex); 872 bit32 siOurLegacy_V_Interrupt(agsaRoot_t *agRoot,bit32 interruptVectorIndex); 873 874 void siDisableMSIX_V_Interrupts(agsaRoot_t *agRoot,bit32 interruptVectorIndex); 875 void siDisableMSI_V_Interrupts(agsaRoot_t *agRoot,bit32 interruptVectorIndex); 876 void siDisableLegacy_V_Interrupts(agsaRoot_t *agRoot,bit32 interruptVectorIndex); 877 878 void siReenableMSIX_V_Interrupts(agsaRoot_t *agRoot,bit32 interruptVectorIndex); 879 void siReenableMSI_V_Interrupts(agsaRoot_t *agRoot,bit32 interruptVectorIndex); 880 void siReenableLegacy_V_Interrupts(agsaRoot_t *agRoot,bit32 interruptVectorIndex); 881 882 883 GLOBAL void siUpdateBarOffsetTable(agsaRoot_t *agRoot, bit32 Spc_Type); 884 885 GLOBAL void siPciCpyMem(agsaRoot_t *agRoot, 886 bit32 soffset, 887 const void *dst, 888 bit32 DWcount, 889 bit32 busBaseNumber 890 ); 891 892 GLOBAL void siHalRegWriteExt( 893 agsaRoot_t *agRoot, 894 bit32 generic, 895 bit32 regOffset, 896 bit32 regValue 897 ); 898 899 GLOBAL bit32 siHalRegReadExt( agsaRoot_t *agRoot, 900 bit32 generic, 901 bit32 regOffset 902 ); 903 904 #ifdef SA_FW_TIMER_READS_STATUS 905 bit32 siReadControllerStatus( 906 agsaRoot_t *agRoot, 907 bit32 Event, 908 void * pParm 909 ); 910 #endif /* SA_FW_TIMER_READS_STATUS */ 911 912 913 #if defined(SALLSDK_DEBUG) 914 void sidump_hwConfig(agsaHwConfig_t *hwConfig); 915 void sidump_swConfig(agsaSwConfig_t *swConfig); 916 void sidump_Q_config( agsaQueueConfig_t *queueConfig ); 917 #endif 918 GLOBAL bit32 siGetTableOffset( 919 agsaRoot_t *agRoot, 920 bit32 TableOffsetInTable 921 ); 922 923 GLOBAL bit32 siGetPciBar( 924 agsaRoot_t *agRoot 925 ); 926 927 GLOBAL bit32 siScratchDump(agsaRoot_t *agRoot); 928 929 void si_macro_check(agsaRoot_t *agRoot); 930 931 GLOBAL bit32 si_check_V_HDA(agsaRoot_t *agRoot); 932 GLOBAL bit32 si_check_V_Ready(agsaRoot_t *agRoot); 933 934 GLOBAL void siPCITriger(agsaRoot_t *agRoot); 935 936 GLOBAL void siCheckQs(agsaRoot_t *agRoot); 937 938 939 GLOBAL bit32 smIsCfg_V_ANY( agsaRoot_t *agRoot); 940 GLOBAL bit32 smIS_SPC( agsaRoot_t *agRoot); 941 GLOBAL bit32 smIS_HIL( agsaRoot_t *agRoot); 942 GLOBAL bit32 smIS_SPC6V( agsaRoot_t *agRoot); 943 GLOBAL bit32 smIS_SPC12V( agsaRoot_t *agRoot); 944 GLOBAL bit32 smIS_SPCV( agsaRoot_t *agRoot); 945 GLOBAL bit32 smIS_ENCRYPT( agsaRoot_t *agRoot); 946 GLOBAL bit32 smIS_SPCV_2_IOP( agsaRoot_t *agRoot); 947 #endif /*__SAPROTO_H__ */ 948