1*0aeed3e9SJustin Hibbits /* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. 2*0aeed3e9SJustin Hibbits * All rights reserved. 3*0aeed3e9SJustin Hibbits * 4*0aeed3e9SJustin Hibbits * Redistribution and use in source and binary forms, with or without 5*0aeed3e9SJustin Hibbits * modification, are permitted provided that the following conditions are met: 6*0aeed3e9SJustin Hibbits * * Redistributions of source code must retain the above copyright 7*0aeed3e9SJustin Hibbits * notice, this list of conditions and the following disclaimer. 8*0aeed3e9SJustin Hibbits * * Redistributions in binary form must reproduce the above copyright 9*0aeed3e9SJustin Hibbits * notice, this list of conditions and the following disclaimer in the 10*0aeed3e9SJustin Hibbits * documentation and/or other materials provided with the distribution. 11*0aeed3e9SJustin Hibbits * * Neither the name of Freescale Semiconductor nor the 12*0aeed3e9SJustin Hibbits * names of its contributors may be used to endorse or promote products 13*0aeed3e9SJustin Hibbits * derived from this software without specific prior written permission. 14*0aeed3e9SJustin Hibbits * 15*0aeed3e9SJustin Hibbits * 16*0aeed3e9SJustin Hibbits * ALTERNATIVELY, this software may be distributed under the terms of the 17*0aeed3e9SJustin Hibbits * GNU General Public License ("GPL") as published by the Free Software 18*0aeed3e9SJustin Hibbits * Foundation, either version 2 of that License or (at your option) any 19*0aeed3e9SJustin Hibbits * later version. 20*0aeed3e9SJustin Hibbits * 21*0aeed3e9SJustin Hibbits * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY 22*0aeed3e9SJustin Hibbits * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 23*0aeed3e9SJustin Hibbits * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 24*0aeed3e9SJustin Hibbits * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY 25*0aeed3e9SJustin Hibbits * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 26*0aeed3e9SJustin Hibbits * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 27*0aeed3e9SJustin Hibbits * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 28*0aeed3e9SJustin Hibbits * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 29*0aeed3e9SJustin Hibbits * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 30*0aeed3e9SJustin Hibbits * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31*0aeed3e9SJustin Hibbits */ 32*0aeed3e9SJustin Hibbits 33*0aeed3e9SJustin Hibbits /**************************************************************************//** 34*0aeed3e9SJustin Hibbits @File fm_ipc.h 35*0aeed3e9SJustin Hibbits 36*0aeed3e9SJustin Hibbits @Description FM Inter-Partition prototypes, structures and definitions. 37*0aeed3e9SJustin Hibbits *//***************************************************************************/ 38*0aeed3e9SJustin Hibbits #ifndef __FM_IPC_H 39*0aeed3e9SJustin Hibbits #define __FM_IPC_H 40*0aeed3e9SJustin Hibbits 41*0aeed3e9SJustin Hibbits #include "error_ext.h" 42*0aeed3e9SJustin Hibbits #include "std_ext.h" 43*0aeed3e9SJustin Hibbits 44*0aeed3e9SJustin Hibbits 45*0aeed3e9SJustin Hibbits /**************************************************************************//** 46*0aeed3e9SJustin Hibbits @Group FM_grp Frame Manager API 47*0aeed3e9SJustin Hibbits 48*0aeed3e9SJustin Hibbits @Description FM API functions, definitions and enums 49*0aeed3e9SJustin Hibbits 50*0aeed3e9SJustin Hibbits @{ 51*0aeed3e9SJustin Hibbits *//***************************************************************************/ 52*0aeed3e9SJustin Hibbits 53*0aeed3e9SJustin Hibbits /**************************************************************************//** 54*0aeed3e9SJustin Hibbits @Group FM_IPC_grp FM Inter-Partition messaging Unit 55*0aeed3e9SJustin Hibbits 56*0aeed3e9SJustin Hibbits @Description FM Inter-Partition messaging unit API definitions and enums. 57*0aeed3e9SJustin Hibbits 58*0aeed3e9SJustin Hibbits @{ 59*0aeed3e9SJustin Hibbits *//***************************************************************************/ 60*0aeed3e9SJustin Hibbits 61*0aeed3e9SJustin Hibbits #if defined(__MWERKS__) && !defined(__GNUC__) 62*0aeed3e9SJustin Hibbits #pragma pack(push,1) 63*0aeed3e9SJustin Hibbits #endif /* defined(__MWERKS__) && ... */ 64*0aeed3e9SJustin Hibbits #define MEM_MAP_START 65*0aeed3e9SJustin Hibbits 66*0aeed3e9SJustin Hibbits /**************************************************************************//** 67*0aeed3e9SJustin Hibbits @Description enum for defining MAC types 68*0aeed3e9SJustin Hibbits *//***************************************************************************/ 69*0aeed3e9SJustin Hibbits 70*0aeed3e9SJustin Hibbits /**************************************************************************//** 71*0aeed3e9SJustin Hibbits @Description A structure of parameters for specifying a MAC. 72*0aeed3e9SJustin Hibbits *//***************************************************************************/ 73*0aeed3e9SJustin Hibbits typedef _Packed struct 74*0aeed3e9SJustin Hibbits { 75*0aeed3e9SJustin Hibbits uint8_t id; 76*0aeed3e9SJustin Hibbits uint32_t enumType; 77*0aeed3e9SJustin Hibbits } _PackedType t_FmIpcMacParams; 78*0aeed3e9SJustin Hibbits 79*0aeed3e9SJustin Hibbits /**************************************************************************//** 80*0aeed3e9SJustin Hibbits @Description A structure of parameters for specifying a MAC. 81*0aeed3e9SJustin Hibbits *//***************************************************************************/ 82*0aeed3e9SJustin Hibbits typedef _Packed struct 83*0aeed3e9SJustin Hibbits { 84*0aeed3e9SJustin Hibbits t_FmIpcMacParams macParams; 85*0aeed3e9SJustin Hibbits uint16_t maxFrameLength; 86*0aeed3e9SJustin Hibbits } _PackedType t_FmIpcMacMaxFrameParams; 87*0aeed3e9SJustin Hibbits 88*0aeed3e9SJustin Hibbits /**************************************************************************//** 89*0aeed3e9SJustin Hibbits @Description FM physical Address 90*0aeed3e9SJustin Hibbits *//***************************************************************************/ 91*0aeed3e9SJustin Hibbits typedef _Packed struct t_FmIpcPhysAddr 92*0aeed3e9SJustin Hibbits { 93*0aeed3e9SJustin Hibbits volatile uint8_t high; 94*0aeed3e9SJustin Hibbits volatile uint32_t low; 95*0aeed3e9SJustin Hibbits } _PackedType t_FmIpcPhysAddr; 96*0aeed3e9SJustin Hibbits 97*0aeed3e9SJustin Hibbits /**************************************************************************//** 98*0aeed3e9SJustin Hibbits @Description Structure for IPC communication during FM_PORT_Init. 99*0aeed3e9SJustin Hibbits *//***************************************************************************/ 100*0aeed3e9SJustin Hibbits typedef _Packed struct t_FmIpcPortInInitParams { 101*0aeed3e9SJustin Hibbits uint8_t hardwarePortId; /**< IN. port Id */ 102*0aeed3e9SJustin Hibbits uint32_t enumPortType; /**< IN. Port type */ 103*0aeed3e9SJustin Hibbits uint8_t boolIndependentMode;/**< IN. TRUE if FM Port operates in independent mode */ 104*0aeed3e9SJustin Hibbits uint16_t liodnOffset; /**< IN. Port's requested resource */ 105*0aeed3e9SJustin Hibbits uint8_t numOfTasks; /**< IN. Port's requested resource */ 106*0aeed3e9SJustin Hibbits uint8_t numOfExtraTasks; /**< IN. Port's requested resource */ 107*0aeed3e9SJustin Hibbits uint8_t numOfOpenDmas; /**< IN. Port's requested resource */ 108*0aeed3e9SJustin Hibbits uint8_t numOfExtraOpenDmas; /**< IN. Port's requested resource */ 109*0aeed3e9SJustin Hibbits uint32_t sizeOfFifo; /**< IN. Port's requested resource */ 110*0aeed3e9SJustin Hibbits uint32_t extraSizeOfFifo; /**< IN. Port's requested resource */ 111*0aeed3e9SJustin Hibbits uint8_t deqPipelineDepth; /**< IN. Port's requested resource */ 112*0aeed3e9SJustin Hibbits uint16_t liodnBase; /**< IN. Irrelevant for P4080 rev 1. 113*0aeed3e9SJustin Hibbits LIODN base for this port, to be 114*0aeed3e9SJustin Hibbits used together with LIODN offset. */ 115*0aeed3e9SJustin Hibbits } _PackedType t_FmIpcPortInInitParams; 116*0aeed3e9SJustin Hibbits 117*0aeed3e9SJustin Hibbits 118*0aeed3e9SJustin Hibbits /**************************************************************************//** 119*0aeed3e9SJustin Hibbits @Description Structure for IPC communication between port and FM 120*0aeed3e9SJustin Hibbits regarding tasks and open DMA resources management. 121*0aeed3e9SJustin Hibbits *//***************************************************************************/ 122*0aeed3e9SJustin Hibbits typedef _Packed struct t_FmIpcPortRsrcParams { 123*0aeed3e9SJustin Hibbits uint8_t hardwarePortId; /**< IN. port Id */ 124*0aeed3e9SJustin Hibbits uint32_t val; /**< IN. Port's requested resource */ 125*0aeed3e9SJustin Hibbits uint32_t extra; /**< IN. Port's requested resource */ 126*0aeed3e9SJustin Hibbits uint8_t boolInitialConfig; 127*0aeed3e9SJustin Hibbits } _PackedType t_FmIpcPortRsrcParams; 128*0aeed3e9SJustin Hibbits 129*0aeed3e9SJustin Hibbits 130*0aeed3e9SJustin Hibbits /**************************************************************************//** 131*0aeed3e9SJustin Hibbits @Description Structure for IPC communication between port and FM 132*0aeed3e9SJustin Hibbits regarding tasks and open DMA resources management. 133*0aeed3e9SJustin Hibbits *//***************************************************************************/ 134*0aeed3e9SJustin Hibbits typedef _Packed struct t_FmIpcPortFifoParams { 135*0aeed3e9SJustin Hibbits t_FmIpcPortRsrcParams rsrcParams; 136*0aeed3e9SJustin Hibbits uint32_t enumPortType; 137*0aeed3e9SJustin Hibbits uint8_t boolIndependentMode; 138*0aeed3e9SJustin Hibbits uint8_t deqPipelineDepth; 139*0aeed3e9SJustin Hibbits uint8_t numOfPools; 140*0aeed3e9SJustin Hibbits uint16_t secondLargestBufSize; 141*0aeed3e9SJustin Hibbits uint16_t largestBufSize; 142*0aeed3e9SJustin Hibbits uint8_t boolInitialConfig; 143*0aeed3e9SJustin Hibbits } _PackedType t_FmIpcPortFifoParams; 144*0aeed3e9SJustin Hibbits 145*0aeed3e9SJustin Hibbits /**************************************************************************//** 146*0aeed3e9SJustin Hibbits @Description Structure for port-FM communication during FM_PORT_Free. 147*0aeed3e9SJustin Hibbits *//***************************************************************************/ 148*0aeed3e9SJustin Hibbits typedef _Packed struct t_FmIpcPortFreeParams { 149*0aeed3e9SJustin Hibbits uint8_t hardwarePortId; /**< IN. port Id */ 150*0aeed3e9SJustin Hibbits uint32_t enumPortType; /**< IN. Port type */ 151*0aeed3e9SJustin Hibbits #ifdef FM_QMI_DEQ_OPTIONS_SUPPORT 152*0aeed3e9SJustin Hibbits uint8_t deqPipelineDepth; /**< IN. Port's requested resource */ 153*0aeed3e9SJustin Hibbits #endif /* FM_QMI_DEQ_OPTIONS_SUPPORT */ 154*0aeed3e9SJustin Hibbits } _PackedType t_FmIpcPortFreeParams; 155*0aeed3e9SJustin Hibbits 156*0aeed3e9SJustin Hibbits /**************************************************************************//** 157*0aeed3e9SJustin Hibbits @Description Structure for defining DMA status 158*0aeed3e9SJustin Hibbits *//***************************************************************************/ 159*0aeed3e9SJustin Hibbits typedef _Packed struct t_FmIpcDmaStatus { 160*0aeed3e9SJustin Hibbits uint8_t boolCmqNotEmpty; /**< Command queue is not empty */ 161*0aeed3e9SJustin Hibbits uint8_t boolBusError; /**< Bus error occurred */ 162*0aeed3e9SJustin Hibbits uint8_t boolReadBufEccError; /**< Double ECC error on buffer Read */ 163*0aeed3e9SJustin Hibbits uint8_t boolWriteBufEccSysError; /**< Double ECC error on buffer write from system side */ 164*0aeed3e9SJustin Hibbits uint8_t boolWriteBufEccFmError; /**< Double ECC error on buffer write from FM side */ 165*0aeed3e9SJustin Hibbits } _PackedType t_FmIpcDmaStatus; 166*0aeed3e9SJustin Hibbits 167*0aeed3e9SJustin Hibbits typedef _Packed struct t_FmIpcRegisterIntr 168*0aeed3e9SJustin Hibbits { 169*0aeed3e9SJustin Hibbits uint8_t guestId; /* IN */ 170*0aeed3e9SJustin Hibbits uint32_t event; /* IN */ 171*0aeed3e9SJustin Hibbits } _PackedType t_FmIpcRegisterIntr; 172*0aeed3e9SJustin Hibbits 173*0aeed3e9SJustin Hibbits typedef _Packed struct t_FmIpcIsr 174*0aeed3e9SJustin Hibbits { 175*0aeed3e9SJustin Hibbits uint8_t boolErr; /* IN */ 176*0aeed3e9SJustin Hibbits uint32_t pendingReg; /* IN */ 177*0aeed3e9SJustin Hibbits } _PackedType t_FmIpcIsr; 178*0aeed3e9SJustin Hibbits 179*0aeed3e9SJustin Hibbits /**************************************************************************//** 180*0aeed3e9SJustin Hibbits @Description structure for returning revision information 181*0aeed3e9SJustin Hibbits *//***************************************************************************/ 182*0aeed3e9SJustin Hibbits typedef _Packed struct t_FmIpcRevisionInfo { 183*0aeed3e9SJustin Hibbits uint8_t majorRev; /**< OUT: Major revision */ 184*0aeed3e9SJustin Hibbits uint8_t minorRev; /**< OUT: Minor revision */ 185*0aeed3e9SJustin Hibbits } _PackedType t_FmIpcRevisionInfo; 186*0aeed3e9SJustin Hibbits 187*0aeed3e9SJustin Hibbits /**************************************************************************//** 188*0aeed3e9SJustin Hibbits @Description Structure for defining Fm number of Fman controlers 189*0aeed3e9SJustin Hibbits *//***************************************************************************/ 190*0aeed3e9SJustin Hibbits typedef _Packed struct t_FmIpcPortNumOfFmanCtrls { 191*0aeed3e9SJustin Hibbits uint8_t hardwarePortId; /**< IN. port Id */ 192*0aeed3e9SJustin Hibbits uint8_t numOfFmanCtrls; /**< IN. Port type */ 193*0aeed3e9SJustin Hibbits } t_FmIpcPortNumOfFmanCtrls; 194*0aeed3e9SJustin Hibbits 195*0aeed3e9SJustin Hibbits /**************************************************************************//** 196*0aeed3e9SJustin Hibbits @Description structure for setting Fman contriller events 197*0aeed3e9SJustin Hibbits *//***************************************************************************/ 198*0aeed3e9SJustin Hibbits typedef _Packed struct t_FmIpcFmanEvents { 199*0aeed3e9SJustin Hibbits uint8_t eventRegId; /**< IN: Fman controller event register id */ 200*0aeed3e9SJustin Hibbits uint32_t enableEvents; /**< IN/OUT: required enabled events mask */ 201*0aeed3e9SJustin Hibbits } _PackedType t_FmIpcFmanEvents; 202*0aeed3e9SJustin Hibbits 203*0aeed3e9SJustin Hibbits #define FM_IPC_MAX_REPLY_BODY_SIZE 16 204*0aeed3e9SJustin Hibbits #define FM_IPC_MAX_REPLY_SIZE (FM_IPC_MAX_REPLY_BODY_SIZE + sizeof(uint32_t)) 205*0aeed3e9SJustin Hibbits #define FM_IPC_MAX_MSG_SIZE 30 206*0aeed3e9SJustin Hibbits typedef _Packed struct t_FmIpcMsg 207*0aeed3e9SJustin Hibbits { 208*0aeed3e9SJustin Hibbits uint32_t msgId; 209*0aeed3e9SJustin Hibbits uint8_t msgBody[FM_IPC_MAX_MSG_SIZE]; 210*0aeed3e9SJustin Hibbits } _PackedType t_FmIpcMsg; 211*0aeed3e9SJustin Hibbits 212*0aeed3e9SJustin Hibbits typedef _Packed struct t_FmIpcReply 213*0aeed3e9SJustin Hibbits { 214*0aeed3e9SJustin Hibbits uint32_t error; 215*0aeed3e9SJustin Hibbits uint8_t replyBody[FM_IPC_MAX_REPLY_BODY_SIZE]; 216*0aeed3e9SJustin Hibbits } _PackedType t_FmIpcReply; 217*0aeed3e9SJustin Hibbits 218*0aeed3e9SJustin Hibbits #define MEM_MAP_END 219*0aeed3e9SJustin Hibbits #if defined(__MWERKS__) && !defined(__GNUC__) 220*0aeed3e9SJustin Hibbits #pragma pack(pop) 221*0aeed3e9SJustin Hibbits #endif /* defined(__MWERKS__) && ... */ 222*0aeed3e9SJustin Hibbits 223*0aeed3e9SJustin Hibbits 224*0aeed3e9SJustin Hibbits /***************************************************************************/ 225*0aeed3e9SJustin Hibbits /************************ FRONT-END-TO-BACK-END*****************************/ 226*0aeed3e9SJustin Hibbits /***************************************************************************/ 227*0aeed3e9SJustin Hibbits 228*0aeed3e9SJustin Hibbits /**************************************************************************//** 229*0aeed3e9SJustin Hibbits @Function FM_GET_TIMESTAMP_SCALE 230*0aeed3e9SJustin Hibbits 231*0aeed3e9SJustin Hibbits @Description Used by FM front-end. 232*0aeed3e9SJustin Hibbits 233*0aeed3e9SJustin Hibbits @Param[out] uint32_t Pointer 234*0aeed3e9SJustin Hibbits *//***************************************************************************/ 235*0aeed3e9SJustin Hibbits #define FM_GET_TIMESTAMP_SCALE 1 236*0aeed3e9SJustin Hibbits 237*0aeed3e9SJustin Hibbits /**************************************************************************//** 238*0aeed3e9SJustin Hibbits @Function FM_GET_COUNTER 239*0aeed3e9SJustin Hibbits 240*0aeed3e9SJustin Hibbits @Description Used by FM front-end. 241*0aeed3e9SJustin Hibbits 242*0aeed3e9SJustin Hibbits @Param[in/out] t_FmIpcGetCounter Pointer 243*0aeed3e9SJustin Hibbits *//***************************************************************************/ 244*0aeed3e9SJustin Hibbits #define FM_GET_COUNTER 2 245*0aeed3e9SJustin Hibbits 246*0aeed3e9SJustin Hibbits /**************************************************************************//** 247*0aeed3e9SJustin Hibbits @Function FM_DUMP_REGS 248*0aeed3e9SJustin Hibbits 249*0aeed3e9SJustin Hibbits @Description Used by FM front-end for the PORT module in order to set and get 250*0aeed3e9SJustin Hibbits parameters in/from master FM module on FM PORT initialization time. 251*0aeed3e9SJustin Hibbits 252*0aeed3e9SJustin Hibbits @Param None 253*0aeed3e9SJustin Hibbits *//***************************************************************************/ 254*0aeed3e9SJustin Hibbits #define FM_DUMP_REGS 3 255*0aeed3e9SJustin Hibbits 256*0aeed3e9SJustin Hibbits /**************************************************************************//** 257*0aeed3e9SJustin Hibbits @Function FM_GET_SET_PORT_PARAMS 258*0aeed3e9SJustin Hibbits 259*0aeed3e9SJustin Hibbits @Description Used by FM front-end for the PORT module in order to set and get 260*0aeed3e9SJustin Hibbits parameters in/from master FM module on FM PORT initialization time. 261*0aeed3e9SJustin Hibbits 262*0aeed3e9SJustin Hibbits @Param[in/out] t_FmIcPortInitParams Pointer 263*0aeed3e9SJustin Hibbits *//***************************************************************************/ 264*0aeed3e9SJustin Hibbits #define FM_GET_SET_PORT_PARAMS 4 265*0aeed3e9SJustin Hibbits 266*0aeed3e9SJustin Hibbits /**************************************************************************//** 267*0aeed3e9SJustin Hibbits @Function FM_FREE_PORT 268*0aeed3e9SJustin Hibbits 269*0aeed3e9SJustin Hibbits @Description Used by FM front-end for the PORT module when a port is freed 270*0aeed3e9SJustin Hibbits to free all FM PORT resources. 271*0aeed3e9SJustin Hibbits 272*0aeed3e9SJustin Hibbits @Param[in] uint8_t Pointer 273*0aeed3e9SJustin Hibbits *//***************************************************************************/ 274*0aeed3e9SJustin Hibbits #define FM_FREE_PORT 5 275*0aeed3e9SJustin Hibbits 276*0aeed3e9SJustin Hibbits /**************************************************************************//** 277*0aeed3e9SJustin Hibbits @Function FM_RESET_MAC 278*0aeed3e9SJustin Hibbits 279*0aeed3e9SJustin Hibbits @Description Used by front-end for the MAC module to reset the MAC registers 280*0aeed3e9SJustin Hibbits 281*0aeed3e9SJustin Hibbits @Param[in] t_FmIpcMacParams Pointer . 282*0aeed3e9SJustin Hibbits *//***************************************************************************/ 283*0aeed3e9SJustin Hibbits #define FM_RESET_MAC 6 284*0aeed3e9SJustin Hibbits 285*0aeed3e9SJustin Hibbits /**************************************************************************//** 286*0aeed3e9SJustin Hibbits @Function FM_RESUME_STALLED_PORT 287*0aeed3e9SJustin Hibbits 288*0aeed3e9SJustin Hibbits @Description Used by FM front-end for the PORT module in order to 289*0aeed3e9SJustin Hibbits release a stalled FM Port. 290*0aeed3e9SJustin Hibbits 291*0aeed3e9SJustin Hibbits @Param[in] uint8_t Pointer 292*0aeed3e9SJustin Hibbits *//***************************************************************************/ 293*0aeed3e9SJustin Hibbits #define FM_RESUME_STALLED_PORT 7 294*0aeed3e9SJustin Hibbits 295*0aeed3e9SJustin Hibbits /**************************************************************************//** 296*0aeed3e9SJustin Hibbits @Function FM_IS_PORT_STALLED 297*0aeed3e9SJustin Hibbits 298*0aeed3e9SJustin Hibbits @Description Used by FM front-end for the PORT module in order to check whether 299*0aeed3e9SJustin Hibbits an FM port is stalled. 300*0aeed3e9SJustin Hibbits 301*0aeed3e9SJustin Hibbits @Param[in/out] t_FmIcPortIsStalled Pointer 302*0aeed3e9SJustin Hibbits *//***************************************************************************/ 303*0aeed3e9SJustin Hibbits #define FM_IS_PORT_STALLED 8 304*0aeed3e9SJustin Hibbits 305*0aeed3e9SJustin Hibbits /**************************************************************************//** 306*0aeed3e9SJustin Hibbits @Function FM_DUMP_PORT_REGS 307*0aeed3e9SJustin Hibbits 308*0aeed3e9SJustin Hibbits @Description Used by FM front-end for the PORT module in order to dump 309*0aeed3e9SJustin Hibbits all port registers. 310*0aeed3e9SJustin Hibbits 311*0aeed3e9SJustin Hibbits @Param[in] uint8_t Pointer 312*0aeed3e9SJustin Hibbits *//***************************************************************************/ 313*0aeed3e9SJustin Hibbits #define FM_DUMP_PORT_REGS 9 314*0aeed3e9SJustin Hibbits 315*0aeed3e9SJustin Hibbits /**************************************************************************//** 316*0aeed3e9SJustin Hibbits @Function FM_GET_REV 317*0aeed3e9SJustin Hibbits 318*0aeed3e9SJustin Hibbits @Description Used by FM front-end for the PORT module in order to dump 319*0aeed3e9SJustin Hibbits all port registers. 320*0aeed3e9SJustin Hibbits 321*0aeed3e9SJustin Hibbits @Param[in] uint8_t Pointer 322*0aeed3e9SJustin Hibbits *//***************************************************************************/ 323*0aeed3e9SJustin Hibbits #define FM_GET_REV 10 324*0aeed3e9SJustin Hibbits 325*0aeed3e9SJustin Hibbits /**************************************************************************//** 326*0aeed3e9SJustin Hibbits @Function FM_REGISTER_INTR 327*0aeed3e9SJustin Hibbits 328*0aeed3e9SJustin Hibbits @Description Used by FM front-end to register an interrupt handler to 329*0aeed3e9SJustin Hibbits be called upon interrupt for guest. 330*0aeed3e9SJustin Hibbits 331*0aeed3e9SJustin Hibbits @Param[out] t_FmIpcRegisterIntr Pointer 332*0aeed3e9SJustin Hibbits *//***************************************************************************/ 333*0aeed3e9SJustin Hibbits #define FM_REGISTER_INTR 11 334*0aeed3e9SJustin Hibbits 335*0aeed3e9SJustin Hibbits /**************************************************************************//** 336*0aeed3e9SJustin Hibbits @Function FM_GET_CLK_FREQ 337*0aeed3e9SJustin Hibbits 338*0aeed3e9SJustin Hibbits @Description Used by FM Front-end to read the FM clock frequency. 339*0aeed3e9SJustin Hibbits 340*0aeed3e9SJustin Hibbits @Param[out] uint32_t Pointer 341*0aeed3e9SJustin Hibbits *//***************************************************************************/ 342*0aeed3e9SJustin Hibbits #define FM_GET_CLK_FREQ 12 343*0aeed3e9SJustin Hibbits 344*0aeed3e9SJustin Hibbits /**************************************************************************//** 345*0aeed3e9SJustin Hibbits @Function FM_DMA_STAT 346*0aeed3e9SJustin Hibbits 347*0aeed3e9SJustin Hibbits @Description Used by FM front-end to read the FM DMA status. 348*0aeed3e9SJustin Hibbits 349*0aeed3e9SJustin Hibbits @Param[out] t_FmIpcDmaStatus Pointer 350*0aeed3e9SJustin Hibbits *//***************************************************************************/ 351*0aeed3e9SJustin Hibbits #define FM_DMA_STAT 13 352*0aeed3e9SJustin Hibbits 353*0aeed3e9SJustin Hibbits /**************************************************************************//** 354*0aeed3e9SJustin Hibbits @Function FM_ALLOC_FMAN_CTRL_EVENT_REG 355*0aeed3e9SJustin Hibbits 356*0aeed3e9SJustin Hibbits @Description Used by FM front-end to allocate event register. 357*0aeed3e9SJustin Hibbits 358*0aeed3e9SJustin Hibbits @Param[out] Event register id Pointer 359*0aeed3e9SJustin Hibbits *//***************************************************************************/ 360*0aeed3e9SJustin Hibbits #define FM_ALLOC_FMAN_CTRL_EVENT_REG 14 361*0aeed3e9SJustin Hibbits 362*0aeed3e9SJustin Hibbits /**************************************************************************//** 363*0aeed3e9SJustin Hibbits @Function FM_FREE_FMAN_CTRL_EVENT_REG 364*0aeed3e9SJustin Hibbits 365*0aeed3e9SJustin Hibbits @Description Used by FM front-end to free locate event register. 366*0aeed3e9SJustin Hibbits 367*0aeed3e9SJustin Hibbits @Param[in] uint8_t Pointer - Event register id 368*0aeed3e9SJustin Hibbits *//***************************************************************************/ 369*0aeed3e9SJustin Hibbits #define FM_FREE_FMAN_CTRL_EVENT_REG 15 370*0aeed3e9SJustin Hibbits 371*0aeed3e9SJustin Hibbits /**************************************************************************//** 372*0aeed3e9SJustin Hibbits @Function FM_SET_FMAN_CTRL_EVENTS_ENABLE 373*0aeed3e9SJustin Hibbits 374*0aeed3e9SJustin Hibbits @Description Used by FM front-end to enable events in the FPM 375*0aeed3e9SJustin Hibbits Fman controller event register. 376*0aeed3e9SJustin Hibbits 377*0aeed3e9SJustin Hibbits @Param[in] t_FmIpcFmanEvents Pointer 378*0aeed3e9SJustin Hibbits *//***************************************************************************/ 379*0aeed3e9SJustin Hibbits #define FM_SET_FMAN_CTRL_EVENTS_ENABLE 16 380*0aeed3e9SJustin Hibbits 381*0aeed3e9SJustin Hibbits /**************************************************************************//** 382*0aeed3e9SJustin Hibbits @Function FM_SET_FMAN_CTRL_EVENTS_ENABLE 383*0aeed3e9SJustin Hibbits 384*0aeed3e9SJustin Hibbits @Description Used by FM front-end to enable events in the FPM 385*0aeed3e9SJustin Hibbits Fman controller event register. 386*0aeed3e9SJustin Hibbits 387*0aeed3e9SJustin Hibbits @Param[in/out] t_FmIpcFmanEvents Pointer 388*0aeed3e9SJustin Hibbits *//***************************************************************************/ 389*0aeed3e9SJustin Hibbits #define FM_GET_FMAN_CTRL_EVENTS_ENABLE 17 390*0aeed3e9SJustin Hibbits 391*0aeed3e9SJustin Hibbits /**************************************************************************//** 392*0aeed3e9SJustin Hibbits @Function FM_SET_MAC_MAX_FRAME 393*0aeed3e9SJustin Hibbits 394*0aeed3e9SJustin Hibbits @Description Used by FM front-end to set MAC's MTU/RTU's in 395*0aeed3e9SJustin Hibbits back-end. 396*0aeed3e9SJustin Hibbits 397*0aeed3e9SJustin Hibbits @Param[in/out] t_FmIpcMacMaxFrameParams Pointer 398*0aeed3e9SJustin Hibbits *//***************************************************************************/ 399*0aeed3e9SJustin Hibbits #define FM_SET_MAC_MAX_FRAME 18 400*0aeed3e9SJustin Hibbits 401*0aeed3e9SJustin Hibbits /**************************************************************************//** 402*0aeed3e9SJustin Hibbits @Function FM_GET_PHYS_MURAM_BASE 403*0aeed3e9SJustin Hibbits 404*0aeed3e9SJustin Hibbits @Description Used by FM front-end in order to get MURAM base address 405*0aeed3e9SJustin Hibbits 406*0aeed3e9SJustin Hibbits @Param[in/out] t_FmIpcPhysAddr Pointer 407*0aeed3e9SJustin Hibbits *//***************************************************************************/ 408*0aeed3e9SJustin Hibbits #define FM_GET_PHYS_MURAM_BASE 19 409*0aeed3e9SJustin Hibbits 410*0aeed3e9SJustin Hibbits /**************************************************************************//** 411*0aeed3e9SJustin Hibbits @Function FM_MASTER_IS_ALIVE 412*0aeed3e9SJustin Hibbits 413*0aeed3e9SJustin Hibbits @Description Used by FM front-end in order to verify Master is up 414*0aeed3e9SJustin Hibbits 415*0aeed3e9SJustin Hibbits @Param[in/out] bool 416*0aeed3e9SJustin Hibbits *//***************************************************************************/ 417*0aeed3e9SJustin Hibbits #define FM_MASTER_IS_ALIVE 20 418*0aeed3e9SJustin Hibbits 419*0aeed3e9SJustin Hibbits #define FM_ENABLE_RAM_ECC 21 420*0aeed3e9SJustin Hibbits #define FM_DISABLE_RAM_ECC 22 421*0aeed3e9SJustin Hibbits #define FM_SET_NUM_OF_FMAN_CTRL 23 422*0aeed3e9SJustin Hibbits #define FM_SET_SIZE_OF_FIFO 24 423*0aeed3e9SJustin Hibbits #define FM_SET_NUM_OF_TASKS 25 424*0aeed3e9SJustin Hibbits #define FM_SET_NUM_OF_OPEN_DMAS 26 425*0aeed3e9SJustin Hibbits 426*0aeed3e9SJustin Hibbits #ifdef FM_TX_ECC_FRMS_ERRATA_10GMAC_A004 427*0aeed3e9SJustin Hibbits #define FM_10G_TX_ECC_WA 100 428*0aeed3e9SJustin Hibbits #endif /* FM_TX_ECC_FRMS_ERRATA_10GMAC_A004 */ 429*0aeed3e9SJustin Hibbits 430*0aeed3e9SJustin Hibbits /***************************************************************************/ 431*0aeed3e9SJustin Hibbits /************************ BACK-END-TO-FRONT-END*****************************/ 432*0aeed3e9SJustin Hibbits /***************************************************************************/ 433*0aeed3e9SJustin Hibbits 434*0aeed3e9SJustin Hibbits /**************************************************************************//** 435*0aeed3e9SJustin Hibbits @Function FM_GUEST_ISR 436*0aeed3e9SJustin Hibbits 437*0aeed3e9SJustin Hibbits @Description Used by FM back-end to report an interrupt to the front-end. 438*0aeed3e9SJustin Hibbits 439*0aeed3e9SJustin Hibbits @Param[out] t_FmIpcIsr Pointer 440*0aeed3e9SJustin Hibbits *//***************************************************************************/ 441*0aeed3e9SJustin Hibbits #define FM_GUEST_ISR 1 442*0aeed3e9SJustin Hibbits 443*0aeed3e9SJustin Hibbits 444*0aeed3e9SJustin Hibbits 445*0aeed3e9SJustin Hibbits /** @} */ /* end of FM_IPC_grp group */ 446*0aeed3e9SJustin Hibbits /** @} */ /* end of FM_grp group */ 447*0aeed3e9SJustin Hibbits 448*0aeed3e9SJustin Hibbits 449*0aeed3e9SJustin Hibbits #endif /* __FM_IPC_H */ 450