MCUSW
Loading...
Searching...
No Matches
Eth_Cfg.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
69/*******************************************************************************
70 Project : AM62DX
71 Date : 2026-03-09 11:26:10
72 SW Ver : 11.0.1
73 Module Rele Ver : AUTOSAR 4.3.1 0
74
75 This file is generated by EB Tresos
76 Do not modify this file,otherwise the software may behave in unexpected way.
77*******************************************************************************/
78
86#ifndef ETH_CFG_H_
87#define ETH_CFG_H_
88
89/* ========================================================================== */
90/* Include Files */
91/* ========================================================================== */
92#include "Os.h"
93#include "Eth_LL_Types.h"
94#include "Udma_Types.h"
95#include "Eth_Rpc.h"
96
97#ifdef __cplusplus
98extern "C" {
99#endif
100
101/* ========================================================================== */
102/* Macros & Typedefs */
103/* ========================================================================== */
105#define ETH_VERSION_INFO_API (STD_ON)
106
108#define ETH_GLOBALTIMESUPPORT_API (STD_ON)
109
111#define ETH_DEV_ERROR_DETECT (STD_ON)
112
114#define ETH_GET_COUNTER_VALUES_API (STD_ON)
115
117#define ETH_GET_RX_STATS_API (STD_ON)
118
120#define ETH_GET_TX_STATS_API (STD_ON)
121
123#define ETH_GET_TX_ERROR_COUNTERSVALUES_API (STD_ON)
124
126#define ETH_ZERO_COPY_API (STD_OFF)
127
129#define ETH_HEADER_ACCESS_API (STD_OFF)
130
132#define ETH_TRAFFIC_SHAPING_API (STD_OFF)
133
135#define ETH_GET_COUNTER_STATE_API (STD_OFF)
136
137
139#define ETH_CTRL_ENABLE_OFFLOAD_CHECKSUM_ICMP (STD_OFF)
140
142#define ETH_CTRL_ENABLE_OFFLOAD_CHECKSUM_IPV4 (STD_OFF)
143
145#define ETH_CTRL_ENABLE_OFFLOAD_CHECKSUM_TCP (STD_OFF)
146
148#define ETH_CTRL_ENABLE_OFFLOAD_CHECKSUM_UDP (STD_OFF)
149
151#define ETH_REGISTER_READBACK_API (STD_ON)
152
154#define ETH_TIMESTAMP_VIA_CPTS_EVENT_FIFO (STD_ON)
155
157#define ETH_PHY_FAULT_DETECTION_ENABLE (STD_ON)
158
160#define ETH_ENABLE_MII_API (STD_ON)
161
163#define ETH_UPDATE_PHYS_ADDR_FILTER_API (STD_ON)
164
166#define ETH_ENABLE_IRQ_PACING (STD_OFF)
167
169#define ETH_VIRTUALMAC_NOTIFYMSGRECEIVED_API (STD_OFF)
170
172#define ETH_VIRTUALMAC_SUBSCRIBEALLTRAFFIC_API (STD_OFF)
173
175#define ETH_VIRTUALMAC_UNSUBSCRIBEALLTRAFFIC_API (STD_OFF)
176
178#define ETH_VIRTUALMAC_SUBSCRIBEDSTMAC_API (STD_OFF)
179
181#define ETH_VIRTUALMAC_UNSUBSCRIBEDSTMAC_API (STD_OFF)
182
184#define ETH_VIRTUALMAC_ASSOCIATEIPV4MACADDR_API (STD_OFF)
185
187#define ETH_VIRTUALMAC_DISASSOCIATEIPV4MACADDR_API (STD_OFF)
188
190#define ETH_VIRTUALMAC_ADD_MCAST_MACADDR_API (STD_OFF)
191
193#define ETH_VIRTUALMAC_DEL_MACADDR_API (STD_OFF)
194
196#define ETH_VIRTUALMAC_ADD_VLAN_API (STD_OFF)
197
199#define ETH_VIRTUALMAC_DEL_VLAN_API (STD_OFF)
200
202#define ETH_VIRTUALMAC_INTERCORE_ENABLE (STD_OFF)
203
204
206#define ETH_ETHIF_CBK_HEADER "EthIf_Cbk.h"
207
209#define ETH_ISR_TYPE (ETH_ISR_CAT2)
211#define ETH_OS_COUNTER_ID ((CounterType)OsCounter_0)
213#define ETH_OS_COUNTER_FREQ (1000U)
214
216#define ETH_INVALID_RING_ID (0xFFFFU)
218#define ETH_INVALID_EVENT_ID (0xFFFFU)
220#define ETH_INVALID_CHAN_ID (0xFFFFU)
222#define ETH_INVALID_FLOW_ID (0xFFFFU)
224#define ETH_INVALID_IRQ_ID (0xFFFFU)
226#define ETH_DEM_NO_EVENT (0xFFFFU)
227
229#define ETH_VIRTUALMAC_SUPPORT (STD_OFF)
231#define ETH_VIRTUALMAC_FWINFO_TIMEOUT (0U)
232
233
239#define EthConf_EthCtrlConfig_EthConfig_0 (0U)
240#define ETH_CTRL_ID_0 (0U)
241/* @} */
242
247#define ETH_PRE_COMPILE_VARIANT (STD_ON)
248#define ETH_LINK_TIME_VARIANT (STD_OFF)
249#define ETH_POST_BUILD_VARIANT (STD_OFF)
250/* @} */
251
255#define ETH_CTRL_ID_MAX (1U)
256
257
264#define NOP1 asm (" NOP ")
265#define NOP5 NOP1; NOP1; NOP1; NOP1; NOP1
266#define NOP10 NOP5; NOP5
267#define NOP20 NOP10; NOP10
268#define NOP30 NOP20; NOP10
269#define NOP40 NOP30; NOP10
270#define NOP50 NOP40; NOP10
271#define NOP100 NOP50; NOP50
272#define NOP200 NOP100; NOP100
273#define NOP300 NOP200; NOP100
274#define NOP400 NOP300; NOP100
275#define NOP500 NOP400; NOP100
276/* @} */
277
282#define ETH_DMA_IR_SUPPORT (STD_OFF)
283#define ETH_DMA_CQ_RING_SUPPORT (STD_OFF)
284#define ETH_DMA_TEARDOWN_SUPPORT (STD_OFF)
285#define ETH_DMA_PROXY_SUPPORT (STD_OFF)
286#define ETH_DMA_RX_CH_SPERATE (STD_OFF)
287/* @} */
288
293#define UDMA_DEVICE_ID_RING (30U)
294#define UDMA_DEVICE_ID_UDMA (30U)
295#define UDMA_DEVICE_ID_PSIL (25U)
296#define UDMA_DEVICE_ID_IA (28U)
297#define UDMA_DEVICE_ID_IR (255U)
298#define UDMA_DEVICE_ID_CORE (121U)
299/* @} */
300
305#define UDMA_TX_CHANNEL_PEER_OFFSET (0xc600U)
306#define UDMA_RX_CHANNEL_PEER_OFFSET (0x4600U)
307#define UDMA_SOURCE_THREAD_OFFSET (0x1000U)
308#define UDMA_DEST_THREAD_OFFSET (0x9000U)
309/* @} */
310
315#define ETH_DMA_TX_BASE_REG (0x4aa00000U)
316#define ETH_DMA_RX_BASE_REG (0x4a800000U)
317#define ETH_DMA_RINGRT_BASE (0x4b800000U)
318#define ETH_DMA_RINGCFG_BASE (0x485e0000U)
319#define ETH_DMA_INTAGGR_INTR_BASE (0x48000000U)
320/* @} */
321
326#define ETH_DMA_TXCRT_CHAN_CTL(CHAN) (0x00000000U + ((CHAN) * 0x1000U))
327#define ETH_DMA_TXCRT_CHAN_PEER8(CHAN) (0x00000220U + ((CHAN) * 0x1000U))
328#define ETH_DMA_RXCRT_CHAN_CTL(CHAN) (0x00000000U + ((CHAN) * 0x1000U))
329#define ETH_DMA_RXCRT_CHAN_PEER8(CHAN) (0x00000220U + ((CHAN) * 0x1000U))
330
331#define ETH_DMA_RINGRT_RING_FDB(RING) (0x00000010U + ((RING) * 0x2000U))
332#define ETH_DMA_RINGRT_RING_FOCC(RING) (0x00000018U + ((RING) * 0x2000U))
333#define ETH_DMA_RINGRT_RING_RDB(RING) (0x00001010U + ((RING) * 0x2000U))
334#define ETH_DMA_RINGRT_RING_ROCC(RING) (0x00001018U + ((RING) * 0x2000U))
335#define ETH_DMA_RINGCFG_RING_SIZE(RING) (0x00000048U + ((RING) * 0x100U))
336
337#define ETH_DMA_INTAGGR_INTR_VINT_ENABLE_SET(VINT) (ETH_DMA_INTAGGR_INTR_BASE + 0x00000000U + ((VINT) * 0x1000U))
338#define ETH_DMA_INTAGGR_INTR_VINT_ENABLE_CLEAR(VINT) (ETH_DMA_INTAGGR_INTR_BASE + 0x00000008U + ((VINT) * 0x1000U))
339#define ETH_DMA_INTAGGR_INTR_VINT_STATUS_SET(VINT) (ETH_DMA_INTAGGR_INTR_BASE + 0x00000010U + ((VINT) * 0x1000U))
340#define ETH_DMA_INTAGGR_INTR_VINT_STATUS_CLEAR(VINT) (ETH_DMA_INTAGGR_INTR_BASE + 0x00000018U + ((VINT) * 0x1000U))
341#define ETH_DMA_INTAGGR_INTR_VINT_STATUSM(VINT) (ETH_DMA_INTAGGR_INTR_BASE + 0x00000020U + ((VINT) * 0x1000U))
342
343#define Eth_GetRingFDBReg(RingNum) (ETH_DMA_RINGRT_BASE + ETH_DMA_RINGRT_RING_FDB((RingNum)))
344#define Eth_GetRingFOCCReg(RingNum) (ETH_DMA_RINGRT_BASE + ETH_DMA_RINGRT_RING_FOCC((RingNum)))
345#define Eth_GetRingRDBReg(RingNum) (ETH_DMA_RINGRT_BASE + ETH_DMA_RINGRT_RING_RDB((RingNum)))
346#define Eth_GetRingROCCReg(RingNum) (ETH_DMA_RINGRT_BASE + ETH_DMA_RINGRT_RING_ROCC((RingNum)))
347#define Eth_GetRingSizeReg(RingNum) (ETH_DMA_RINGCFG_BASE + ETH_DMA_RINGCFG_RING_SIZE((RingNum)))
348
349/* @} */
350
354#define UDMA_WAIT_TEARDOWN_COUNTER (10000u)
355
356
360#define ETH_DEM_EVENT_SUPPORT (STD_OFF)
361
366#define ETH_RX_MTU_HOST_PORT_LENGTH (1522U)
367
368
369
374#define Eth_Cpsw_GetPhyMacRegAddr() ( 0x43000200U )
375#define Eth_Cpsw_GetAleRegAddr() ( 0x803e000U )
376#define Eth_Cpsw_GetCptsRegAddr() ( 0x803d000U )
377#define Eth_Cpsw_GetMdioRegAddr() ( 0x8000f00U )
378#define Eth_Cpsw_GetCtrlRegAddr() ( 0x8020000U )
379#define Eth_Cpsw_GetCppiClockFreq() ( 250000000U )
380
381#define Eth_Cpsw_GetCptsRefClockFreq() ( 4U )
382#define Eth_Cpsw_GetMdioBusClockFreq() ( 2200000U )
383#define Eth_Cpsw_GetMdioOpMode() ( ETH_MDIO_OPMODE_NORMAL )
384#define Eth_Cpsw_GetMdioEnableInterrupt() ( TRUE )
385/* @} */
386
391#define Eth_GetDem_E_HARDWARE_ERROR(CtrlIndex) ( ETH_DEM_NO_EVENT )
392#define Eth_GetDem_E_LATECOLLISION(CtrlIndex) ( ETH_DEM_NO_EVENT )
393#define Eth_GetDem_E_MULTIPLECOLLISION(CtrlIndex) ( ETH_DEM_NO_EVENT )
394#define Eth_GetDem_E_SINGLECOLLISION(CtrlIndex) ( ETH_DEM_NO_EVENT )
395#define Eth_GetDem_E_ALIGNMENT(CtrlIndex) ( ETH_DEM_NO_EVENT )
396#define Eth_GetDem_E_OVERSIZEFRAME(CtrlIndex) ( ETH_DEM_NO_EVENT )
397#define Eth_GetDem_E_UNDERSIZEFRAME(CtrlIndex) ( ETH_DEM_NO_EVENT )
398#define Eth_GetDem_E_CRC(CtrlIndex) ( ETH_DEM_NO_EVENT )
399#define Eth_GetDem_E_RX_FRAMES_LOST(CtrlIndex) ( ETH_DEM_NO_EVENT )
400#define Eth_GetDem_E_ACCESS(CtrlIndex) ( ETH_DEM_NO_EVENT )
401#define Eth_GetDem_E_TX_INTERNAL(CtrlIndex) ( ETH_DEM_NO_EVENT )
402/* @} */
403
408#define Eth_IsVirtualMacModeEnable(CtrlIndex) ( FALSE )
409#define Eth_GetTxChannelThreadOffset(CtrlIndex) ( 0xc600U )
410#define Eth_VirtMacGetEthFwRpcComChannelId(CtrlIndex) ( 0xFFFFU )
411#define Eth_VirtMacGetEthPollRecvMsgInEthMain(CtrlIndex) ( FALSE )
412#define Eth_VirtMacGetRpcCmdCompleteFuncPtr(CtrlIndex) ( (Eth_RpcCmdComplete)NULL_PTR )
413#define Eth_VirtMacGetFwRegisterFuncPtr(CtrlIndex) ( (Eth_RpcFwRegistered)NULL_PTR )
414#define Eth_VirtMacGetRemoteVirtPort(CtrlIndex) ( ETHREMOTECFG_SWITCH_PORT_1 )
415
416#define Eth_VirtMacGetDmaTxChannelPairAll(CtrlIdx) ( (EthVirtMacDmaTxChannelPair)NULL_PTR )
417#define Eth_VirtMacGetDmaTxChannelUnpairAll(CtrlIdx) ( (EthVirtMacDmaTxChannelUnpair)NULL_PTR )
418#define Eth_VirtMacGetDmaFlowCfgAll(CtrlIdx) ( (EthVirtMacDmaFLowCfg)NULL_PTR )
419#define Eth_VirtMacGetDmaFlowResetAll(CtrlIdx) ( (EthVirtMacDmaFLowReset)NULL_PTR )
420
421#define Eth_VirtMacGetInterCoreRxDescMemAddr(CtrlIdx) ( NULL_PTR )
422#define Eth_VirtMacGetInterCoreTxDescMemAddr(CtrlIdx) ( NULL_PTR )
423#define Eth_VirtMacGetInterCoreTxDataMemAddr(CtrlIdx) ( NULL_PTR )
424#define Eth_VirtMacGetInterCoreTxDataBufferNumber(CtrlIdx) ( 0U )
425
426#define Eth_GetTxEnableInterrupt(CtrlIndex) ( TRUE )
427#define Eth_GetRxEnableInterrupt(CtrlIndex) ( TRUE )
428#define Eth_GetEnetType(CtrlIndex) ( ETH_ENETTYPE_CPSW3G )
429#define Eth_GetMacPortNum(CtrlIndex) ( ETH_PORT_MAC_PORT_1 )
430#define Eth_GetMacAddressHigh(CtrlIndex) ( 0xaabbccddU )
431#define Eth_GetMacAddressLow(CtrlIndex) ( 0xeeffU )
432#define Eth_UseDefaultMacAddress(CtrlIndex) ( TRUE )
433#define Eth_GetMiiConnectionType(CtrlIndex) ( ETH_MAC_CONN_TYPE_RGMII_DETECT_INBAND )
434#define Eth_GetLoopBackMode(CtrlIndex) ( FALSE )
435#define Eth_GetHardwareLoopTimeout(CtrlIndex) ( 32000U )
436#define Eth_IsPacketMemCacheable(CtrlIndex) ( TRUE )
437#define Eth_IsRingMemCacheable(CtrlIndex) ( TRUE )
438#define Eth_IsDescMemCacheable(CtrlIndex) ( TRUE )
439
440#define Eth_GetRxMtuLength(CtrlIndex) ( 1522U )
441#define Eth_GetTxChanStartNum(CtrlIndex) ( 13U )
442#define Eth_GetRxChanStartNum(CtrlIndex) ( 13U )
443#define Eth_GetEgressFifoTotalNum(CtrlIndex) ( 1U )
444#define Eth_GetIngressFifoTotalNum(CtrlIndex) ( 1U )
445#define Eth_GetRingTotalNum(CtrlIndex) ( 2U )
446#define Eth_GetTxChanTotalNum(CtrlIndex) ( 1U )
447#define Eth_GetRxChanTotalNum(CtrlIndex) ( 1U )
448#define Eth_GetFlowTotalNumber(CtrlIndex) ( 1U )
449#define Eth_GetEventTotalNum(CtrlIndex) ( 2U )
450#define Eth_GetRingEventTotalNum(CtrlIndex) ( 2U )
451#define Eth_GetTxDmaThresholdNum(CtrlIndex) ( 1U )
452#define Eth_GetRxDmaThresholdNum(CtrlIndex) ( 1U )
453
454#define Eth_GetEgressFifoPacketNum(CtrlIndex, FifoIdx) ( 16U )
455#define Eth_GetEgressFifoPacketSize(CtrlIndex, FifoIdx) ( 1522U )
456
457#define Eth_GetIngressFifoPacketNum(CtrlIndex, FifoIdx) ( 16U )
458#define Eth_GetIngressFifoPacketSize(CtrlIndex, FifoIdx) ( 1522U )
459
460#define Eth_GetEgressFifoPriorityAsignment(CtrlIndex, Prio) ( 0U )
461#define Eth_GetIngressFifoPriorirtyAsignment(CtrlIndex, Prio) ( 0U )
462
463#define Eth_GetEgressFifoDescAddress(CtrlIndex, FifoIdx, DescIdx) (&((Eth_Ctrl_0_Egress_Descriptor_0)[(DescIdx)]) )
464#define Eth_GetEgressFifoDescUserInfoAddress(CtrlIndex, FifoIdx, DescIdx) (&((Eth_Ctrl_0_Egress_Descriptor_0)[(DescIdx)]).bufferInfo )
465#define Eth_GetEgressFifoBufferDataAddress(CtrlIndex, FifoIdx, DescIdx) (&((Eth_Ctrl_0_Egress_BufferMem_0)[((DescIdx) * (1536U))]) )
466#define Eth_GetEgressFifoQueueAddress(CtrlIndex, FifoIdx) ( Eth_Ctrl_0_Egress_Queue_0 )
467#define Eth_GetEgressFifoBufferState(CtrlIndex, FifoIdx, BufferIdx) ( ((Eth_Ctrl_0_Egress_BufferState_0)[(BufferIdx)]) )
468#define Eth_SetEgressFifoBufferState(CtrlIndex, FifoIdx, BufferIdx, Val) ( ((Eth_Ctrl_0_Egress_BufferState_0)[(BufferIdx)]) = (Val) )
469
470#define Eth_GetIngressFifoDescAddress(CtrlIndex, FifoIdx, DescIdx) (&((Eth_Ctrl_0_Ingress_Descriptor_0)[(DescIdx)]) )
471#define Eth_GetIngressFifoDescUserInfoAddress(CtrlIndex, FifoIdx, DescIdx) (&((Eth_Ctrl_0_Ingress_Descriptor_0)[(DescIdx)]).bufferInfo )
472#define Eth_GetIngressFifoBufferDataAddress(CtrlIndex, FifoIdx, DescIdx) (&((Eth_Ctrl_0_Ingress_BufferMem_0)[((DescIdx) * (1536U))]) )
473#define Eth_GetIngressFifoQueueAddress(CtrlIndex, FifoIdx) ( Eth_Ctrl_0_Ingress_Queue_0 )
474#define Eth_GetIngressFifoBufferState(CtrlIndex, FifoIdx, BufferIdx) ( ((Eth_Ctrl_0_Ingress_BufferState_0)[(BufferIdx)]) )
475#define Eth_SetIngressFifoBufferState(CtrlIndex, FifoIdx, BufferIdx, Val) ( ((Eth_Ctrl_0_Ingress_BufferState_0)[(BufferIdx)]) = (Val) )
476
477#define Eth_GetEgressFifoCqIdx(CtrlIndex, FifoIdx) ( 0U )
478#define Eth_GetEgressFifoFqIdx(CtrlIndex, FifoIdx) ( 0U )
479#define Eth_GetIngressFifoCqIdx(CtrlIndex, FifoIdx) ( 1U )
480#define Eth_GetIngressFifoFqIdx(CtrlIndex, FifoIdx) ( 1U )
481
482#define Eth_GetTxChanId(CtrlIndex, ChIdx) ( 13U )
483#define Eth_GetTxChanTdCqRingIdx(CtrlIndex, ChIdx) ( 2U )
484#define Eth_GetTxChanDepth(CtrlIndex, ChIdx) ( 192U )
485
486#define Eth_GetRxChanId(CtrlIndex, ChIdx) ( 13U )
487#define Eth_GetRxChanTdCqRingIdx(CtrlIndex, ChIdx) ( 2U )
488#define Eth_GetRxChanFlowTotalNum(CtrlIndex, ChIdx) ( 1U )
489#define Eth_GetRxChanFlowStartNum(CtrlIndex, ChIdx) ( 13U )
490
491#define Eth_GetFlowId(CtrlIndex, FlowIdx) ( 13U )
492#define Eth_GetFlowCqRingIdx(CtrlIndex, FlowIdx) ( 1U )
493#define Eth_GetFlowFqRingIdx(CtrlIndex, FlowIdx) ( 1U )
494
495#define Eth_GetDynRingElemAddress(CtrlIndex, RingIdx) ( &((Eth_RingDyn_Ctrl_0)[(RingIdx)]) )
496
497#define Eth_GetRingHwId(CtrlIndex, RingIdx) ( ((Eth_Udma_RingCfg_0)[(RingIdx)]).hwId )
498#define Eth_GetRingTotalElemNum(CtrlIndex, RingIdx) ( ((Eth_Udma_RingCfg_0)[(RingIdx)]).size )
499#define Eth_GetRingPriority(CtrlIndex, RingIdx) ( ((Eth_Udma_RingCfg_0)[(RingIdx)]).priority )
500#define Eth_GetRingMemBaseAddress(CtrlIndex, RingIdx) ( ((Eth_Udma_RingCfg_0)[(RingIdx)]).memPtr )
501
502#define Eth_GetRingEventRingIdx(CtrlIndex, RingEvtIdx) ( ((Eth_RingEventCfg_Ctrl_0)[(RingEvtIdx)]).ringIdx )
503#define Eth_GetRingEventGlobalEventNum(CtrlIndex, RingEvtIdx) ( ((Eth_RingEventCfg_Ctrl_0)[(RingEvtIdx)]).globalEvent )
504#define Eth_GetRingEventVirtBitNum(CtrlIndex, RingEvtIdx) ( ((Eth_RingEventCfg_Ctrl_0)[(RingEvtIdx)]).virtBitNum )
505#define Eth_GetRingEventEventIdx(CtrlIndex, RingEvtIdx) ( ((Eth_RingEventCfg_Ctrl_0)[(RingEvtIdx)]).eventIdx )
506#define Eth_GetRingEventSrcOffsetNum(CtrlIndex, RingEvtIdx) ( ((Eth_RingEventCfg_Ctrl_0)[(RingEvtIdx)]).srcOffset )
507
508#define Eth_GetEventCoreIntrNum(CtrlIndex, EvtIdx) ( ((Eth_EventCfg_Ctrl_0)[(EvtIdx)]).coreIntrNum )
509#define Eth_GetEventVirtIntrNum(CtrlIndex, EvtIdx) ( ((Eth_EventCfg_Ctrl_0)[(EvtIdx)]).virtIntrNum )
510#define Eth_GetEventIrIntrNum(CtrlIndex, EvtIdx) ( ((Eth_EventCfg_Ctrl_0)[(EvtIdx)]).IrIntrNum )
511#define Eth_GetTxEventCoreIntrNum(CtrlIndex) ( 68U )
512#define Eth_GetRxEventCoreIntrNum(CtrlIndex) ( 69U )
513
514#define Eth_GetHwTimerTotalNum(CtrlIndex) ( 0U )
515#define Eth_GetHwTimerId(CtrlIndex, Index) ( 0xFFU )
516#define Eth_GetHwTimerCounter(CtrlIndex, Index) ( 0xFFU )
517#define Eth_GetHwTimerBaseAddr(CtrlIndex, Index) ( 0xFFFFFFFFU )
518
519#define Eth_GetHwTimerDynRunningState(CtrlIndex, Index) ( FALSE )
520#define Eth_SetHwTimerDynRunningState(CtrlIndex, Index, Val) ( (void)(CtrlIndex) )
521
522#define Eth_GetRxIrqPacingEnable(CtrlIndex) ( FALSE )
523#define Eth_GetTxIrqPacingEnable(CtrlIndex) ( FALSE )
524
525#define Eth_GetRxHwTimerIdx(CtrlIndex) ( 255U )
526#define Eth_GetTxHwTimerIdx(CtrlIndex) ( 255U )
527#define Eth_GetIrqPacingEnable(CtrlIndex) ( (Eth_GetTxIrqPacingEnable(CtrlIndex) == TRUE) || (Eth_GetRxIrqPacingEnable(CtrlIndex) == TRUE) )
528
529#define Eth_GetRingMode(CtrlIndex, RingIdx) ( 0U )
530
531#define Eth_GetDmaRingCfg(CtrlIdx) ( (Eth_DmaRingCfg)NULL_PTR )
532
533#define Eth_GetTxChannelCtlRegAddress(ChanId) (ETH_DMA_TX_BASE_REG + ETH_DMA_TXCRT_CHAN_CTL((ChanId)))
534#define Eth_GetTxChannelPeer8RegAddress(ChanId) (ETH_DMA_TX_BASE_REG + ETH_DMA_TXCRT_CHAN_PEER8((ChanId)))
535#define Eth_GetRxChannelCtlRegAddress(ChanId) (ETH_DMA_RX_BASE_REG + ETH_DMA_RXCRT_CHAN_CTL((ChanId)))
536#define Eth_GetRxChannelPeer8RegAddress(ChanId) (ETH_DMA_RX_BASE_REG + ETH_DMA_RXCRT_CHAN_PEER8((ChanId)))
537
538/* @} */
539
540/* ========================================================================== */
541/* Structures and Enums */
542/* ========================================================================== */
543
551typedef void (*Eth_RpcCmdComplete)(uint8 CtrlIdx,
552 uint8 sid,
553 sint32 status);
554
559typedef void (*Eth_RpcFwRegistered)(uint8 CtrlIdx);
560
562typedef Std_ReturnType (*Eth_DmaRingCfg)(uint8 ctrlIdx, uint8 ringIdx);
563
565typedef void (*Eth_MdioDelayNsecFunc)(void);
566
568typedef Std_ReturnType (*EthVirtMacDmaTxChannelPair)(uint8 ctrlIdx);
569
571typedef Std_ReturnType (*EthVirtMacDmaTxChannelUnPair)(uint8 ctrlIdx);
572
574typedef Std_ReturnType (*EthVirtMacDmaFLowCfg)(uint8 ctrlIdx);
575
577typedef Std_ReturnType (*EthVirtMacDmaFLowReset)(uint8 ctrlIdx);
578
585typedef enum
586{
587 ETH_PORT_HOST_PORT = 0x00U,
589 ETH_MAC_PORT_FIRST = 0x01U,
591 ETH_PORT_MAC_PORT_1 = 0x01U,
593 ETH_PORT_MAC_PORT_2 = 0x02U,
595 ETH_PORT_MAC_PORT_3 = 0x03U,
597 ETH_PORT_MAC_PORT_4 = 0x04U,
599 ETH_PORT_MAC_PORT_5 = 0x05U,
601 ETH_PORT_MAC_PORT_6 = 0x06U,
603 ETH_PORT_MAC_PORT_7 = 0x07U,
605 ETH_PORT_MAC_PORT_8 = 0x08U,
610
633
639typedef enum
640{
641 ETH_ENETTYPE_CPSW2G = 0x00U,
643 ETH_ENETTYPE_CPSW9G = 0x01U,
645 ETH_ENETTYPE_CPSW5G = 0x02U,
647 ETH_ENETTYPE_CPSW3G = 0x03U,
654
660typedef enum
661{
667
672typedef struct Eth_Udma_RingCfgType_s
673{
674 uint64 *memPtr;
676 uint32 hwId;
678 uint32 size;
680 uint32 priority;
683
688typedef struct Eth_Udma_EventCfgType_s
689{
694 uint32 IrIntrNum;
697
702typedef struct Eth_Udma_RingEventCfgType_s
703{
704 uint8 ringIdx;
706 uint8 eventIdx;
712 uint32 srcOffset;
715
720typedef struct Eth_ConfigType_s Eth_ConfigType;
721
722/* ========================================================================== */
723/* Generate Configuration */
724/* ========================================================================== */
725
726#define ETH_START_SEC_CONST_UNSPECIFIED
727#include "Eth_MemMap.h"
728
729extern CONST(Eth_Udma_RingCfgType, ETH_VAR_NO_INIT) Eth_Udma_RingCfg_0[2U];
730extern CONST(Eth_Udma_EventCfgType, ETH_VAR_NO_INIT) Eth_EventCfg_Ctrl_0[2U];
731extern CONST(Eth_Udma_RingEventCfgType, ETH_VAR_NO_INIT) Eth_RingEventCfg_Ctrl_0[2U];
732
733
734#define ETH_STOP_SEC_CONST_UNSPECIFIED
735#include "Eth_MemMap.h"
736
737#define ETH_START_SEC_VAR_NO_INIT_UNSPECIFIED_128
738#include "Eth_MemMap.h"
739
740extern VAR(uint8, ETH_VAR_NO_INIT_128) Eth_Ctrl_0_Egress_BufferMem_0[24576U];
741extern VAR(Eth_DescType, ETH_VAR_NO_INIT_128) Eth_Ctrl_0_Egress_Descriptor_0[16U];
742
743extern VAR(uint8, ETH_VAR_NO_INIT_128) Eth_Ctrl_0_Ingress_BufferMem_0[24576U];
744extern VAR(Eth_DescType, ETH_VAR_NO_INIT_128) Eth_Ctrl_0_Ingress_Descriptor_0[16U];
745
746#define ETH_STOP_SEC_VAR_NO_INIT_UNSPECIFIED_128
747#include "Eth_MemMap.h"
748
749#define ETH_START_SEC_VAR_NO_INIT_8
750#include "Eth_MemMap.h"
751
752extern VAR(uint8, ETH_VAR_NO_INIT) Eth_Ctrl_0_Egress_BufferState_0[16U];
753extern VAR(uint8, ETH_VAR_NO_INIT) Eth_Ctrl_0_Ingress_BufferState_0[16U];
754
755#define ETH_STOP_SEC_VAR_NO_INIT_8
756#include "Eth_MemMap.h"
757
758#define ETH_START_SEC_VAR_NO_INIT_UNSPECIFIED
759#include "Eth_MemMap.h"
760
761extern VAR(Eth_QueueType, ETH_VAR_NO_INIT) Eth_Ctrl_0_Egress_Queue_0[1U];
762extern VAR(Eth_QueueType, ETH_VAR_NO_INIT) Eth_Ctrl_0_Ingress_Queue_0[1U];
763
764extern VAR(Eth_Udma_RingDynType, ETH_VAR_NO_INIT) Eth_RingDyn_Ctrl_0[2U];
765#define ETH_STOP_SEC_VAR_NO_INIT_UNSPECIFIED
766#include "Eth_MemMap.h"
767
768/* ========================================================================== */
769/* Function Declarations */
770/* ========================================================================== */
771
772/* ========================================================================== */
773/* External Function Prototype */
774/* ========================================================================== */
775#define ETH_START_SEC_CODE
776#include "Eth_MemMap.h"
777
778
779
780
781#define ETH_STOP_SEC_CODE
782#include "Eth_MemMap.h"
783
784
785/* ========================================================================== */
786/* Internal Function Declarations */
787/* ========================================================================== */
788
789
794#define Eth_GetMdioWriteLowBaseNsec() do { \
795 } while(TRUE == FALSE)
796#define Eth_GetMdioWriteHighBaseNsec() do { \
797 } while(TRUE == FALSE)
798#define Eth_GetMdioReadLowBaseNsec() do { \
799 } while(TRUE == FALSE)
800#define Eth_GetMdioReadHighBaseNsec() do { \
801 } while(TRUE == FALSE)
802/* @} */
803
808#define Eth_GetMdioWriteLowDelayNsec(CtrlIdx) do { \
809 } while(TRUE == FALSE)
810#define Eth_GetMdioWriteHighDelayNsec(CtrlIdx) do { \
811 } while(TRUE == FALSE)
812#define Eth_GetMdioReadLowDelayNsec(CtrlIdx) do { \
813 } while(TRUE == FALSE)
814#define Eth_GetMdioReadHighDelayNsec(CtrlIdx) do { \
815 } while(TRUE == FALSE)
816/* @} */
817
818#ifdef __cplusplus
819}
820#endif
821
822#endif /* #ifndef ETH_CFG_H_ */
823
824/* @} */
uint32 size
Definition Eth_Cfg.h:678
Std_ReturnType(* Eth_DmaRingCfg)(uint8 ctrlIdx, uint8 ringIdx)
Mdio delay in nsec function pointer.
Definition Eth_Cfg.h:562
const Eth_Udma_RingCfgType Eth_Udma_RingCfg_0[2U]
void(* Eth_MdioDelayNsecFunc)(void)
Pair PSIL TX channel function pointer.
Definition Eth_Cfg.h:565
Eth_MdioOperModeType
MDIO operating mode.
Definition Eth_Cfg.h:661
struct Eth_ConfigType_s Eth_ConfigType
Eth configuration type Configuration data of all controller.
Definition Eth_Cfg.h:720
Std_ReturnType(* EthVirtMacDmaTxChannelUnPair)(uint8 ctrlIdx)
Flow config function pointer.
Definition Eth_Cfg.h:571
uint8 virtBitNum
Definition Eth_Cfg.h:708
Std_ReturnType(* EthVirtMacDmaTxChannelPair)(uint8 ctrlIdx)
Unpair PSIL TX channel function pointer.
Definition Eth_Cfg.h:568
uint32 hwId
Definition Eth_Cfg.h:676
void(* Eth_RpcCmdComplete)(uint8 CtrlIdx, uint8 sid, sint32 status)
Application callback to indicate Rpc dispatch command completion.
Definition Eth_Cfg.h:551
VAR(uint8, ETH_VAR_NO_INIT_128) Eth_Ctrl_0_Egress_BufferMem_0[24576U]
uint32 IrIntrNum
Definition Eth_Cfg.h:694
const Eth_Udma_RingEventCfgType Eth_RingEventCfg_Ctrl_0[2U]
Std_ReturnType(* EthVirtMacDmaFLowReset)(uint8 ctrlIdx)
Definition Eth_Cfg.h:577
Std_ReturnType(* EthVirtMacDmaFLowCfg)(uint8 ctrlIdx)
Flow reset function pointer.
Definition Eth_Cfg.h:574
uint32 srcOffset
Definition Eth_Cfg.h:712
uint32 globalEvent
Definition Eth_Cfg.h:710
const Eth_Udma_EventCfgType Eth_EventCfg_Ctrl_0[2U]
Eth_EnetType
Enet Cpsw Type identifier.
Definition Eth_Cfg.h:640
uint32 coreIntrNum
Definition Eth_Cfg.h:690
uint8 eventIdx
Definition Eth_Cfg.h:706
uint8 ringIdx
Definition Eth_Cfg.h:704
uint32 virtIntrNum
Definition Eth_Cfg.h:692
void(* Eth_RpcFwRegistered)(uint8 CtrlIdx)
Application callback to indicate Ethernet firmware registered with the Eth RPC client.
Definition Eth_Cfg.h:559
uint64 * memPtr
Definition Eth_Cfg.h:674
Eth_MacConnectionType
Type/Speed/Duplex connection type.
Definition Eth_Cfg.h:618
uint32 priority
Definition Eth_Cfg.h:680
Eth_PortType
Port identifier.
Definition Eth_Cfg.h:586
@ ETH_MDIO_OPMODE_NORMAL
Definition Eth_Cfg.h:662
@ ETH_MDIO_OPMODE_MANUAL
Definition Eth_Cfg.h:664
@ ETH_ENETTYPE_CPSW5G
Definition Eth_Cfg.h:645
@ ETH_ENETTYPE_CPSWLAST
Definition Eth_Cfg.h:651
@ ETH_ENETTYPE_CPSW2G
Definition Eth_Cfg.h:641
@ ETH_ENETTYPE_CPSW3G_VIRTMAC
Definition Eth_Cfg.h:649
@ ETH_ENETTYPE_CPSW3G
Definition Eth_Cfg.h:647
@ ETH_ENETTYPE_CPSW9G
Definition Eth_Cfg.h:643
@ ETH_MAC_CONN_TYPE_RGMII_DETECT_INBAND
Definition Eth_Cfg.h:629
@ ETH_MAC_CONN_TYPE_RMII_100
Definition Eth_Cfg.h:621
@ ETH_MAC_CONN_TYPE_RGMII_FORCE_1000_FULL
Definition Eth_Cfg.h:627
@ ETH_MAC_CONN_TYPE_RGMII_FORCE_100_FULL
Definition Eth_Cfg.h:625
@ ETH_MAC_CONN_TYPE_RGMII_FORCE_100_HALF
Definition Eth_Cfg.h:623
@ ETH_MAC_CONN_TYPE_RMII_10
Definition Eth_Cfg.h:619
@ ETH_PORT_MAC_PORT_3
Definition Eth_Cfg.h:595
@ ETH_PORT_MAC_PORT_7
Definition Eth_Cfg.h:603
@ ETH_PORT_MAC_PORT_6
Definition Eth_Cfg.h:601
@ ETH_PORT_MAC_PORT_8
Definition Eth_Cfg.h:605
@ ETH_PORT_MAC_PORT_1
Definition Eth_Cfg.h:591
@ ETH_PORT_MAC_PORT_LAST
Definition Eth_Cfg.h:607
@ ETH_PORT_MAC_PORT_5
Definition Eth_Cfg.h:599
@ ETH_PORT_HOST_PORT
Definition Eth_Cfg.h:587
@ ETH_MAC_PORT_FIRST
Definition Eth_Cfg.h:589
@ ETH_PORT_MAC_PORT_2
Definition Eth_Cfg.h:593
@ ETH_PORT_MAC_PORT_4
Definition Eth_Cfg.h:597
Eth Udma event Configurations type Configuration related to Udma event.
Definition Eth_Cfg.h:689
Eth Udma ring Configurations type Configuration related to Udma ring.
Definition Eth_Cfg.h:673
Eth ring event configuration type Configuration related to ring event.
Definition Eth_Cfg.h:703