Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Enumerations | Functions
cvmx-pow.h File Reference
#include <asm/octeon/cvmx-pow-defs.h>
#include <asm/octeon/cvmx-scratch.h>
#include <asm/octeon/cvmx-wqe.h>

Go to the source code of this file.

Data Structures

union  cvmx_pow_tag_req_t
 
union  cvmx_pow_load_addr_t
 
union  cvmx_pow_tag_load_resp_t
 
union  cvmx_pow_tag_store_addr_t
 
union  cvmx_pow_iobdma_store_t
 

Macros

#define CVMX_ENABLE_POW_CHECKS   1
 
#define CVMX_MF_CHORD(dest)   CVMX_RDHWR(dest, 30)
 
#define CVMX_TAG_SW_BITS   (8)
 
#define CVMX_TAG_SW_SHIFT   (32 - CVMX_TAG_SW_BITS)
 
#define CVMX_TAG_SW_BITS_INTERNAL   0x1
 
#define CVMX_TAG_SUBGROUP_MASK   0xFFFF
 
#define CVMX_TAG_SUBGROUP_SHIFT   16
 
#define CVMX_TAG_SUBGROUP_PKO   0x1
 

Enumerations

enum  cvmx_pow_tag_type { CVMX_POW_TAG_TYPE_ORDERED = 0L, CVMX_POW_TAG_TYPE_ATOMIC = 1L, CVMX_POW_TAG_TYPE_NULL = 2L, CVMX_POW_TAG_TYPE_NULL_NULL = 3L }
 
enum  cvmx_pow_wait_t { CVMX_POW_WAIT = 1, CVMX_POW_NO_WAIT = 0 }
 
enum  cvmx_pow_tag_op_t {
  CVMX_POW_TAG_OP_SWTAG = 0L, CVMX_POW_TAG_OP_SWTAG_FULL = 1L, CVMX_POW_TAG_OP_SWTAG_DESCH = 2L, CVMX_POW_TAG_OP_DESCH = 3L,
  CVMX_POW_TAG_OP_ADDWQ = 4L, CVMX_POW_TAG_OP_UPDATE_WQP_GRP = 5L, CVMX_POW_TAG_OP_SET_NSCHED = 6L, CVMX_POW_TAG_OP_CLR_NSCHED = 7L,
  CVMX_POW_TAG_OP_NOP = 15L
}
 

Functions

int cvmx_pow_capture (void *buffer, int buffer_size)
 
void cvmx_pow_display (void *buffer, int buffer_size)
 
int cvmx_pow_get_num_entries (void)
 

Macro Definition Documentation

#define CVMX_ENABLE_POW_CHECKS   1

Interface to the hardware Packet Order / Work unit.

New, starting with SDK 1.7.0, cvmx-pow supports a number of extended consistency checks. The define CVMX_ENABLE_POW_CHECKS controls the runtime insertion of POW internal state checks to find common programming errors. If CVMX_ENABLE_POW_CHECKS is not defined, checks are by default enabled. For example, cvmx-pow will check for the following program errors or POW state inconsistency.

  • Requesting a POW operation with an active tag switch in progress.
  • Waiting for a tag switch to complete for an excessively long period. This is normally a sign of an error in locking causing deadlock.
  • Illegal tag switches from NULL_NULL.
  • Illegal tag switches from NULL.
  • Illegal deschedule request.
  • WQE pointer not matching the one attached to the core by the POW.

Definition at line 61 of file cvmx-pow.h.

#define CVMX_MF_CHORD (   dest)    CVMX_RDHWR(dest, 30)

Definition at line 1056 of file cvmx-pow.h.

#define CVMX_TAG_SUBGROUP_MASK   0xFFFF

Definition at line 1893 of file cvmx-pow.h.

#define CVMX_TAG_SUBGROUP_PKO   0x1

Definition at line 1895 of file cvmx-pow.h.

#define CVMX_TAG_SUBGROUP_SHIFT   16

Definition at line 1894 of file cvmx-pow.h.

#define CVMX_TAG_SW_BITS   (8)

Definition at line 1872 of file cvmx-pow.h.

#define CVMX_TAG_SW_BITS_INTERNAL   0x1

Definition at line 1880 of file cvmx-pow.h.

#define CVMX_TAG_SW_SHIFT   (32 - CVMX_TAG_SW_BITS)

Definition at line 1873 of file cvmx-pow.h.

Enumeration Type Documentation

POW tag operations. These are used in the data stored to the POW.

Enumerator:
CVMX_POW_TAG_OP_SWTAG 
CVMX_POW_TAG_OP_SWTAG_FULL 
CVMX_POW_TAG_OP_SWTAG_DESCH 
CVMX_POW_TAG_OP_DESCH 
CVMX_POW_TAG_OP_ADDWQ 
CVMX_POW_TAG_OP_UPDATE_WQP_GRP 
CVMX_POW_TAG_OP_SET_NSCHED 
CVMX_POW_TAG_OP_CLR_NSCHED 
CVMX_POW_TAG_OP_NOP 

Definition at line 95 of file cvmx-pow.h.

Enumerator:
CVMX_POW_TAG_TYPE_ORDERED 
CVMX_POW_TAG_TYPE_ATOMIC 
CVMX_POW_TAG_TYPE_NULL 
CVMX_POW_TAG_TYPE_NULL_NULL 

Definition at line 64 of file cvmx-pow.h.

Wait flag values for pow functions.

Enumerator:
CVMX_POW_WAIT 
CVMX_POW_NO_WAIT 

Definition at line 87 of file cvmx-pow.h.

Function Documentation

int cvmx_pow_capture ( void buffer,
int  buffer_size 
)

Store the current POW internal state into the supplied buffer. It is recommended that you pass a buffer of at least 128KB. The format of the capture may change based on SDK version and Octeon chip.

: Buffer to store capture into : The size of the supplied buffer

Returns Zero on success, negative on failure

void cvmx_pow_display ( void buffer,
int  buffer_size 
)

Dump a POW capture to the console in a human readable format.

: POW capture from cvmx_pow_capture() : Size of the buffer

int cvmx_pow_get_num_entries ( void  )

Return the number of POW entries supported by this chip

Returns Number of POW entries