This file contains the type definitions and helper macros for the Enet Peripheral interface.
Go to the source code of this file.
Data Structures | |
struct | Enet_DfltFlowInfo |
Rx Default Flow Info used for default flow registration/unregistration. More... | |
struct | Enet_MacDstFlowInfo |
Output args for ENET_PER_IOCTL_ATTACH_CORE command. More... | |
struct | EnetPer_PortLinkCfg |
Input args for ENET_PER_IOCTL_OPEN_PORT_LINK command. More... | |
struct | EnetPer_AttachCoreOutArgs |
Output args for ENET_PER_IOCTL_ATTACH_CORE command. More... | |
struct | Enet_ExtPhyLinkUpEventInfo |
Input args for ENET_PER_IOCTL_HANDLE_EXTPHY_LINKUP_EVENT command. More... | |
struct | Enet_IoctlRegisterHandlerInArgs |
ENET_PER_IOCTL_REGISTER_IOCTL_HANDLER inArgs More... | |
struct | EnetPer_Obj |
Ethernet Peripheral object. More... | |
Macros | |
#define | ENET_TO_PER(per) ((EnetPer_Handle)(per)) |
Convert peripheral specific handle to EnetMod generic handle. More... | |
#define | ENET_PER_NAME(per) (ENET_TO_PER(per)->name) |
Get peripheral name. More... | |
#define | ENET_PER_PUBLIC_IOCTL(x) |
Helper macro to create IOCTL commands for peripherals. More... | |
Typedefs | |
typedef struct EnetPer_Obj_s * | EnetPer_Handle |
Ethernet Peripheral handle. More... | |
typedef void(*const | EnetPer_InitCfg) (EnetPer_Handle hPer, Enet_Type enetType, void *cfg, uint32_t cfgSize) |
Initialize peripheral's configuration parameters. More... | |
typedef int32_t(*const | EnetPer_Open) (EnetPer_Handle hPer, Enet_Type enetType, uint32_t instId, const void *cfg, uint32_t cfgSize) |
Open and initialize the Enet Peripheral. More... | |
typedef int32_t(*const | EnetPer_Rejoin) (EnetPer_Handle hPer, Enet_Type enetType, uint32_t instId) |
Rejoin a running Enet Peripheral. More... | |
typedef int32_t(*const | EnetPer_Ioctl) (EnetPer_Handle hPer, uint32_t cmd, Enet_IoctlPrms *prms) |
Issue an operation on the Enet Peripheral. More... | |
typedef void(*const | EnetPer_Poll) (EnetPer_Handle hPer, Enet_Event evt, const void *arg, uint32_t argSize) |
Poll for Ethernet events. More... | |
typedef uint64_t(*const | EnetPer_ConvertTs) (EnetPer_Handle hPer, uint64_t ts) |
Convert a timestamp to nanoseconds. More... | |
typedef void(*const | EnetPer_PeriodicTick) (EnetPer_Handle hPer) |
Run periodic tick on the Ethernet peripheral. More... | |
typedef void(*const | EnetPer_RegisterEventCb) (EnetPer_Handle hPer, Enet_Event evt, uint32_t evtNum, Enet_EventCallback evtCb, void *evtCbArgs) |
Register a callback for an event. More... | |
typedef void(*const | EnetPer_UnregisterEventCb) (EnetPer_Handle hPer, Enet_Event evt, uint32_t evtNum) |
Unregister callback for an event. More... | |
typedef void(*const | EnetPer_Close) (EnetPer_Handle hPer) |
Close the Enet Peripheral. More... | |
typedef void(*const | EnetPer_SaveCtxt) (EnetPer_Handle hPer) |
Save and close the Enet Peripheral. More... | |
typedef int32_t(*const | EnetPer_RestoreCtxt) (EnetPer_Handle hPer, Enet_Type enetType, uint32_t instId) |
Restores and Opens the Enet Peripheral. More... | |
Enumerations | |
enum | EnetPer_Ioctl_e { ENET_PER_IOCTL_GET_VERSION = ENET_PER_PUBLIC_IOCTL(0U), ENET_PER_IOCTL_PRINT_REGS = ENET_PER_PUBLIC_IOCTL(1U), ENET_PER_IOCTL_OPEN_PORT_LINK = ENET_PER_PUBLIC_IOCTL(2U), ENET_PER_IOCTL_CLOSE_PORT_LINK = ENET_PER_PUBLIC_IOCTL(3U), ENET_PER_IOCTL_IS_PORT_LINK_UP = ENET_PER_PUBLIC_IOCTL(4U), ENET_PER_IOCTL_GET_PORT_LINK_CFG = ENET_PER_PUBLIC_IOCTL(5U), ENET_PER_IOCTL_ATTACH_CORE = ENET_PER_PUBLIC_IOCTL(6U), ENET_PER_IOCTL_DETACH_CORE = ENET_PER_PUBLIC_IOCTL(7U), ENET_IOCTL_REGISTER_RX_DEFAULT_FLOW = ENET_PER_PUBLIC_IOCTL(8U), ENET_IOCTL_UNREGISTER_RX_DEFAULT_FLOW = ENET_PER_PUBLIC_IOCTL(9U), ENET_IOCTL_REGISTER_DSTMAC_RX_FLOW = ENET_PER_PUBLIC_IOCTL(10U), ENET_IOCTL_UNREGISTER_DSTMAC_RX_FLOW = ENET_PER_PUBLIC_IOCTL(11U), ENET_PER_IOCTL_SET_VLAN_AWARE = ENET_PER_PUBLIC_IOCTL(12U), ENET_PER_IOCTL_SET_VLAN_UNAWARE = ENET_PER_PUBLIC_IOCTL(13U), ENET_PER_IOCTL_HANDLE_EXTPHY_LINKUP_EVENT = ENET_PER_PUBLIC_IOCTL(14U), ENET_PER_IOCTL_HANDLE_EXTPHY_LINKDOWN_EVENT = ENET_PER_PUBLIC_IOCTL(15U), ENET_PER_IOCTL_REGISTER_IOCTL_HANDLER = ENET_PER_PUBLIC_IOCTL(16U), ENET_PER_IOCTL_SET_ISOLATE_STATE = ENET_PER_PUBLIC_IOCTL(17U), ENET_PER_IOCTL_CLEAR_ISOLATE_STATE = ENET_PER_PUBLIC_IOCTL(17U) } |
Ethernet peripheral IOCTL commands. More... | |
#define ENET_TO_PER | ( | per | ) | ((EnetPer_Handle)(per)) |
Convert peripheral specific handle to EnetMod generic handle.
#define ENET_PER_NAME | ( | per | ) | (ENET_TO_PER(per)->name) |
Get peripheral name.
#define ENET_PER_PUBLIC_IOCTL | ( | x | ) |
Helper macro to create IOCTL commands for peripherals.
typedef struct EnetPer_Obj_s* EnetPer_Handle |
Ethernet Peripheral handle.
Ethernet Peripheral handle used to call any EnetPer related APIs.
typedef void(* const EnetPer_InitCfg) (EnetPer_Handle hPer, Enet_Type enetType, void *cfg, uint32_t cfgSize) |
Initialize peripheral's configuration parameters.
Initializes the configuration parameter of the Enet Peripheral.
hPer | Enet Peripheral handle |
enetType | Enet Peripheral type |
cfg | Configuration parameters to be initialized |
cfgSize | Size of the configuration parameters |
typedef int32_t(* const EnetPer_Open) (EnetPer_Handle hPer, Enet_Type enetType, uint32_t instId, const void *cfg, uint32_t cfgSize) |
Open and initialize the Enet Peripheral.
Opens and initializes the Enet Peripheral with the configuration parameters provided by the caller.
hPer | Enet Peripheral handle |
enetType | Enet Peripheral type |
instId | Enet Peripheral instance id |
cfg | Configuration parameters |
cfgSize | Size of the configuration parameters |
typedef int32_t(* const EnetPer_Rejoin) (EnetPer_Handle hPer, Enet_Type enetType, uint32_t instId) |
Rejoin a running Enet Peripheral.
Reopens the Enet Peripheral, but doesn't perform any hardware initialization. This function is expected to be called to attach to a running peripheral.
This is an optional function and could be set to NULL if the peripheral doesn't implement it.
hPer | Enet Peripheral handle |
enetType | Enet Peripheral type |
instId | Enet Peripheral instance id |
typedef int32_t(* const EnetPer_Ioctl) (EnetPer_Handle hPer, uint32_t cmd, Enet_IoctlPrms *prms) |
Issue an operation on the Enet Peripheral.
Issues a control operation on the Enet Peripheral.
hPer | Enet Peripheral handle |
cmd | IOCTL command Id |
prms | IOCTL parameters |
typedef void(* const EnetPer_Poll) (EnetPer_Handle hPer, Enet_Event evt, const void *arg, uint32_t argSize) |
Poll for Ethernet events.
Unblocking poll for the events specified in evt
.
This is an optional function and could be set to NULL if the peripheral doesn't implement it.
hPer | Enet Peripheral handle |
evt | Event type |
arg | Pointer to the poll argument. This is specific to the poll event type |
argSize | Size of arg |
typedef uint64_t(* const EnetPer_ConvertTs) (EnetPer_Handle hPer, uint64_t ts) |
Convert a timestamp to nanoseconds.
Converts a peripheral-specific timestamp value to nanoseconds value. Timestamp values could be defined as bitfields or absolute values, so the peripheral has to perform the conversion to a nanosecond value, so it's presented in an uniform unit to the application.
This is an optional function and could be set to NULL if the peripheral doesn't implement it.
hPer | Enet Peripheral handle |
ts | Timestamp value, definition is peripheral specific |
typedef void(* const EnetPer_PeriodicTick) (EnetPer_Handle hPer) |
Run periodic tick on the Ethernet peripheral.
Run PHY periodic tick on the Ethernet peripheral.
hPer | Enet Peripheral handle |
typedef void(* const EnetPer_RegisterEventCb) (EnetPer_Handle hPer, Enet_Event evt, uint32_t evtNum, Enet_EventCallback evtCb, void *evtCbArgs) |
Register a callback for an event.
Registers a callback for an event. The callback will be called either via Enet_poll() when interrupts are disabled or internally by the driver when servicing an interrupt in ISR context.
hPer | Enet Peripheral handle |
evt | Event being registered for |
evtNum | Event number. Use 0 for single event. |
evtCb | Callback function |
evtCbArgs | Callback function arguments |
typedef void(* const EnetPer_UnregisterEventCb) (EnetPer_Handle hPer, Enet_Event evt, uint32_t evtNum) |
Unregister callback for an event.
Unregisters a callback for an event.
hPer | Enet Peripheral handle |
evt | Event being registered for |
evtNum | Event number. Use 0 for single event. |
typedef void(* const EnetPer_Close) (EnetPer_Handle hPer) |
Close the Enet Peripheral.
Closes the Enet Peripheral.
hPer | Enet Peripheral handle |
typedef void(* const EnetPer_SaveCtxt) (EnetPer_Handle hPer) |
Save and close the Enet Peripheral.
Saves and Closes the Enet Peripheral.
hPer | Enet Peripheral handle |
typedef int32_t(* const EnetPer_RestoreCtxt) (EnetPer_Handle hPer, Enet_Type enetType, uint32_t instId) |
Restores and Opens the Enet Peripheral.
Restores and opens the Enet Peripheral with the configuration parameters provided by the caller.
hPer | Enet Peripheral handle |
enetType | Enet Peripheral type |
instId | Enet Peripheral instance id |
enum EnetPer_Ioctl_e |
Ethernet peripheral IOCTL commands.
Enumerator | |
---|---|
ENET_PER_IOCTL_GET_VERSION | Get the hardware version of the peripheral. IOCTL parameters:
|
ENET_PER_IOCTL_PRINT_REGS | Print registers of the peripheral and all its modules. IOCTL parameters:
|
ENET_PER_IOCTL_OPEN_PORT_LINK | Open port link (MAC port and PHY). IOCTL parameters:
|
ENET_PER_IOCTL_CLOSE_PORT_LINK | Close port link (MAC port and PHY). IOCTL parameters:
|
ENET_PER_IOCTL_IS_PORT_LINK_UP | Check if port link is up. IOCTL parameters:
|
ENET_PER_IOCTL_GET_PORT_LINK_CFG | Get port link configuration (speed and duplexity). IOCTL parameters:
|
ENET_PER_IOCTL_ATTACH_CORE | Attach core to Ethernet peripheral. IOCTL parameters:
|
ENET_PER_IOCTL_DETACH_CORE | Detach core from Ethernet peripheral using its core key. IOCTL parameters:
|
ENET_IOCTL_REGISTER_RX_DEFAULT_FLOW | Register default flow to a specific rx flow. IOCTL parameters:
|
ENET_IOCTL_UNREGISTER_RX_DEFAULT_FLOW | Unregister default flow. After unregistering default flow, default flow traffic will be directed to CPSW internal reserved flow where they will be dropped. IOCTL parameters:
|
ENET_IOCTL_REGISTER_DSTMAC_RX_FLOW | Register destination MAC address to a specific rx flow. Note that CPSW supports associating multiple L2/L3 header fields to a specific rx flow. Refer ALE API CPSW_ALE_IOCTL_SET_POLICER for details on how to associate fields other than DST MAC to a specific flow. IOCTL parameters:
|
ENET_IOCTL_UNREGISTER_DSTMAC_RX_FLOW | Unregister destination MAC address to a specific flow. After unregistering dstmac, traffic with associated MAC address will be directed to default flow. IOCTL parameters:
|
ENET_PER_IOCTL_SET_VLAN_AWARE | Enable VLAN aware mode. Enables VLAN aware mode at peripheral level. IOCTL parameters:
|
ENET_PER_IOCTL_SET_VLAN_UNAWARE | Disable VLAN aware mode. Disables VLAN aware mode at peripheral level. IOCTL parameters:
|
ENET_PER_IOCTL_HANDLE_EXTPHY_LINKUP_EVENT | Handle link up event for an externally managed PHY. IOCTL params:
Type: Synchronous. |
ENET_PER_IOCTL_HANDLE_EXTPHY_LINKDOWN_EVENT | Handle link down event for an externally managed PHY. IOCTL params:
Type: Synchronous. |
ENET_PER_IOCTL_REGISTER_IOCTL_HANDLER | Register IOCTL handler. IOCTL params:
Type: Synchronous. |
ENET_PER_IOCTL_SET_ISOLATE_STATE | Setting PHY ISOLATE mode. Settting the PHY to ISOLATE mode IOCTL parameters:
|
ENET_PER_IOCTL_CLEAR_ISOLATE_STATE | Clear PHY ISOLATE mode. Clear the PHY ISOLATE mode IOCTL parameters:
|