MCUSW
Ethernet Driver API

Introduction

The Ethernet Driver provides low-level access to the two-port Gigabit Ethernet Switch (MCU_CPSW0) hardware in the Jacinto 7 family. The first port (Port 0) is called host port and has a CPPI interface that interconnects the CPSW peripheral with the rest of the SoC. The second port (Port 1) is a MAC port which can be configured in RGMII or RMII mode.

The Ethernet Driver implements the standardized interface described in the AUTOSAR Release 4.2.1 Specification of the Ethernet Driver (AUTOSAR_SWS_EthDriver, Document ID 430).

The Ethernet Driver is part of the Communication Stack in the AUTOSAR Basic Software (BSW).

See also
Eth Configuration
Eth Driver Interrupt Handlers

Sub Modules

 Eth Driver Interrupt Handlers
 

Functions

 FUNC (void, ETH_CODE) Eth_Init(P2CONST(Eth_ConfigType
 This function initializes the driver. More...
 
 FUNC (Std_ReturnType, ETH_CODE) Eth_SetControllerMode(uint8 CtrlIdx
 This function enables / disables the indexed controller. More...
 
 P2VAR (Eth_ModeType, AUTOMATIC, ETH_APPL_DATA) CtrlModePtr)
 
 P2VAR (uint8, AUTOMATIC, ETH_APPL_DATA) PhysAddrPtr)
 
 P2CONST (uint8, AUTOMATIC, ETH_APPL_DATA) PhysAddrPtr)
 
uint8 uint8 P2VAR (uint16, AUTOMATIC, ETH_APPL_DATA) RegValPtr)
 
 P2VAR (Eth_RxStatsType, AUTOMATIC, ETH_APPL_DATA) RxStats)
 
 P2VAR (Eth_TxStatsType, AUTOMATIC, ETH_APPL_DATA) TxStats)
 
 P2VAR (Eth_TxErrorCounterValuesType, AUTOMATIC, ETH_APPL_DATA) TxErrorCounterValues)
 
 P2VAR (Eth_TimeStampQualType, AUTOMATIC, ETH_APPL_DATA) timeQualPtr
 
 P2VAR (Eth_TimeStampType, AUTOMATIC, ETH_APPL_DATA) timeStampPtr)
 
 P2VAR (Eth_DataType, AUTOMATIC, ETH_APPL_DATA) DataPtr
 
 FUNC (BufReq_ReturnType, ETH_CODE) Eth_ProvideTxBuffer(uint8 CtrlIdx
 This function provides access to a transmit buffer of the specified controller. More...
 
uint8 P2VAR (Eth_BufIdxType, AUTOMATIC, ETH_APPL_DAT) BufIdxPtr
 
uint8 P2VAR (uint8, AUTOMATIC, ETH_APPL_DAT) *BufPtr
 
uint8 P2VAR (uint16, AUTOMATIC, ETH_APPL_DAT) LenBytePtr)
 
Eth_BufIdxType Eth_FrameType boolean uint16 P2CONST (uint8, AUTOMATIC, ETH_APPL_DAT) PhysAddrPtr)
 
uint8 P2VAR (Eth_RxStatusType, AUTOMATIC, ETH_APPL_DAT) RxStatusPtr)
 
uint8 P2VAR (uint32, AUTOMATIC, ETH_APPL_DAT) BandwidthLimitPtr)
 
uint8 P2VAR (Eth_BufIdxType, AUTOMATIC, ETH_APPL_DATA) BufIdxPtr
 
Std_ReturnType Eth_RegisterReadback (VAR(uint8,) CtrlIdx, P2VAR(Eth_RegisterReadbackType, AUTOMATIC, ETH_APPL_DATA) RegRbPtr)
 This service will readback Eth registers. More...
 

Variables

 AUTOMATIC
 
ETH_PBCFG CfgPtr
 
Eth_ModeType CtrlMode
 
Eth_FilterActionType Action
 
uint8 TrcvIdx
 
uint8 uint8 RegIdx
 
uint8 uint8 uint16 RegVal
 
Eth_CounterType * CounterPtr
 
uint16 CtrOffs
 
uint16 uint32 * CtrValPtr
 
Eth_BufIdxType BufIdx
 
uint8 Priority
 
Eth_BufIdxType Eth_FrameType FrameType
 
Eth_BufIdxType Eth_FrameType boolean TxConfirmation
 
Eth_BufIdxType Eth_FrameType boolean uint16 LenByte
 
uint8 FifoIdx
 
ETH_APPL_DATA VersionInfo
 
uint8 QueuePrio
 
uint8 uint32 BandwidthLimit
 

Eth Driver Module SW Version Info

Definitions for the Eth Driver version used for compatibility checks

#define ETH_SW_MAJOR_VERSION   (11U)
 Driver Implementation Major Version. More...
 
#define ETH_SW_MINOR_VERSION   (0U)
 Driver Implementation Minor Version. More...
 
#define ETH_SW_PATCH_VERSION   (0U)
 Driver Implementation Patch Version. More...
 

Eth Driver Module AUTOSAR Version Info

Definitions for the Etj Driver AUTOSAR version used for compatibility checks

#define ETH_AR_RELEASE_MAJOR_VERSION   (4U)
 AUTOSAR Major version specification implemented by Eth Driver. More...
 
#define ETH_AR_RELEASE_MINOR_VERSION   (3U)
 AUTOSAR Minor version specification implemented by Eth Driver. More...
 
#define ETH_AR_RELEASE_REVISION_VERSION   (1U)
 AUTOSAR Patch version specification implemented by Eth Driver. More...
 

Eth Driver ID Info

#define ETH_VENDOR_ID   ((uint16) 44U)
 Texas Instruments Vendor ID. More...
 
#define ETH_MODULE_ID   ((uint16) 88U)
 Eth Driver Module ID. More...
 
#define ETH_INSTANCE_ID   ((uint8) 0U)
 Eth Driver Instance ID. More...
 

Eth Error Codes

Error codes returned by Eth functions

#define ETH_E_INV_CTRL_IDX   ((uint8) 0x01U)
 Invalid controller index. More...
 
#define ETH_E_UNINIT   ((uint8) 0x02U)
 Eth module was not initialized. More...
 
#define ETH_E_PARAM_POINTER   ((uint8) 0x03U)
 Invalid pointer in parameter list. More...
 
#define ETH_E_INV_PARAM   ((uint8) 0x04U)
 Invalid parameter. More...
 
#define ETH_E_INV_MODE   ((uint8) 0x05U)
 Invalid mode. More...
 
#define ETH_E_VIRTMAC_APIMISMATCH   ((uint8) 0x07U)
 Mismatch in API version between Eth Driver and ethernet firmware
More...
 
#define ETH_E_VIRTMAC_RPCCMDFAILED   ((uint8) 0x08U)
 Virtual MAC RPC command failed. More...
 
#define ETH_E_VIRTMAC_UNSUPPORTECLIENTNOTIFY   ((uint8) 0x09U)
 Ethernet MCAL RPC client received unhandled notify from ethernet firmware server. More...
 
#define ETH_E_VIRTMAC_UNSUPPORTEDSRVCMD   ((uint8) 0x0AU)
 Rpc Command sent by client not supported by server. More...
 
#define ETH_E_BUSY   ((uint8) 0x0BU)
 Device or resource is busy. More...
 
#define ETH_E_MDIO_FAULT   ((uint8) 0x0CU)
 MDIO fault occured. More...
 

Eth Service Ids

The Service Id is used to identify the source of an error when reported through the Det_ReportError() function.

#define ETH_SID_INIT   ((uint8) 0x01U)
 Eth_Init() API Service ID. More...
 
#define ETH_SID_SET_CONTROLLER_MODE   ((uint8) 0x03U)
 Eth_SetControllerMode() API Service ID. More...
 
#define ETH_SID_GET_CONTROLLER_MODE   ((uint8) 0x04U)
 Eth_GetControllerMode() API Service ID. More...
 
#define ETH_SID_WRITE_MII   ((uint8) 0x05U)
 Eth_WriteMii() API Service ID. More...
 
