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_mac.c
360aeed3e9SJustin Hibbits
370aeed3e9SJustin Hibbits @Description FM MAC ...
380aeed3e9SJustin Hibbits *//***************************************************************************/
390aeed3e9SJustin Hibbits #include "std_ext.h"
400aeed3e9SJustin Hibbits #include "string_ext.h"
410aeed3e9SJustin Hibbits #include "sprint_ext.h"
420aeed3e9SJustin Hibbits #include "error_ext.h"
430aeed3e9SJustin Hibbits #include "fm_ext.h"
440aeed3e9SJustin Hibbits
450aeed3e9SJustin Hibbits #include "fm_common.h"
460aeed3e9SJustin Hibbits #include "fm_mac.h"
470aeed3e9SJustin Hibbits
480aeed3e9SJustin Hibbits
49*852ba100SJustin Hibbits /* ......................................................................... */
500aeed3e9SJustin Hibbits
FM_MAC_Config(t_FmMacParams * p_FmMacParam)510aeed3e9SJustin Hibbits t_Handle FM_MAC_Config (t_FmMacParams *p_FmMacParam)
520aeed3e9SJustin Hibbits {
530aeed3e9SJustin Hibbits t_FmMacControllerDriver *p_FmMacControllerDriver;
54*852ba100SJustin Hibbits uint16_t fmClkFreq;
550aeed3e9SJustin Hibbits
560aeed3e9SJustin Hibbits SANITY_CHECK_RETURN_VALUE(p_FmMacParam, E_INVALID_HANDLE, NULL);
570aeed3e9SJustin Hibbits
58*852ba100SJustin Hibbits fmClkFreq = FmGetClockFreq(p_FmMacParam->h_Fm);
59*852ba100SJustin Hibbits if (fmClkFreq == 0)
60*852ba100SJustin Hibbits {
61*852ba100SJustin Hibbits REPORT_ERROR(MAJOR, E_INVALID_STATE, ("Can't get clock for MAC!"));
62*852ba100SJustin Hibbits return NULL;
63*852ba100SJustin Hibbits }
64*852ba100SJustin Hibbits
65*852ba100SJustin Hibbits #if (DPAA_VERSION == 10)
660aeed3e9SJustin Hibbits if (ENET_SPEED_FROM_MODE(p_FmMacParam->enetMode) < e_ENET_SPEED_10000)
670aeed3e9SJustin Hibbits p_FmMacControllerDriver = (t_FmMacControllerDriver *)DTSEC_Config(p_FmMacParam);
680aeed3e9SJustin Hibbits else
69*852ba100SJustin Hibbits #if FM_MAX_NUM_OF_10G_MACS > 0
700aeed3e9SJustin Hibbits p_FmMacControllerDriver = (t_FmMacControllerDriver *)TGEC_Config(p_FmMacParam);
71*852ba100SJustin Hibbits #else
72*852ba100SJustin Hibbits p_FmMacControllerDriver = NULL;
73*852ba100SJustin Hibbits #endif /* FM_MAX_NUM_OF_10G_MACS > 0 */
74*852ba100SJustin Hibbits #else
75*852ba100SJustin Hibbits p_FmMacControllerDriver = (t_FmMacControllerDriver *)MEMAC_Config(p_FmMacParam);
76*852ba100SJustin Hibbits #endif /* (DPAA_VERSION == 10) */
770aeed3e9SJustin Hibbits
780aeed3e9SJustin Hibbits if (!p_FmMacControllerDriver)
790aeed3e9SJustin Hibbits return NULL;
800aeed3e9SJustin Hibbits
810aeed3e9SJustin Hibbits p_FmMacControllerDriver->h_Fm = p_FmMacParam->h_Fm;
820aeed3e9SJustin Hibbits p_FmMacControllerDriver->enetMode = p_FmMacParam->enetMode;
830aeed3e9SJustin Hibbits p_FmMacControllerDriver->macId = p_FmMacParam->macId;
840aeed3e9SJustin Hibbits p_FmMacControllerDriver->resetOnInit = DEFAULT_resetOnInit;
850aeed3e9SJustin Hibbits
86*852ba100SJustin Hibbits p_FmMacControllerDriver->clkFreq = fmClkFreq;
87*852ba100SJustin Hibbits
880aeed3e9SJustin Hibbits return (t_Handle)p_FmMacControllerDriver;
890aeed3e9SJustin Hibbits }
900aeed3e9SJustin Hibbits
91*852ba100SJustin Hibbits /* ......................................................................... */
920aeed3e9SJustin Hibbits
FM_MAC_Init(t_Handle h_FmMac)930aeed3e9SJustin Hibbits t_Error FM_MAC_Init (t_Handle h_FmMac)
940aeed3e9SJustin Hibbits {
950aeed3e9SJustin Hibbits t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
960aeed3e9SJustin Hibbits
970aeed3e9SJustin Hibbits SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
980aeed3e9SJustin Hibbits
990aeed3e9SJustin Hibbits if (p_FmMacControllerDriver->resetOnInit &&
100*852ba100SJustin Hibbits !p_FmMacControllerDriver->f_FM_MAC_ConfigResetOnInit &&
1010aeed3e9SJustin Hibbits (FmResetMac(p_FmMacControllerDriver->h_Fm,
102*852ba100SJustin Hibbits ((ENET_INTERFACE_FROM_MODE(p_FmMacControllerDriver->enetMode) == e_ENET_IF_XGMII) ?
103*852ba100SJustin Hibbits e_FM_MAC_10G : e_FM_MAC_1G),
1040aeed3e9SJustin Hibbits p_FmMacControllerDriver->macId) != E_OK))
1050aeed3e9SJustin Hibbits RETURN_ERROR(MAJOR, E_INVALID_STATE, ("Can't reset MAC!"));
1060aeed3e9SJustin Hibbits
1070aeed3e9SJustin Hibbits if (p_FmMacControllerDriver->f_FM_MAC_Init)
1080aeed3e9SJustin Hibbits return p_FmMacControllerDriver->f_FM_MAC_Init(h_FmMac);
1090aeed3e9SJustin Hibbits RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
1100aeed3e9SJustin Hibbits }
1110aeed3e9SJustin Hibbits
112*852ba100SJustin Hibbits /* ......................................................................... */
1130aeed3e9SJustin Hibbits
FM_MAC_Free(t_Handle h_FmMac)1140aeed3e9SJustin Hibbits t_Error FM_MAC_Free (t_Handle h_FmMac)
1150aeed3e9SJustin Hibbits {
1160aeed3e9SJustin Hibbits t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
1170aeed3e9SJustin Hibbits
1180aeed3e9SJustin Hibbits SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
1190aeed3e9SJustin Hibbits
1200aeed3e9SJustin Hibbits if (p_FmMacControllerDriver->f_FM_MAC_Free)
1210aeed3e9SJustin Hibbits return p_FmMacControllerDriver->f_FM_MAC_Free(h_FmMac);
1220aeed3e9SJustin Hibbits
1230aeed3e9SJustin Hibbits RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
1240aeed3e9SJustin Hibbits }
1250aeed3e9SJustin Hibbits
126*852ba100SJustin Hibbits /* ......................................................................... */
1270aeed3e9SJustin Hibbits
FM_MAC_ConfigResetOnInit(t_Handle h_FmMac,bool enable)1280aeed3e9SJustin Hibbits t_Error FM_MAC_ConfigResetOnInit (t_Handle h_FmMac, bool enable)
1290aeed3e9SJustin Hibbits {
1300aeed3e9SJustin Hibbits t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
1310aeed3e9SJustin Hibbits
1320aeed3e9SJustin Hibbits SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
1330aeed3e9SJustin Hibbits
134*852ba100SJustin Hibbits if (p_FmMacControllerDriver->f_FM_MAC_ConfigResetOnInit)
135*852ba100SJustin Hibbits return p_FmMacControllerDriver->f_FM_MAC_ConfigResetOnInit(h_FmMac, enable);
136*852ba100SJustin Hibbits
1370aeed3e9SJustin Hibbits p_FmMacControllerDriver->resetOnInit = enable;
1380aeed3e9SJustin Hibbits
1390aeed3e9SJustin Hibbits return E_OK;
1400aeed3e9SJustin Hibbits }
1410aeed3e9SJustin Hibbits
142*852ba100SJustin Hibbits /* ......................................................................... */
1430aeed3e9SJustin Hibbits
FM_MAC_ConfigLoopback(t_Handle h_FmMac,bool newVal)1440aeed3e9SJustin Hibbits t_Error FM_MAC_ConfigLoopback (t_Handle h_FmMac, bool newVal)
1450aeed3e9SJustin Hibbits {
1460aeed3e9SJustin Hibbits t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
1470aeed3e9SJustin Hibbits
1480aeed3e9SJustin Hibbits SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
1490aeed3e9SJustin Hibbits
1500aeed3e9SJustin Hibbits if (p_FmMacControllerDriver->f_FM_MAC_ConfigLoopback)
1510aeed3e9SJustin Hibbits return p_FmMacControllerDriver->f_FM_MAC_ConfigLoopback(h_FmMac, newVal);
1520aeed3e9SJustin Hibbits
1530aeed3e9SJustin Hibbits RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
1540aeed3e9SJustin Hibbits }
1550aeed3e9SJustin Hibbits
156*852ba100SJustin Hibbits /* ......................................................................... */
1570aeed3e9SJustin Hibbits
FM_MAC_ConfigMaxFrameLength(t_Handle h_FmMac,uint16_t newVal)1580aeed3e9SJustin Hibbits t_Error FM_MAC_ConfigMaxFrameLength (t_Handle h_FmMac, uint16_t newVal)
1590aeed3e9SJustin Hibbits {
1600aeed3e9SJustin Hibbits t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
1610aeed3e9SJustin Hibbits
1620aeed3e9SJustin Hibbits SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
1630aeed3e9SJustin Hibbits
1640aeed3e9SJustin Hibbits if (p_FmMacControllerDriver->f_FM_MAC_ConfigMaxFrameLength)
1650aeed3e9SJustin Hibbits return p_FmMacControllerDriver->f_FM_MAC_ConfigMaxFrameLength(h_FmMac, newVal);
1660aeed3e9SJustin Hibbits RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
1670aeed3e9SJustin Hibbits }
1680aeed3e9SJustin Hibbits
169*852ba100SJustin Hibbits /* ......................................................................... */
1700aeed3e9SJustin Hibbits
FM_MAC_ConfigWan(t_Handle h_FmMac,bool flag)1710aeed3e9SJustin Hibbits t_Error FM_MAC_ConfigWan (t_Handle h_FmMac, bool flag)
1720aeed3e9SJustin Hibbits {
1730aeed3e9SJustin Hibbits t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
1740aeed3e9SJustin Hibbits
1750aeed3e9SJustin Hibbits SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
1760aeed3e9SJustin Hibbits
1770aeed3e9SJustin Hibbits if (p_FmMacControllerDriver->f_FM_MAC_ConfigWan)
1780aeed3e9SJustin Hibbits return p_FmMacControllerDriver->f_FM_MAC_ConfigWan(h_FmMac, flag);
1790aeed3e9SJustin Hibbits
1800aeed3e9SJustin Hibbits RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
1810aeed3e9SJustin Hibbits }
1820aeed3e9SJustin Hibbits
183*852ba100SJustin Hibbits /* ......................................................................... */
1840aeed3e9SJustin Hibbits
FM_MAC_ConfigPadAndCrc(t_Handle h_FmMac,bool newVal)1850aeed3e9SJustin Hibbits t_Error FM_MAC_ConfigPadAndCrc (t_Handle h_FmMac, bool newVal)
1860aeed3e9SJustin Hibbits {
1870aeed3e9SJustin Hibbits t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
1880aeed3e9SJustin Hibbits
1890aeed3e9SJustin Hibbits SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
1900aeed3e9SJustin Hibbits
1910aeed3e9SJustin Hibbits if (p_FmMacControllerDriver->f_FM_MAC_ConfigPadAndCrc)
1920aeed3e9SJustin Hibbits return p_FmMacControllerDriver->f_FM_MAC_ConfigPadAndCrc(h_FmMac, newVal);
1930aeed3e9SJustin Hibbits
1940aeed3e9SJustin Hibbits RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
1950aeed3e9SJustin Hibbits }
1960aeed3e9SJustin Hibbits
197*852ba100SJustin Hibbits /* ......................................................................... */
1980aeed3e9SJustin Hibbits
FM_MAC_ConfigHalfDuplex(t_Handle h_FmMac,bool newVal)1990aeed3e9SJustin Hibbits t_Error FM_MAC_ConfigHalfDuplex (t_Handle h_FmMac, bool newVal)
2000aeed3e9SJustin Hibbits {
2010aeed3e9SJustin Hibbits t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
2020aeed3e9SJustin Hibbits
2030aeed3e9SJustin Hibbits SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
2040aeed3e9SJustin Hibbits
2050aeed3e9SJustin Hibbits if (p_FmMacControllerDriver->f_FM_MAC_ConfigHalfDuplex)
2060aeed3e9SJustin Hibbits return p_FmMacControllerDriver->f_FM_MAC_ConfigHalfDuplex(h_FmMac,newVal);
2070aeed3e9SJustin Hibbits
2080aeed3e9SJustin Hibbits RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
2090aeed3e9SJustin Hibbits }
2100aeed3e9SJustin Hibbits
211*852ba100SJustin Hibbits /* ......................................................................... */
212*852ba100SJustin Hibbits
FM_MAC_ConfigTbiPhyAddr(t_Handle h_FmMac,uint8_t newVal)213*852ba100SJustin Hibbits t_Error FM_MAC_ConfigTbiPhyAddr (t_Handle h_FmMac, uint8_t newVal)
214*852ba100SJustin Hibbits {
215*852ba100SJustin Hibbits t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
216*852ba100SJustin Hibbits
217*852ba100SJustin Hibbits SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
218*852ba100SJustin Hibbits
219*852ba100SJustin Hibbits if (p_FmMacControllerDriver->f_FM_MAC_ConfigTbiPhyAddr)
220*852ba100SJustin Hibbits return p_FmMacControllerDriver->f_FM_MAC_ConfigTbiPhyAddr(h_FmMac,newVal);
221*852ba100SJustin Hibbits
222*852ba100SJustin Hibbits RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
223*852ba100SJustin Hibbits }
224*852ba100SJustin Hibbits
225*852ba100SJustin Hibbits /* ......................................................................... */
2260aeed3e9SJustin Hibbits
FM_MAC_ConfigLengthCheck(t_Handle h_FmMac,bool newVal)2270aeed3e9SJustin Hibbits t_Error FM_MAC_ConfigLengthCheck (t_Handle h_FmMac, bool newVal)
2280aeed3e9SJustin Hibbits {
2290aeed3e9SJustin Hibbits t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
2300aeed3e9SJustin Hibbits
2310aeed3e9SJustin Hibbits SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
2320aeed3e9SJustin Hibbits
2330aeed3e9SJustin Hibbits if (p_FmMacControllerDriver->f_FM_MAC_ConfigLengthCheck)
2340aeed3e9SJustin Hibbits return p_FmMacControllerDriver->f_FM_MAC_ConfigLengthCheck(h_FmMac,newVal);
2350aeed3e9SJustin Hibbits
2360aeed3e9SJustin Hibbits RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
2370aeed3e9SJustin Hibbits }
2380aeed3e9SJustin Hibbits
239*852ba100SJustin Hibbits /* ......................................................................... */
2400aeed3e9SJustin Hibbits
FM_MAC_ConfigException(t_Handle h_FmMac,e_FmMacExceptions ex,bool enable)2410aeed3e9SJustin Hibbits t_Error FM_MAC_ConfigException (t_Handle h_FmMac, e_FmMacExceptions ex, bool enable)
2420aeed3e9SJustin Hibbits {
2430aeed3e9SJustin Hibbits t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
2440aeed3e9SJustin Hibbits
2450aeed3e9SJustin Hibbits SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
2460aeed3e9SJustin Hibbits
2470aeed3e9SJustin Hibbits if (p_FmMacControllerDriver->f_FM_MAC_ConfigException)
2480aeed3e9SJustin Hibbits return p_FmMacControllerDriver->f_FM_MAC_ConfigException(h_FmMac, ex, enable);
2490aeed3e9SJustin Hibbits
2500aeed3e9SJustin Hibbits RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
2510aeed3e9SJustin Hibbits }
2520aeed3e9SJustin Hibbits
2530aeed3e9SJustin Hibbits #ifdef FM_TX_ECC_FRMS_ERRATA_10GMAC_A004
254*852ba100SJustin Hibbits /* ......................................................................... */
2550aeed3e9SJustin Hibbits
FM_MAC_ConfigSkipFman11Workaround(t_Handle h_FmMac)2560aeed3e9SJustin Hibbits t_Error FM_MAC_ConfigSkipFman11Workaround (t_Handle h_FmMac)
2570aeed3e9SJustin Hibbits {
2580aeed3e9SJustin Hibbits t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
2590aeed3e9SJustin Hibbits
2600aeed3e9SJustin Hibbits SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
2610aeed3e9SJustin Hibbits
2620aeed3e9SJustin Hibbits if (p_FmMacControllerDriver->f_FM_MAC_ConfigSkipFman11Workaround)
2630aeed3e9SJustin Hibbits return p_FmMacControllerDriver->f_FM_MAC_ConfigSkipFman11Workaround(h_FmMac);
2640aeed3e9SJustin Hibbits
2650aeed3e9SJustin Hibbits RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
2660aeed3e9SJustin Hibbits }
2670aeed3e9SJustin Hibbits #endif /* FM_TX_ECC_FRMS_ERRATA_10GMAC_A004 */
2680aeed3e9SJustin Hibbits
2690aeed3e9SJustin Hibbits
2700aeed3e9SJustin Hibbits /*****************************************************************************/
2710aeed3e9SJustin Hibbits /* Run Time Control */
2720aeed3e9SJustin Hibbits /*****************************************************************************/
2730aeed3e9SJustin Hibbits
274*852ba100SJustin Hibbits /* ......................................................................... */
2750aeed3e9SJustin Hibbits
FM_MAC_Enable(t_Handle h_FmMac,e_CommMode mode)2760aeed3e9SJustin Hibbits t_Error FM_MAC_Enable (t_Handle h_FmMac, e_CommMode mode)
2770aeed3e9SJustin Hibbits {
2780aeed3e9SJustin Hibbits t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
2790aeed3e9SJustin Hibbits
2800aeed3e9SJustin Hibbits SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
2810aeed3e9SJustin Hibbits
2820aeed3e9SJustin Hibbits if (p_FmMacControllerDriver->f_FM_MAC_Enable)
2830aeed3e9SJustin Hibbits return p_FmMacControllerDriver->f_FM_MAC_Enable(h_FmMac, mode);
2840aeed3e9SJustin Hibbits
2850aeed3e9SJustin Hibbits RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
2860aeed3e9SJustin Hibbits }
2870aeed3e9SJustin Hibbits
288*852ba100SJustin Hibbits /* ......................................................................... */
2890aeed3e9SJustin Hibbits
FM_MAC_Disable(t_Handle h_FmMac,e_CommMode mode)2900aeed3e9SJustin Hibbits t_Error FM_MAC_Disable (t_Handle h_FmMac, e_CommMode mode)
2910aeed3e9SJustin Hibbits {
2920aeed3e9SJustin Hibbits t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
2930aeed3e9SJustin Hibbits
2940aeed3e9SJustin Hibbits SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
2950aeed3e9SJustin Hibbits
2960aeed3e9SJustin Hibbits if (p_FmMacControllerDriver->f_FM_MAC_Disable)
2970aeed3e9SJustin Hibbits return p_FmMacControllerDriver->f_FM_MAC_Disable(h_FmMac, mode);
2980aeed3e9SJustin Hibbits
2990aeed3e9SJustin Hibbits RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
3000aeed3e9SJustin Hibbits }
3010aeed3e9SJustin Hibbits
FM_MAC_Resume(t_Handle h_FmMac)302*852ba100SJustin Hibbits t_Error FM_MAC_Resume (t_Handle h_FmMac)
303*852ba100SJustin Hibbits {
304*852ba100SJustin Hibbits t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
305*852ba100SJustin Hibbits
306*852ba100SJustin Hibbits SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
307*852ba100SJustin Hibbits
308*852ba100SJustin Hibbits if (p_FmMacControllerDriver->f_FM_MAC_Resume)
309*852ba100SJustin Hibbits return p_FmMacControllerDriver->f_FM_MAC_Resume(h_FmMac);
310*852ba100SJustin Hibbits
311*852ba100SJustin Hibbits return E_OK;
312*852ba100SJustin Hibbits }
313*852ba100SJustin Hibbits
314*852ba100SJustin Hibbits /* ......................................................................... */
3150aeed3e9SJustin Hibbits
FM_MAC_Enable1588TimeStamp(t_Handle h_FmMac)3160aeed3e9SJustin Hibbits t_Error FM_MAC_Enable1588TimeStamp (t_Handle h_FmMac)
3170aeed3e9SJustin Hibbits {
3180aeed3e9SJustin Hibbits t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
3190aeed3e9SJustin Hibbits
3200aeed3e9SJustin Hibbits SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
3210aeed3e9SJustin Hibbits
3220aeed3e9SJustin Hibbits if (p_FmMacControllerDriver->f_FM_MAC_Enable1588TimeStamp)
3230aeed3e9SJustin Hibbits return p_FmMacControllerDriver->f_FM_MAC_Enable1588TimeStamp(h_FmMac);
3240aeed3e9SJustin Hibbits
3250aeed3e9SJustin Hibbits RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
3260aeed3e9SJustin Hibbits }
3270aeed3e9SJustin Hibbits
328*852ba100SJustin Hibbits /* ......................................................................... */
3290aeed3e9SJustin Hibbits
FM_MAC_Disable1588TimeStamp(t_Handle h_FmMac)3300aeed3e9SJustin Hibbits t_Error FM_MAC_Disable1588TimeStamp (t_Handle h_FmMac)
3310aeed3e9SJustin Hibbits {
3320aeed3e9SJustin Hibbits t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
3330aeed3e9SJustin Hibbits
3340aeed3e9SJustin Hibbits SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
3350aeed3e9SJustin Hibbits
3360aeed3e9SJustin Hibbits if (p_FmMacControllerDriver->f_FM_MAC_Disable1588TimeStamp)
3370aeed3e9SJustin Hibbits return p_FmMacControllerDriver->f_FM_MAC_Disable1588TimeStamp(h_FmMac);
3380aeed3e9SJustin Hibbits
3390aeed3e9SJustin Hibbits RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
3400aeed3e9SJustin Hibbits }
3410aeed3e9SJustin Hibbits
342*852ba100SJustin Hibbits /* ......................................................................... */
3430aeed3e9SJustin Hibbits
FM_MAC_SetTxAutoPauseFrames(t_Handle h_FmMac,uint16_t pauseTime)344*852ba100SJustin Hibbits t_Error FM_MAC_SetTxAutoPauseFrames(t_Handle h_FmMac,
345*852ba100SJustin Hibbits uint16_t pauseTime)
3460aeed3e9SJustin Hibbits {
3470aeed3e9SJustin Hibbits t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
3480aeed3e9SJustin Hibbits
3490aeed3e9SJustin Hibbits SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
3500aeed3e9SJustin Hibbits
3510aeed3e9SJustin Hibbits if (p_FmMacControllerDriver->f_FM_MAC_SetTxAutoPauseFrames)
352*852ba100SJustin Hibbits return p_FmMacControllerDriver->f_FM_MAC_SetTxAutoPauseFrames(h_FmMac,
353*852ba100SJustin Hibbits pauseTime);
3540aeed3e9SJustin Hibbits
3550aeed3e9SJustin Hibbits RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
3560aeed3e9SJustin Hibbits }
3570aeed3e9SJustin Hibbits
358*852ba100SJustin Hibbits /* ......................................................................... */
359*852ba100SJustin Hibbits
FM_MAC_SetTxPauseFrames(t_Handle h_FmMac,uint8_t priority,uint16_t pauseTime,uint16_t threshTime)360*852ba100SJustin Hibbits t_Error FM_MAC_SetTxPauseFrames(t_Handle h_FmMac,
361*852ba100SJustin Hibbits uint8_t priority,
362*852ba100SJustin Hibbits uint16_t pauseTime,
363*852ba100SJustin Hibbits uint16_t threshTime)
364*852ba100SJustin Hibbits {
365*852ba100SJustin Hibbits t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
366*852ba100SJustin Hibbits
367*852ba100SJustin Hibbits SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
368*852ba100SJustin Hibbits
369*852ba100SJustin Hibbits if (p_FmMacControllerDriver->f_FM_MAC_SetTxPauseFrames)
370*852ba100SJustin Hibbits return p_FmMacControllerDriver->f_FM_MAC_SetTxPauseFrames(h_FmMac,
371*852ba100SJustin Hibbits priority,
372*852ba100SJustin Hibbits pauseTime,
373*852ba100SJustin Hibbits threshTime);
374*852ba100SJustin Hibbits
375*852ba100SJustin Hibbits RETURN_ERROR(MAJOR, E_NOT_SUPPORTED, NO_MSG);
376*852ba100SJustin Hibbits }
377*852ba100SJustin Hibbits
378*852ba100SJustin Hibbits /* ......................................................................... */
3790aeed3e9SJustin Hibbits
FM_MAC_SetRxIgnorePauseFrames(t_Handle h_FmMac,bool en)3800aeed3e9SJustin Hibbits t_Error FM_MAC_SetRxIgnorePauseFrames (t_Handle h_FmMac, bool en)
3810aeed3e9SJustin Hibbits {
3820aeed3e9SJustin Hibbits t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
3830aeed3e9SJustin Hibbits
3840aeed3e9SJustin Hibbits SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
3850aeed3e9SJustin Hibbits
3860aeed3e9SJustin Hibbits if (p_FmMacControllerDriver->f_FM_MAC_SetRxIgnorePauseFrames)
3870aeed3e9SJustin Hibbits return p_FmMacControllerDriver->f_FM_MAC_SetRxIgnorePauseFrames(h_FmMac, en);
3880aeed3e9SJustin Hibbits
3890aeed3e9SJustin Hibbits RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
3900aeed3e9SJustin Hibbits }
3910aeed3e9SJustin Hibbits
392*852ba100SJustin Hibbits /* ......................................................................... */
393*852ba100SJustin Hibbits
FM_MAC_SetWakeOnLan(t_Handle h_FmMac,bool en)394*852ba100SJustin Hibbits t_Error FM_MAC_SetWakeOnLan (t_Handle h_FmMac, bool en)
395*852ba100SJustin Hibbits {
396*852ba100SJustin Hibbits t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
397*852ba100SJustin Hibbits
398*852ba100SJustin Hibbits SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
399*852ba100SJustin Hibbits
400*852ba100SJustin Hibbits if (p_FmMacControllerDriver->f_FM_MAC_SetWakeOnLan)
401*852ba100SJustin Hibbits return p_FmMacControllerDriver->f_FM_MAC_SetWakeOnLan(h_FmMac, en);
402*852ba100SJustin Hibbits
403*852ba100SJustin Hibbits RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
404*852ba100SJustin Hibbits }
405*852ba100SJustin Hibbits
406*852ba100SJustin Hibbits /* ......................................................................... */
4070aeed3e9SJustin Hibbits
FM_MAC_ResetCounters(t_Handle h_FmMac)4080aeed3e9SJustin Hibbits t_Error FM_MAC_ResetCounters (t_Handle h_FmMac)
4090aeed3e9SJustin Hibbits {
4100aeed3e9SJustin Hibbits t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
4110aeed3e9SJustin Hibbits
4120aeed3e9SJustin Hibbits SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
4130aeed3e9SJustin Hibbits
4140aeed3e9SJustin Hibbits if (p_FmMacControllerDriver->f_FM_MAC_ResetCounters)
4150aeed3e9SJustin Hibbits return p_FmMacControllerDriver->f_FM_MAC_ResetCounters(h_FmMac);
4160aeed3e9SJustin Hibbits
4170aeed3e9SJustin Hibbits RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
4180aeed3e9SJustin Hibbits }
4190aeed3e9SJustin Hibbits
420*852ba100SJustin Hibbits /* ......................................................................... */
4210aeed3e9SJustin Hibbits
FM_MAC_SetException(t_Handle h_FmMac,e_FmMacExceptions ex,bool enable)4220aeed3e9SJustin Hibbits t_Error FM_MAC_SetException(t_Handle h_FmMac, e_FmMacExceptions ex, bool enable)
4230aeed3e9SJustin Hibbits {
4240aeed3e9SJustin Hibbits t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
4250aeed3e9SJustin Hibbits
4260aeed3e9SJustin Hibbits SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
4270aeed3e9SJustin Hibbits
4280aeed3e9SJustin Hibbits if (p_FmMacControllerDriver->f_FM_MAC_SetException)
4290aeed3e9SJustin Hibbits return p_FmMacControllerDriver->f_FM_MAC_SetException(h_FmMac, ex, enable);
4300aeed3e9SJustin Hibbits
4310aeed3e9SJustin Hibbits RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
4320aeed3e9SJustin Hibbits }
4330aeed3e9SJustin Hibbits
434*852ba100SJustin Hibbits /* ......................................................................... */
4350aeed3e9SJustin Hibbits
FM_MAC_SetStatistics(t_Handle h_FmMac,e_FmMacStatisticsLevel statisticsLevel)4360aeed3e9SJustin Hibbits t_Error FM_MAC_SetStatistics (t_Handle h_FmMac, e_FmMacStatisticsLevel statisticsLevel)
4370aeed3e9SJustin Hibbits {
4380aeed3e9SJustin Hibbits t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
4390aeed3e9SJustin Hibbits
4400aeed3e9SJustin Hibbits SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
4410aeed3e9SJustin Hibbits
4420aeed3e9SJustin Hibbits if (p_FmMacControllerDriver->f_FM_MAC_SetStatistics)
4430aeed3e9SJustin Hibbits return p_FmMacControllerDriver->f_FM_MAC_SetStatistics(h_FmMac, statisticsLevel);
444*852ba100SJustin Hibbits
4450aeed3e9SJustin Hibbits RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
4460aeed3e9SJustin Hibbits }
4470aeed3e9SJustin Hibbits
448*852ba100SJustin Hibbits /* ......................................................................... */
4490aeed3e9SJustin Hibbits
FM_MAC_GetStatistics(t_Handle h_FmMac,t_FmMacStatistics * p_Statistics)4500aeed3e9SJustin Hibbits t_Error FM_MAC_GetStatistics (t_Handle h_FmMac, t_FmMacStatistics *p_Statistics)
4510aeed3e9SJustin Hibbits {
4520aeed3e9SJustin Hibbits t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
4530aeed3e9SJustin Hibbits
4540aeed3e9SJustin Hibbits SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
4550aeed3e9SJustin Hibbits
4560aeed3e9SJustin Hibbits if (p_FmMacControllerDriver->f_FM_MAC_GetStatistics)
4570aeed3e9SJustin Hibbits return p_FmMacControllerDriver->f_FM_MAC_GetStatistics(h_FmMac, p_Statistics);
4580aeed3e9SJustin Hibbits
4590aeed3e9SJustin Hibbits RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
4600aeed3e9SJustin Hibbits }
4610aeed3e9SJustin Hibbits
462*852ba100SJustin Hibbits /* ......................................................................... */
4630aeed3e9SJustin Hibbits
FM_MAC_ModifyMacAddr(t_Handle h_FmMac,t_EnetAddr * p_EnetAddr)4640aeed3e9SJustin Hibbits t_Error FM_MAC_ModifyMacAddr (t_Handle h_FmMac, t_EnetAddr *p_EnetAddr)
4650aeed3e9SJustin Hibbits {
4660aeed3e9SJustin Hibbits t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
4670aeed3e9SJustin Hibbits
4680aeed3e9SJustin Hibbits SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
4690aeed3e9SJustin Hibbits
4700aeed3e9SJustin Hibbits if (p_FmMacControllerDriver->f_FM_MAC_ModifyMacAddr)
4710aeed3e9SJustin Hibbits return p_FmMacControllerDriver->f_FM_MAC_ModifyMacAddr(h_FmMac, p_EnetAddr);
4720aeed3e9SJustin Hibbits
4730aeed3e9SJustin Hibbits RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
4740aeed3e9SJustin Hibbits }
4750aeed3e9SJustin Hibbits
476*852ba100SJustin Hibbits /* ......................................................................... */
4770aeed3e9SJustin Hibbits
FM_MAC_AddHashMacAddr(t_Handle h_FmMac,t_EnetAddr * p_EnetAddr)4780aeed3e9SJustin Hibbits t_Error FM_MAC_AddHashMacAddr (t_Handle h_FmMac, t_EnetAddr *p_EnetAddr)
4790aeed3e9SJustin Hibbits {
4800aeed3e9SJustin Hibbits t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
4810aeed3e9SJustin Hibbits
4820aeed3e9SJustin Hibbits SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
4830aeed3e9SJustin Hibbits
4840aeed3e9SJustin Hibbits if (p_FmMacControllerDriver->f_FM_MAC_AddHashMacAddr)
4850aeed3e9SJustin Hibbits return p_FmMacControllerDriver->f_FM_MAC_AddHashMacAddr(h_FmMac, p_EnetAddr);
4860aeed3e9SJustin Hibbits
4870aeed3e9SJustin Hibbits RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
4880aeed3e9SJustin Hibbits }
4890aeed3e9SJustin Hibbits
490*852ba100SJustin Hibbits /* ......................................................................... */
4910aeed3e9SJustin Hibbits
FM_MAC_RemoveHashMacAddr(t_Handle h_FmMac,t_EnetAddr * p_EnetAddr)4920aeed3e9SJustin Hibbits t_Error FM_MAC_RemoveHashMacAddr (t_Handle h_FmMac, t_EnetAddr *p_EnetAddr)
4930aeed3e9SJustin Hibbits {
4940aeed3e9SJustin Hibbits t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
4950aeed3e9SJustin Hibbits
4960aeed3e9SJustin Hibbits SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
4970aeed3e9SJustin Hibbits
4980aeed3e9SJustin Hibbits if (p_FmMacControllerDriver->f_FM_MAC_RemoveHashMacAddr)
4990aeed3e9SJustin Hibbits return p_FmMacControllerDriver->f_FM_MAC_RemoveHashMacAddr(h_FmMac, p_EnetAddr);
5000aeed3e9SJustin Hibbits
5010aeed3e9SJustin Hibbits RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
5020aeed3e9SJustin Hibbits }
5030aeed3e9SJustin Hibbits
504*852ba100SJustin Hibbits /* ......................................................................... */
5050aeed3e9SJustin Hibbits
FM_MAC_AddExactMatchMacAddr(t_Handle h_FmMac,t_EnetAddr * p_EnetAddr)5060aeed3e9SJustin Hibbits t_Error FM_MAC_AddExactMatchMacAddr (t_Handle h_FmMac, t_EnetAddr *p_EnetAddr)
5070aeed3e9SJustin Hibbits {
5080aeed3e9SJustin Hibbits t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
5090aeed3e9SJustin Hibbits
5100aeed3e9SJustin Hibbits SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
5110aeed3e9SJustin Hibbits
5120aeed3e9SJustin Hibbits if (p_FmMacControllerDriver->f_FM_MAC_AddExactMatchMacAddr)
5130aeed3e9SJustin Hibbits return p_FmMacControllerDriver->f_FM_MAC_AddExactMatchMacAddr(h_FmMac, p_EnetAddr);
5140aeed3e9SJustin Hibbits
5150aeed3e9SJustin Hibbits RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
5160aeed3e9SJustin Hibbits }
5170aeed3e9SJustin Hibbits
518*852ba100SJustin Hibbits /* ......................................................................... */
5190aeed3e9SJustin Hibbits
FM_MAC_RemovelExactMatchMacAddr(t_Handle h_FmMac,t_EnetAddr * p_EnetAddr)5200aeed3e9SJustin Hibbits t_Error FM_MAC_RemovelExactMatchMacAddr (t_Handle h_FmMac, t_EnetAddr *p_EnetAddr)
5210aeed3e9SJustin Hibbits {
5220aeed3e9SJustin Hibbits t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
5230aeed3e9SJustin Hibbits
5240aeed3e9SJustin Hibbits SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
5250aeed3e9SJustin Hibbits
5260aeed3e9SJustin Hibbits if (p_FmMacControllerDriver->f_FM_MAC_RemovelExactMatchMacAddr)
5270aeed3e9SJustin Hibbits return p_FmMacControllerDriver->f_FM_MAC_RemovelExactMatchMacAddr(h_FmMac, p_EnetAddr);
5280aeed3e9SJustin Hibbits
5290aeed3e9SJustin Hibbits RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
5300aeed3e9SJustin Hibbits }
5310aeed3e9SJustin Hibbits
532*852ba100SJustin Hibbits /* ......................................................................... */
5330aeed3e9SJustin Hibbits
FM_MAC_GetVesrion(t_Handle h_FmMac,uint32_t * macVresion)5340aeed3e9SJustin Hibbits t_Error FM_MAC_GetVesrion (t_Handle h_FmMac, uint32_t *macVresion)
5350aeed3e9SJustin Hibbits {
5360aeed3e9SJustin Hibbits t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
5370aeed3e9SJustin Hibbits
5380aeed3e9SJustin Hibbits SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
5390aeed3e9SJustin Hibbits
5400aeed3e9SJustin Hibbits if (p_FmMacControllerDriver->f_FM_MAC_GetVersion)
5410aeed3e9SJustin Hibbits return p_FmMacControllerDriver->f_FM_MAC_GetVersion(h_FmMac, macVresion);
5420aeed3e9SJustin Hibbits
5430aeed3e9SJustin Hibbits RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
5440aeed3e9SJustin Hibbits
5450aeed3e9SJustin Hibbits }
5460aeed3e9SJustin Hibbits
547*852ba100SJustin Hibbits /* ......................................................................... */
5480aeed3e9SJustin Hibbits
FM_MAC_GetId(t_Handle h_FmMac,uint32_t * macId)5490aeed3e9SJustin Hibbits t_Error FM_MAC_GetId (t_Handle h_FmMac, uint32_t *macId)
5500aeed3e9SJustin Hibbits {
5510aeed3e9SJustin Hibbits t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
5520aeed3e9SJustin Hibbits
5530aeed3e9SJustin Hibbits SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
5540aeed3e9SJustin Hibbits
5550aeed3e9SJustin Hibbits if (p_FmMacControllerDriver->f_FM_MAC_GetId)
5560aeed3e9SJustin Hibbits return p_FmMacControllerDriver->f_FM_MAC_GetId(h_FmMac, macId);
5570aeed3e9SJustin Hibbits
5580aeed3e9SJustin Hibbits RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
5590aeed3e9SJustin Hibbits }
5600aeed3e9SJustin Hibbits
561*852ba100SJustin Hibbits /* ......................................................................... */
5620aeed3e9SJustin Hibbits
FM_MAC_SetPromiscuous(t_Handle h_FmMac,bool newVal)5630aeed3e9SJustin Hibbits t_Error FM_MAC_SetPromiscuous (t_Handle h_FmMac, bool newVal)
5640aeed3e9SJustin Hibbits {
5650aeed3e9SJustin Hibbits t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
5660aeed3e9SJustin Hibbits
5670aeed3e9SJustin Hibbits SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
5680aeed3e9SJustin Hibbits
5690aeed3e9SJustin Hibbits if (p_FmMacControllerDriver->f_FM_MAC_SetPromiscuous)
5700aeed3e9SJustin Hibbits return p_FmMacControllerDriver->f_FM_MAC_SetPromiscuous(h_FmMac, newVal);
5710aeed3e9SJustin Hibbits
5720aeed3e9SJustin Hibbits RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
5730aeed3e9SJustin Hibbits }
5740aeed3e9SJustin Hibbits
575*852ba100SJustin Hibbits /* ......................................................................... */
5760aeed3e9SJustin Hibbits
FM_MAC_AdjustLink(t_Handle h_FmMac,e_EnetSpeed speed,bool fullDuplex)5770aeed3e9SJustin Hibbits t_Error FM_MAC_AdjustLink(t_Handle h_FmMac, e_EnetSpeed speed, bool fullDuplex)
5780aeed3e9SJustin Hibbits {
5790aeed3e9SJustin Hibbits t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
5800aeed3e9SJustin Hibbits
5810aeed3e9SJustin Hibbits SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
5820aeed3e9SJustin Hibbits
5830aeed3e9SJustin Hibbits if (p_FmMacControllerDriver->f_FM_MAC_AdjustLink)
5840aeed3e9SJustin Hibbits return p_FmMacControllerDriver->f_FM_MAC_AdjustLink(h_FmMac, speed, fullDuplex);
5850aeed3e9SJustin Hibbits
5860aeed3e9SJustin Hibbits RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
5870aeed3e9SJustin Hibbits }
5880aeed3e9SJustin Hibbits
589*852ba100SJustin Hibbits /* ......................................................................... */
590*852ba100SJustin Hibbits
FM_MAC_RestartAutoneg(t_Handle h_FmMac)591*852ba100SJustin Hibbits t_Error FM_MAC_RestartAutoneg(t_Handle h_FmMac)
592*852ba100SJustin Hibbits {
593*852ba100SJustin Hibbits t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
594*852ba100SJustin Hibbits
595*852ba100SJustin Hibbits SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
596*852ba100SJustin Hibbits
597*852ba100SJustin Hibbits if (p_FmMacControllerDriver->f_FM_MAC_RestartAutoneg)
598*852ba100SJustin Hibbits return p_FmMacControllerDriver->f_FM_MAC_RestartAutoneg(h_FmMac);
599*852ba100SJustin Hibbits
600*852ba100SJustin Hibbits RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
601*852ba100SJustin Hibbits }
602*852ba100SJustin Hibbits
603*852ba100SJustin Hibbits /* ......................................................................... */
6040aeed3e9SJustin Hibbits
FM_MAC_MII_WritePhyReg(t_Handle h_FmMac,uint8_t phyAddr,uint8_t reg,uint16_t data)6050aeed3e9SJustin Hibbits t_Error FM_MAC_MII_WritePhyReg (t_Handle h_FmMac, uint8_t phyAddr, uint8_t reg, uint16_t data)
6060aeed3e9SJustin Hibbits {
6070aeed3e9SJustin Hibbits t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
6080aeed3e9SJustin Hibbits
6090aeed3e9SJustin Hibbits SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
6100aeed3e9SJustin Hibbits
6110aeed3e9SJustin Hibbits if (p_FmMacControllerDriver->f_FM_MAC_MII_WritePhyReg)
6120aeed3e9SJustin Hibbits return p_FmMacControllerDriver->f_FM_MAC_MII_WritePhyReg(h_FmMac, phyAddr, reg, data);
6130aeed3e9SJustin Hibbits
6140aeed3e9SJustin Hibbits RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
6150aeed3e9SJustin Hibbits }
6160aeed3e9SJustin Hibbits
617*852ba100SJustin Hibbits /* ......................................................................... */
6180aeed3e9SJustin Hibbits
FM_MAC_MII_ReadPhyReg(t_Handle h_FmMac,uint8_t phyAddr,uint8_t reg,uint16_t * p_Data)6190aeed3e9SJustin Hibbits t_Error FM_MAC_MII_ReadPhyReg(t_Handle h_FmMac, uint8_t phyAddr, uint8_t reg, uint16_t *p_Data)
6200aeed3e9SJustin Hibbits {
6210aeed3e9SJustin Hibbits t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
6220aeed3e9SJustin Hibbits
6230aeed3e9SJustin Hibbits SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
6240aeed3e9SJustin Hibbits
6250aeed3e9SJustin Hibbits if (p_FmMacControllerDriver->f_FM_MAC_MII_ReadPhyReg)
6260aeed3e9SJustin Hibbits return p_FmMacControllerDriver->f_FM_MAC_MII_ReadPhyReg(h_FmMac, phyAddr, reg, p_Data);
6270aeed3e9SJustin Hibbits
6280aeed3e9SJustin Hibbits RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
6290aeed3e9SJustin Hibbits }
6300aeed3e9SJustin Hibbits
631*852ba100SJustin Hibbits /* ......................................................................... */
6320aeed3e9SJustin Hibbits
FM_MAC_GetMaxFrameLength(t_Handle h_FmMac)6330aeed3e9SJustin Hibbits uint16_t FM_MAC_GetMaxFrameLength(t_Handle h_FmMac)
6340aeed3e9SJustin Hibbits {
6350aeed3e9SJustin Hibbits t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
6360aeed3e9SJustin Hibbits
6370aeed3e9SJustin Hibbits SANITY_CHECK_RETURN_VALUE(p_FmMacControllerDriver, E_INVALID_HANDLE, 0);
6380aeed3e9SJustin Hibbits
6390aeed3e9SJustin Hibbits if (p_FmMacControllerDriver->f_FM_MAC_GetMaxFrameLength)
6400aeed3e9SJustin Hibbits return p_FmMacControllerDriver->f_FM_MAC_GetMaxFrameLength(h_FmMac);
6410aeed3e9SJustin Hibbits
6420aeed3e9SJustin Hibbits REPORT_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
6430aeed3e9SJustin Hibbits return 0;
6440aeed3e9SJustin Hibbits }
6450aeed3e9SJustin Hibbits
6460aeed3e9SJustin Hibbits #if (defined(DEBUG_ERRORS) && (DEBUG_ERRORS > 0))
6470aeed3e9SJustin Hibbits /*****************************************************************************/
FM_MAC_DumpRegs(t_Handle h_FmMac)6480aeed3e9SJustin Hibbits t_Error FM_MAC_DumpRegs(t_Handle h_FmMac)
6490aeed3e9SJustin Hibbits {
6500aeed3e9SJustin Hibbits t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
6510aeed3e9SJustin Hibbits
6520aeed3e9SJustin Hibbits SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
6530aeed3e9SJustin Hibbits
6540aeed3e9SJustin Hibbits if (p_FmMacControllerDriver->f_FM_MAC_DumpRegs)
6550aeed3e9SJustin Hibbits return p_FmMacControllerDriver->f_FM_MAC_DumpRegs(h_FmMac);
6560aeed3e9SJustin Hibbits RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
6570aeed3e9SJustin Hibbits }
6580aeed3e9SJustin Hibbits #endif /* (defined(DEBUG_ERRORS) && ... */
659