AM243x INDUSTRIAL COMMUNICATIONS SDK  09.02.00

Introduction

Functions

void EIP_DLR_init (EIP_DLRHandle dlrHandle)
 API to initialize the DLR driver. More...
 
void EIP_DLR_deinit (EIP_DLRHandle dlrHandle)
 API to de-initialize the DLR driver. More...
 
void EIP_DLR_start (EIP_DLRHandle dlrHandle)
 API to start the DLR driver Calling this enables DLR on the device. More...
 
void EIP_DLR_stop (EIP_DLRHandle dlrHandle)
 API to stop the DLR driver Halt DLR. Calling this disables DLR on the device. More...
 
void EIP_DLR_port0ISR (uintptr_t arg)
 Fast ISR for Port 0, bypasses the buffer copy and NDK. More...
 
void EIP_DLR_port1ISR (uintptr_t arg)
 Fast ISR for Port 1, bypasses the buffer copy and NDK. More...
 
void EIP_DLR_beaconTimeoutISR_P0 (uintptr_t arg)
 ISR for beacon timeout for Port 0. More...
 
void EIP_DLR_beaconTimeoutISR_P1 (uintptr_t arg)
 ISR for beacon timeout for Port 1. More...
 
void EIP_DLR_port0ProcessLinkBrk (uint8_t linkStatus, void *arg2)
 Process DLR state machine in the event of a link break on Port0. More...
 
void EIP_DLR_port1ProcessLinkBrk (uint8_t linkStatus, void *arg2)
 Process DLR state machine in the event of a link break on Port1. More...
 
void EIP_DLR_neighborTimeoutISR0 (ClockP_Object *obj, void *arg)
 ISR for Neighbor timeout timer for port 0. More...
 
void EIP_DLR_neighborTimeoutISR1 (ClockP_Object *obj, void *arg)
 ISR for Neighbor timeout timer for port 1. More...
 
void EIP_DLR_addVlanID (uint8_t *src, uint16_t vlanID)
 
void EIP_DLR_genNCReqFrame (EIP_DLRHandle dlrHandle, uint8_t *src, uint8_t sourcePort)
 
void EIP_DLR_genNCResFrame (uint8_t *src, uint8_t sourcePort, uint8_t reqSrcPort, uint32_t sequenceId)
 
void EIP_DLR_genNeighborLinkStatFrame (EIP_DLRHandle dlrHandle, uint8_t *src, uint8_t sourcePort, uint8_t linkOrNeighbor, uint8_t linkStatus)
 
void EIP_DLR_initDLRFrameHeader (uint8_t *src, uint8_t *header)
 
void EIP_DLR_addSignOnNumNodes (uint8_t *src, uint16_t numNodes)
 
void EIP_DLR_processDLRFrame (EIP_DLRHandle dlrHandle, uint8_t *pktBuffer, uint8_t portNum, uint16_t size)
 Processes a sign on and Neighbor check request frame. More...
 
void EIP_DLR_dRAMInit (EIP_DLRHandle dlrHandle)
 
void EIP_DLR_resetStateMachine (EIP_DLRHandle dlrHandle)
 Initialize the state machine when it goes back to idle state. More...
 
void EIP_DLR_setDefaultValue (EIP_DLRHandle dlrHandle)
 
void EIP_DLR_switchToFault (EIP_DLRHandle dlrHandle)
 
void EIP_DLR_switchToNormal (EIP_DLRHandle dlrHandle)
 
int32_t EIP_DLR_isrInit (EIP_DLRHandle dlrHandle)
 
void EIP_DLR_periodicProcessing (ClockP_Object *obj, void *userArg)
 
void EIP_DLR_addToExceptionList (EIP_DLRHandle dlrHandle, uint8_t *macId)
 
void EIP_DLR_clearExceptionList (EIP_DLRHandle dlrHandle)
 
uint8_t EIP_DLR_checkSupervisorException (uint8_t *macId, EIP_DLRHandle dlrHandle)
 
void EIP_DLR_addModuleIPAddress (EIP_DLRHandle dlrHandle, uint32_t newIP)
 
void EIP_DLR_setDivider_WD_IEP (EIP_DLRHandle dlrHandle)
 Sets the clock divider to 1us for IEP watch dog timers. More...
 
void EIP_DLR_enable_WD_IEP (EIP_DLRHandle dlrHandle, uint8_t id)
 Enable the IEP Watch dog timers. More...
 
void EIP_DLR_disable_WD_IEP (EIP_DLRHandle dlrHandle, uint8_t id)
 Disable the IEP Watch dog timers. More...
 
void EIP_DLR_setTimeout_WD_IEP (EIP_DLRHandle dlrHandle, uint16_t periodInMicroSec, uint8_t id)
 Set the timeout value in watchdog. More...
 
void EIP_DLR_set_pdi_wd_trigger_mode (EIP_DLRHandle dlrHandle, uint32_t mode)
 Set the PDI WD trigger mode. More...
 

Function Documentation

◆ EIP_DLR_init()

void EIP_DLR_init ( EIP_DLRHandle  dlrHandle)

API to initialize the DLR driver.

    Initializes variables and timers & clocks, call once at the beginning
Parameters
dlrHandle[in] DLR driver handle

◆ EIP_DLR_deinit()

void EIP_DLR_deinit ( EIP_DLRHandle  dlrHandle)

API to de-initialize the DLR driver.

Parameters
dlrHandle[in] DLR driver handle

◆ EIP_DLR_start()

void EIP_DLR_start ( EIP_DLRHandle  dlrHandle)

API to start the DLR driver Calling this enables DLR on the device.

Parameters
dlrHandle[in] DLR driver handle

◆ EIP_DLR_stop()

void EIP_DLR_stop ( EIP_DLRHandle  dlrHandle)

API to stop the DLR driver Halt DLR. Calling this disables DLR on the device.

Parameters
dlrHandle[in] DLR driver handle

◆ EIP_DLR_port0ISR()

void EIP_DLR_port0ISR ( uintptr_t  arg)

Fast ISR for Port 0, bypasses the buffer copy and NDK.

Parameters
arg[in] user argument. DLR handle

◆ EIP_DLR_port1ISR()

void EIP_DLR_port1ISR ( uintptr_t  arg)

Fast ISR for Port 1, bypasses the buffer copy and NDK.

Parameters
arg[in] user argument. DLR handle

◆ EIP_DLR_beaconTimeoutISR_P0()

void EIP_DLR_beaconTimeoutISR_P0 ( uintptr_t  arg)

ISR for beacon timeout for Port 0.

Parameters
arg[in] user argument. DLR handle

◆ EIP_DLR_beaconTimeoutISR_P1()

void EIP_DLR_beaconTimeoutISR_P1 ( uintptr_t  arg)

ISR for beacon timeout for Port 1.

Parameters
arg[in] user argument. DLR handle

◆ EIP_DLR_port0ProcessLinkBrk()

void EIP_DLR_port0ProcessLinkBrk ( uint8_t  linkStatus,
void *  arg2 
)

Process DLR state machine in the event of a link break on Port0.

Parameters
linkStatus[in] link status of the port. Up/Down. 1/0
arg2[in] argument DLR handle

◆ EIP_DLR_port1ProcessLinkBrk()

void EIP_DLR_port1ProcessLinkBrk ( uint8_t  linkStatus,
void *  arg2 
)

Process DLR state machine in the event of a link break on Port1.

Parameters
linkStatus[in] link status of the port. Up/Down. 1/0
arg2[in] argument DLR handle

◆ EIP_DLR_neighborTimeoutISR0()

void EIP_DLR_neighborTimeoutISR0 ( ClockP_Object *  obj,
void *  arg 
)

ISR for Neighbor timeout timer for port 0.

Parameters
obj[in] Clock object associated with this callback
arg[in] user argument. DLR handle

◆ EIP_DLR_neighborTimeoutISR1()

void EIP_DLR_neighborTimeoutISR1 ( ClockP_Object *  obj,
void *  arg 
)

ISR for Neighbor timeout timer for port 1.

Parameters
obj[in] Clock object associated with this callback
arg[in] user argument. DLR handle

◆ EIP_DLR_addVlanID()

void EIP_DLR_addVlanID ( uint8_t *  src,
uint16_t  vlanID 
)

◆ EIP_DLR_genNCReqFrame()

void EIP_DLR_genNCReqFrame ( EIP_DLRHandle  dlrHandle,
uint8_t *  src,
uint8_t  sourcePort 
)

◆ EIP_DLR_genNCResFrame()

void EIP_DLR_genNCResFrame ( uint8_t *  src,
uint8_t  sourcePort,
uint8_t  reqSrcPort,
uint32_t  sequenceId 
)

◆ EIP_DLR_genNeighborLinkStatFrame()

void EIP_DLR_genNeighborLinkStatFrame ( EIP_DLRHandle  dlrHandle,
uint8_t *  src,
uint8_t  sourcePort,
uint8_t  linkOrNeighbor,
uint8_t  linkStatus 
)

◆ EIP_DLR_initDLRFrameHeader()

void EIP_DLR_initDLRFrameHeader ( uint8_t *  src,
uint8_t *  header 
)

