KM3NeT CLB  2.0
KM3NeT CLB v2 Embedded Software
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
dev_ipm.h File Reference

IPM Device description. More...

#include "dev_defs.h"

Go to the source code of this file.

Data Structures

struct  IPMCTRL_Device
 Structure defines IPM control Device. More...
 
struct  IPMPKGEN_Device
 Packet generator. More...
 

Macros

#define SDB_ID_IPMREG   0x893CD4AF
 SDB ID IPMUX Registers.
 
#define SDB_ID_IPMTXR   0xD9651827
 SDB ID IPMUX TX/RX.
 
#define IPM_UDP_PORT_SVR_MASK   0xFFFF0000
 Mask for server port (target)
 
#define IPM_UDP_PORT_SVR_SHIFT   16
 Shift for server port.
 
#define IPM_UDP_PORT_MOD_MASK   0x0000FFFF
 Mask for module port (source)
 
#define IPM_UDP_PORT_MOD_SHIFT   0
 Shift for module port.
 
#define IPM_PKT_BUF_REGS   ( 9014 / 2 )
 No. More...
 
#define IPM_ACSR_TX_REQ   BIT(0)
 TX request.
 
#define IPM_ACSR_TX_GRANT   BIT(1)
 TX grant.
 
#define IPM_CH_0   BIT(0)
 
#define IPM_CH_1   BIT(1)
 
#define IPM_CH_2   BIT(2)
 
#define IPM_CH_3   BIT(3)
 
#define IPM_CH_C   BIT(4)
 
#define IPM_CH_ALL   MASK(5)
 
#define IPM_CH_HW   MASK(4)
 
#define IPM_ACSR_FLUSH_SHIFT   8
 
#define IPM_ACSR_FLUSH_MASK   ( MASK(5) << IPM_ACSR_FLUSH_SHIFT )
 
#define IPM_ACSR_FLUSH(CH)   ( ( CH << IPM_ACSR_FLUSH_SHIFT ) & IPM_ACSR_FLUSH_MASK )
 
#define IPM_ACSR_EMPTY_SHIFT   16
 
#define IPM_ACSR_EMPTY_MASK   ( MASK(5) << IPM_ACSR_EMPTY_SHIFT )
 
#define IPM_ACSR_EMPTY(CH)   ( ( CH << IPM_ACSR_EMPTY_SHIFT ) & IPM_ACSR_EMPTY_MASK )
 
#define IPM_ACSR_FULL_SHIFT   24
 
#define IPM_ACSR_FULL_MASK   ( MASK(4) << IPM_ACSR_FULL_SHIFT )
 
#define IPM_ACSR_FULL(CH)   ( ( CH << IPM_ACSR_FULL_SHIFT ) & IPM_ACSR_FULL_MASK )
 
#define IPM_FIFO_DATA_MASK   0x0000FFFF
 Data mask.
 
#define IPM_FIFO_DATA_SHIFT   0
 Data shift.
 
#define IPM_FIFO_EOP   BIT(16)
 End of packet marker.
 
#define IPM_FIFO_SOP   BIT(17)
 Start of packet marker.
 
#define IPM_TXSTM_INFO_SEL_SHIFT   0
 
#define IPM_TXSTM_INFO_SEL_MASK   ( MASK(4) << TXSTM_INFO_SEL_SHIFT )
 
#define IPM_TXSTM_INFO_SEL(CH)   ( TXSTM_INFO_SEL_MASK ( CH << TXSTM_INFO_SEL_SHIFT ) )
 
#define IPM_TXSTM_INFO_PKT_AVAIL_SHIFT   8
 
#define IPM_TXSTM_INFO_PKT_AVAIL_MASK   ( MASK(4) << TXSTM_INFO_PKT_AVAIL_SHIFT )
 
#define IPM_TXSTM_INFO_PKT_AVAIL(CH)   ( TXSTM_INFO_PKT_AVAIL_MASK & ( CH << TXSTM_INFO_PKT_AVAIL_SHIFT ) )
 
#define IPM_TXSTM_INFO_PKT_DONE_SHIFT   12
 
#define IPM_TXSTM_INFO_PKT_DONE_MASK   ( MASK(4) << IPM_TXSTM_INFO_PKT_DONE_SHIFT )
 
#define IPM_TXSTM_INFO_PKT_DONE(CH)   ( IPM_TXSTM_INFO_PKT_DONE_MASK & ( CH << IPM_TXSTM_INFO_PKT_DONE_SHIFT ) )
 

Typedefs

typedef volatile unsigned int IPMFIFO_Device
 IPMux FIFO device. More...
 

Detailed Description

IPM Device description.

Definition in file dev_ipm.h.

Macro Definition Documentation

#define IPM_PKT_BUF_REGS   ( 9014 / 2 )

No.

of registers for packet buffer.

Definition at line 37 of file dev_ipm.h.

Typedef Documentation

typedef volatile unsigned int IPMFIFO_Device

IPMux FIFO device.

Definition at line 110 of file dev_ipm.h.