#define ETH_SID_READ_MII   ((uint8) 0x06U)
 Eth_ReadMii() API Service ID. More...
 
#define ETH_SID_GET_COUNTER_STATE   ((uint8) 0x07U)
 Eth_GetCounterState() API Service ID. More...
 
#define ETH_SID_GET_PHYS_ADDR   ((uint8) 0x08U)
 Eth_GetPhysAddr() API Service ID. More...
 
#define ETH_SID_PROVIDE_TX_BUFFER   ((uint8) 0x09U)
 Eth_ProvideTxBuffer() API Service ID. More...
 
#define ETH_SID_MAIN_FUNCTION   ((uint8) 0x20U)
 Eth_MainFunction() API Service ID. More...
 
#define ETH_SID_TRANSMIT   ((uint8) 0x0AU)
 Eth_Transmit() API Service ID. More...
 
#define ETH_SID_RECEIVE   ((uint8) 0x0BU)
 Eth_Receive() API Service ID. More...
 
#define ETH_SID_TX_CONFIRMATION   ((uint8) 0x0CU)
 Eth_TxConfirmation() API Service ID. More...
 
#define ETH_SID_GET_VERSION_INFO   ((uint8) 0x0DU)
 Eth_GetVersionInfo() API Service ID. More...
 
#define ETH_SID_RX_IRQ_HDLR   ((uint8) 0x10U)
 Eth_RxIrqHdlr_<CtrlIdx>() API Service ID. More...
 
#define ETH_SID_TX_IRQ_HDLR   ((uint8) 0x11U)
 Eth_TxIrqHdlr_<CtrlIdx>() API Service ID. More...
 
#define ETH_SID_UPDATE_PHYS_ADDR_FILTER   ((uint8) 0x12U)
 Eth_UpdatePhysAddrFilter() API Service ID. More...
 
#define ETH_SID_SET_PHYS_ADDR   ((uint8) 0x13U)
 Eth_SetPhysAddr() API Service ID. More...
 
#define ETH_SID_GET_COUNTER_VALUES   ((uint8) 0x14U)
 Eth_GetCounterValues() API Service ID. More...
 
#define ETH_SID_GET_RX_STATS   ((uint8) 0x15U)
 Eth_GetRxStats() API Service ID. More...
 
#define ETH_SID_GET_TX_STATS   ((uint8) 0x1CU)
 Eth_GetTxStats() API Service ID. More...
 
#define ETH_SID_GET_TXERROR_COUNTERVALUES   ((uint8) 0x1DU)
 Eth_GetTxErrorCounterValues() API Service ID. More...
 
#define ETH_SID_GET_CURRENT_TIME   ((uint8) 0x16U)
 Eth_GetCurrentTime() API Service ID. More...
 
#define ETH_SID_ENABLE_EGRESS_TIMESTAMP   ((uint8) 0x17U)
 Eth_EnableEgressTimeStamp() API Service ID. More...
 
#define ETH_SID_GET_EGRESS_TIMESTAMP   ((uint8) 0x18U)
 Eth_GetEgressTimeStamp() API Service ID. More...
 
#define ETH_SID_GET_INGRESS_TIMESTAMP   ((uint8) 0x19U)
 Eth_GetIngressTimeStamp() API Service ID. More...
 
#define ETH_SID_DISPATCH_VIRTMAC_INIT   ((uint8) 0x30U)
 Eth_DispatchVirtmacInit() API Service ID. More...
 
#define ETH_SID_DISPATCH_VIRTMAC_DEINIT   ((uint8) 0x31U)
 Eth_DispatchVirtmacDeinit() API Service ID. More...
 
#define ETH_SID_NOTIFY_VIRTMAC_MSGRECV   ((uint8) 0x32U)
 Eth_NotifyVirtmacMsgRecv() API Service ID. More...
 
#define ETH_SID_DISPATCH_VIRTMAC_SUBSCRIBE_ALLTRAFFIC   ((uint8) 0x33U)
 Eth_DispatchVirtmacSubscribeAllTraffic() API Service ID. More...
 
#define ETH_SID_DISPATCH_VIRTMAC_UNSUBSCRIBE_ALLTRAFFIC   ((uint8) 0x34U)
 Eth_DispatchVirtmacUnsubscribeAllTraffic() API Service ID. More...
 
#define ETH_SID_DISPATCH_VIRTMAC_SUBSCRIBE_DSTMAC   ((uint8) 0x35U)
 Eth_DispatchVirtmacSubscribeDstMac() API Service ID. More...
 
#define ETH_SID_DISPATCH_VIRTMAC_UNSUBSCRIBE_DSTMAC   ((uint8) 0x36U)
 Eth_DispatchVirtmacUnsubscribeDstMac() API Service ID. More...
 
#define ETH_SID_DISPATCH_VIRTMAC_IPV4_MACADDR_ASSOCIATE   ((uint8) 0x37U)
 Eth_DispatchVirtmacIPv4MacAddrAssociate() API Service ID. More...
 
#define ETH_SID_DISPATCH_VIRTMAC_IPV4_MACADDR_DISASSOCIATE   ((uint8) 0x38U)
 Eth_DispatchVirtmacIPv4MacAddrDisassociate() API Service ID. More...
 
#define ETH_SID_DISPATCH_VIRTMAC_ADD_UNICAST_MACADDR   ((uint8) 0x39U)
 Eth_DispatchVirtmacAddUnicastMacAddr() API Service ID. More...
 
#define ETH_SID_DISPATCH_VIRTMAC_ADD_MCAST_MACADDR   ((uint8) 0x3AU)
 Eth_DispatchVirtmacAddMcastMacAddr() API Service ID. More...
 
#define ETH_SID_DISPATCH_VIRTMAC_DEL_MACADDR   ((uint8) 0x3BU)
 Eth_DispatchVirtmacDelMacAddr() API Service ID. More...
 
#define ETH_SID_DISPATCH_VIRTMAC_ADD_VLAN   ((uint8) 0x3CU)
 Eth_DispatchVirtmacAddVlan() API Service ID. More...
 
#define ETH_SID_DISPATCH_VIRTMAC_DEL_VLAN   ((uint8) 0x3DU)
 Eth_DispatchVirtmacDelVlan() API Service ID. More...
 
#define ETH_SID_VIRTMAC_RPC_INIT   ((uint8) 0x3FU)
 Eth_VirtMacRpcInit() API Service ID. More...
 
#define ETH_SID_SET_BANDWIDTH_LIMIT   ((uint8) 0x50U)
 Eth_SetBandwidthLimit() API Service ID. More...
 
#define ETH_SID_GET_BANDWIDTH_LIMIT   ((uint8) 0x51U)
 Eth_GetBandwidthLimit() API Service ID. More...
 
#define ETH_SID_RELEASE_RX_BUFFER   ((uint8) 0x52U)
 Eth_ReleaseRxBuffer() API Service ID. More...
 
#define ETH_SID_PROVIDE_EXT_TX_BUFFER   ((uint8) 0x53U)
 Eth_ProvideExtTxBuffer() API Service ID. More...
 
#define ETH_SID_GET_TX_HEADER_PTR   ((uint8) 0x54U)
 Eth_GetTxHeaderPtr() API Service ID. More...
 
#define ETH_SID_GET_RX_HEADER_PTR   ((uint8) 0x55U)
 Eth_GetRxHeaderPtr() API Service ID. More...
 
#define ETH_SID_REGISTER_READBACK   ((uint8) 0x56U)
 Eth_RegisterReadback() API Service ID. More...
 

Macro Definition Documentation

◆ ETH_SW_MAJOR_VERSION

#define ETH_SW_MAJOR_VERSION   (11U)

Driver Implementation Major Version.

◆ ETH_SW_MINOR_VERSION

#define ETH_SW_MINOR_VERSION   (0U)

Driver Implementation Minor Version.

◆ ETH_SW_PATCH_VERSION

#define ETH_SW_PATCH_VERSION   (0U)

Driver Implementation Patch Version.

◆ ETH_AR_RELEASE_MAJOR_VERSION

#define ETH_AR_RELEASE_MAJOR_VERSION   (4U)

