1*852ba100SJustin Hibbits /* 2*852ba100SJustin Hibbits * Copyright 2008-2012 Freescale Semiconductor Inc. 30aeed3e9SJustin Hibbits * 40aeed3e9SJustin Hibbits * Redistribution and use in source and binary forms, with or without 50aeed3e9SJustin Hibbits * modification, are permitted provided that the following conditions are met: 60aeed3e9SJustin Hibbits * * Redistributions of source code must retain the above copyright 70aeed3e9SJustin Hibbits * notice, this list of conditions and the following disclaimer. 80aeed3e9SJustin Hibbits * * Redistributions in binary form must reproduce the above copyright 90aeed3e9SJustin Hibbits * notice, this list of conditions and the following disclaimer in the 100aeed3e9SJustin Hibbits * documentation and/or other materials provided with the distribution. 110aeed3e9SJustin Hibbits * * Neither the name of Freescale Semiconductor nor the 120aeed3e9SJustin Hibbits * names of its contributors may be used to endorse or promote products 130aeed3e9SJustin Hibbits * derived from this software without specific prior written permission. 140aeed3e9SJustin Hibbits * 150aeed3e9SJustin Hibbits * 160aeed3e9SJustin Hibbits * ALTERNATIVELY, this software may be distributed under the terms of the 170aeed3e9SJustin Hibbits * GNU General Public License ("GPL") as published by the Free Software 180aeed3e9SJustin Hibbits * Foundation, either version 2 of that License or (at your option) any 190aeed3e9SJustin Hibbits * later version. 200aeed3e9SJustin Hibbits * 210aeed3e9SJustin Hibbits * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY 220aeed3e9SJustin Hibbits * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 230aeed3e9SJustin Hibbits * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 240aeed3e9SJustin Hibbits * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY 250aeed3e9SJustin Hibbits * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 260aeed3e9SJustin Hibbits * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 270aeed3e9SJustin Hibbits * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 280aeed3e9SJustin Hibbits * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 290aeed3e9SJustin Hibbits * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 300aeed3e9SJustin Hibbits * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 310aeed3e9SJustin Hibbits */ 320aeed3e9SJustin Hibbits 33*852ba100SJustin Hibbits 340aeed3e9SJustin Hibbits /**************************************************************************//** 350aeed3e9SJustin Hibbits @File fm_ipc.h 360aeed3e9SJustin Hibbits 370aeed3e9SJustin Hibbits @Description FM Inter-Partition prototypes, structures and definitions. 380aeed3e9SJustin Hibbits *//***************************************************************************/ 390aeed3e9SJustin Hibbits #ifndef __FM_IPC_H 400aeed3e9SJustin Hibbits #define __FM_IPC_H 410aeed3e9SJustin Hibbits 420aeed3e9SJustin Hibbits #include "error_ext.h" 430aeed3e9SJustin Hibbits #include "std_ext.h" 440aeed3e9SJustin Hibbits 450aeed3e9SJustin Hibbits 460aeed3e9SJustin Hibbits /**************************************************************************//** 470aeed3e9SJustin Hibbits @Group FM_grp Frame Manager API 480aeed3e9SJustin Hibbits 490aeed3e9SJustin Hibbits @Description FM API functions, definitions and enums 500aeed3e9SJustin Hibbits 510aeed3e9SJustin Hibbits @{ 520aeed3e9SJustin Hibbits *//***************************************************************************/ 530aeed3e9SJustin Hibbits 540aeed3e9SJustin Hibbits /**************************************************************************//** 550aeed3e9SJustin Hibbits @Group FM_IPC_grp FM Inter-Partition messaging Unit 560aeed3e9SJustin Hibbits 570aeed3e9SJustin Hibbits @Description FM Inter-Partition messaging unit API definitions and enums. 580aeed3e9SJustin Hibbits 590aeed3e9SJustin Hibbits @{ 600aeed3e9SJustin Hibbits *//***************************************************************************/ 610aeed3e9SJustin Hibbits 620aeed3e9SJustin Hibbits #if defined(__MWERKS__) && !defined(__GNUC__) 630aeed3e9SJustin Hibbits #pragma pack(push,1) 640aeed3e9SJustin Hibbits #endif /* defined(__MWERKS__) && ... */ 650aeed3e9SJustin Hibbits 660aeed3e9SJustin Hibbits /**************************************************************************//** 670aeed3e9SJustin Hibbits @Description enum for defining MAC types 680aeed3e9SJustin Hibbits *//***************************************************************************/ 690aeed3e9SJustin Hibbits 700aeed3e9SJustin Hibbits /**************************************************************************//** 710aeed3e9SJustin Hibbits @Description A structure of parameters for specifying a MAC. 720aeed3e9SJustin Hibbits *//***************************************************************************/ 730aeed3e9SJustin Hibbits typedef _Packed struct 740aeed3e9SJustin Hibbits { 750aeed3e9SJustin Hibbits uint8_t id; 760aeed3e9SJustin Hibbits uint32_t enumType; 770aeed3e9SJustin Hibbits } _PackedType t_FmIpcMacParams; 780aeed3e9SJustin Hibbits 790aeed3e9SJustin Hibbits /**************************************************************************//** 800aeed3e9SJustin Hibbits @Description A structure of parameters for specifying a MAC. 810aeed3e9SJustin Hibbits *//***************************************************************************/ 820aeed3e9SJustin Hibbits typedef _Packed struct 830aeed3e9SJustin Hibbits { 840aeed3e9SJustin Hibbits t_FmIpcMacParams macParams; 850aeed3e9SJustin Hibbits uint16_t maxFrameLength; 860aeed3e9SJustin Hibbits } _PackedType t_FmIpcMacMaxFrameParams; 870aeed3e9SJustin Hibbits 880aeed3e9SJustin Hibbits /**************************************************************************//** 890aeed3e9SJustin Hibbits @Description FM physical Address 900aeed3e9SJustin Hibbits *//***************************************************************************/ 910aeed3e9SJustin Hibbits typedef _Packed struct t_FmIpcPhysAddr 920aeed3e9SJustin Hibbits { 930aeed3e9SJustin Hibbits volatile uint8_t high; 940aeed3e9SJustin Hibbits volatile uint32_t low; 950aeed3e9SJustin Hibbits } _PackedType t_FmIpcPhysAddr; 960aeed3e9SJustin Hibbits 97*852ba100SJustin Hibbits 98*852ba100SJustin Hibbits typedef _Packed struct t_FmIpcPortOutInitParams { 99*852ba100SJustin Hibbits uint8_t numOfTasks; /**< OUT */ 100*852ba100SJustin Hibbits uint8_t numOfExtraTasks; /**< OUT */ 101*852ba100SJustin Hibbits uint8_t numOfOpenDmas; /**< OUT */ 102*852ba100SJustin Hibbits uint8_t numOfExtraOpenDmas; /**< OUT */ 103*852ba100SJustin Hibbits uint32_t sizeOfFifo; /**< OUT */ 104*852ba100SJustin Hibbits uint32_t extraSizeOfFifo; /**< OUT */ 105*852ba100SJustin Hibbits t_FmIpcPhysAddr ipcPhysAddr; /**< OUT */ 106*852ba100SJustin Hibbits } _PackedType t_FmIpcPortOutInitParams; 107*852ba100SJustin Hibbits 1080aeed3e9SJustin Hibbits /**************************************************************************//** 1090aeed3e9SJustin Hibbits @Description Structure for IPC communication during FM_PORT_Init. 1100aeed3e9SJustin Hibbits *//***************************************************************************/ 1110aeed3e9SJustin Hibbits typedef _Packed struct t_FmIpcPortInInitParams { 1120aeed3e9SJustin Hibbits uint8_t hardwarePortId; /**< IN. port Id */ 1130aeed3e9SJustin Hibbits uint32_t enumPortType; /**< IN. Port type */ 1140aeed3e9SJustin Hibbits uint8_t boolIndependentMode;/**< IN. TRUE if FM Port operates in independent mode */ 1150aeed3e9SJustin Hibbits uint16_t liodnOffset; /**< IN. Port's requested resource */ 1160aeed3e9SJustin Hibbits uint8_t numOfTasks; /**< IN. Port's requested resource */ 1170aeed3e9SJustin Hibbits uint8_t numOfExtraTasks; /**< IN. Port's requested resource */ 1180aeed3e9SJustin Hibbits uint8_t numOfOpenDmas; /**< IN. Port's requested resource */ 1190aeed3e9SJustin Hibbits uint8_t numOfExtraOpenDmas; /**< IN. Port's requested resource */ 1200aeed3e9SJustin Hibbits uint32_t sizeOfFifo; /**< IN. Port's requested resource */ 1210aeed3e9SJustin Hibbits uint32_t extraSizeOfFifo; /**< IN. Port's requested resource */ 1220aeed3e9SJustin Hibbits uint8_t deqPipelineDepth; /**< IN. Port's requested resource */ 123*852ba100SJustin Hibbits uint16_t maxFrameLength; /**< IN. Port's max frame length. */ 1240aeed3e9SJustin Hibbits uint16_t liodnBase; /**< IN. Irrelevant for P4080 rev 1. 1250aeed3e9SJustin Hibbits LIODN base for this port, to be 1260aeed3e9SJustin Hibbits used together with LIODN offset. */ 1270aeed3e9SJustin Hibbits } _PackedType t_FmIpcPortInInitParams; 1280aeed3e9SJustin Hibbits 1290aeed3e9SJustin Hibbits 1300aeed3e9SJustin Hibbits /**************************************************************************//** 1310aeed3e9SJustin Hibbits @Description Structure for IPC communication between port and FM 1320aeed3e9SJustin Hibbits regarding tasks and open DMA resources management. 1330aeed3e9SJustin Hibbits *//***************************************************************************/ 1340aeed3e9SJustin Hibbits typedef _Packed struct t_FmIpcPortRsrcParams { 1350aeed3e9SJustin Hibbits uint8_t hardwarePortId; /**< IN. port Id */ 1360aeed3e9SJustin Hibbits uint32_t val; /**< IN. Port's requested resource */ 1370aeed3e9SJustin Hibbits uint32_t extra; /**< IN. Port's requested resource */ 1380aeed3e9SJustin Hibbits uint8_t boolInitialConfig; 1390aeed3e9SJustin Hibbits } _PackedType t_FmIpcPortRsrcParams; 1400aeed3e9SJustin Hibbits 1410aeed3e9SJustin Hibbits 1420aeed3e9SJustin Hibbits /**************************************************************************//** 1430aeed3e9SJustin Hibbits @Description Structure for IPC communication between port and FM 1440aeed3e9SJustin Hibbits regarding tasks and open DMA resources management. 1450aeed3e9SJustin Hibbits *//***************************************************************************/ 1460aeed3e9SJustin Hibbits typedef _Packed struct t_FmIpcPortFifoParams { 1470aeed3e9SJustin Hibbits t_FmIpcPortRsrcParams rsrcParams; 1480aeed3e9SJustin Hibbits uint32_t enumPortType; 1490aeed3e9SJustin Hibbits uint8_t boolIndependentMode; 1500aeed3e9SJustin Hibbits uint8_t deqPipelineDepth; 1510aeed3e9SJustin Hibbits uint8_t numOfPools; 1520aeed3e9SJustin Hibbits uint16_t secondLargestBufSize; 1530aeed3e9SJustin Hibbits uint16_t largestBufSize; 1540aeed3e9SJustin Hibbits uint8_t boolInitialConfig; 1550aeed3e9SJustin Hibbits } _PackedType t_FmIpcPortFifoParams; 1560aeed3e9SJustin Hibbits 1570aeed3e9SJustin Hibbits /**************************************************************************//** 1580aeed3e9SJustin Hibbits @Description Structure for port-FM communication during FM_PORT_Free. 1590aeed3e9SJustin Hibbits *//***************************************************************************/ 1600aeed3e9SJustin Hibbits typedef _Packed struct t_FmIpcPortFreeParams { 1610aeed3e9SJustin Hibbits uint8_t hardwarePortId; /**< IN. port Id */ 1620aeed3e9SJustin Hibbits uint32_t enumPortType; /**< IN. Port type */ 1630aeed3e9SJustin Hibbits uint8_t deqPipelineDepth; /**< IN. Port's requested resource */ 1640aeed3e9SJustin Hibbits } _PackedType t_FmIpcPortFreeParams; 1650aeed3e9SJustin Hibbits 1660aeed3e9SJustin Hibbits /**************************************************************************//** 1670aeed3e9SJustin Hibbits @Description Structure for defining DMA status 1680aeed3e9SJustin Hibbits *//***************************************************************************/ 1690aeed3e9SJustin Hibbits typedef _Packed struct t_FmIpcDmaStatus { 1700aeed3e9SJustin Hibbits uint8_t boolCmqNotEmpty; /**< Command queue is not empty */ 1710aeed3e9SJustin Hibbits uint8_t boolBusError; /**< Bus error occurred */ 1720aeed3e9SJustin Hibbits uint8_t boolReadBufEccError; /**< Double ECC error on buffer Read */ 1730aeed3e9SJustin Hibbits uint8_t boolWriteBufEccSysError; /**< Double ECC error on buffer write from system side */ 1740aeed3e9SJustin Hibbits uint8_t boolWriteBufEccFmError; /**< Double ECC error on buffer write from FM side */ 175*852ba100SJustin Hibbits uint8_t boolSinglePortEccError; /**< Single port ECC error from FM side */ 1760aeed3e9SJustin Hibbits } _PackedType t_FmIpcDmaStatus; 1770aeed3e9SJustin Hibbits 1780aeed3e9SJustin Hibbits typedef _Packed struct t_FmIpcRegisterIntr 1790aeed3e9SJustin Hibbits { 1800aeed3e9SJustin Hibbits uint8_t guestId; /* IN */ 1810aeed3e9SJustin Hibbits uint32_t event; /* IN */ 1820aeed3e9SJustin Hibbits } _PackedType t_FmIpcRegisterIntr; 1830aeed3e9SJustin Hibbits 1840aeed3e9SJustin Hibbits typedef _Packed struct t_FmIpcIsr 1850aeed3e9SJustin Hibbits { 1860aeed3e9SJustin Hibbits uint8_t boolErr; /* IN */ 1870aeed3e9SJustin Hibbits uint32_t pendingReg; /* IN */ 1880aeed3e9SJustin Hibbits } _PackedType t_FmIpcIsr; 1890aeed3e9SJustin Hibbits 1900aeed3e9SJustin Hibbits /**************************************************************************//** 191*852ba100SJustin Hibbits @Description structure for returning FM parameters 1920aeed3e9SJustin Hibbits *//***************************************************************************/ 193*852ba100SJustin Hibbits typedef _Packed struct t_FmIpcParams { 194*852ba100SJustin Hibbits uint16_t fmClkFreq; /**< OUT: FM Clock frequency */ 195*852ba100SJustin Hibbits uint16_t fmMacClkFreq; /**< OUT: FM MAC clock frequence */ 196*852ba100SJustin Hibbits uint8_t majorRev; /**< OUT: FM Major revision */ 197*852ba100SJustin Hibbits uint8_t minorRev; /**< OUT: FM Minor revision */ 198*852ba100SJustin Hibbits } _PackedType t_FmIpcParams; 199*852ba100SJustin Hibbits 200*852ba100SJustin Hibbits 201*852ba100SJustin Hibbits /**************************************************************************//** 202*852ba100SJustin Hibbits @Description structure for returning Fman Ctrl Code revision information 203*852ba100SJustin Hibbits *//***************************************************************************/ 204*852ba100SJustin Hibbits typedef _Packed struct t_FmIpcFmanCtrlCodeRevisionInfo { 205*852ba100SJustin Hibbits uint16_t packageRev; /**< OUT: Package revision */ 2060aeed3e9SJustin Hibbits uint8_t majorRev; /**< OUT: Major revision */ 2070aeed3e9SJustin Hibbits uint8_t minorRev; /**< OUT: Minor revision */ 208*852ba100SJustin Hibbits } _PackedType t_FmIpcFmanCtrlCodeRevisionInfo; 2090aeed3e9SJustin Hibbits 2100aeed3e9SJustin Hibbits /**************************************************************************//** 2110aeed3e9SJustin Hibbits @Description Structure for defining Fm number of Fman controlers 2120aeed3e9SJustin Hibbits *//***************************************************************************/ 2130aeed3e9SJustin Hibbits typedef _Packed struct t_FmIpcPortNumOfFmanCtrls { 2140aeed3e9SJustin Hibbits uint8_t hardwarePortId; /**< IN. port Id */ 2150aeed3e9SJustin Hibbits uint8_t numOfFmanCtrls; /**< IN. Port type */ 216*852ba100SJustin Hibbits t_FmFmanCtrl orFmanCtrl; /**< IN. fman controller for order restoration*/ 2170aeed3e9SJustin Hibbits } t_FmIpcPortNumOfFmanCtrls; 2180aeed3e9SJustin Hibbits 2190aeed3e9SJustin Hibbits /**************************************************************************//** 2200aeed3e9SJustin Hibbits @Description structure for setting Fman contriller events 2210aeed3e9SJustin Hibbits *//***************************************************************************/ 2220aeed3e9SJustin Hibbits typedef _Packed struct t_FmIpcFmanEvents { 2230aeed3e9SJustin Hibbits uint8_t eventRegId; /**< IN: Fman controller event register id */ 2240aeed3e9SJustin Hibbits uint32_t enableEvents; /**< IN/OUT: required enabled events mask */ 2250aeed3e9SJustin Hibbits } _PackedType t_FmIpcFmanEvents; 2260aeed3e9SJustin Hibbits 227*852ba100SJustin Hibbits typedef _Packed struct t_FmIpcResourceAllocParams { 228*852ba100SJustin Hibbits uint8_t guestId; 229*852ba100SJustin Hibbits uint16_t base; 230*852ba100SJustin Hibbits uint16_t num; 231*852ba100SJustin Hibbits }_PackedType t_FmIpcResourceAllocParams; 232*852ba100SJustin Hibbits 233*852ba100SJustin Hibbits typedef _Packed struct t_FmIpcVspSetPortWindow { 234*852ba100SJustin Hibbits uint8_t hardwarePortId; 235*852ba100SJustin Hibbits uint8_t baseStorageProfile; 236*852ba100SJustin Hibbits uint8_t log2NumOfProfiles; 237*852ba100SJustin Hibbits }_PackedType t_FmIpcVspSetPortWindow; 238*852ba100SJustin Hibbits 239*852ba100SJustin Hibbits typedef _Packed struct t_FmIpcSetCongestionGroupPfcPriority { 240*852ba100SJustin Hibbits uint32_t congestionGroupId; 241*852ba100SJustin Hibbits uint8_t priorityBitMap; 242*852ba100SJustin Hibbits }_PackedType t_FmIpcSetCongestionGroupPfcPriority; 243*852ba100SJustin Hibbits 244*852ba100SJustin Hibbits #define FM_IPC_MAX_REPLY_BODY_SIZE 20 2450aeed3e9SJustin Hibbits #define FM_IPC_MAX_REPLY_SIZE (FM_IPC_MAX_REPLY_BODY_SIZE + sizeof(uint32_t)) 2460aeed3e9SJustin Hibbits #define FM_IPC_MAX_MSG_SIZE 30 247*852ba100SJustin Hibbits 2480aeed3e9SJustin Hibbits typedef _Packed struct t_FmIpcMsg 2490aeed3e9SJustin Hibbits { 2500aeed3e9SJustin Hibbits uint32_t msgId; 2510aeed3e9SJustin Hibbits uint8_t msgBody[FM_IPC_MAX_MSG_SIZE]; 2520aeed3e9SJustin Hibbits } _PackedType t_FmIpcMsg; 2530aeed3e9SJustin Hibbits 2540aeed3e9SJustin Hibbits typedef _Packed struct t_FmIpcReply 2550aeed3e9SJustin Hibbits { 2560aeed3e9SJustin Hibbits uint32_t error; 2570aeed3e9SJustin Hibbits uint8_t replyBody[FM_IPC_MAX_REPLY_BODY_SIZE]; 2580aeed3e9SJustin Hibbits } _PackedType t_FmIpcReply; 2590aeed3e9SJustin Hibbits 2600aeed3e9SJustin Hibbits #if defined(__MWERKS__) && !defined(__GNUC__) 2610aeed3e9SJustin Hibbits #pragma pack(pop) 2620aeed3e9SJustin Hibbits #endif /* defined(__MWERKS__) && ... */ 2630aeed3e9SJustin Hibbits 2640aeed3e9SJustin Hibbits 2650aeed3e9SJustin Hibbits /***************************************************************************/ 2660aeed3e9SJustin Hibbits /************************ FRONT-END-TO-BACK-END*****************************/ 2670aeed3e9SJustin Hibbits /***************************************************************************/ 2680aeed3e9SJustin Hibbits 2690aeed3e9SJustin Hibbits /**************************************************************************//** 2700aeed3e9SJustin Hibbits @Function FM_GET_TIMESTAMP_SCALE 2710aeed3e9SJustin Hibbits 2720aeed3e9SJustin Hibbits @Description Used by FM front-end. 2730aeed3e9SJustin Hibbits 2740aeed3e9SJustin Hibbits @Param[out] uint32_t Pointer 2750aeed3e9SJustin Hibbits *//***************************************************************************/ 2760aeed3e9SJustin Hibbits #define FM_GET_TIMESTAMP_SCALE 1 2770aeed3e9SJustin Hibbits 2780aeed3e9SJustin Hibbits /**************************************************************************//** 2790aeed3e9SJustin Hibbits @Function FM_GET_COUNTER 2800aeed3e9SJustin Hibbits 2810aeed3e9SJustin Hibbits @Description Used by FM front-end. 2820aeed3e9SJustin Hibbits 2830aeed3e9SJustin Hibbits @Param[in/out] t_FmIpcGetCounter Pointer 2840aeed3e9SJustin Hibbits *//***************************************************************************/ 2850aeed3e9SJustin Hibbits #define FM_GET_COUNTER 2 2860aeed3e9SJustin Hibbits 2870aeed3e9SJustin Hibbits /**************************************************************************//** 2880aeed3e9SJustin Hibbits @Function FM_GET_SET_PORT_PARAMS 2890aeed3e9SJustin Hibbits 2900aeed3e9SJustin Hibbits @Description Used by FM front-end for the PORT module in order to set and get 2910aeed3e9SJustin Hibbits parameters in/from master FM module on FM PORT initialization time. 2920aeed3e9SJustin Hibbits 2930aeed3e9SJustin Hibbits @Param[in/out] t_FmIcPortInitParams Pointer 2940aeed3e9SJustin Hibbits *//***************************************************************************/ 2950aeed3e9SJustin Hibbits #define FM_GET_SET_PORT_PARAMS 4 2960aeed3e9SJustin Hibbits 2970aeed3e9SJustin Hibbits /**************************************************************************//** 2980aeed3e9SJustin Hibbits @Function FM_FREE_PORT 2990aeed3e9SJustin Hibbits 3000aeed3e9SJustin Hibbits @Description Used by FM front-end for the PORT module when a port is freed 3010aeed3e9SJustin Hibbits to free all FM PORT resources. 3020aeed3e9SJustin Hibbits 3030aeed3e9SJustin Hibbits @Param[in] uint8_t Pointer 3040aeed3e9SJustin Hibbits *//***************************************************************************/ 3050aeed3e9SJustin Hibbits #define FM_FREE_PORT 5 3060aeed3e9SJustin Hibbits 3070aeed3e9SJustin Hibbits /**************************************************************************//** 3080aeed3e9SJustin Hibbits @Function FM_RESET_MAC 3090aeed3e9SJustin Hibbits 3100aeed3e9SJustin Hibbits @Description Used by front-end for the MAC module to reset the MAC registers 3110aeed3e9SJustin Hibbits 3120aeed3e9SJustin Hibbits @Param[in] t_FmIpcMacParams Pointer . 3130aeed3e9SJustin Hibbits *//***************************************************************************/ 3140aeed3e9SJustin Hibbits #define FM_RESET_MAC 6 3150aeed3e9SJustin Hibbits 3160aeed3e9SJustin Hibbits /**************************************************************************//** 3170aeed3e9SJustin Hibbits @Function FM_RESUME_STALLED_PORT 3180aeed3e9SJustin Hibbits 3190aeed3e9SJustin Hibbits @Description Used by FM front-end for the PORT module in order to 3200aeed3e9SJustin Hibbits release a stalled FM Port. 3210aeed3e9SJustin Hibbits 3220aeed3e9SJustin Hibbits @Param[in] uint8_t Pointer 3230aeed3e9SJustin Hibbits *//***************************************************************************/ 3240aeed3e9SJustin Hibbits #define FM_RESUME_STALLED_PORT 7 3250aeed3e9SJustin Hibbits 3260aeed3e9SJustin Hibbits /**************************************************************************//** 3270aeed3e9SJustin Hibbits @Function FM_IS_PORT_STALLED 3280aeed3e9SJustin Hibbits 3290aeed3e9SJustin Hibbits @Description Used by FM front-end for the PORT module in order to check whether 3300aeed3e9SJustin Hibbits an FM port is stalled. 3310aeed3e9SJustin Hibbits 3320aeed3e9SJustin Hibbits @Param[in/out] t_FmIcPortIsStalled Pointer 3330aeed3e9SJustin Hibbits *//***************************************************************************/ 3340aeed3e9SJustin Hibbits #define FM_IS_PORT_STALLED 8 3350aeed3e9SJustin Hibbits 3360aeed3e9SJustin Hibbits /**************************************************************************//** 337*852ba100SJustin Hibbits @Function FM_GET_PARAMS 3380aeed3e9SJustin Hibbits 3390aeed3e9SJustin Hibbits @Description Used by FM front-end for the PORT module in order to dump 340*852ba100SJustin Hibbits return FM parameters. 3410aeed3e9SJustin Hibbits 3420aeed3e9SJustin Hibbits @Param[in] uint8_t Pointer 3430aeed3e9SJustin Hibbits *//***************************************************************************/ 344*852ba100SJustin Hibbits #define FM_GET_PARAMS 10 3450aeed3e9SJustin Hibbits 3460aeed3e9SJustin Hibbits /**************************************************************************//** 3470aeed3e9SJustin Hibbits @Function FM_REGISTER_INTR 3480aeed3e9SJustin Hibbits 3490aeed3e9SJustin Hibbits @Description Used by FM front-end to register an interrupt handler to 3500aeed3e9SJustin Hibbits be called upon interrupt for guest. 3510aeed3e9SJustin Hibbits 3520aeed3e9SJustin Hibbits @Param[out] t_FmIpcRegisterIntr Pointer 3530aeed3e9SJustin Hibbits *//***************************************************************************/ 3540aeed3e9SJustin Hibbits #define FM_REGISTER_INTR 11 3550aeed3e9SJustin Hibbits 3560aeed3e9SJustin Hibbits /**************************************************************************//** 3570aeed3e9SJustin Hibbits @Function FM_DMA_STAT 3580aeed3e9SJustin Hibbits 3590aeed3e9SJustin Hibbits @Description Used by FM front-end to read the FM DMA status. 3600aeed3e9SJustin Hibbits 3610aeed3e9SJustin Hibbits @Param[out] t_FmIpcDmaStatus Pointer 3620aeed3e9SJustin Hibbits *//***************************************************************************/ 3630aeed3e9SJustin Hibbits #define FM_DMA_STAT 13 3640aeed3e9SJustin Hibbits 3650aeed3e9SJustin Hibbits /**************************************************************************//** 3660aeed3e9SJustin Hibbits @Function FM_ALLOC_FMAN_CTRL_EVENT_REG 3670aeed3e9SJustin Hibbits 3680aeed3e9SJustin Hibbits @Description Used by FM front-end to allocate event register. 3690aeed3e9SJustin Hibbits 3700aeed3e9SJustin Hibbits @Param[out] Event register id Pointer 3710aeed3e9SJustin Hibbits *//***************************************************************************/ 3720aeed3e9SJustin Hibbits #define FM_ALLOC_FMAN_CTRL_EVENT_REG 14 3730aeed3e9SJustin Hibbits 3740aeed3e9SJustin Hibbits /**************************************************************************//** 3750aeed3e9SJustin Hibbits @Function FM_FREE_FMAN_CTRL_EVENT_REG 3760aeed3e9SJustin Hibbits 3770aeed3e9SJustin Hibbits @Description Used by FM front-end to free locate event register. 3780aeed3e9SJustin Hibbits 3790aeed3e9SJustin Hibbits @Param[in] uint8_t Pointer - Event register id 3800aeed3e9SJustin Hibbits *//***************************************************************************/ 3810aeed3e9SJustin Hibbits #define FM_FREE_FMAN_CTRL_EVENT_REG 15 3820aeed3e9SJustin Hibbits 3830aeed3e9SJustin Hibbits /**************************************************************************//** 3840aeed3e9SJustin Hibbits @Function FM_SET_FMAN_CTRL_EVENTS_ENABLE 3850aeed3e9SJustin Hibbits 3860aeed3e9SJustin Hibbits @Description Used by FM front-end to enable events in the FPM 3870aeed3e9SJustin Hibbits Fman controller event register. 3880aeed3e9SJustin Hibbits 3890aeed3e9SJustin Hibbits @Param[in] t_FmIpcFmanEvents Pointer 3900aeed3e9SJustin Hibbits *//***************************************************************************/ 3910aeed3e9SJustin Hibbits #define FM_SET_FMAN_CTRL_EVENTS_ENABLE 16 3920aeed3e9SJustin Hibbits 3930aeed3e9SJustin Hibbits /**************************************************************************//** 3940aeed3e9SJustin Hibbits @Function FM_SET_FMAN_CTRL_EVENTS_ENABLE 3950aeed3e9SJustin Hibbits 3960aeed3e9SJustin Hibbits @Description Used by FM front-end to enable events in the FPM 3970aeed3e9SJustin Hibbits Fman controller event register. 3980aeed3e9SJustin Hibbits 3990aeed3e9SJustin Hibbits @Param[in/out] t_FmIpcFmanEvents Pointer 4000aeed3e9SJustin Hibbits *//***************************************************************************/ 4010aeed3e9SJustin Hibbits #define FM_GET_FMAN_CTRL_EVENTS_ENABLE 17 4020aeed3e9SJustin Hibbits 4030aeed3e9SJustin Hibbits /**************************************************************************//** 4040aeed3e9SJustin Hibbits @Function FM_SET_MAC_MAX_FRAME 4050aeed3e9SJustin Hibbits 4060aeed3e9SJustin Hibbits @Description Used by FM front-end to set MAC's MTU/RTU's in 4070aeed3e9SJustin Hibbits back-end. 4080aeed3e9SJustin Hibbits 4090aeed3e9SJustin Hibbits @Param[in/out] t_FmIpcMacMaxFrameParams Pointer 4100aeed3e9SJustin Hibbits *//***************************************************************************/ 4110aeed3e9SJustin Hibbits #define FM_SET_MAC_MAX_FRAME 18 4120aeed3e9SJustin Hibbits 4130aeed3e9SJustin Hibbits /**************************************************************************//** 4140aeed3e9SJustin Hibbits @Function FM_GET_PHYS_MURAM_BASE 4150aeed3e9SJustin Hibbits 4160aeed3e9SJustin Hibbits @Description Used by FM front-end in order to get MURAM base address 4170aeed3e9SJustin Hibbits 4180aeed3e9SJustin Hibbits @Param[in/out] t_FmIpcPhysAddr Pointer 4190aeed3e9SJustin Hibbits *//***************************************************************************/ 4200aeed3e9SJustin Hibbits #define FM_GET_PHYS_MURAM_BASE 19 4210aeed3e9SJustin Hibbits 4220aeed3e9SJustin Hibbits /**************************************************************************//** 4230aeed3e9SJustin Hibbits @Function FM_MASTER_IS_ALIVE 4240aeed3e9SJustin Hibbits 4250aeed3e9SJustin Hibbits @Description Used by FM front-end in order to verify Master is up 4260aeed3e9SJustin Hibbits 4270aeed3e9SJustin Hibbits @Param[in/out] bool 4280aeed3e9SJustin Hibbits *//***************************************************************************/ 4290aeed3e9SJustin Hibbits #define FM_MASTER_IS_ALIVE 20 4300aeed3e9SJustin Hibbits 4310aeed3e9SJustin Hibbits #define FM_ENABLE_RAM_ECC 21 4320aeed3e9SJustin Hibbits #define FM_DISABLE_RAM_ECC 22 4330aeed3e9SJustin Hibbits #define FM_SET_NUM_OF_FMAN_CTRL 23 4340aeed3e9SJustin Hibbits #define FM_SET_SIZE_OF_FIFO 24 4350aeed3e9SJustin Hibbits #define FM_SET_NUM_OF_TASKS 25 4360aeed3e9SJustin Hibbits #define FM_SET_NUM_OF_OPEN_DMAS 26 437*852ba100SJustin Hibbits #define FM_VSP_ALLOC 27 438*852ba100SJustin Hibbits #define FM_VSP_FREE 28 439*852ba100SJustin Hibbits #define FM_VSP_SET_PORT_WINDOW 29 440*852ba100SJustin Hibbits #define FM_GET_FMAN_CTRL_CODE_REV 30 441*852ba100SJustin Hibbits #define FM_SET_CONG_GRP_PFC_PRIO 31 4420aeed3e9SJustin Hibbits #ifdef FM_TX_ECC_FRMS_ERRATA_10GMAC_A004 4430aeed3e9SJustin Hibbits #define FM_10G_TX_ECC_WA 100 4440aeed3e9SJustin Hibbits #endif /* FM_TX_ECC_FRMS_ERRATA_10GMAC_A004 */ 4450aeed3e9SJustin Hibbits 4460aeed3e9SJustin Hibbits /***************************************************************************/ 4470aeed3e9SJustin Hibbits /************************ BACK-END-TO-FRONT-END*****************************/ 4480aeed3e9SJustin Hibbits /***************************************************************************/ 4490aeed3e9SJustin Hibbits 4500aeed3e9SJustin Hibbits /**************************************************************************//** 4510aeed3e9SJustin Hibbits @Function FM_GUEST_ISR 4520aeed3e9SJustin Hibbits 4530aeed3e9SJustin Hibbits @Description Used by FM back-end to report an interrupt to the front-end. 4540aeed3e9SJustin Hibbits 4550aeed3e9SJustin Hibbits @Param[out] t_FmIpcIsr Pointer 4560aeed3e9SJustin Hibbits *//***************************************************************************/ 4570aeed3e9SJustin Hibbits #define FM_GUEST_ISR 1 4580aeed3e9SJustin Hibbits 4590aeed3e9SJustin Hibbits 4600aeed3e9SJustin Hibbits 4610aeed3e9SJustin Hibbits /** @} */ /* end of FM_IPC_grp group */ 4620aeed3e9SJustin Hibbits /** @} */ /* end of FM_grp group */ 4630aeed3e9SJustin Hibbits 4640aeed3e9SJustin Hibbits 4650aeed3e9SJustin Hibbits #endif /* __FM_IPC_H */ 466