MCUSW
Eth.h
Go to the documentation of this file.
1 /*
2 *
3 * Copyright (c) 2023 Texas Instruments Incorporated
4 *
5 * All rights reserved not granted herein.
6 *
7 * Limited License.
8 *
9 * Texas Instruments Incorporated grants a world-wide, royalty-free, non-exclusive
10 * license under copyrights and patents it now or hereafter owns or controls to make,
11 * have made, use, import, offer to sell and sell ("Utilize") this software subject to the
12 * terms herein. With respect to the foregoing patent license, such license is granted
13 * solely to the extent that any such patent is necessary to Utilize the software alone.
14 * The patent license shall not apply to any combinations which include this software,
15 * other than combinations with devices manufactured by or for TI ("TI Devices").
16 * No hardware patent is licensed hereunder.
17 *
18 * Redistributions must preserve existing copyright notices and reproduce this license
19 * (including the above copyright notice and the disclaimer and (if applicable) source
20 * code license limitations below) in the documentation and/or other materials provided
21 * with the distribution
22 *
23 * Redistribution and use in binary form, without modification, are permitted provided
24 * that the following conditions are met:
25 *
26 * * No reverse engineering, decompilation, or disassembly of this software is
27 * permitted with respect to any software provided in binary form.
28 *
29 * * any redistribution and use are licensed by TI for use only with TI Devices.
30 *
31 * * Nothing shall obligate TI to provide you with source code for the software
32 * licensed and provided to you in object code.
33 *
34 * If software source code is provided to you, modification and redistribution of the
35 * source code are permitted provided that the following conditions are met:
36 *
37 * * any redistribution and use of the source code, including any resulting derivative
38 * works, are licensed by TI for use only with TI Devices.
39 *
40 * * any redistribution and use of any object code compiled from the source code
41 * and any resulting derivative works, are licensed by TI for use only with TI Devices.
42 *
43 * Neither the name of Texas Instruments Incorporated nor the names of its suppliers
44 *
45 * may be used to endorse or promote products derived from this software without
46 * specific prior written permission.
47 *
48 * DISCLAIMER.
49 *
50 * THIS SOFTWARE IS PROVIDED BY TI AND TI'S LICENSORS "AS IS" AND ANY EXPRESS
51 * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
52 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
53 * IN NO EVENT SHALL TI AND TI'S LICENSORS BE LIABLE FOR ANY DIRECT, INDIRECT,
54 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
55 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
56 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
57 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
58 * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
59 * OF THE POSSIBILITY OF SUCH DAMAGE.
60 *
61 */
62 
91 /*
92  * Below are the generic requirements met by this Eth driver which can't be
93  * mapped to a specific piece of code
94  */
95 /*
96  * Design: ETH_DesignId_001
97  * Requirements: MCAL-1519, MCAL-1520, MCAL-1522, MCAL-1523,
98  * MCAL-1525, MCAL-1526, MCAL-1531, MCAL-1614,
99  * MCAL-1635, MCAL-1636, MCAL-1703, MCAL-981
100  */
101 
102 #ifndef ETH_H_
103 #define ETH_H_
104 
105 /* ========================================================================== */
106 /* Include Files */
107 /* ========================================================================== */
108 
109 /*
110  * Design: ETH_DesignId_001
111  * Requirements: MCAL-1635
112  *
113  * Note: As per "Header file structure" in Ethernet Driver spec:
114  * Eth.h --> Eth_Types.h --> Eth_GeneralTypes.h --> ComStack_Types.h
115  */
116 #include "Eth_Types.h"
117 #include "Eth_Cfg.h"
118 #include "Eth_Packet.h"
119 
120 #ifdef __cplusplus
121 extern "C"
122 {
123 #endif
124 
125 /* ========================================================================== */
126 /* Macros & Typedefs */
127 /* ========================================================================== */
128 
135 /*
136  * Design: ETH_DesignId_001
137  * Requirements: MCAL-1522
138  */
140 #define ETH_SW_MAJOR_VERSION (9U)
141 
142 #define ETH_SW_MINOR_VERSION (0U)
143 
144 #define ETH_SW_PATCH_VERSION (0U)
145 /* @} */
146 
154 #define ETH_AR_RELEASE_MAJOR_VERSION (4U)
155 
156 #define ETH_AR_RELEASE_MINOR_VERSION (3U)
157 
158 #define ETH_AR_RELEASE_REVISION_VERSION (1U)
159 /* @} */
160 
166 #define ETH_VENDOR_ID ((uint16) 44U)
167 
168 #define ETH_MODULE_ID ((uint16) 88U)
169 
170 #define ETH_INSTANCE_ID ((uint8) 0U)
171 /* @} */
172 
180 /*
181  * Design: ETH_DesignId_003
182  * Requirements: MCAL-1530
183  */
184 #ifndef ETH_E_INV_CTRL_IDX
185 
186 #define ETH_E_INV_CTRL_IDX ((uint8) 0x01U)
187 #endif
188 #ifndef ETH_E_UNINIT
189 
190 #define ETH_E_UNINIT ((uint8) 0x02U)
191 #endif
192 #ifndef ETH_E_PARAM_POINTER
193 
194 #define ETH_E_PARAM_POINTER ((uint8) 0x03U)
195 #endif
196 #ifndef ETH_E_INV_PARAM
197 
198 #define ETH_E_INV_PARAM ((uint8) 0x04U)
199 #endif
200 #ifndef ETH_E_INV_MODE
201 
202 #define ETH_E_INV_MODE ((uint8) 0x05U)
203 #endif
204 #ifndef ETH_E_VIRTMAC_APIMISMATCH
205 
206 #define ETH_E_VIRTMAC_APIMISMATCH ((uint8) 0x07U)
207 #endif
208 #ifndef ETH_E_VIRTMAC_RPCCMDFAILED
209 
210 #define ETH_E_VIRTMAC_RPCCMDFAILED ((uint8) 0x08U)
211 #endif
212 #ifndef ETH_E_VIRTMAC_UNSUPPORTECLIENTNOTIFY
213 
214 #define ETH_E_VIRTMAC_UNSUPPORTECLIENTNOTIFY ((uint8) 0x09U)
215 #endif
216 #ifndef ETH_E_VIRTMAC_UNSUPPORTEDSRVCMD
217 
218 #define ETH_E_VIRTMAC_UNSUPPORTEDSRVCMD ((uint8) 0x0AU)
219 #endif
220 #ifndef ETH_E_BUSY
221 
222 #define ETH_E_BUSY ((uint8) 0x0BU)
223 #endif
224 
225 /* @} */
226 
236 #define ETH_SID_INIT ((uint8) 0x01U)
237 
239 #define ETH_SID_SET_CONTROLLER_MODE ((uint8) 0x03U)
240 
242 #define ETH_SID_GET_CONTROLLER_MODE ((uint8) 0x04U)
243 
245 #define ETH_SID_WRITE_MII ((uint8) 0x05U)
246 
248 #define ETH_SID_READ_MII ((uint8) 0x06U)
249 
251 #define ETH_SID_GET_COUNTER_STATE ((uint8) 0x07U)
252 
254 #define ETH_SID_GET_PHYS_ADDR ((uint8) 0x08U)
255 
257 #define ETH_SID_PROVIDE_TX_BUFFER ((uint8) 0x09U)
258 
260 /* REVISIT: Same as below? */
261 #define ETH_SID_MAIN_FUNCTION ((uint8) 0x20U)
262 
264 #define ETH_SID_TRANSMIT ((uint8) 0x0AU)
265 
267 #define ETH_SID_RECEIVE ((uint8) 0x0BU)
268 
270 #define ETH_SID_TX_CONFIRMATION ((uint8) 0x0CU)
271 
273 #define ETH_SID_GET_VERSION_INFO ((uint8) 0x0DU)
274 
276 #define ETH_SID_RX_IRQ_HDLR ((uint8) 0x10U)
277 
279 #define ETH_SID_TX_IRQ_HDLR ((uint8) 0x11U)
280 
282 #define ETH_SID_UPDATE_PHYS_ADDR_FILTER ((uint8) 0x12U)
283 
285 #define ETH_SID_SET_PHYS_ADDR ((uint8) 0x13U)
286 
288 #define ETH_SID_GET_COUNTER_VALUES ((uint8) 0x14U)
289 
291 #define ETH_SID_GET_RX_STATS ((uint8) 0x15U)
292 
294 #define ETH_SID_GET_TX_STATS ((uint8) 0x1CU)
295 
297 #define ETH_SID_GET_TXERROR_COUNTERVALUES ((uint8) 0x1DU)
298 
300 #define ETH_SID_GET_CURRENT_TIME ((uint8) 0x16U)
301 
303 #define ETH_SID_ENABLE_EGRESS_TIMESTAMP ((uint8) 0x17U)
304 
306 #define ETH_SID_GET_EGRESS_TIMESTAMP ((uint8) 0x18U)
307 
309 #define ETH_SID_GET_INGRESS_TIMESTAMP ((uint8) 0x19U)
310 
312 #define ETH_SID_DISPATCH_VIRTMAC_INIT ((uint8) 0x30U)
313 
315 #define ETH_SID_DISPATCH_VIRTMAC_DEINIT ((uint8) 0x31U)
316 
318 #define ETH_SID_NOTIFY_VIRTMAC_MSGRECV ((uint8) 0x32U)
319 
321 #define ETH_SID_DISPATCH_VIRTMAC_SUBSCRIBE_ALLTRAFFIC ((uint8) 0x33U)
322 
324 #define ETH_SID_DISPATCH_VIRTMAC_UNSUBSCRIBE_ALLTRAFFIC ((uint8) 0x34U)
325 
327 #define ETH_SID_DISPATCH_VIRTMAC_SUBSCRIBE_DSTMAC ((uint8) 0x35U)
328 
330 #define ETH_SID_DISPATCH_VIRTMAC_UNSUBSCRIBE_DSTMAC ((uint8) 0x36U)
331 
333 #define ETH_SID_DISPATCH_VIRTMAC_IPV4_MACADDR_ASSOCIATE ((uint8) 0x37U)
334 
336 #define ETH_SID_DISPATCH_VIRTMAC_IPV4_MACADDR_DISASSOCIATE ((uint8) 0x38U)
337 
339 #define ETH_SID_DISPATCH_VIRTMAC_ADD_UNICAST_MACADDR ((uint8) 0x39U)
340 
342 #define ETH_SID_DISPATCH_VIRTMAC_ADD_MCAST_MACADDR ((uint8) 0x3AU)
343 
345 #define ETH_SID_DISPATCH_VIRTMAC_DEL_MACADDR ((uint8) 0x3BU)
346 
348 #define ETH_SID_DISPATCH_VIRTMAC_ADD_VLAN ((uint8) 0x3CU)
349 
351 #define ETH_SID_DISPATCH_VIRTMAC_DEL_VLAN ((uint8) 0x3DU)
352 
354 #define ETH_SID_SEND_CUSTOM_NOTIFY ((uint8) 0x3EU)
355 
357 #define ETH_SID_VIRTMAC_RPC_INIT ((uint8) 0x3FU)
358 
360 #define ETH_SID_SET_BANDWIDTH_LIMIT ((uint8) 0x50U)
361 
363 #define ETH_SID_GET_BANDWIDTH_LIMIT ((uint8) 0x51U)
364 
366 #define ETH_SID_RELEASE_RX_BUFFER ((uint8) 0x52U)
367 
369 #define ETH_SID_PROVIDE_EXT_TX_BUFFER ((uint8) 0x53U)
370 
372 #define ETH_SID_GET_TX_HEADER_PTR ((uint8) 0x54U)
373 
375 #define ETH_SID_GET_RX_HEADER_PTR ((uint8) 0x55U)
376 
377 /* @} */
378 
379 /* ========================================================================== */
380 /* Structures and Enums */
381 /* ========================================================================== */
382 
383 /* None */
384 
385 /* ========================================================================== */
386 /* Function Declarations */
387 /* ========================================================================== */
388 
408 FUNC(void, ETH_CODE)
409 Eth_Init(P2CONST(Eth_ConfigType, AUTOMATIC, ETH_PBCFG) CfgPtr);
410 
437 FUNC(Std_ReturnType, ETH_CODE)
438 Eth_SetControllerMode(uint8 CtrlIdx,
439  Eth_ModeType CtrlMode);
440 
466 FUNC(Std_ReturnType, ETH_CODE)
467 Eth_GetControllerMode(uint8 CtrlIdx,
468  P2VAR(Eth_ModeType, AUTOMATIC, ETH_APPL_DATA) CtrlModePtr);
469 
494 FUNC(void, ETH_CODE)
495 Eth_GetPhysAddr(uint8 CtrlIdx,
496  P2VAR(uint8, AUTOMATIC, ETH_APPL_DATA) PhysAddrPtr);
497 
523 FUNC(void, ETH_CODE)
524 Eth_SetPhysAddr(uint8 CtrlIdx,
525  P2CONST(uint8, AUTOMATIC, ETH_APPL_DATA) PhysAddrPtr);
526 
527 #if (STD_ON == ETH_UPDATE_PHYS_ADDR_FILTER_API)
528 
559 FUNC(Std_ReturnType, ETH_CODE)
560 Eth_UpdatePhysAddrFilter(uint8 CtrlIdx,
561  P2CONST(uint8, AUTOMATIC, ETH_APPL_DATA) PhysAddrPtr,
562  Eth_FilterActionType Action);
563 #endif /* (STD_ON == ETH_UPDATE_PHYS_ADDR_FILTER_API) */
564 
565 #if (STD_ON == ETH_ENABLE_MII_API)
566 
597 FUNC(Std_ReturnType, ETH_CODE)
598 Eth_WriteMii(uint8 CtrlIdx,
599  uint8 TrcvIdx,
600  uint8 RegIdx,
601  uint16 RegVal);
602 
633 FUNC(Std_ReturnType, ETH_CODE)
634 Eth_ReadMii(uint8 CtrlIdx,
635  uint8 TrcvIdx,
636  uint8 RegIdx,
637  P2VAR(uint16, AUTOMATIC, ETH_APPL_DATA) RegValPtr);
638 #endif /* (STD_ON == ETH_ENABLE_MII_API) */
639 
640 #if (STD_ON == ETH_GET_COUNTER_VALUES_API)
641 
664 FUNC(Std_ReturnType, ETH_CODE)
665 Eth_GetCounterValues(uint8 CtrlIdx,
666  Eth_CounterType* CounterPtr);
667 #endif /* (STD_ON == ETH_GET_COUNTER_VALUES_API) */
668 
669 #if (STD_ON == ETH_GET_COUNTER_STATE_API)
670 
692 FUNC(Std_ReturnType, ETH_CODE)
693 Eth_GetCounterState(uint8 CtrlIdx,
694  uint16 CtrOffs,
695  uint32* CtrValPtr);
696 #endif /* (STD_ON == ETH_GET_COUNTER_STATE_API) */
697 
698 #if (STD_ON == ETH_GET_RX_STATS_API)
699 
724 FUNC(Std_ReturnType, ETH_CODE)
725 Eth_GetRxStats(uint8 CtrlIdx,
726  P2VAR(Eth_RxStatsType, AUTOMATIC, ETH_APPL_DATA) RxStats);
727 #endif /* (STD_ON == ETH_GET_RX_STATS_API) */
728 
729 #if (STD_ON == ETH_GET_TX_STATS_API)
730 
755 FUNC(Std_ReturnType, ETH_CODE)
756 Eth_GetTxStats(uint8 CtrlIdx,
757  P2VAR(Eth_TxStatsType, AUTOMATIC, ETH_APPL_DATA) TxStats);
758 #endif /* (STD_ON == ETH_GET_TX_STATS_API) */
759 
760 #if (STD_ON == ETH_GET_TX_ERROR_COUNTERSVALUES_API)
761 
784 FUNC(Std_ReturnType, ETH_CODE)
785 Eth_GetTxErrorCounterValues(uint8 CtrlIdx,
786  P2VAR(Eth_TxErrorCounterValuesType, AUTOMATIC, ETH_APPL_DATA) TxErrorCounterValues);
787 #endif
788 
789 #if (STD_ON == ETH_GLOBALTIMESUPPORT_API)
790 
818 FUNC(Std_ReturnType, ETH_CODE)
819 Eth_GetCurrentTime(uint8 CtrlIdx,
820  P2VAR(Eth_TimeStampQualType, AUTOMATIC, ETH_APPL_DATA) timeQualPtr,
821  P2VAR(Eth_TimeStampType, AUTOMATIC, ETH_APPL_DATA) timeStampPtr);
822 
852 FUNC(void, ETH_CODE)
853 Eth_EnableEgressTimeStamp(uint8 CtrlIdx, Eth_BufIdxType BufIdx);
854 
885 FUNC(void, ETH_CODE)
886 Eth_GetEgressTimeStamp(uint8 CtrlIdx,
887  Eth_BufIdxType BufIdx,
888  P2VAR(Eth_TimeStampQualType, AUTOMATIC, ETH_APPL_DATA) timeQualPtr,
889  P2VAR(Eth_TimeStampType, AUTOMATIC, ETH_APPL_DATA) timeStampPtr);
890 
921 FUNC(void, ETH_CODE)
922 Eth_GetIngressTimeStamp(uint8 CtrlIdx,
923  P2VAR(Eth_DataType, AUTOMATIC, ETH_APPL_DATA) DataPtr,
924  P2VAR(Eth_TimeStampQualType, AUTOMATIC, ETH_APPL_DATA) timeQualPtr,
925  P2VAR(Eth_TimeStampType, AUTOMATIC, ETH_APPL_DATA) timeStampPtr);
926 
927 #endif /* (STD_ON == ETH_GLOBALTIMESUPPORT_API) */
928 
963 FUNC(BufReq_ReturnType, ETH_CODE)
964 Eth_ProvideTxBuffer(uint8 CtrlIdx,
965  uint8 Priority,
966  P2VAR(Eth_BufIdxType, AUTOMATIC, ETH_APPL_DAT) BufIdxPtr,
967  P2VAR(uint8, AUTOMATIC, ETH_APPL_DAT) *BufPtr,
968  P2VAR(uint16, AUTOMATIC, ETH_APPL_DAT) LenBytePtr);
969 
1004 FUNC(Std_ReturnType, ETH_CODE)
1005 Eth_Transmit(uint8 CtrlIdx,
1006  Eth_BufIdxType BufIdx,
1007  Eth_FrameType FrameType,
1008  boolean TxConfirmation,
1009  uint16 LenByte,
1010  P2CONST(uint8, AUTOMATIC, ETH_APPL_DAT) PhysAddrPtr);
1011 
1037 FUNC(void, ETH_CODE)
1038 Eth_Receive(uint8 CtrlIdx,
1039  uint8 FifoIdx,
1040  P2VAR(Eth_RxStatusType, AUTOMATIC, ETH_APPL_DAT) RxStatusPtr);
1041 
1062 FUNC(void, ETH_CODE)
1063 Eth_TxConfirmation(uint8 CtrlIdx);
1064 
1065 #if (STD_ON == ETH_VERSION_INFO_API)
1066 
1086 FUNC(void, ETH_CODE)
1087 Eth_GetVersionInfo(P2VAR(Std_VersionInfoType, AUTOMATIC, ETH_APPL_DATA) VersionInfo);
1088 #endif /* (STD_ON == ETH_VERSION_INFO_API) */
1089 
1107 FUNC(void, ETH_CODE)
1108 Eth_MainFunction(void);
1109 
1110 #if (STD_ON == ETH_TRAFFIC_SHAPING_API)
1111 
1137 FUNC(Std_ReturnType, ETH_CODE) Eth_SetBandwidthLimit(
1138  uint8 CtrlIdx,
1139  uint8 QueuePrio,
1140  uint32 BandwidthLimit);
1141 
1167 FUNC(Std_ReturnType, ETH_CODE) Eth_GetBandwidthLimit(
1168  uint8 CtrlIdx,
1169  uint8 QueuePrio,
1170  P2VAR(uint32, AUTOMATIC, ETH_APPL_DAT) BandwidthLimitPtr);
1171 #endif /* (STD_ON == ETH_TRAFFIC_SHAPING_API) */
1172 
1173 #if (STD_ON == ETH_ZERO_COPY_API)
1174 
1195 FUNC(Std_ReturnType, ETH_CODE) Eth_ReleaseRxBuffer(uint8 CtrlIdx,
1196  P2VAR(Eth_DataType, AUTOMATIC, ETH_APPL_DATA) BufPtr);
1197 
1230 FUNC(BufReq_ReturnType, ETH_CODE) Eth_ProvideExtTxBuffer(uint8 CtrlIdx,
1231  uint8 Priority,
1232  P2VAR(Eth_BufIdxType, AUTOMATIC, ETH_APPL_DATA) BufIdxPtr,
1233  P2VAR(Eth_DataType, AUTOMATIC, ETH_APPL_DATA) *BufPtr,
1234  P2VAR(uint16, AUTOMATIC, ETH_APPL_DATA) LenBytePtr);
1235 #endif /* (STD_ON == ETH_ZERO_COPY_API) */
1236 
1237 #if (STD_ON == ETH_HEADER_ACCESS_API)
1238 
1265 FUNC(Std_ReturnType, ETH_CODE) Eth_GetTxHeaderPtr(uint8 CtrlIdx,
1266  uint8 BufIdx,
1267  P2VAR(Eth_DataType, AUTOMATIC, ETH_APPL_DATA) *BufPtr,
1268  P2VAR(uint16, AUTOMATIC, ETH_APPL_DATA) LenBytePtr);
1269 
1292 FUNC(Std_ReturnType, ETH_CODE) Eth_GetRxHeaderPtr(uint8 CtrlIdx,
1293  P2VAR(Eth_DataType, AUTOMATIC, ETH_APPL_DATA) *BufPtr,
1294  P2VAR(uint16, AUTOMATIC, ETH_APPL_DATA) LenBytePtr);
1295 #endif /* (STD_ON == ETH_HEADER_ACCESS_API) */
1296 
1297 #ifdef __cplusplus
1298 }
1299 #endif
1300 
1301 #endif /* ETH_H_ */
1302 
1303 /* @} */
void Eth_GetEgressTimeStamp(uint8 CtrlIdx, Eth_BufIdxType BufIdx, Eth_TimeStampQualType *timeQualPtr, Eth_TimeStampType *timeStampPtr)
This function reads back the egress time stamp on a dedicated message object.
Std_ReturnType Eth_GetCurrentTime(uint8 CtrlIdx, Eth_TimeStampQualType *timeQualPtr, Eth_TimeStampType *timeStampPtr)
This function returns a time value out of the HW registers.
void Eth_GetIngressTimeStamp(uint8 CtrlIdx, Eth_DataType *DataPtr, Eth_TimeStampQualType *timeQualPtr, Eth_TimeStampType *timeStampPtr)
This function reads back the ingress time stamp on a dedicated message object.
Std_ReturnType Eth_Transmit(uint8 CtrlIdx, Eth_BufIdxType BufIdx, Eth_FrameType FrameType, boolean TxConfirmation, uint16 LenByte, const uint8 *PhysAddrPtr)
This function triggers transmission of a previously filled transmit buffer.
Eth configuration type Configuration data of all controller.
Definition: Eth_Cfg.h:931
void Eth_GetPhysAddr(uint8 CtrlIdx, uint8 *PhysAddrPtr)
This function obtains the physical source address used by the indexed controller.
void Eth_GetVersionInfo(Std_VersionInfoType *VersionInfo)
Function returns the version information of this module.
Std_ReturnType Eth_GetRxStats(uint8 CtrlIdx, Eth_RxStatsType *RxStats)
This function reads a list with RX statistics values of the corresponding controller.
Std_ReturnType Eth_ReleaseRxBuffer(uint8 CtrlIdx, Eth_DataType *BufPtr)
This function releases an RX buffer and prepares the buffer to be reused during reception.
Std_ReturnType Eth_GetTxStats(uint8 CtrlIdx, Eth_TxStatsType *TxStats)
This function reads a list with TX statistics values of the corresponding controller.
BufReq_ReturnType Eth_ProvideTxBuffer(uint8 CtrlIdx, uint8 Priority, Eth_BufIdxType *BufIdxPtr, uint8 **BufPtr, uint16 *LenBytePtr)
This function provides access to a transmit buffer of the specified controller.
Std_ReturnType Eth_SetControllerMode(uint8 CtrlIdx, Eth_ModeType CtrlMode)
This function enables / disables the indexed controller.
Std_ReturnType Eth_WriteMii(uint8 CtrlIdx, uint8 TrcvIdx, uint8 RegIdx, uint16 RegVal)
This function configures a transceiver register or triggers a function offered by the receiver Servic...
void Eth_Receive(uint8 CtrlIdx, uint8 FifoIdx, Eth_RxStatusType *RxStatusPtr)
This function triggers frame reception.
Std_ReturnType Eth_GetCounterValues(uint8 CtrlIdx, Eth_CounterType *CounterPtr)
This function reads a list with counter values of the corresponding controller.
Std_ReturnType Eth_GetCounterState(uint8 CtrlIdx, uint16 CtrOffs, uint32 *CtrValPtr)
Reads the value of a counter specified with its memory offset.
void Eth_EnableEgressTimeStamp(uint8 CtrlIdx, Eth_BufIdxType BufIdx)
This function activates egress time stamping on a dedicated message object.
Std_ReturnType Eth_ReadMii(uint8 CtrlIdx, uint8 TrcvIdx, uint8 RegIdx, uint16 *RegValPtr)
This function reads a transceiver register.
Std_ReturnType Eth_GetControllerMode(uint8 CtrlIdx, Eth_ModeType *CtrlModePtr)
This function obtains the state of the indexed controller.
void Eth_Init(const Eth_ConfigType *CfgPtr)
This function initializes the driver.
Std_ReturnType Eth_UpdatePhysAddrFilter(uint8 CtrlIdx, const uint8 *PhysAddrPtr, Eth_FilterActionType Action)
This function updates the physical source address to / from the indexed controller filter.
void Eth_MainFunction(void)
The function checks for controller errors and lost frames. Used for polling state changes....
BufReq_ReturnType Eth_ProvideExtTxBuffer(uint8 CtrlIdx, uint8 Priority, Eth_BufIdxType *BufIdxPtr, Eth_DataType **BufPtr, uint16 *LenBytePtr)
This function provides an external buffer for frame transmission. The buffer is supposed to be locked...
void Eth_TxConfirmation(uint8 CtrlIdx)
This function triggers frame transmission confirmation.
This file contains generated configuration for ETH MCAL driver.
Std_ReturnType Eth_GetBandwidthLimit(uint8 CtrlIdx, uint8 QueuePrio, uint32 *BandwidthLimitPtr)
This function get bandwidth for a specific transmitsion queue.
Std_ReturnType Eth_SetBandwidthLimit(uint8 CtrlIdx, uint8 QueuePrio, uint32 BandwidthLimit)
This function set bandwidth for a specific transmitsion queue.
Std_ReturnType Eth_GetRxHeaderPtr(uint8 CtrlIdx, Eth_DataType **BufPtr, uint16 *LenBytePtr)
This function returns the pointer to the first octet of a received Ethernet frame....
void Eth_SetPhysAddr(uint8 CtrlIdx, const uint8 *PhysAddrPtr)
This function sets the physical source address used by the indexed controller.
Std_ReturnType Eth_GetTxHeaderPtr(uint8 CtrlIdx, uint8 BufIdx, Eth_DataType **BufPtr, uint16 *LenBytePtr)
This function returns the Ethernet header portion of a transmission frame. This allows the user to ov...
Std_ReturnType Eth_GetTxErrorCounterValues(uint8 CtrlIdx, Eth_TxErrorCounterValuesType *TxErrorCounterValues)
This function reads a list of values to read statistic error counter values for transmission for corr...