AUTOSAR Major version specification implemented by Eth Driver.

◆ ETH_AR_RELEASE_MINOR_VERSION

#define ETH_AR_RELEASE_MINOR_VERSION   (3U)

AUTOSAR Minor version specification implemented by Eth Driver.

◆ ETH_AR_RELEASE_REVISION_VERSION

#define ETH_AR_RELEASE_REVISION_VERSION   (1U)

AUTOSAR Patch version specification implemented by Eth Driver.

◆ ETH_VENDOR_ID

#define ETH_VENDOR_ID   ((uint16) 44U)

Texas Instruments Vendor ID.

◆ ETH_MODULE_ID

#define ETH_MODULE_ID   ((uint16) 88U)

Eth Driver Module ID.

◆ ETH_INSTANCE_ID

#define ETH_INSTANCE_ID   ((uint8) 0U)

Eth Driver Instance ID.

◆ ETH_E_INV_CTRL_IDX

#define ETH_E_INV_CTRL_IDX   ((uint8) 0x01U)

Invalid controller index.

◆ ETH_E_UNINIT

#define ETH_E_UNINIT   ((uint8) 0x02U)

Eth module was not initialized.

◆ ETH_E_PARAM_POINTER

#define ETH_E_PARAM_POINTER   ((uint8) 0x03U)

Invalid pointer in parameter list.

◆ ETH_E_INV_PARAM

#define ETH_E_INV_PARAM   ((uint8) 0x04U)

Invalid parameter.

◆ ETH_E_INV_MODE

#define ETH_E_INV_MODE   ((uint8) 0x05U)

Invalid mode.

◆ ETH_E_VIRTMAC_APIMISMATCH

#define ETH_E_VIRTMAC_APIMISMATCH   ((uint8) 0x07U)

Mismatch in API version between Eth Driver and ethernet firmware

◆ ETH_E_VIRTMAC_RPCCMDFAILED

#define ETH_E_VIRTMAC_RPCCMDFAILED   ((uint8) 0x08U)

Virtual MAC RPC command failed.

◆ ETH_E_VIRTMAC_UNSUPPORTECLIENTNOTIFY

#define ETH_E_VIRTMAC_UNSUPPORTECLIENTNOTIFY   ((uint8) 0x09U)

Ethernet MCAL RPC client received unhandled notify from ethernet firmware server.

◆ ETH_E_VIRTMAC_UNSUPPORTEDSRVCMD

#define ETH_E_VIRTMAC_UNSUPPORTEDSRVCMD   ((uint8) 0x0AU)

Rpc Command sent by client not supported by server.

◆ ETH_E_BUSY

#define ETH_E_BUSY   ((uint8) 0x0BU)

Device or resource is busy.

◆ ETH_E_MDIO_FAULT

#define ETH_E_MDIO_FAULT   ((uint8) 0x0CU)

MDIO fault occured.

◆ ETH_SID_INIT

#define ETH_SID_INIT   ((uint8) 0x01U)

Eth_Init() API Service ID.

◆ ETH_SID_SET_CONTROLLER_MODE

#define ETH_SID_SET_CONTROLLER_MODE   ((uint8) 0x03U)

Eth_SetControllerMode() API Service ID.

◆ ETH_SID_GET_CONTROLLER_MODE

#define ETH_SID_GET_CONTROLLER_MODE   ((uint8) 0x04U)

Eth_GetControllerMode() API Service ID.

◆ ETH_SID_WRITE_MII

#define ETH_SID_WRITE_MII   ((uint8) 0x05U)

Eth_WriteMii() API Service ID.

◆ ETH_SID_READ_MII

#define ETH_SID_READ_MII   ((uint8) 0x06U)

Eth_ReadMii() API Service ID.

◆ ETH_SID_GET_COUNTER_STATE

#define ETH_SID_GET_COUNTER_STATE   ((uint8) 0x07U)

Eth_GetCounterState() API Service ID.

◆ ETH_SID_GET_PHYS_ADDR

#define ETH_SID_GET_PHYS_ADDR   ((uint8) 0x08U)

Eth_GetPhysAddr() API Service ID.

◆ ETH_SID_PROVIDE_TX_BUFFER

#define ETH_SID_PROVIDE_TX_BUFFER   ((uint8) 0x09U)

Eth_ProvideTxBuffer() API Service ID.

◆ ETH_SID_MAIN_FUNCTION

#define ETH_SID_MAIN_FUNCTION   ((uint8) 0x20U)

Eth_MainFunction() API Service ID.

◆ ETH_SID_TRANSMIT

#define ETH_SID_TRANSMIT   ((uint8) 0x0AU)

Eth_Transmit() API Service ID.

◆ ETH_SID_RECEIVE

#define ETH_SID_RECEIVE   ((uint8) 0x0BU)

Eth_Receive() API Service ID.

◆ ETH_SID_TX_CONFIRMATION

#define ETH_SID_TX_CONFIRMATION   ((uint8) 0x0CU)

Eth_TxConfirmation() API Service ID.

◆ ETH_SID_GET_VERSION_INFO

#define ETH_SID_GET_VERSION_INFO   ((uint8) 0x0DU)

Eth_GetVersionInfo() API Service ID.

◆ ETH_SID_RX_IRQ_HDLR

#define ETH_SID_RX_IRQ_HDLR   ((uint8) 0x10U)

Eth_RxIrqHdlr_<CtrlIdx>() API Service ID.

◆ ETH_SID_TX_IRQ_HDLR

#define ETH_SID_TX_IRQ_HDLR   ((uint8) 0x11U)

Eth_TxIrqHdlr_<CtrlIdx>() API Service ID.

◆ ETH_SID_UPDATE_PHYS_ADDR_FILTER

#define ETH_SID_UPDATE_PHYS_ADDR_FILTER   ((uint8) 0x12U)

Eth_UpdatePhysAddrFilter() API Service ID.

◆ ETH_SID_SET_PHYS_ADDR

#define ETH_SID_SET_PHYS_ADDR   ((uint8) 0x13U)

Eth_SetPhysAddr() API Service ID.

◆ ETH_SID_GET_COUNTER_VALUES

#define ETH_SID_GET_COUNTER_VALUES   ((uint8) 0x14U)

Eth_GetCounterValues() API Service ID.

◆ ETH_SID_GET_RX_STATS

#define ETH_SID_GET_RX_STATS   ((uint8) 0x15U)

Eth_GetRxStats() API Service ID.

◆ ETH_SID_GET_TX_STATS

#define ETH_SID_GET_TX_STATS   ((uint8) 0x1CU)

Eth_GetTxStats() API Service ID.

◆ ETH_SID_GET_TXERROR_COUNTERVALUES

#define ETH_SID_GET_TXERROR_COUNTERVALUES   ((uint8) 0x1DU)

Eth_GetTxErrorCounterValues() API Service ID.

◆ ETH_SID_GET_CURRENT_TIME

#define ETH_SID_GET_CURRENT_TIME   ((uint8) 0x16U)

Eth_GetCurrentTime() API Service ID.

◆ ETH_SID_ENABLE_EGRESS_TIMESTAMP

#define ETH_SID_ENABLE_EGRESS_TIMESTAMP   ((uint8) 0x17U)

Eth_EnableEgressTimeStamp() API Service ID.

◆ ETH_SID_GET_EGRESS_TIMESTAMP

#define ETH_SID_GET_EGRESS_TIMESTAMP   ((uint8) 0x18U)

Eth_GetEgressTimeStamp() API Service ID.

◆ ETH_SID_GET_INGRESS_TIMESTAMP

#define ETH_SID_GET_INGRESS_TIMESTAMP   ((uint8) 0x19U)

Eth_GetIngressTimeStamp() API Service ID.

◆ ETH_SID_DISPATCH_VIRTMAC_INIT

#define ETH_SID_DISPATCH_VIRTMAC_INIT   ((uint8) 0x30U)

Eth_DispatchVirtmacInit() API Service ID.

◆ ETH_SID_DISPATCH_VIRTMAC_DEINIT

#define ETH_SID_DISPATCH_VIRTMAC_DEINIT   ((uint8) 0x31U)

