48 #include <ti/drv/pruss/pruicss.h> 71 #define ICSSG_PRUSS_ID_0 (0U) 74 #define ICSSG_PRUSS_ID_1 (1U) 77 #define ICSSG_PRUSS_ID_2 (2U) 80 #define ICSSG_CACHELINE_ALIGNMENT (64U) 88 typedef struct Icssg_evtCbInfo_s
113 typedef struct Icssg_Pruss_s
138 typedef struct Icssg_Fw_s
165 typedef struct Icssg_FwPoolMem_s
237 typedef struct Icssg_IoctlCmdResp_s
255 typedef struct Icssg_Obj_s
EnetPer_Obj enetPer
Definition: icssg_priv.h:258
const uint32_t * pru
Definition: icssg_priv.h:141
void Icssg_registerEventCb(EnetPer_Handle hPer, Enet_Event evt, uint32_t evtNum, Enet_EventCallback evtCb, void *evtCbArgs)
This file contains internal type definitions and helper macros for the ICSSG Hardware and PA statisti...
Enet DMA resource information.
Definition: enet_base_priv.h:68
Enet_Type
Ethernet peripheral type.
Definition: enet_types.h:195
uint32_t numRxCh
Definition: icssg_priv.h:303
void Icssg_initCfg(EnetPer_Handle hPer, Enet_Type enetType, void *cfg, uint32_t cfgSize)
Initialize ICSSG peripheral's configuration parameters.
uint32_t spare[3]
Definition: icssg_priv.h:231
uint32_t hostBufferPoolNum
Definition: icssg_priv.h:185
This file contains the private type definitions and helper macros for the ICSSG Tas driver.
EnetMod_Handle hRm
Definition: icssg_priv.h:294
uint32_t hostBufferPoolSize
Definition: icssg_priv.h:182
void Icssg_close(EnetPer_Handle hPer)
Close the ICSSG peripheral.
uint8_t type
Definition: icssg_priv.h:225
This file contains the basic types using across the Enet driver.
uint32_t hostEgressPreQueueSize
Definition: icssg_priv.h:201
struct EnetUdma_RxFlowObj_s * EnetDma_RxChHandle
Opaque handle that holds software state for Enet RX DMA flow.
Definition: enet_udma_types.h:95
Enet Resource Manager driver object.
Definition: enet_rm_priv.h:321
uint32_t selfCoreId
Definition: icssg_priv.h:297
uint8_t * hostBufferPoolMem
Definition: icssg_priv.h:179
PRUICSS_Handle hPruss
Definition: icssg_priv.h:116
uint32_t txpruSize
Definition: icssg_priv.h:156
uint32_t cycleTimeNs
Definition: icssg_priv.h:345
const uint32_t * rtu
Definition: icssg_priv.h:147
This file contains the type definitions and helper macros for the Ethernet PHY interface.
uint32_t scratchBufferSize
Definition: icssg_priv.h:210
void Icssg_periodicTick(EnetPer_Handle hPer)
Run periodic tick on the ICSSG peripheral.
This file contains the type definitions and helper macros for the Enet Peripheral interface.
uint8_t status
Definition: icssg_priv.h:240
struct EnetUdma_DrvObj_s * EnetDma_Handle
Opaque handle for Enet UDMA driver object.
Definition: enet_udma_types.h:86
uint32_t asyncIoctlType
Definition: icssg_priv.h:282
uint32_t paramsLen
Definition: icssg_priv.h:246
Icssg event callback info structure.
Definition: icssg_priv.h:88
bool initialized
Definition: icssg_priv.h:122
uint8_t asyncIoctlSeqNum
Definition: icssg_priv.h:279
uint64_t Icssg_convertTs(EnetPer_Handle hPer, uint64_t ts)
Converts ICSSG timestamp to nanoseconds.
uint32_t pruSize
Definition: icssg_priv.h:144
int32_t Icssg_ioctl(EnetPer_Handle hPer, uint32_t cmd, Enet_IoctlPrms *prms)
Issue an operation on the ICSSG peripheral.
Icssg_Obj * Icssg_Handle
MAC port module handle.
Definition: icssg_priv.h:351
ICSSG firmware.
Definition: icssg_priv.h:138
const uint32_t * txpru
Definition: icssg_priv.h:153
uint8_t * hostEgressQueueMem
Definition: icssg_priv.h:189
void Icssg_poll(EnetPer_Handle hPer, Enet_Event evt, const void *arg, uint32_t argSize)
Poll for Ethernet events.
void * evtCbArgs
Definition: icssg_priv.h:94
int32_t Icssg_rejoin(EnetPer_Handle hPer, Enet_Type enetType, uint32_t instId)
Rejoin a running ICSSG peripheral.
Icssg_evtCbInfo txTsCbEvtInfo
Definition: icssg_priv.h:288
uint8_t seqNum
Definition: icssg_priv.h:243
IcssgStats_Obj statsObj
Definition: icssg_priv.h:330
This file contains the private type definitions and helper macros for Enet Resource Manager.
uint32_t portBufferPoolNum
Definition: icssg_priv.h:175
Enet_EventCallback evtCb
Definition: icssg_priv.h:91
void Icssg_unregisterEventCb(EnetPer_Handle hPer, Enet_Event evt, uint32_t evtNum)
#define ICSSG_CACHELINE_ALIGNMENT
Cache alignment used for IOCTL command structure.
Definition: icssg_priv.h:80
IcssgTimeSync_Obj timeSyncObj
Definition: icssg_priv.h:324
EnetMod_Handle hMdio
Definition: icssg_priv.h:318
uint8_t * hostEgressPreQueueMem
Definition: icssg_priv.h:193
EnetMod_Handle hStats
Definition: icssg_priv.h:333
Ethernet Peripheral object.
Definition: enet_per.h:462
Enet IOCTL param.
Definition: enet_ioctl.h:232
Mdio_Obj mdioObj
Definition: icssg_priv.h:315
int32_t Icssg_open(EnetPer_Handle hPer, Enet_Type enetType, uint32_t instId, const void *cfg, uint32_t cfgSize)
Open and initialize the ICSSG Peripheral.
Icssg_Pruss * pruss
Definition: icssg_priv.h:261
uint8_t param
Definition: icssg_priv.h:219
uint32_t hostEgressQueueNum
Definition: icssg_priv.h:204
Icssg per object.
Definition: icssg_priv.h:255
ICSSG buffer pool memories.
Definition: icssg_priv.h:165
This file contains the top-level API of the Enet driver.
ICSSG TimeSync object.
Definition: icssg_timesync_priv.h:69
IOCTL command response structure used to communicate with ICSSG.
Definition: icssg_priv.h:237
EnetRm_Obj rmObj
Definition: icssg_priv.h:291
uint8_t seqNum
Definition: icssg_priv.h:222
Enet_Event
Ethernet events.
Definition: enet_types.h:258
Icssg_evtCbInfo asyncCmdRespCbEvtInfo
Definition: icssg_priv.h:285
ICSSG Statistics object.
Definition: icssg_stats_priv.h:67
EnetDma_Handle hDma
Definition: icssg_priv.h:300
bool iep0InUse
Definition: icssg_priv.h:125
uint32_t hostEgressQueueSize
Definition: icssg_priv.h:197
struct EnetMod_Obj_s * EnetMod_Handle
Ethernet Module handle.
Definition: enet_mod.h:71
ICSSG Tas object.
Definition: icssg_tas_priv.h:84
uint32_t portBufferPoolSize
Definition: icssg_priv.h:172
EnetMod_Handle hTimeSync
Definition: icssg_priv.h:327
uint8_t * scratchBufferMem
Definition: icssg_priv.h:207
struct EnetPhy_Obj_s * EnetPhy_Handle
PHY driver object handle.
Definition: enetphy.h:641
struct Icssg_IoctlCmd_s __attribute__((packed)) Icssg_IoctlCmd
IOCTL command structure used to communicate with ICSSG.
Definition: csirx_regs.h:40
#define ICSSG_MAC_PORT_MAX
Maximum number of MAC ports per ICSSG instance.
Definition: icssg.h:82
uint32_t instance
Definition: icssg_priv.h:119
This file contains private type definitions and helper macros for the MDIO port module which are mean...
struct EnetPer_Obj_s * EnetPer_Handle
Ethernet Peripheral handle.
Definition: enet_per.h:300
void(* Enet_EventCallback)(Enet_Event evt, uint32_t evtNum, void *evtCbArgs, void *arg1, void *arg2)
Event callback.
Definition: enet_types.h:445
uint8_t header
Definition: icssg_priv.h:228
This file contains the type definitions and helper macros for the MDIO module interface.
uint32_t rtuSize
Definition: icssg_priv.h:150
This file contains the private top-level type definitions and helper macros.
MDIO port object.
Definition: mdio_priv.h:147
This file contains the type definitions and helper macros for the Ethernet PHY interface.
IOCTL command structure used to communicate with ICSSG.
Definition: icssg_priv.h:216
void * lock
Definition: icssg_priv.h:130
This file contains the private type definitions and helper macros for the ICSSG TimeSync driver.
ICSS_PRU object.
Definition: icssg_priv.h:113
uint8_t * portBufferPoolMem
Definition: icssg_priv.h:169