MCUSW
Loading...
Searching...
No Matches
Eth.h
Go to the documentation of this file.
1/*
2*
3* Copyright (c) 2024 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
121extern "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 (11U)
142#define ETH_SW_MINOR_VERSION (0U)
144#define ETH_SW_PATCH_VERSION (3U)
154#define ETH_AR_RELEASE_MAJOR_VERSION (4U)
156#define ETH_AR_RELEASE_MINOR_VERSION (3U)
158#define ETH_AR_RELEASE_REVISION_VERSION (1U)
166#define ETH_VENDOR_ID ((uint16) 44U)
168#define ETH_MODULE_ID ((uint16) 88U)
170#define ETH_INSTANCE_ID ((uint8) 0U)
180/*
181 * Design: ETH_DesignId_003
182 * Requirements: MCAL-1530
183 */
184#ifndef ETH_E_INV_CTRL_IDX
186#define ETH_E_INV_CTRL_IDX ((uint8) 0x01U)
187#endif
188#ifndef ETH_E_UNINIT
190#define ETH_E_UNINIT ((uint8) 0x02U)
191#endif
192#ifndef ETH_E_PARAM_POINTER
194#define ETH_E_PARAM_POINTER ((uint8) 0x03U)
195#endif
196#ifndef ETH_E_INV_PARAM
198#define ETH_E_INV_PARAM ((uint8) 0x04U)
199#endif
200#ifndef ETH_E_INV_MODE
202#define ETH_E_INV_MODE ((uint8) 0x05U)
203#endif
204#ifndef ETH_E_VIRTMAC_APIMISMATCH
206#define ETH_E_VIRTMAC_APIMISMATCH ((uint8) 0x07U)
207#endif
208#ifndef ETH_E_VIRTMAC_RPCCMDFAILED
210#define ETH_E_VIRTMAC_RPCCMDFAILED ((uint8) 0x08U)
211#endif
212#ifndef ETH_E_VIRTMAC_UNSUPPORTECLIENTNOTIFY
214#define ETH_E_VIRTMAC_UNSUPPORTECLIENTNOTIFY ((uint8) 0x09U)
215#endif
216#ifndef ETH_E_VIRTMAC_UNSUPPORTEDSRVCMD
218#define ETH_E_VIRTMAC_UNSUPPORTEDSRVCMD ((uint8) 0x0AU)
219#endif
220#ifndef ETH_E_BUSY
222#define ETH_E_BUSY ((uint8) 0x0BU)
223#endif
224
225#ifndef ETH_E_MDIO_FAULT
227#define ETH_E_MDIO_FAULT ((uint8) 0x0CU)
228#endif
229
241#define ETH_SID_INIT ((uint8) 0x01U)
242
244#define ETH_SID_SET_CONTROLLER_MODE ((uint8) 0x03U)
245
247#define ETH_SID_GET_CONTROLLER_MODE ((uint8) 0x04U)
248
250#define ETH_SID_WRITE_MII ((uint8) 0x05U)
251
253#define ETH_SID_READ_MII ((uint8) 0x06U)
254
256#define ETH_SID_GET_COUNTER_STATE ((uint8) 0x07U)
257
259#define ETH_SID_GET_PHYS_ADDR ((uint8) 0x08U)
260
262#define ETH_SID_PROVIDE_TX_BUFFER ((uint8) 0x09U)
263
265/* REVISIT: Same as below? */
266#define ETH_SID_MAIN_FUNCTION ((uint8) 0x20U)
267
269#define ETH_SID_TRANSMIT ((uint8) 0x0AU)
270
272#define ETH_SID_RECEIVE ((uint8) 0x0BU)
273
275#define ETH_SID_TX_CONFIRMATION ((uint8) 0x0CU)
276
278#define ETH_SID_GET_VERSION_INFO ((uint8) 0x0DU)
279
281#define ETH_SID_RX_IRQ_HDLR ((uint8) 0x10U)
282
284#define ETH_SID_TX_IRQ_HDLR ((uint8) 0x11U)
285
287#define ETH_SID_UPDATE_PHYS_ADDR_FILTER ((uint8) 0x12U)
288
290#define ETH_SID_SET_PHYS_ADDR ((uint8) 0x13U)
291
293#define ETH_SID_GET_COUNTER_VALUES ((uint8) 0x14U)
294
296#define ETH_SID_GET_RX_STATS ((uint8) 0x15U)
297
299#define ETH_SID_GET_TX_STATS ((uint8) 0x1CU)
300
302#define ETH_SID_GET_TXERROR_COUNTERVALUES ((uint8) 0x1DU)
303
305#define ETH_SID_GET_CURRENT_TIME ((uint8) 0x16U)
306
308#define ETH_SID_ENABLE_EGRESS_TIMESTAMP ((uint8) 0x17U)
309
311#define ETH_SID_GET_EGRESS_TIMESTAMP ((uint8) 0x18U)
312
314#define ETH_SID_GET_INGRESS_TIMESTAMP ((uint8) 0x19U)
315
317#define ETH_SID_DISPATCH_VIRTMAC_INIT ((uint8) 0x30U)
318
320#define ETH_SID_DISPATCH_VIRTMAC_DEINIT ((uint8) 0x31U)
321
323#define ETH_SID_NOTIFY_VIRTMAC_MSGRECV ((uint8) 0x32U)
324
326#define ETH_SID_DISPATCH_VIRTMAC_SUBSCRIBE_ALLTRAFFIC ((uint8) 0x33U)
327
329#define ETH_SID_DISPATCH_VIRTMAC_UNSUBSCRIBE_ALLTRAFFIC ((uint8) 0x34U)
330
332#define ETH_SID_DISPATCH_VIRTMAC_SUBSCRIBE_DSTMAC ((uint8) 0x35U)
333
335#define ETH_SID_DISPATCH_VIRTMAC_UNSUBSCRIBE_DSTMAC ((uint8) 0x36U)
336
338#define ETH_SID_DISPATCH_VIRTMAC_IPV4_MACADDR_ASSOCIATE ((uint8) 0x37U)
339
341#define ETH_SID_DISPATCH_VIRTMAC_IPV4_MACADDR_DISASSOCIATE ((uint8) 0x38U)
342
344#define ETH_SID_DISPATCH_VIRTMAC_ADD_UNICAST_MACADDR ((uint8) 0x39U)
345
347#define ETH_SID_DISPATCH_VIRTMAC_ADD_MCAST_MACADDR ((uint8) 0x3AU)
348
350#define ETH_SID_DISPATCH_VIRTMAC_DEL_MACADDR ((uint8) 0x3BU)
351
353#define ETH_SID_DISPATCH_VIRTMAC_ADD_VLAN ((uint8) 0x3CU)
354
356#define ETH_SID_DISPATCH_VIRTMAC_DEL_VLAN ((uint8) 0x3DU)
357
359#define ETH_SID_DISPATCH_VIRTMAC_PORT_LINK_STATUS ((uint8) 0x3EU)
360
362#define ETH_SID_VIRTMAC_RPC_INIT ((uint8) 0x3FU)
363
365#define ETH_SID_VIRTMAC_INTERCORE_PROVIDE_TX_BUFFER ((uint8) 0x40U)
366
368#define ETH_SID_VIRTMAC_INTERCORE_TRANSMIT ((uint8) 0x41U)
369
371#define ETH_SID_VIRTMAC_INTERCORE_RECEIVE ((uint8) 0x42U)
372
374#define ETH_SID_SET_BANDWIDTH_LIMIT ((uint8) 0x50U)
375
377#define ETH_SID_GET_BANDWIDTH_LIMIT ((uint8) 0x51U)
378
380#define ETH_SID_RELEASE_RX_BUFFER ((uint8) 0x52U)
381
383#define ETH_SID_PROVIDE_EXT_TX_BUFFER ((uint8) 0x53U)
384
386#define ETH_SID_GET_TX_HEADER_PTR ((uint8) 0x54U)
387
389#define ETH_SID_GET_RX_HEADER_PTR ((uint8) 0x55U)
390
392#define ETH_SID_REGISTER_READBACK ((uint8) 0x56U)
393
394
397/* ========================================================================== */
398/* Structures and Enums */
399/* ========================================================================== */
400
401/* None */
402
403/* ========================================================================== */
404/* Function Declarations */
405/* ========================================================================== */
406
426FUNC(void, ETH_CODE)
427Eth_Init(P2CONST(Eth_ConfigType, AUTOMATIC, ETH_PBCFG) CfgPtr);
428
455FUNC(Std_ReturnType, ETH_CODE)
457 Eth_ModeType CtrlMode);
458
459#if (STD_ON == ETH_VIRTUALMAC_SUPPORT)
487FUNC(Std_ReturnType, ETH_CODE)
489 Eth_ModeType CtrlMode);
490#endif
491
517FUNC(Std_ReturnType, ETH_CODE)
519 P2VAR(Eth_ModeType, AUTOMATIC, ETH_APPL_DATA) CtrlModePtr);
520
545FUNC(void, ETH_CODE)
546Eth_GetPhysAddr(uint8 CtrlIdx,
547 P2VAR(uint8, AUTOMATIC, ETH_APPL_DATA) PhysAddrPtr);
548
574FUNC(void, ETH_CODE)
575Eth_SetPhysAddr(uint8 CtrlIdx,
576 P2CONST(uint8, AUTOMATIC, ETH_APPL_DATA) PhysAddrPtr);
577
578#if (STD_ON == ETH_UPDATE_PHYS_ADDR_FILTER_API)
610FUNC(Std_ReturnType, ETH_CODE)
612 P2CONST(uint8, AUTOMATIC, ETH_APPL_DATA) PhysAddrPtr,
613 Eth_FilterActionType Action);
614#endif /* (STD_ON == ETH_UPDATE_PHYS_ADDR_FILTER_API) */
615
616#if (STD_ON == ETH_ENABLE_MII_API)
648FUNC(Std_ReturnType, ETH_CODE)
649Eth_WriteMii(uint8 CtrlIdx,
650 uint8 TrcvIdx,
651 uint8 RegIdx,
652 uint16 RegVal);
653
684FUNC(Std_ReturnType, ETH_CODE)
685Eth_ReadMii(uint8 CtrlIdx,
686 uint8 TrcvIdx,
687 uint8 RegIdx,
688 P2VAR(uint16, AUTOMATIC, ETH_APPL_DATA) RegValPtr);
689#endif /* (STD_ON == ETH_ENABLE_MII_API) */
690
691#if (STD_ON == ETH_GET_COUNTER_VALUES_API)
715FUNC(Std_ReturnType, ETH_CODE)
717 Eth_CounterType* CounterPtr);
718#endif /* (STD_ON == ETH_GET_COUNTER_VALUES_API) */
719
720#if (STD_ON == ETH_GET_COUNTER_STATE_API)
743FUNC(Std_ReturnType, ETH_CODE)
745 uint16 CtrOffs,
746 uint32* CtrValPtr);
747#endif /* (STD_ON == ETH_GET_COUNTER_STATE_API) */
748
749#if (STD_ON == ETH_GET_RX_STATS_API)
775FUNC(Std_ReturnType, ETH_CODE)
776Eth_GetRxStats(uint8 CtrlIdx,
777 P2VAR(Eth_RxStatsType, AUTOMATIC, ETH_APPL_DATA) RxStats);
778#endif /* (STD_ON == ETH_GET_RX_STATS_API) */
779
780#if (STD_ON == ETH_GET_TX_STATS_API)
806FUNC(Std_ReturnType, ETH_CODE)
807Eth_GetTxStats(uint8 CtrlIdx,
808 P2VAR(Eth_TxStatsType, AUTOMATIC, ETH_APPL_DATA) TxStats);
809#endif /* (STD_ON == ETH_GET_TX_STATS_API) */
810
811#if (STD_ON == ETH_GET_TX_ERROR_COUNTERSVALUES_API)
835FUNC(Std_ReturnType, ETH_CODE)
837 P2VAR(Eth_TxErrorCounterValuesType, AUTOMATIC, ETH_APPL_DATA) TxErrorCounterValues);
838#endif
839
840#if (STD_ON == ETH_GLOBALTIMESUPPORT_API)
869FUNC(Std_ReturnType, ETH_CODE)
870Eth_GetCurrentTime(uint8 CtrlIdx,
871 P2VAR(Eth_TimeStampQualType, AUTOMATIC, ETH_APPL_DATA) timeQualPtr,
872 P2VAR(Eth_TimeStampType, AUTOMATIC, ETH_APPL_DATA) timeStampPtr);
873
903FUNC(void, ETH_CODE)
904Eth_EnableEgressTimeStamp(uint8 CtrlIdx, Eth_BufIdxType BufIdx);
905
936FUNC(void, ETH_CODE)
938 Eth_BufIdxType BufIdx,
939 P2VAR(Eth_TimeStampQualType, AUTOMATIC, ETH_APPL_DATA) timeQualPtr,
940 P2VAR(Eth_TimeStampType, AUTOMATIC, ETH_APPL_DATA) timeStampPtr);
941
972FUNC(void, ETH_CODE)
974 P2VAR(Eth_DataType, AUTOMATIC, ETH_APPL_DATA) DataPtr,
975 P2VAR(Eth_TimeStampQualType, AUTOMATIC, ETH_APPL_DATA) timeQualPtr,
976 P2VAR(Eth_TimeStampType, AUTOMATIC, ETH_APPL_DATA) timeStampPtr);
977
978#endif /* (STD_ON == ETH_GLOBALTIMESUPPORT_API) */
979
1014FUNC(BufReq_ReturnType, ETH_CODE)
1016 uint8 Priority,
1017 P2VAR(Eth_BufIdxType, AUTOMATIC, ETH_APPL_DAT) BufIdxPtr,
1018 P2VAR(uint8, AUTOMATIC, ETH_APPL_DAT) *BufPtr,
1019 P2VAR(uint16, AUTOMATIC, ETH_APPL_DAT) LenBytePtr);
1020
1055FUNC(Std_ReturnType, ETH_CODE)
1056Eth_Transmit(uint8 CtrlIdx,
1057 Eth_BufIdxType BufIdx,
1058 Eth_FrameType FrameType,
1059 boolean TxConfirmation,
1060 uint16 LenByte,
1061 P2CONST(uint8, AUTOMATIC, ETH_APPL_DAT) PhysAddrPtr);
1062
1088FUNC(void, ETH_CODE)
1089Eth_Receive(uint8 CtrlIdx,
1090 uint8 FifoIdx,
1091 P2VAR(Eth_RxStatusType, AUTOMATIC, ETH_APPL_DAT) RxStatusPtr);
1092
1113FUNC(void, ETH_CODE)
1114Eth_TxConfirmation(uint8 CtrlIdx);
1115
1116#if (STD_ON == ETH_VERSION_INFO_API)
1137FUNC(void, ETH_CODE)
1138Eth_GetVersionInfo(P2VAR(Std_VersionInfoType, AUTOMATIC, ETH_APPL_DATA) VersionInfo);
1139#endif /* (STD_ON == ETH_VERSION_INFO_API) */
1140
1158FUNC(void, ETH_CODE)
1160
1161#if (STD_ON == ETH_TRAFFIC_SHAPING_API)
1188FUNC(Std_ReturnType, ETH_CODE) Eth_SetBandwidthLimit(
1189 uint8 CtrlIdx,
1190 uint8 QueuePrio,
1191 uint32 BandwidthLimit);
1192
1218FUNC(Std_ReturnType, ETH_CODE) Eth_GetBandwidthLimit(
1219 uint8 CtrlIdx,
1220 uint8 QueuePrio,
1221 P2VAR(uint32, AUTOMATIC, ETH_APPL_DAT) BandwidthLimitPtr);
1222#endif /* (STD_ON == ETH_TRAFFIC_SHAPING_API) */
1223
1224#if (STD_ON == ETH_ZERO_COPY_API)
1246FUNC(Std_ReturnType, ETH_CODE) Eth_ReleaseRxBuffer(uint8 CtrlIdx,
1247 P2VAR(Eth_DataType, AUTOMATIC, ETH_APPL_DATA) BufPtr);
1248
1281FUNC(BufReq_ReturnType, ETH_CODE) Eth_ProvideExtTxBuffer(uint8 CtrlIdx,
1282 uint8 Priority,
1283 P2VAR(Eth_BufIdxType, AUTOMATIC, ETH_APPL_DATA) BufIdxPtr,
1284 P2VAR(Eth_DataType, AUTOMATIC, ETH_APPL_DATA) *BufPtr,
1285 P2VAR(uint16, AUTOMATIC, ETH_APPL_DATA) LenBytePtr);
1286#endif /* (STD_ON == ETH_ZERO_COPY_API) */
1287
1288#if (STD_ON == ETH_HEADER_ACCESS_API)
1316FUNC(Std_ReturnType, ETH_CODE) Eth_GetTxHeaderPtr(uint8 CtrlIdx,
1317 uint8 BufIdx,
1318 P2VAR(Eth_DataType, AUTOMATIC, ETH_APPL_DATA) *BufPtr,
1319 P2VAR(uint16, AUTOMATIC, ETH_APPL_DATA) LenBytePtr);
1320
1343FUNC(Std_ReturnType, ETH_CODE) Eth_GetRxHeaderPtr(uint8 CtrlIdx,
1344 P2VAR(Eth_DataType, AUTOMATIC, ETH_APPL_DATA) *BufPtr,
1345 P2VAR(uint16, AUTOMATIC, ETH_APPL_DATA) LenBytePtr);
1346#endif /* (STD_ON == ETH_HEADER_ACCESS_API) */
1347
1348#if (STD_ON == ETH_REGISTER_READBACK_API)
1374 VAR(uint8, AUTOMATIC)CtrlIdx,
1375 P2VAR(Eth_RegisterReadbackType, AUTOMATIC, ETH_APPL_DATA) RegRbPtr);
1376#endif /* (STD_ON == ETH_REGISTER_READBACK_API) */
1377
1378#ifdef __cplusplus
1379}
1380#endif
1381
1382#endif /* ETH_H_ */
1383
This file contains generated configuration for ETH MCAL driver.
void Eth_EnableEgressTimeStamp(uint8 CtrlIdx, Eth_BufIdxType BufIdx)
This function activates egress time stamping on a dedicated message object.
Std_ReturnType Eth_SetControllerMode(uint8 CtrlIdx, Eth_ModeType CtrlMode)
This function enables / disables the indexed controller.
Std_ReturnType Eth_GetBandwidthLimit(uint8 CtrlIdx, uint8 QueuePrio, uint32 *BandwidthLimitPtr)
This function get bandwidth for a specific transmitsion queue.
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_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_RegisterReadback(VAR(uint8,) CtrlIdx, Eth_RegisterReadbackType *RegRbPtr)
This service will readback Eth registers.
void Eth_SetPhysAddr(uint8 CtrlIdx, const uint8 *PhysAddrPtr)
This function sets the physical source address used by the indexed controller.
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.
void Eth_Init(const Eth_ConfigType *CfgPtr)
This function initializes the driver.
Std_ReturnType Eth_GetTxStats(uint8 CtrlIdx, Eth_TxStatsType *TxStats)
This function reads a list with TX statistics values of the corresponding controller.
void Eth_Receive(uint8 CtrlIdx, uint8 FifoIdx, Eth_RxStatusType *RxStatusPtr)
This function triggers frame reception.
Std_ReturnType Eth_SetBandwidthLimit(uint8 CtrlIdx, uint8 QueuePrio, uint32 BandwidthLimit)
This function set bandwidth for a specific transmitsion queue.
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...
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_GetVersionInfo(Std_VersionInfoType *VersionInfo)
Function returns the version information of this module.
Std_ReturnType Eth_GetControllerMode(uint8 CtrlIdx, Eth_ModeType *CtrlModePtr)
This function obtains the state of the indexed 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.
void Eth_GetPhysAddr(uint8 CtrlIdx, uint8 *PhysAddrPtr)
This function obtains the physical source address used by the indexed controller.
Std_ReturnType Eth_ReadMii(uint8 CtrlIdx, uint8 TrcvIdx, uint8 RegIdx, uint16 *RegValPtr)
This function reads a transceiver register.
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...
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.
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_MainFunction(void)
The function checks for controller errors and lost frames. Used for polling state changes....
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_WriteMii(uint8 CtrlIdx, uint8 TrcvIdx, uint8 RegIdx, uint16 RegVal)
This function configures a transceiver register or triggers a function offered by the receiver Servic...
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_SetControllerModeByVirtMac(uint8 CtrlIdx, Eth_ModeType CtrlMode)
This function enables / disables the indexed controller by Eth virtmac. This is only used for recover...
Std_ReturnType Eth_GetRxStats(uint8 CtrlIdx, Eth_RxStatsType *RxStats)
This function reads a list with RX statistics values of the corresponding controller.
void Eth_TxConfirmation(uint8 CtrlIdx)
This function triggers frame transmission confirmation.
struct Eth_ConfigType_s Eth_ConfigType
Eth configuration type Configuration data of all controller.
Definition Eth_Cfg.h:720
VAR(uint8, ETH_VAR_NO_INIT_128) Eth_Ctrl_0_Egress_BufferMem_0[24576U]