Eth_DispatchVirtmacDeinit() API Service ID.

◆ ETH_SID_NOTIFY_VIRTMAC_MSGRECV

#define ETH_SID_NOTIFY_VIRTMAC_MSGRECV   ((uint8) 0x32U)

Eth_NotifyVirtmacMsgRecv() API Service ID.

◆ ETH_SID_DISPATCH_VIRTMAC_SUBSCRIBE_ALLTRAFFIC

#define ETH_SID_DISPATCH_VIRTMAC_SUBSCRIBE_ALLTRAFFIC   ((uint8) 0x33U)

Eth_DispatchVirtmacSubscribeAllTraffic() API Service ID.

◆ ETH_SID_DISPATCH_VIRTMAC_UNSUBSCRIBE_ALLTRAFFIC

#define ETH_SID_DISPATCH_VIRTMAC_UNSUBSCRIBE_ALLTRAFFIC   ((uint8) 0x34U)

Eth_DispatchVirtmacUnsubscribeAllTraffic() API Service ID.

◆ ETH_SID_DISPATCH_VIRTMAC_SUBSCRIBE_DSTMAC

#define ETH_SID_DISPATCH_VIRTMAC_SUBSCRIBE_DSTMAC   ((uint8) 0x35U)

Eth_DispatchVirtmacSubscribeDstMac() API Service ID.

◆ ETH_SID_DISPATCH_VIRTMAC_UNSUBSCRIBE_DSTMAC

#define ETH_SID_DISPATCH_VIRTMAC_UNSUBSCRIBE_DSTMAC   ((uint8) 0x36U)

Eth_DispatchVirtmacUnsubscribeDstMac() API Service ID.

◆ ETH_SID_DISPATCH_VIRTMAC_IPV4_MACADDR_ASSOCIATE

#define ETH_SID_DISPATCH_VIRTMAC_IPV4_MACADDR_ASSOCIATE   ((uint8) 0x37U)

Eth_DispatchVirtmacIPv4MacAddrAssociate() API Service ID.

◆ ETH_SID_DISPATCH_VIRTMAC_IPV4_MACADDR_DISASSOCIATE

#define ETH_SID_DISPATCH_VIRTMAC_IPV4_MACADDR_DISASSOCIATE   ((uint8) 0x38U)

Eth_DispatchVirtmacIPv4MacAddrDisassociate() API Service ID.

◆ ETH_SID_DISPATCH_VIRTMAC_ADD_UNICAST_MACADDR

#define ETH_SID_DISPATCH_VIRTMAC_ADD_UNICAST_MACADDR   ((uint8) 0x39U)

Eth_DispatchVirtmacAddUnicastMacAddr() API Service ID.

◆ ETH_SID_DISPATCH_VIRTMAC_ADD_MCAST_MACADDR

#define ETH_SID_DISPATCH_VIRTMAC_ADD_MCAST_MACADDR   ((uint8) 0x3AU)

Eth_DispatchVirtmacAddMcastMacAddr() API Service ID.

◆ ETH_SID_DISPATCH_VIRTMAC_DEL_MACADDR

#define ETH_SID_DISPATCH_VIRTMAC_DEL_MACADDR   ((uint8) 0x3BU)

Eth_DispatchVirtmacDelMacAddr() API Service ID.

◆ ETH_SID_DISPATCH_VIRTMAC_ADD_VLAN

#define ETH_SID_DISPATCH_VIRTMAC_ADD_VLAN   ((uint8) 0x3CU)

Eth_DispatchVirtmacAddVlan() API Service ID.

◆ ETH_SID_DISPATCH_VIRTMAC_DEL_VLAN

#define ETH_SID_DISPATCH_VIRTMAC_DEL_VLAN   ((uint8) 0x3DU)

Eth_DispatchVirtmacDelVlan() API Service ID.

◆ ETH_SID_VIRTMAC_RPC_INIT

#define ETH_SID_VIRTMAC_RPC_INIT   ((uint8) 0x3FU)

Eth_VirtMacRpcInit() API Service ID.

◆ ETH_SID_SET_BANDWIDTH_LIMIT

#define ETH_SID_SET_BANDWIDTH_LIMIT   ((uint8) 0x50U)

Eth_SetBandwidthLimit() API Service ID.

◆ ETH_SID_GET_BANDWIDTH_LIMIT

#define ETH_SID_GET_BANDWIDTH_LIMIT   ((uint8) 0x51U)

Eth_GetBandwidthLimit() API Service ID.

◆ ETH_SID_RELEASE_RX_BUFFER

#define ETH_SID_RELEASE_RX_BUFFER   ((uint8) 0x52U)

Eth_ReleaseRxBuffer() API Service ID.

◆ ETH_SID_PROVIDE_EXT_TX_BUFFER

#define ETH_SID_PROVIDE_EXT_TX_BUFFER   ((uint8) 0x53U)

Eth_ProvideExtTxBuffer() API Service ID.

◆ ETH_SID_GET_TX_HEADER_PTR

#define ETH_SID_GET_TX_HEADER_PTR   ((uint8) 0x54U)

Eth_GetTxHeaderPtr() API Service ID.

◆ ETH_SID_GET_RX_HEADER_PTR

#define ETH_SID_GET_RX_HEADER_PTR   ((uint8) 0x55U)

Eth_GetRxHeaderPtr() API Service ID.

◆ ETH_SID_REGISTER_READBACK

#define ETH_SID_REGISTER_READBACK   ((uint8) 0x56U)

Eth_RegisterReadback() API Service ID.

Function Documentation

◆ FUNC() [1/3]

FUNC ( void  ,
ETH_CODE   
)

This function initializes the driver.

The function checks for controller errors and lost frames. Used for polling state changes. Calls EthIf_CtrlModeIndication when the controller mode changed.

Function returns the version information of this module.

This function triggers frame transmission confirmation.

This function triggers frame reception.

This function reads back the ingress time stamp on a dedicated message object.

This function reads back the egress time stamp on a dedicated message object.

This function activates egress time stamping on a dedicated message object.

This function sets the physical source address used by the indexed controller.

This function obtains the physical source address used by the indexed controller.

