Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Fields
MPIPE_EDMA_DESC_t Union Reference

#include <mpipe_shm.h>

Data Fields

struct {
   uint_reg_t   gen: 1
 
   uint_reg_t   r0: 7
 
   uint_reg_t   csum: 1
 
   uint_reg_t   ns: 1
 
   uint_reg_t   notif: 1
 
   uint_reg_t   bound: 1
 
   uint_reg_t   r1: 4
 
   uint_reg_t   xfer_size: 14
 
   uint_reg_t   r2: 2
 
   uint_reg_t   csum_dest: 8
 
   uint_reg_t   csum_start: 8
 
   uint_reg_t   csum_seed: 16
 
   int_reg_t   va: 42
 
   uint_reg_t   __reserved_0: 6
 
   uint_reg_t   stack_idx: 5
 
   uint_reg_t   __reserved_1: 3
 
   uint_reg_t   inst: 1
 
   uint_reg_t   __reserved_2: 1
 
   uint_reg_t   hwb: 1
 
   uint_reg_t   size: 3
 
   uint_reg_t   c: 2
 
}; 
 
uint_reg_t words [2]
 

Detailed Description

MPIPE eDMA Descriptor. The eDMA descriptor is written by software and consumed by hardware. It is used to specify the location of egress packet data to be sent out of the chip via one of the packet interfaces.

Definition at line 33 of file mpipe_shm.h.

Field Documentation

struct { ... }
uint_reg_t __reserved_0

Reserved.

Definition at line 123 of file mpipe_shm.h.

uint_reg_t __reserved_1

Reserved.

Definition at line 127 of file mpipe_shm.h.

uint_reg_t __reserved_2

Reserved.

Definition at line 136 of file mpipe_shm.h.

uint_reg_t bound

Boundary indicator. When 1, this transfer includes the EOP for this command. Must be clear on all but the last descriptor for an egress packet.

Definition at line 65 of file mpipe_shm.h.

Chaining configuration for the buffer. Indicates that an ingress packet or egress command is chained across multiple buffers, with each buffer's size indicated by the .size field.

Definition at line 164 of file mpipe_shm.h.

uint_reg_t csum

Checksum generation enabled for this transfer.

Definition at line 50 of file mpipe_shm.h.

uint_reg_t csum_dest

Destination of checksum relative to CSUM_START relative to the first byte moved by this descriptor. Must be zero if CSUM=0 in this descriptor. Must be less than XFER_SIZE (e.g. the first byte of the CSUM_DEST must be within the span of this descriptor).

Definition at line 86 of file mpipe_shm.h.

uint_reg_t csum_seed

Initial value for 16-bit 1's compliment checksum if enabled via CSUM. Specified in network order. That is, bits[7:0] will be added to the byte pointed to by CSUM_START and bits[15:8] will be added to the byte pointed to by CSUM_START+1 (with appropriate 1's compliment carries). Must be zero if CSUM=0 in this descriptor.

Definition at line 101 of file mpipe_shm.h.

uint_reg_t csum_start

Start byte of checksum relative to the first byte moved by this descriptor. If this is not the first descriptor for the egress packet, CSUM_START is still relative to the first byte in this descriptor. Must be zero if CSUM=0 in this descriptor.

Definition at line 93 of file mpipe_shm.h.

Generation number. Used to indicate a valid descriptor in ring. When a new descriptor is written into the ring, software must toggle this bit. The net effect is that the GEN bit being written into new descriptors toggles each time the ring tail pointer wraps.

Definition at line 46 of file mpipe_shm.h.

Always set to one by hardware in iDMA packet descriptors. For eDMA, indicates whether the buffer will be released to the buffer stack manager. When 0, software is responsible for releasing the buffer.

Definition at line 142 of file mpipe_shm.h.

uint_reg_t inst

Instance ID. For devices that support more than one mPIPE instance, this field indicates the buffer owner. If the INST field does not match the mPIPE's instance number when a packet is egressed, buffers with HWB set will be returned to the other mPIPE instance.

Definition at line 134 of file mpipe_shm.h.

uint_reg_t notif

Notification interrupt will be delivered when packet has been egressed.

Definition at line 59 of file mpipe_shm.h.

Nothing to be sent. Used, for example, when software has dropped a packet but still wishes to return all of the associated buffers.

Definition at line 55 of file mpipe_shm.h.

Reserved. Must be zero.

Definition at line 48 of file mpipe_shm.h.

Reserved. Must be zero.

Definition at line 67 of file mpipe_shm.h.

Reserved. Must be zero.

Definition at line 79 of file mpipe_shm.h.

uint_reg_t size

Encoded size of buffer. Set by the ingress hardware for iDMA packet descriptors. For eDMA descriptors, indicates the buffer size if .c indicates a chained packet. If an eDMA descriptor is not chained and the .hwb bit is not set, this field is ignored and the size is specified by the .xfer_size field. 0 = 128 bytes 1 = 256 bytes 2 = 512 bytes 3 = 1024 bytes 4 = 1664 bytes 5 = 4096 bytes 6 = 10368 bytes 7 = 16384 bytes

Definition at line 158 of file mpipe_shm.h.

uint_reg_t stack_idx

Index of the buffer stack to which this buffer belongs.

Definition at line 125 of file mpipe_shm.h.

Virtual address. Must be sign extended by consumer.

Definition at line 121 of file mpipe_shm.h.

uint_reg_t words[2]

Word access

Definition at line 180 of file mpipe_shm.h.

uint_reg_t xfer_size

Number of bytes to be sent for this descriptor. When zero, no data will be moved and the buffer descriptor will be ignored. If the buffer descriptor indicates that it is chained, the low 7 bits of the VA indicate the offset within the first buffer (e.g. 127 bytes is the maximum offset into the first buffer). If the size exceeds a single buffer, subsequent buffer descriptors will be fetched prior to processing the next eDMA descriptor in the ring.

Definition at line 77 of file mpipe_shm.h.


The documentation for this union was generated from the following file: