2 * Copyright 2008-2012 Freescale Semiconductor Inc.
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are met:
6 * * Redistributions of source code must retain the above copyright
7 * notice, this list of conditions and the following disclaimer.
8 * * Redistributions in binary form must reproduce the above copyright
9 * notice, this list of conditions and the following disclaimer in the
10 * documentation and/or other materials provided with the distribution.
11 * * Neither the name of Freescale Semiconductor nor the
12 * names of its contributors may be used to endorse or promote products
13 * derived from this software without specific prior written permission.
16 * ALTERNATIVELY, this software may be distributed under the terms of the
17 * GNU General Public License ("GPL") as published by the Free Software
18 * Foundation, either version 2 of that License or (at your option) any
21 * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
22 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
23 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
24 * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
25 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
26 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
27 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
28 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
30 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34 /******************************************************************************
37 @Description FM MAC ...
38 *//***************************************************************************/
40 #include "string_ext.h"
41 #include "sprint_ext.h"
42 #include "error_ext.h"
45 #include "fm_common.h"
49 /* ......................................................................... */
51 t_Handle FM_MAC_Config (t_FmMacParams *p_FmMacParam)
53 t_FmMacControllerDriver *p_FmMacControllerDriver;
56 SANITY_CHECK_RETURN_VALUE(p_FmMacParam, E_INVALID_HANDLE, NULL);
58 fmClkFreq = FmGetClockFreq(p_FmMacParam->h_Fm);
61 REPORT_ERROR(MAJOR, E_INVALID_STATE, ("Can't get clock for MAC!"));
65 #if (DPAA_VERSION == 10)
66 if (ENET_SPEED_FROM_MODE(p_FmMacParam->enetMode) < e_ENET_SPEED_10000)
67 p_FmMacControllerDriver = (t_FmMacControllerDriver *)DTSEC_Config(p_FmMacParam);
69 #if FM_MAX_NUM_OF_10G_MACS > 0
70 p_FmMacControllerDriver = (t_FmMacControllerDriver *)TGEC_Config(p_FmMacParam);
72 p_FmMacControllerDriver = NULL;
73 #endif /* FM_MAX_NUM_OF_10G_MACS > 0 */
75 p_FmMacControllerDriver = (t_FmMacControllerDriver *)MEMAC_Config(p_FmMacParam);
76 #endif /* (DPAA_VERSION == 10) */
78 if (!p_FmMacControllerDriver)
81 p_FmMacControllerDriver->h_Fm = p_FmMacParam->h_Fm;
82 p_FmMacControllerDriver->enetMode = p_FmMacParam->enetMode;
83 p_FmMacControllerDriver->macId = p_FmMacParam->macId;
84 p_FmMacControllerDriver->resetOnInit = DEFAULT_resetOnInit;
86 p_FmMacControllerDriver->clkFreq = fmClkFreq;
88 return (t_Handle)p_FmMacControllerDriver;
91 /* ......................................................................... */
93 t_Error FM_MAC_Init (t_Handle h_FmMac)
95 t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
97 SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
99 if (p_FmMacControllerDriver->resetOnInit &&
100 !p_FmMacControllerDriver->f_FM_MAC_ConfigResetOnInit &&
101 (FmResetMac(p_FmMacControllerDriver->h_Fm,
102 ((ENET_INTERFACE_FROM_MODE(p_FmMacControllerDriver->enetMode) == e_ENET_IF_XGMII) ?
103 e_FM_MAC_10G : e_FM_MAC_1G),
104 p_FmMacControllerDriver->macId) != E_OK))
105 RETURN_ERROR(MAJOR, E_INVALID_STATE, ("Can't reset MAC!"));
107 if (p_FmMacControllerDriver->f_FM_MAC_Init)
108 return p_FmMacControllerDriver->f_FM_MAC_Init(h_FmMac);
109 RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
112 /* ......................................................................... */
114 t_Error FM_MAC_Free (t_Handle h_FmMac)
116 t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
118 SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
120 if (p_FmMacControllerDriver->f_FM_MAC_Free)
121 return p_FmMacControllerDriver->f_FM_MAC_Free(h_FmMac);
123 RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
126 /* ......................................................................... */
128 t_Error FM_MAC_ConfigResetOnInit (t_Handle h_FmMac, bool enable)
130 t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
132 SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
134 if (p_FmMacControllerDriver->f_FM_MAC_ConfigResetOnInit)
135 return p_FmMacControllerDriver->f_FM_MAC_ConfigResetOnInit(h_FmMac, enable);
137 p_FmMacControllerDriver->resetOnInit = enable;
142 /* ......................................................................... */
144 t_Error FM_MAC_ConfigLoopback (t_Handle h_FmMac, bool newVal)
146 t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
148 SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
150 if (p_FmMacControllerDriver->f_FM_MAC_ConfigLoopback)
151 return p_FmMacControllerDriver->f_FM_MAC_ConfigLoopback(h_FmMac, newVal);
153 RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
156 /* ......................................................................... */
158 t_Error FM_MAC_ConfigMaxFrameLength (t_Handle h_FmMac, uint16_t newVal)
160 t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
162 SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
164 if (p_FmMacControllerDriver->f_FM_MAC_ConfigMaxFrameLength)
165 return p_FmMacControllerDriver->f_FM_MAC_ConfigMaxFrameLength(h_FmMac, newVal);
166 RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
169 /* ......................................................................... */
171 t_Error FM_MAC_ConfigWan (t_Handle h_FmMac, bool flag)
173 t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
175 SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
177 if (p_FmMacControllerDriver->f_FM_MAC_ConfigWan)
178 return p_FmMacControllerDriver->f_FM_MAC_ConfigWan(h_FmMac, flag);
180 RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
183 /* ......................................................................... */
185 t_Error FM_MAC_ConfigPadAndCrc (t_Handle h_FmMac, bool newVal)
187 t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
189 SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
191 if (p_FmMacControllerDriver->f_FM_MAC_ConfigPadAndCrc)
192 return p_FmMacControllerDriver->f_FM_MAC_ConfigPadAndCrc(h_FmMac, newVal);
194 RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
197 /* ......................................................................... */
199 t_Error FM_MAC_ConfigHalfDuplex (t_Handle h_FmMac, bool newVal)
201 t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
203 SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
205 if (p_FmMacControllerDriver->f_FM_MAC_ConfigHalfDuplex)
206 return p_FmMacControllerDriver->f_FM_MAC_ConfigHalfDuplex(h_FmMac,newVal);
208 RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
211 /* ......................................................................... */
213 t_Error FM_MAC_ConfigTbiPhyAddr (t_Handle h_FmMac, uint8_t newVal)
215 t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
217 SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
219 if (p_FmMacControllerDriver->f_FM_MAC_ConfigTbiPhyAddr)
220 return p_FmMacControllerDriver->f_FM_MAC_ConfigTbiPhyAddr(h_FmMac,newVal);
222 RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
225 /* ......................................................................... */
227 t_Error FM_MAC_ConfigLengthCheck (t_Handle h_FmMac, bool newVal)
229 t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
231 SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
233 if (p_FmMacControllerDriver->f_FM_MAC_ConfigLengthCheck)
234 return p_FmMacControllerDriver->f_FM_MAC_ConfigLengthCheck(h_FmMac,newVal);
236 RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
239 /* ......................................................................... */
241 t_Error FM_MAC_ConfigException (t_Handle h_FmMac, e_FmMacExceptions ex, bool enable)
243 t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
245 SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
247 if (p_FmMacControllerDriver->f_FM_MAC_ConfigException)
248 return p_FmMacControllerDriver->f_FM_MAC_ConfigException(h_FmMac, ex, enable);
250 RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
253 #ifdef FM_TX_ECC_FRMS_ERRATA_10GMAC_A004
254 /* ......................................................................... */
256 t_Error FM_MAC_ConfigSkipFman11Workaround (t_Handle h_FmMac)
258 t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
260 SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
262 if (p_FmMacControllerDriver->f_FM_MAC_ConfigSkipFman11Workaround)
263 return p_FmMacControllerDriver->f_FM_MAC_ConfigSkipFman11Workaround(h_FmMac);
265 RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
267 #endif /* FM_TX_ECC_FRMS_ERRATA_10GMAC_A004 */
270 /*****************************************************************************/
271 /* Run Time Control */
272 /*****************************************************************************/
274 /* ......................................................................... */
276 t_Error FM_MAC_Enable (t_Handle h_FmMac, e_CommMode mode)
278 t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
280 SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
282 if (p_FmMacControllerDriver->f_FM_MAC_Enable)
283 return p_FmMacControllerDriver->f_FM_MAC_Enable(h_FmMac, mode);
285 RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
288 /* ......................................................................... */
290 t_Error FM_MAC_Disable (t_Handle h_FmMac, e_CommMode mode)
292 t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
294 SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
296 if (p_FmMacControllerDriver->f_FM_MAC_Disable)
297 return p_FmMacControllerDriver->f_FM_MAC_Disable(h_FmMac, mode);
299 RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
302 t_Error FM_MAC_Resume (t_Handle h_FmMac)
304 t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
306 SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
308 if (p_FmMacControllerDriver->f_FM_MAC_Resume)
309 return p_FmMacControllerDriver->f_FM_MAC_Resume(h_FmMac);
314 /* ......................................................................... */
316 t_Error FM_MAC_Enable1588TimeStamp (t_Handle h_FmMac)
318 t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
320 SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
322 if (p_FmMacControllerDriver->f_FM_MAC_Enable1588TimeStamp)
323 return p_FmMacControllerDriver->f_FM_MAC_Enable1588TimeStamp(h_FmMac);
325 RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
328 /* ......................................................................... */
330 t_Error FM_MAC_Disable1588TimeStamp (t_Handle h_FmMac)
332 t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
334 SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
336 if (p_FmMacControllerDriver->f_FM_MAC_Disable1588TimeStamp)
337 return p_FmMacControllerDriver->f_FM_MAC_Disable1588TimeStamp(h_FmMac);
339 RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
342 /* ......................................................................... */
344 t_Error FM_MAC_SetTxAutoPauseFrames(t_Handle h_FmMac,
347 t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
349 SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
351 if (p_FmMacControllerDriver->f_FM_MAC_SetTxAutoPauseFrames)
352 return p_FmMacControllerDriver->f_FM_MAC_SetTxAutoPauseFrames(h_FmMac,
355 RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
358 /* ......................................................................... */
360 t_Error FM_MAC_SetTxPauseFrames(t_Handle h_FmMac,
365 t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
367 SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
369 if (p_FmMacControllerDriver->f_FM_MAC_SetTxPauseFrames)
370 return p_FmMacControllerDriver->f_FM_MAC_SetTxPauseFrames(h_FmMac,
375 RETURN_ERROR(MAJOR, E_NOT_SUPPORTED, NO_MSG);
378 /* ......................................................................... */
380 t_Error FM_MAC_SetRxIgnorePauseFrames (t_Handle h_FmMac, bool en)
382 t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
384 SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
386 if (p_FmMacControllerDriver->f_FM_MAC_SetRxIgnorePauseFrames)
387 return p_FmMacControllerDriver->f_FM_MAC_SetRxIgnorePauseFrames(h_FmMac, en);
389 RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
392 /* ......................................................................... */
394 t_Error FM_MAC_SetWakeOnLan (t_Handle h_FmMac, bool en)
396 t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
398 SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
400 if (p_FmMacControllerDriver->f_FM_MAC_SetWakeOnLan)
401 return p_FmMacControllerDriver->f_FM_MAC_SetWakeOnLan(h_FmMac, en);
403 RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
406 /* ......................................................................... */
408 t_Error FM_MAC_ResetCounters (t_Handle h_FmMac)
410 t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
412 SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
414 if (p_FmMacControllerDriver->f_FM_MAC_ResetCounters)
415 return p_FmMacControllerDriver->f_FM_MAC_ResetCounters(h_FmMac);
417 RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
420 /* ......................................................................... */
422 t_Error FM_MAC_SetException(t_Handle h_FmMac, e_FmMacExceptions ex, bool enable)
424 t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
426 SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
428 if (p_FmMacControllerDriver->f_FM_MAC_SetException)
429 return p_FmMacControllerDriver->f_FM_MAC_SetException(h_FmMac, ex, enable);
431 RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
434 /* ......................................................................... */
436 t_Error FM_MAC_SetStatistics (t_Handle h_FmMac, e_FmMacStatisticsLevel statisticsLevel)
438 t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
440 SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
442 if (p_FmMacControllerDriver->f_FM_MAC_SetStatistics)
443 return p_FmMacControllerDriver->f_FM_MAC_SetStatistics(h_FmMac, statisticsLevel);
445 RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
448 /* ......................................................................... */
450 t_Error FM_MAC_GetStatistics (t_Handle h_FmMac, t_FmMacStatistics *p_Statistics)
452 t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
454 SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
456 if (p_FmMacControllerDriver->f_FM_MAC_GetStatistics)
457 return p_FmMacControllerDriver->f_FM_MAC_GetStatistics(h_FmMac, p_Statistics);
459 RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
462 /* ......................................................................... */
464 t_Error FM_MAC_ModifyMacAddr (t_Handle h_FmMac, t_EnetAddr *p_EnetAddr)
466 t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
468 SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
470 if (p_FmMacControllerDriver->f_FM_MAC_ModifyMacAddr)
471 return p_FmMacControllerDriver->f_FM_MAC_ModifyMacAddr(h_FmMac, p_EnetAddr);
473 RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
476 /* ......................................................................... */
478 t_Error FM_MAC_AddHashMacAddr (t_Handle h_FmMac, t_EnetAddr *p_EnetAddr)
480 t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
482 SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
484 if (p_FmMacControllerDriver->f_FM_MAC_AddHashMacAddr)
485 return p_FmMacControllerDriver->f_FM_MAC_AddHashMacAddr(h_FmMac, p_EnetAddr);
487 RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
490 /* ......................................................................... */
492 t_Error FM_MAC_RemoveHashMacAddr (t_Handle h_FmMac, t_EnetAddr *p_EnetAddr)
494 t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
496 SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
498 if (p_FmMacControllerDriver->f_FM_MAC_RemoveHashMacAddr)
499 return p_FmMacControllerDriver->f_FM_MAC_RemoveHashMacAddr(h_FmMac, p_EnetAddr);
501 RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
504 /* ......................................................................... */
506 t_Error FM_MAC_AddExactMatchMacAddr (t_Handle h_FmMac, t_EnetAddr *p_EnetAddr)
508 t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
510 SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
512 if (p_FmMacControllerDriver->f_FM_MAC_AddExactMatchMacAddr)
513 return p_FmMacControllerDriver->f_FM_MAC_AddExactMatchMacAddr(h_FmMac, p_EnetAddr);
515 RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
518 /* ......................................................................... */
520 t_Error FM_MAC_RemovelExactMatchMacAddr (t_Handle h_FmMac, t_EnetAddr *p_EnetAddr)
522 t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
524 SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
526 if (p_FmMacControllerDriver->f_FM_MAC_RemovelExactMatchMacAddr)
527 return p_FmMacControllerDriver->f_FM_MAC_RemovelExactMatchMacAddr(h_FmMac, p_EnetAddr);
529 RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
532 /* ......................................................................... */
534 t_Error FM_MAC_GetVesrion (t_Handle h_FmMac, uint32_t *macVresion)
536 t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
538 SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
540 if (p_FmMacControllerDriver->f_FM_MAC_GetVersion)
541 return p_FmMacControllerDriver->f_FM_MAC_GetVersion(h_FmMac, macVresion);
543 RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
547 /* ......................................................................... */
549 t_Error FM_MAC_GetId (t_Handle h_FmMac, uint32_t *macId)
551 t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
553 SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
555 if (p_FmMacControllerDriver->f_FM_MAC_GetId)
556 return p_FmMacControllerDriver->f_FM_MAC_GetId(h_FmMac, macId);
558 RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
561 /* ......................................................................... */
563 t_Error FM_MAC_SetPromiscuous (t_Handle h_FmMac, bool newVal)
565 t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
567 SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
569 if (p_FmMacControllerDriver->f_FM_MAC_SetPromiscuous)
570 return p_FmMacControllerDriver->f_FM_MAC_SetPromiscuous(h_FmMac, newVal);
572 RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
575 /* ......................................................................... */
577 t_Error FM_MAC_AdjustLink(t_Handle h_FmMac, e_EnetSpeed speed, bool fullDuplex)
579 t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
581 SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
583 if (p_FmMacControllerDriver->f_FM_MAC_AdjustLink)
584 return p_FmMacControllerDriver->f_FM_MAC_AdjustLink(h_FmMac, speed, fullDuplex);
586 RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
589 /* ......................................................................... */
591 t_Error FM_MAC_RestartAutoneg(t_Handle h_FmMac)
593 t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
595 SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
597 if (p_FmMacControllerDriver->f_FM_MAC_RestartAutoneg)
598 return p_FmMacControllerDriver->f_FM_MAC_RestartAutoneg(h_FmMac);
600 RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
603 /* ......................................................................... */
605 t_Error FM_MAC_MII_WritePhyReg (t_Handle h_FmMac, uint8_t phyAddr, uint8_t reg, uint16_t data)
607 t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
609 SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
611 if (p_FmMacControllerDriver->f_FM_MAC_MII_WritePhyReg)
612 return p_FmMacControllerDriver->f_FM_MAC_MII_WritePhyReg(h_FmMac, phyAddr, reg, data);
614 RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
617 /* ......................................................................... */
619 t_Error FM_MAC_MII_ReadPhyReg(t_Handle h_FmMac, uint8_t phyAddr, uint8_t reg, uint16_t *p_Data)
621 t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
623 SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
625 if (p_FmMacControllerDriver->f_FM_MAC_MII_ReadPhyReg)
626 return p_FmMacControllerDriver->f_FM_MAC_MII_ReadPhyReg(h_FmMac, phyAddr, reg, p_Data);
628 RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
631 /* ......................................................................... */
633 uint16_t FM_MAC_GetMaxFrameLength(t_Handle h_FmMac)
635 t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
637 SANITY_CHECK_RETURN_VALUE(p_FmMacControllerDriver, E_INVALID_HANDLE, 0);
639 if (p_FmMacControllerDriver->f_FM_MAC_GetMaxFrameLength)
640 return p_FmMacControllerDriver->f_FM_MAC_GetMaxFrameLength(h_FmMac);
642 REPORT_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
646 #if (defined(DEBUG_ERRORS) && (DEBUG_ERRORS > 0))
647 /*****************************************************************************/
648 t_Error FM_MAC_DumpRegs(t_Handle h_FmMac)
650 t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
652 SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
654 if (p_FmMacControllerDriver->f_FM_MAC_DumpRegs)
655 return p_FmMacControllerDriver->f_FM_MAC_DumpRegs(h_FmMac);
656 RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
658 #endif /* (defined(DEBUG_ERRORS) && ... */