*  Service name      : Eth_Init
*  Syntax            : void Eth_Init(
*                          const Eth_ConfigType* CfgPtr
*                      )
*  Mode              : Supervisor Mode (Privileged Mode)
*  Service ID[hex]   : 0x01
*  Sync/Async        : Synchronous
*  Reentrancy        : Non Reentrant
*  Parameters (in)   : CfPtr. Points to the implementation specific structure
*  Parameters (inout): None
*  Parameters (out)  : None
*  Return value      : None
*  Description       : Initializes the Ethernet Driver.
*  
*  Service name      : Eth_GetPhysAddr
*  Syntax            : void Eth_GetPhysAddr(
*                          uint8 CtrlIdx,
*                          uint8 *PhysAddrPtr
*                      )
*  Mode              : User Mode (Non-Privileged Mode)
*  Service ID[hex]   : 0x08
*  Sync/Async        : Synchronous
*  Reentrancy        : Non Reentrant
*  Parameters (in)   : CtrlIdx. Index of the controller within the context of the
*                               Ethernet Driver
*  Parameters (inout):
*  Parameters (out)  : PhysAddrPtr. Physical source address (MAC address) in network
*                                   byte order
*  Return value      : None
*  Description       : Obtains the physical source address used by the indexed
*                      controller.
*  
*  Service name      : Eth_SetPhysAddr
*  Syntax            : void Eth_SetPhysAddr(
*                          uint8 CtrlIdx,
*                          const uint8* PhysAddrPtr
*                      )
*  Mode              : Supervisor Mode (Privileged Mode)
*  Service ID[hex]   : 0x13
*  Sync/Async        : Synchronous
*  Reentrancy        : Non Reentrant for the same CtrlIdx, reentrant for different
*  Parameters (in)   : CtrlIdx. Index of the controller within the context of the
*                               Ethernet Driver
*                      PhysAddrPtr. Pointer to memory containing the physical source
*                                   address (MAC address) in network byte order
*  Parameters (inout): None
*  Parameters (out)  : None
*  Return value      : None
*  Description       : Sets the physical source address used by the indexed
*                      controller.
*  
*  Service name      : Eth_EnableEgressTimeStamp
*  Syntax            : void Eth_EnableEgressTimeStamp(
*                          uint8 CtrlIdx,
*                          Eth_BufIdxType BufIdx
*                      )
*  Mode              : Supervisor Mode (Privileged Mode)
*  Service ID[hex]   : 0x17
*  Sync/Async        : Synchronous
*  Reentrancy        : Non Reentrant
*  Parameters (in)   : CtrlIdx. Index of the controller within the context of the
*                               Ethernet Driver
*                      BufIdx. Index of the message buffer, where Application
*                              expects egress time stamping
*  Parameters (inout): None
*  Parameters (out)  : None
*  Return value      : None
*  Description       : Activates egress time stamping on a dedicated message
*                      object.
*                      Some HW does store once the egress time stamp marker and
*                      some HW needs it always before transmission. There will be
*                      no disable functionality, due to the fact, that the message
*                      type is always "time stamped" by network design.
*  
*  Service name      : Eth_GetEgressTimeStamp
*  Syntax            : void Eth_GetEgressTimeStamp(
*                          uint8 CtrlIdx,
*                          Eth_BufIdxType BufIdx,
*                          Eth_TimeStampQualType* timeQualPtr,
*                          Eth_TimeStampType *timeStampPtr
*                          )
*  Mode              : Supervisor Mode (Privileged Mode)
*  Service ID[hex]   : 0x18
*  Sync/Async        : Synchronous
*  Reentrancy        : Non Reentrant
*  Parameters (in)   : CtrlIdx. Index of the controller within the context of the
*                               Ethernet Driver
*                      BufIdx. Index of the message buffer, where Application
*                              expects egress time stamping
*  Parameters (inout): timeQualPtr. Quality of HW time stamp, e.g. based on current
*                                   drift
*                      timeStampPtr. Current time stamp
*  Parameters (out)  : None
*  Return value      : None
*  Description       : Reads back the egress time stamp on a dedicated message
*                      object.
*                      It must be called within the TxConfirmation() function.
*  
*  Service name      : Eth_GetIngressTimeStamp
*  Syntax            : void Eth_GetIngressTimeStamp(
*                          uint8 CtrlIdx,
*                          Eth_DataType* DataPtr,
*                          Eth_TimeStampQualType* timeQualPtr,
*                          Eth_TimeStampType *timeStampPtr
*                      )
*  Mode              : Supervisor Mode (Privileged Mode)
*  Service ID[hex]   : 0x19
*  Sync/Async        : Synchronous
*  Reentrancy        : Non Reentrant
*  Parameters (in)   : CtrlIdx. Index of the controller within the context of the
*                               Ethernet Driver
*                      DataPtr. Pointer to the message buffer, where Application
*                               expects ingress time stamping
*  Parameters (inout): timeQualPtr. Quality of HW time stamp, e.g. based on current
*                                   drift
*                      timeStampPtr. Current time stamp
*  Parameters (out)  : None
*  Return value      : None
*  Description       : Reads back the ingress time stamp on a dedicated message
*                      object.
*                      It must be called within the RxIndication() function.
*  
*  Service name      : Eth_Receive
*  Syntax            : void Eth_Receive(
*                          uint8 CtrlIdx,
*                          uint8 FifoIdx,
*                          Eth_RxStatusType* RxStatusPtr
*                      )
*  Mode              : Supervisor Mode (Privileged Mode)
*  Service ID[hex]   : 0xB
*  Sync/Async        : Synchronous
*  Reentrancy        : Non Reentrant
*  Parameters (in)   : CtrlIdx. Index of the controller within the context of the
*                               Ethernet Driver
*  Parameters (in)   : FifoIdx. Specifies the related fifo
*  Parameters (inout): None
*  Parameters (out)  : RxStatusPtr. Indicates whether a frame has been received and
*                                   if so, whether more frames are available or
*                                   frames got lost
*  Return value      : None
*  Description       : Triggers frame reception.
*  
*  Service name      : Eth_TxConfirmation
*  Syntax            : void Eth_TxConfirmation(
*                          uint8 CtrlIdx
*                      )
*  Mode              : Supervisor Mode (Privileged Mode)
*  Service ID[hex]   : 0xC
*  Sync/Async        : Synchronous
*  Reentrancy        : Non Reentrant
*  Parameters (in)   : CtrlIdx. Index of the controller within the context of the
*                                Ethernet Driver
*  Parameters (inout): None
*  Parameters (out)  : None
*  Return value      : None
*  Description       : Triggers frame transmission confirmation.
*  
*  Service name      : Eth_GetVersionInfo
*  Syntax            : void Eth_GetVersionInfo(
*                          Std_VersionInfoType* versioninfo
*                      )
*  Mode              : User Mode (Non-Privileged Mode)
*  Service ID[hex]   : 0xD
*  Sync/Async        : Synchronous
*  Reentrancy        : Reentrant
*  Parameters (in)   : None
*  Parameters (inout): None
*  Parameters (out)  : VersionInfoPtr. Pointer to where to store the version
*                      information of this module
*  Return value      : None
*  Description       : Returns the version information of this module.
*  
*  Service name      : Eth_MainFunction
*  Syntax            : void Eth_MainFunction(
*                          void
*                      )
*  Mode              : Supervisor Mode (Privileged Mode)
*  Service ID[hex]   : 0x0A
*  Description       : The function checks for controller errors and lost frames.
*                      Used for polling state changes. Calls EthIf_CtrlModeIndication
*                      when the controller mode changed.
*  

◆ FUNC() [2/3]

FUNC ( Std_ReturnType  ,
ETH_CODE   
)

This function enables / disables the indexed controller.

This function returns the pointer to the first octet of a received Ethernet frame. That allows access to the Ethernet header as well as the Ethernet payload. Call this function after the EthIf_RxIndication function is called.

This function returns the Ethernet header portion of a transmission frame. This allows the user to overwrite the Ethernet header according to his needs. Otherwise the header is written by the driver. Call this function after a call to Eth_ProvideTxBuffer or Eth_ProvideExtTxBuffer.

This function releases an RX buffer and prepares the buffer to be reused during reception.

This function get bandwidth for a specific transmitsion queue.

This function set bandwidth for a specific transmitsion queue.

This function triggers transmission of a previously filled transmit buffer.

This function returns a time value out of the HW registers.

This function reads a list of values to read statistic error counter values for transmission for corresponding controller.

This function reads a list with TX statistics values of the corresponding controller.

This function reads a list with RX statistics values of the corresponding controller.

Reads the value of a counter specified with its memory offset.

This function reads a list with counter values of the corresponding controller.

This function reads a transceiver register.

This function configures a transceiver register or triggers a function offered by the receiver Service.

This function updates the physical source address to / from the indexed controller filter.

This function obtains the state of the indexed controller.

This function enables / disables the indexed controller by Eth virtmac. This is only used for recovering CPSW process.