◆ EIP_DLR_addSignOnNumNodes()

void EIP_DLR_addSignOnNumNodes ( uint8_t *  src,
uint16_t  numNodes 
)

◆ EIP_DLR_processDLRFrame()

void EIP_DLR_processDLRFrame ( EIP_DLRHandle  dlrHandle,
uint8_t *  pktBuffer,
uint8_t  portNum,
uint16_t  size 
)

Processes a sign on and Neighbor check request frame.

   In case of sign on frames, if size of packet is greater than
   \ref DLR_SIGNON_FRAME_SIZE then the frame is sent directly to host.
   Therefore the 'size' argument must be the size of the incoming frame,
   because it is used as the size of the outgoing frame, only if the
   frame already has maximum size and is sent unchanged but directed to
   the supervisor. Also, 'pktBuffer' passed to the function must provide
   'size'+10 bytes space so that the own MAC and IP addresses can be
   added.
Parameters
dlrHandle[in] DLR handle
pktBuffer[in] pointer to bytestream
portNum[in] Port number wherer the packet arrived
size[in] size of packet

◆ EIP_DLR_dRAMInit()

void EIP_DLR_dRAMInit ( EIP_DLRHandle  dlrHandle)

◆ EIP_DLR_resetStateMachine()

void EIP_DLR_resetStateMachine ( EIP_DLRHandle  dlrHandle)

Initialize the state machine when it goes back to idle state.

Parameters
dlrHandle[in] DLR handle

◆ EIP_DLR_setDefaultValue()

void EIP_DLR_setDefaultValue ( EIP_DLRHandle  dlrHandle)

◆ EIP_DLR_switchToFault()

void EIP_DLR_switchToFault ( EIP_DLRHandle  dlrHandle)

◆ EIP_DLR_switchToNormal()

void EIP_DLR_switchToNormal ( EIP_DLRHandle  dlrHandle)

◆ EIP_DLR_isrInit()

int32_t EIP_DLR_isrInit ( EIP_DLRHandle  dlrHandle)

◆ EIP_DLR_periodicProcessing()

void EIP_DLR_periodicProcessing ( ClockP_Object *  obj,
void *  userArg 
)

◆ EIP_DLR_addToExceptionList()

void EIP_DLR_addToExceptionList ( EIP_DLRHandle  dlrHandle,
uint8_t *  macId 
)

◆ EIP_DLR_clearExceptionList()

void EIP_DLR_clearExceptionList ( EIP_DLRHandle  dlrHandle)

◆ EIP_DLR_checkSupervisorException()

uint8_t EIP_DLR_checkSupervisorException ( uint8_t *  macId,
EIP_DLRHandle  dlrHandle 
)

◆ EIP_DLR_addModuleIPAddress()

void EIP_DLR_addModuleIPAddress ( EIP_DLRHandle  dlrHandle,
uint32_t  newIP 
)

◆ EIP_DLR_setDivider_WD_IEP()

void EIP_DLR_setDivider_WD_IEP ( EIP_DLRHandle  dlrHandle)

Sets the clock divider to 1us for IEP watch dog timers.

Parameters
dlrHandle[in] DLR handle

◆ EIP_DLR_enable_WD_IEP()

void EIP_DLR_enable_WD_IEP ( EIP_DLRHandle  dlrHandle,
uint8_t  id 
)

Enable the IEP Watch dog timers.

Parameters
dlrHandle[in] DLR handle
id[in] 0/1 for WD_PD and WD_PDI respectively

◆ EIP_DLR_disable_WD_IEP()

void EIP_DLR_disable_WD_IEP ( EIP_DLRHandle  dlrHandle,
uint8_t  id 
)

Disable the IEP Watch dog timers.

Parameters
dlrHandle[in] DLR handle
id[in] 0/1 for WD_PD/WD_PDI respectively

◆ EIP_DLR_setTimeout_WD_IEP()

void EIP_DLR_setTimeout_WD_IEP ( EIP_DLRHandle  dlrHandle,
uint16_t  periodInMicroSec,
uint8_t  id 
)

Set the timeout value in watchdog.

Parameters
dlrHandle[in] DLR handle
periodInMicroSec[in] Timeout value in microseconds
id[in] watch dog ID

◆ EIP_DLR_set_pdi_wd_trigger_mode()

void EIP_DLR_set_pdi_wd_trigger_mode ( EIP_DLRHandle  dlrHandle,
uint32_t  mode 
)

Set the PDI WD trigger mode.

Parameters
dlrHandle[in] DLR handle
mode[in] mode to be set in DGIO ctrl reg