PDK API Guide for J721E
RINGACC Enumerated Data Types

Introduction

===========================================================================


Macros

#define CSL_RINGACC_MAX_RINGS   (1024U)
 
#define CSL_RINGACC_MAX_MONITORS   (64U)
 
#define CSL_RINGACC_MAX_MONITOR_INTRS   (32U)
 
#define CSL_RINGACC_CRED_PASSTHRU   (0xFFFFFFFFU)
 
#define CSL_RINGACC_ORDERID_BYPASS   (0xFFFFFFFFU)
 
#define CSL_RINGACC_RING_EVENT_DISABLE   (0xFFFFU)
 

Ringacc ring mode

This enumerator defines the possible modes for a ring or queue



typedef uint32_t CSL_RingAccRingMode
 
#define CSL_RINGACC_RING_MODE_RING   ((uint32_t) 0U)
 
#define CSL_RINGACC_RING_MODE_MESSAGE   ((uint32_t) 1U)
 
#define CSL_RINGACC_RING_MODE_CREDENTIALS   ((uint32_t) 2U)
 
#define CSL_RINGACC_RING_MODE_QM   ((uint32_t) 3U)
 
#define CSL_RINGACC_RING_MODE_INVALID   ((uint32_t) 4U)
 

Ringacc monitor data source

This enumerator defines the possible data sources that can be monitored



typedef uint32_t CSL_RingAccMonitorDataSrc
 
#define CSL_RINGACC_MONITOR_DATA_SRC_ELEMENT_CNT   ((uint32_t) 0U)
 
#define CSL_RINGACC_MONITOR_DATA_SRC_HEAD_PKT_SIZE   ((uint32_t) 1U)
 
#define CSL_RINGACC_MONITOR_DATA_SRC_ACCUM_QUEUE_SIZE   ((uint32_t) 2U)
 
#define CSL_RINGACC_MONITOR_DATA_SRC_INVALID   ((uint32_t) 3U)
 

Ringacc monitor type

This enumerator defines the possible monitor types



typedef uint32_t CSL_RingAccMonitorType
 
#define CSL_RINGACC_MONITOR_TYPE_DISABLED   ((uint32_t) 0U)
 
#define CSL_RINGACC_MONITOR_TYPE_STATS   ((uint32_t) 1U)
 
#define CSL_RINGACC_MONITOR_TYPE_THRESHOLD   ((uint32_t) 2U)
 
#define CSL_RINGACC_MONITOR_TYPE_WATERMARK   ((uint32_t) 3U)
 
#define CSL_RINGACC_MONITOR_TYPE_STARVATION   ((uint32_t) 4U)
 
#define CSL_RINGACC_MONITOR_TYPE_INVALID   ((uint32_t) 5U)
 

Ringacc Ops type

This enumerator defines the possible memory operation types



typedef uint32_t CSL_RingAccMemoryOpsType
 
#define CSL_RINGACC_MEM_OPS_TYPE_WR   ((uint32_t) 0U)
 
#define CSL_RINGACC_MEM_OPS_TYPE_RD   ((uint32_t) 1U)
 

Macro Definition Documentation

#define CSL_RINGACC_MAX_RINGS   (1024U)

Maximum number of rings across devices

#define CSL_RINGACC_MAX_MONITORS   (64U)

Maximum number of monitors across devices

#define CSL_RINGACC_MAX_MONITOR_INTRS   (32U)

Maximum number of monitor interrupts across devices

#define CSL_RINGACC_CRED_PASSTHRU   (0xFFFFFFFFU)

Bypass credential setting

#define CSL_RINGACC_ORDERID_BYPASS   (0xFFFFFFFFU)

Bypass order ID setting

#define CSL_RINGACC_RING_EVENT_DISABLE   (0xFFFFU)

Macro to pass to disable event

#define CSL_RINGACC_RING_MODE_RING   ((uint32_t) 0U)

Exposed ring mode for SW direct access

#define CSL_RINGACC_RING_MODE_MESSAGE   ((uint32_t) 1U)

Messaging mode (all operations are through bus accesses) allowing multiple producers or consumers

#define CSL_RINGACC_RING_MODE_CREDENTIALS   ((uint32_t) 2U)

Credentials mode is message mode plus stores credentials with each message. This mode requires each operation to use 2 elements of storage since the credentials are stored in the second element, so the element count should be doubled. Any exposed memory should be protected by a firewall from unwanted access.

#define CSL_RINGACC_RING_MODE_QM   ((uint32_t) 3U)

Queue manager mode makes the ring act like a traditional queue manager queue. This takes the credentials mode and adds packet length per element, along with additional read only fields for element count and accumulated queue length. The QM mode only operates with an 8 byte element size (any other element size is illegal), and like in credentials mode each operation uses 2 element slots to store the credentials and length fields.

#define CSL_RINGACC_RING_MODE_INVALID   ((uint32_t) 4U)

Invalid

#define CSL_RINGACC_MONITOR_DATA_SRC_ELEMENT_CNT   ((uint32_t) 0U)

Monitor the queue element count

#define CSL_RINGACC_MONITOR_DATA_SRC_HEAD_PKT_SIZE   ((uint32_t) 1U)

Monitor the packet size at the head of a queue

#define CSL_RINGACC_MONITOR_DATA_SRC_ACCUM_QUEUE_SIZE   ((uint32_t) 2U)

Monitor the accumulated data (in bytes) in a queue

#define CSL_RINGACC_MONITOR_DATA_SRC_INVALID   ((uint32_t) 3U)

Invalid

#define CSL_RINGACC_MONITOR_TYPE_DISABLED   ((uint32_t) 0U)

Monitor is disabled

#define CSL_RINGACC_MONITOR_TYPE_STATS   ((uint32_t) 1U)

Monitor tracks simple statistics on the queue operations. The first value is the count of the number of writes to the queue, and the second value is the count of the number of reads from the queue.

#define CSL_RINGACC_MONITOR_TYPE_THRESHOLD   ((uint32_t) 2U)

Monitor uses a programmed low threshold value and a programmed high threshold value to track the data source in the queue and cause an interrupt or status when a threshold is broken, either below the low value or above the high value

#define CSL_RINGACC_MONITOR_TYPE_WATERMARK   ((uint32_t) 3U)

Monitor tracks the low and high values of the data source since the last read of the monitor

#define CSL_RINGACC_MONITOR_TYPE_STARVATION   ((uint32_t) 4U)

Monitor tracks the number of starvation events (a read to an empty queue) that occurred on the queue

#define CSL_RINGACC_MONITOR_TYPE_INVALID   ((uint32_t) 5U)

Invalid

#define CSL_RINGACC_MEM_OPS_TYPE_WR   ((uint32_t) 0U)

Monitor is disabled

#define CSL_RINGACC_MEM_OPS_TYPE_RD   ((uint32_t) 1U)

Monitor is disabled

Typedef Documentation

typedef uint32_t CSL_RingAccRingMode
typedef uint32_t CSL_RingAccMonitorDataSrc
typedef uint32_t CSL_RingAccMonitorType
typedef uint32_t CSL_RingAccMemoryOpsType