*  Service name      : Eth_SetControllerMode
*  Syntax            : Std_ReturnType Eth_SetControllerMode(
*                          uint8 CtrlIdx,
*                          Eth_ModeType CtrlMode
*                      )
*  Mode              : Supervisor Mode (Privileged Mode)
*  Service ID[hex]   : 0x03
*  Sync/Async        : Asynchronous
*  Reentrancy        : Non Reentrant
*  Parameters (in)   : CtrlIdx. Index of the controller within the context of the
*                               Ethernet Driver
*                      CtrlMode.
*                        ETH_MODE_DOWN: disable the controller
*                        ETH_MODE_ACTIVE: enable the controller
*  Parameters (inout): None
*  Parameters (out)  : None
*  Return value      : Std_ReturnType
*                        E_OK: success
*                        E_NOT_OK: controller mode could not be changed
*  Description       : Enables / disables the indexed controller.
*  
*  Service name      : Eth_SetControllerModeByVirtMac
*  Syntax            : Std_ReturnType Eth_SetControllerModeByVirtMac(
*                          uint8 CtrlIdx,
*                          Eth_ModeType CtrlMode
*                      )
*  Mode              : Supervisor Mode (Privileged Mode)
*  Service ID[hex]   : None
*  Sync/Async        : Asynchronous
*  Reentrancy        : Non Reentrant
*  Parameters (in)   : CtrlIdx. Index of the controller within the context of the
*                               Ethernet Driver
*                      CtrlMode.
*                        ETH_MODE_DOWN: disable the controller
*                        ETH_MODE_ACTIVE: enable the controller
*  Parameters (inout): None
*  Parameters (out)  : None
*  Return value      : Std_ReturnType
*                        E_OK: success
*                        E_NOT_OK: controller mode could not be changed
*  Description       : Enables / disables the indexed controller.
*  
*  Service name      : Eth_GetControllerMode
*  Syntax            : Std_ReturnType Eth_GetControllerMode(
*                          uint8 CtrlIdx,
*                          Eth_ModeType *CtrlModePtr
*                      )
*  Mode              : User Mode (Non-Privileged Mode)
*  Service ID[hex]   : 0x04
*  Sync/Async        : Synchronous
*  Reentrancy        : Non Reentrant
*  Parameters (in)   : CtrlIdx. Index of the controller within the context of the
*                               Ethernet Driver
*  Parameters (inout): CtrlModePtr
*                        ETH_MODE_DOWN: the controller is disabled
*                        ETH_MODE_ACTIVE: the controller is enabled
*  Parameters (out)  : None
*  Return value      : Std_ReturnType
*                        E_OK: success
*                        E_NOT_OK: controller mode could not be obtained
*  Description       : Obtains the state of the indexed controller.
*  
*  Service name      : Eth_UpdatePhysAddrFilter
*  Syntax            : Std_ReturnType Eth_UpdatePhysAddrFilter(
*                          uint8 CtrlIdx,
*                          uint8* PhysAddrPtr,
*                          Eth_FilterActionType Action
*                      )
*  Mode              : Supervisor Mode (Privileged Mode)
*  Service ID[hex]   : 0x12
*  Sync/Async        : Synchronous
*  Reentrancy        : Non Reentrant for the same CtrlIdx, reentrant for different
*  Parameters (in)   : CtrlIdx. Index of the controller within the context of the
*                               Ethernet Driver
*                      PhysAddrPtr. Pointer to memory containing the physical source
*                                   address (MAC address) in network byte order
*                      Action. Add or remove the address from the Ethernet controllers
*                              filter
*  Parameters (inout): None
*  Parameters (out)  : None
*  Return value      : Std_ReturnType
*                        E_OK: filter was successfully changed
*                        E_NOT_OK: filter could not be changed
*  Description       : Updates the physical source address to/from the indexed ontroller
*                      filter. If the Ethernet Controller is not capable to do the
*                      filtering, the software has to do this.
*  
*  Service name      : Eth_WriteMii
*  Syntax            : Std_ReturnType Eth_WriteMii(
*                          uint8 CtrlIdx,
*                          uint8 TrcvIdx,
*                          uint8 RegIdx,
*                          uint16 RegVal
*                      )
*  Mode              : Supervisor Mode (Privileged Mode)
*  Service ID[hex]   : 0x05
*  Sync/Async        : Asynchronous
*  Reentrancy        : Non Reentrant
*  Parameters (in)   : CtrlIdx. Index of the controller within the context of the
*                               Ethernet Driver
*                      TrcvIdx. Index of the transceiver on the MII
*                      RegIdx.Index of the transceiver register on the MII
*                      RegVal. Value to be written into the indexed registerNone
*  Parameters (inout): None
*  Parameters (out)  : None
*  Return value      : Std_ReturnType
*                        E_OK: Service accepted
*                        E_NOT_OK: Service denied
*                        ETH_E_NO_ACCESS: Ethernet transceiver access failure
*  Description       : Configures a transceiver register or triggers a function
*                      offered by the receiver.
*  
*  Service name      : Eth_ReadMii
*  Syntax            : Std_ReturnType Eth_ReadMii(
*                          uint8 CtrlIdx,
*                          uint8 TrcvIdx,
*                          uint8 RegIdx,
*                          uint16* RegValPtr
*                      )
*  Mode              : Supervisor Mode (Privileged Mode)
*  Service ID[hex]   : 0x06
*  Sync/Async        : Asynchronous
*  Reentrancy        : Non Reentrant
*  Parameters (in)   : CtrlIdx. Index of the controller within the context of the
*                               Ethernet Driver
*                      TrcvIdx. Index of the transceiver on the MII
*                      RegIdx. Index of the transceiver register on the MII
*                      RegVal. Value to be written into the indexed register
*  Parameters (inout): None
*  Parameters (out)  : RegValPtr. Filled with the register content of the indexed
*                                 register
*  Return value      : Std_ReturnType
*                        E_OK: Service accepted
*                        E_NOT_OK: Service denied
*                        ETH_E_NO_ACCESS: Ethernet transceiver access failure
*  Description       : Reads a transceiver register.
*  
*  Service name      : Eth_GetCounterValues
*  Syntax            : Std_ReturnType Eth_GetCounterValues(uint8 CtrlIdx,
*                                                          Eth_CounterType* CounterPtr);
*  Mode              : Supervisor Mode (Privileged Mode)
*  Service ID[hex]   : 0x14
*  Sync/Async        : Synchronous
*  Reentrancy        : Non Reentrant
*  Parameters (in)   : CtrlIdx. Index of the controller within the context of the
*                               Ethernet Driver
*  Parameters (out)  : CounterPtr. counter values according to IETF RFC 1757, RFC 1643 and
*                      RFC 2233. Refer to the \ref Eth_CounterType.
*  Return value      : Std_ReturnType
*                        E_OK: success
*                        E_NOT_OK: drop counter could not be obtained
*  Description       : Reads a list with drop counter values of the corresponding controller.
*                      The meaning of these values is described at Eth_CounterType
*  
*  Service name      : Eth_GetCounterState
*  Syntax            : Std_ReturnType Eth_GetCounterState(uint8 CtrlIdx,
*                                                         uint16 CtrOffs,
*                                                         uint32* CtrValPtr);
*  Mode              : Supervisor Mode (Privileged Mode)
*  Service ID[hex]   : 0x07
*  Sync/Async        : Synchronous
*  Reentrancy        : Non Reentrant
*  Parameters (in)   : CtrlIdx. Index of the controller within the context of the
*                               Ethernet Driver
*  Parameters (in)   : CtrOffs. Memory offset of the counter. The offset is controller specific.
*  Parameters (out)  : CtrValPtr. Filled with the content of the specified counter
*  Return value      : Std_ReturnType
*                        E_OK: success
*                        E_NOT_OK: specified counter offset not be obtained.
*  Description       : Reads the value of a counter specified with its memory offset.
*  
*  Service name      : Eth_GetRxStats
*  Syntax            : Std_ReturnType Eth_GetRxStats(
*                          uint8 CtrlIdx,
*                          Eth_RxStatsType* RxStats
*                      )
*  Mode              : Supervisor Mode (Privileged Mode)
*  Service ID[hex]   : 0x15
*  Sync/Async        : Synchronous
*  Reentrancy        : Non Reentrant
*  Parameters (in)   : CtrlIdx. Index of the controller within the context of the
*                               Ethernet Driver
*  Parameters (inout): None
*  Parameters (out)  : RxStats. List of values according to IETF RFC 2819 (Remote Network
*                      Monitoring Management Information Base). Refer to the \ref Eth_RxStatsType.
*  Return value      : Std_ReturnType
*                        E_OK: success
*                        E_NOT_OK: drop counter could not be obtained
*  Description       :
*  
*  Service name      : Eth_GetTxStats
*  Syntax            : Std_ReturnType Eth_GetTxStats(
*                          uint8 CtrlIdx,
*                          Eth_TxStatsType* TxStats
*                      )
*  Mode              : Supervisor Mode (Privileged Mode)
*  Service ID[hex]   : 0x15
*  Sync/Async        : Synchronous
*  Reentrancy        : Non Reentrant
*  Parameters (in)   : CtrlIdx. Index of the controller within the context of the
*                               Ethernet Driver
*  Parameters (inout): None
*  Parameters (out)  : TxStats. List of values according to IETF RFC 2819 (Remote Network
*                      Monitoring Management Information Base). Refer to the \ref Eth_TxStatsType.
*  Return value      : Std_ReturnType
*                        E_OK: success
*                        E_NOT_OK: drop counter could not be obtained
*  Description       :
*  
*  Service name      : Eth_GetTxErrorCounterValues
*  Syntax            : Eth_GetTxErrorCounterValues(uint8 CtrlIdx,
*                            Eth_TxErrorCounterValuesType *TxErrorCounterValues)
*  Mode              : Supervisor Mode (Privileged Mode)
*  Service ID[hex]   : 0x15
*  Sync/Async        : Synchronous
*  Reentrancy        : Non Reentrant
*  Parameters (in)   : CtrlIdx. Index of the controller within the context of the
*                               Ethernet Driver
*  Parameters (inout): None
*  Parameters (out)  : TxErrorCounterValues. List of values to read statistic error counter values
*                      for transmission. Refer to the \ref Eth_TxErrorCounterValuesType.
*  Return value      : Std_ReturnType
*                        E_OK: success
*                        E_NOT_OK: drop counter could not be obtained
*  Description       :
*  
*  Service name      : Eth_GetCurrentTime
*  Syntax            : Std_ReturnType Eth_GetCurrentTime(
*                          uint8 CtrlIdx,
*                          Eth_TimeStampQualType *timeQualPtr,
*                          Eth_TimeStampType *timeStampPtr
*                      )
*  Mode              : Supervisor Mode (Privileged Mode)
*  Service ID[hex]   : 0x16
*  Sync/Async        : Synchronous
*  Reentrancy        : Non Reentrant
*  Parameters (in)   : CtrlIdx. Index of the controller within the context of the
*                               Ethernet Driver
*  Parameters (inout): None
*  Parameters (out)  : timeQualPtr. Quality of HW time stamp, e.g. based on current
*                                   drift
*  Return value      : Std_ReturnType
*                        E_OK: success
*                        E_NOT_OK: failed
*  Description       : Returns a time value out of the HW registers according
*                      to the capability of the HW. Is the HW resolution is lower than
*                      the Eth_TimeStampType resolution resp. range, than an the
*                      remaining bits will be filled with 0.
*  
*  Service name      : Eth_Transmit
*  Syntax            : Std_ReturnType Eth_Transmit(
*                          uint8 CtrlIdx,
*                          Eth_BufIdxType BufIdx,
*                          Eth_FrameType FrameType,
*                          boolean TxConfirmation,
*                          uint16 LenByte,
*                          uint8 *PhysAddrPtr)
*  Mode              : Supervisor Mode (Privileged Mode)
*  Service ID[hex]   : 0xA
*  Sync/Async        : Synchronous
*  Reentrancy        : Non Reentrant
*  Parameters (in)   : CtrlIdx. Index of the controller within the context of the
*                               Ethernet Driver
*                      BufIdx. Index of the buffer resource
*                      FrameType. Ethernet frame type
*                      TxConfirmation. Activates transmission confirmation
*                      LenByte. Data length in byte
*                      PhysAddrPtr. Physical target address (MAC address) in
*                                   network byte order
*  Parameters (inout): None
*  Parameters (out)  : None
*  Return value      : Std_ReturnType
*                        E_OK: success
*                        E_NOT_OK: transmission failed
*  Description       : Triggers transmission of a previously filled transmit
*                      buffer.
*  
*  Service name      : Eth_Receive
*  Syntax            : FUNC(Std_ReturnType, ETH_CODE) Eth_SetBandwidthLimit(
                             uint8   CtrlIdx,
                             uint8   QueuePrio,
                             uint32  BandwidthLimit
                       );
