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