*  Mode              : User Mode (Non-Privileged Mode)
*  Service ID[hex]   : 0x2C
*  Sync/Async        : Synchronous
*  Reentrancy        : Non Reentrant
*  Parameters (in)   : CtrlIdx. Index of the controller within the context of the
*                               Ethernet Driver
*  Parameters (in)   : QueuePrio. Specifies the related fifo
*                      BandwidthLimit. Bandwidth value
*  Parameters (inout): None
*  Parameters (out)  : None
*  Return value      : Std_ReturnType
*                        E_OK: success
*                        E_NOT_OK: configure bandwidth failed
*  Description       : This function set bandwidth for a specific transmitsion queue.
*  
*  Service name      : Eth_Receive
*  Syntax            : FUNC(Std_ReturnType, ETH_CODE) Eth_GetBandwidthLimit(
                           uint8              CtrlIdx,
                           uint8              QueuePrio,
                           P2VAR(uint32, AUTOMATIC, ETH_APPL_DAT)  BandwidthLimitPtr
                       );
*  Mode              : User Mode (None-Privileged Mode)
*  Service ID[hex]   : 0x2D
*  Sync/Async        : Synchronous
*  Reentrancy        : Non Reentrant
*  Parameters (in)   : CtrlIdx. Index of the controller within the context of the
*                               Ethernet Driver
*  Parameters (in)   : QueuePrio. Specifies the related fifo
*  Parameters (inout): BandwidthLimitPtr Pointer to where to store the currently configured bandwidth limit (in [bit/s])

*  Return value      : Std_ReturnType
*                        E_OK: success
*                        E_NOT_OK: retrive bandwidth failed
*  Description       : This function get bandwidth for a specific transmitsion queue.
*  
*  Service name      : Eth_ReleaseRxBuffer
*  Syntax            : FUNC(Std_ReturnType, ETH_CODE) Eth_ReleaseRxBuffer(uint8 CtrlIdx,
*                          P2VAR(Eth_DataType, AUTOMATIC, ETH_APPL_DATA) BufPtr
*                      );
*
*  Mode              : User Mode (None-Privileged Mode)
*  Service ID[hex]   : 0x30
*  \param (in)       : CtrlIdx. Index of the controller within the context of the
*                                   Ethernet Driver
*  \param (in)       : BufPtr. Pointer to the reception buffer
*
*  \return value     : E_NOT_OK : Buffer could not be released. This may only happen with a
*                                  wrong BufPtr or when DET is enabled.
*                      E_OK : Buffer successfully released.
*
*  
*  Service name      : Eth_GetTxHeaderPtr
*  Syntax            : FUNC(Std_ReturnType, ETH_CODE) Eth_GetTxHeaderPtr(uint8 CtrlIdx,
                           uint8 BufIdx,
                           P2VAR(Eth_DataType, AUTOMATIC, ETH_APPL_DATA) *BufPtr,
                           P2VAR(uint16, AUTOMATIC, ETH_APPL_DATA) LenBytePtr)
*                      );
*
*  Mode              : User Mode (None-Privileged Mode)
*  Service ID[hex]   : 0x32
*
*
*  \param (in)   : CtrlIdx. Controller index
*  \param (in)   : BufIdx. Buffer index
*  \param (out)  : BufPtr. Pointer to buffer area that holds the Ethernet transmission header
*  \param (inout): LenBytePtr The Ethernet header length. This is always 14 bytes.
*  \return value      : E_OK : Success
*                       E_NOT_OK : Either the buffer associated with BufIdx is in a wrong state.
*
*  
*  Service name      : Eth_GetRxHeaderPtr
*  Syntax            : FUNC(Std_ReturnType, ETH_CODE) Eth_GetRxHeaderPtr(uint8 CtrlIdx,
                           P2VAR(Eth_DataType, AUTOMATIC, ETH_APPL_DATA) *BufPtr,
                           P2VAR(uint16, AUTOMATIC, ETH_APPL_DATA) LenBytePtr)
*                      );
*  Mode              : User Mode (None-Privileged Mode)
*  Service ID[hex]   : 0x33
*  \param (in)   : CtrlIdx. Controller index
*  \param (out)  : BufPtr. Pointer to the payload portion of the received Ethernet frame.
*                          This pointer is passed to the EthIf_RxIndication callback function
*  \param (inout): LenBytePtr The Ethernet header length. This is always 14 bytes.
*  \return value      : E_OK : Success
*                       E_NOT_OK : Either the buffer associated with BufIdx is in a wrong state.
*
*  

◆ P2VAR() [1/15]

P2VAR ( Eth_ModeType  ,
AUTOMATIC  ,
ETH_APPL_DATA   
)

◆ P2VAR() [2/15]

P2VAR ( uint8  ,
AUTOMATIC  ,
ETH_APPL_DATA   
)

◆ P2CONST() [1/2]

P2CONST ( uint8  ,
AUTOMATIC  ,
ETH_APPL_DATA   
)

◆ P2VAR() [3/15]

P2VAR ( uint16  ,
AUTOMATIC  ,
ETH_APPL_DATA   
)

◆ P2VAR() [4/15]

P2VAR ( Eth_RxStatsType  ,
AUTOMATIC  ,
ETH_APPL_DATA   
)

◆ P2VAR() [5/15]

P2VAR ( Eth_TxStatsType  ,
AUTOMATIC  ,
ETH_APPL_DATA   
)

◆ P2VAR() [6/15]

P2VAR ( Eth_TxErrorCounterValuesType  ,
AUTOMATIC  ,
ETH_APPL_DATA   
)

◆ P2VAR() [7/15]

P2VAR ( Eth_TimeStampQualType  ,
AUTOMATIC  ,
ETH_APPL_DATA   
)

◆ P2VAR() [8/15]

P2VAR ( Eth_TimeStampType  ,
AUTOMATIC  ,
ETH_APPL_DATA   
)

◆ P2VAR() [9/15]

P2VAR ( Eth_DataType  ,
AUTOMATIC  ,
ETH_APPL_DATA   
)

◆ FUNC() [3/3]

FUNC ( BufReq_ReturnType  ,
ETH_CODE   
)

This function provides access to a transmit buffer of the specified controller.

This function provides an external buffer for frame transmission. The buffer is supposed to be locked until transmission confirmation is called.

*  Service name      : Eth_ProvideTxBuffer
*  Syntax            : BufReq_ReturnType Eth_ProvideTxBuffer(
*                          uint8 CtrlIdx,
*                          uint8 Priority,
*                          uint8* BufIdxPtr,
*                          uint8** BufPtr,
*                          uint16* LenBytePtr
*                      )
*  Mode              : User Mode (Non-Privileged Mode)
*  Service ID[hex]   : 0x09
*  Sync/Async        : Synchronous
*  Reentrancy        : Non Reentrant
*  Parameters (in)   : CtrlIdx. Index of the controller within the context of the
*                               Ethernet Driver
*  Parameters (in)   : Priority. Frame priority for transmit buffer FIFO selection
*  Parameters (inout): LenBytePtr
*                        In: desired length in bytes, out: granted length in bytes
*  Parameters (out)  : BufIdxPtr. Index to the granted buffer resource. To be used
*                                 for subsequent requests
*                      BufPtr. Pointer to the granted buffer
*  Return value      : BufReq_ReturnType
*                        BUFREQ_OK: success
*                        BUFREQ_E_NOT_OK: development error detected
*                        BUFREQ_E_BUSY: all buffers in use
*                        BUFREQ_E_OVFL: requested buffer too large
*  Description       : Provides access to a transmit buffer of the specified
*                      controller.
*  
*  Service name      : Eth_ProvideExtTxBuffer
*  Syntax            : FUNC(BufReq_ReturnType, ETH_CODE) Eth_ProvideExtTxBuffer(uint8 CtrlIdx,
                           uint8 Priority,
                           P2VAR(Eth_BufIdxType, AUTOMATIC, ETH_APPL_DATA) BufIdxPtr,
                           P2VAR(uint8, AUTOMATIC, ETH_APPL_DATA) *BufPtr,
                           P2VAR(uint16, AUTOMATIC, ETH_APPL_DATA) LenBytePtr
*                      );
*
*  Mode              : User Mode (None-Privileged Mode)
*  Service ID[hex]   : 0x31
*
*  \param (in)   : CtrlIdx. Index of the controller within the context of the
*                               Ethernet Driver
*  \param (in)   : FifoIdx. FIFO selection
*  \param (inout): LenBytePtr The length of the external buffer
*  \param (out)  : BufIdxPtr. Index to the granted buffer resource. To be used
*                                 for subsequent requests
*                      BufPtr. Pointer to an external buffer location
*  \return value      : BufReq_ReturnType
*                        BUFREQ_OK: success
*                        BUFREQ_E_NOT_OK: development error detected
*                        BUFREQ_E_BUSY: all buffers in use
*                        BUFREQ_E_OVFL: requested buffer too large
*
*  

◆ P2VAR() [10/15]

uint8 P2VAR ( Eth_BufIdxType  ,
AUTOMATIC  ,
ETH_APPL_DAT   
)

◆ P2VAR() [11/15]

uint8 P2VAR ( uint8  ,
AUTOMATIC  ,
ETH_APPL_DAT   
)

◆ P2VAR() [12/15]

uint8 P2VAR ( uint16  ,
AUTOMATIC  ,
ETH_APPL_DAT   
)

◆ P2CONST() [2/2]

Eth_BufIdxType Eth_FrameType boolean uint16 P2CONST ( uint8  ,
AUTOMATIC  ,
ETH_APPL_DAT   
)

◆ P2VAR() [13/15]

uint8 P2VAR ( Eth_RxStatusType  ,
AUTOMATIC  ,
ETH_APPL_DAT   
)

◆ P2VAR() [14/15]

uint8 P2VAR ( uint32  ,
AUTOMATIC  ,
ETH_APPL_DAT   
)

◆ P2VAR() [15/15]

uint8 P2VAR ( Eth_BufIdxType  ,
AUTOMATIC  ,
ETH_APPL_DATA   
)

◆ Eth_RegisterReadback()

Std_ReturnType Eth_RegisterReadback ( VAR(uint8,)  CtrlIdx,
P2VAR(Eth_RegisterReadbackType, AUTOMATIC, ETH_APPL_DATA)  RegRbPtr 
)

This service will readback Eth registers.

*
*  Service name      : Eth_RegisterReadback
*  Syntax            : Std_ReturnType Eth_RegisterReadback(uint8 CtrlIdx)
*  Mode              : Supervisor Mode (Privileged Mode)
*  Service ID[hex]   : 0x56
*  Sync/Async        : Synchronous
*  Reentrancy        : Reentrant
*  Parameters (in)   : CtrlIdx
*                      - Eth Controller to readback registers configuration.
*  Parameters (inout): RegRbPtr - Pointer to where to store the readback
*                      values. If this pointer is NULL_PTR, then the API
*                      will return E_NOT_OK.
*  Parameters (out)  : None
*  Return value      : Std_ReturnType
*                      - E_OK: Register readback successful.
*                      - E_NOT_OK: Register readback failed.
*  Description       : This service will readback Eth registers.
* 

Variable Documentation

◆ AUTOMATIC

AUTOMATIC

◆ CfgPtr

ETH_PBCFG CfgPtr

◆ CtrlMode

Eth_ModeType CtrlMode

◆ Action

Eth_FilterActionType Action

◆ TrcvIdx

uint8 TrcvIdx

◆ RegIdx

uint8 uint8 RegIdx

◆ RegVal

uint8 uint8 uint16 RegVal

◆ CounterPtr

Eth_CounterType* CounterPtr

◆ CtrOffs

uint16 CtrOffs

◆ CtrValPtr

uint16 uint32* CtrValPtr

◆ BufIdx

uint8 BufIdx

◆ Priority

uint8 Priority

◆ FrameType

Eth_BufIdxType Eth_FrameType FrameType

◆ TxConfirmation

Eth_BufIdxType Eth_FrameType boolean TxConfirmation

◆ LenByte

Eth_BufIdxType Eth_FrameType boolean uint16 LenByte

◆ FifoIdx

uint8 FifoIdx

◆ VersionInfo

ETH_APPL_DATA VersionInfo

◆ QueuePrio

uint8 QueuePrio

◆ BandwidthLimit

uint8 uint32 BandwidthLimit