axidma
Vitis Drivers API Documentation
XAxiDma_BdRing Struct Reference

Container structure for descriptor storage control. More...

Data Fields

UINTPTR ChanBase
 physical base address More...
 
int IsRxChannel
 Is this a receive channel. More...
 
volatile int RunState
 Whether channel is running. More...
 
int HasStsCntrlStrm
 Whether has stscntrl stream. More...
 
UINTPTR FirstBdPhysAddr
 Physical address of 1st BD in list. More...
 
UINTPTR FirstBdAddr
 Virtual address of 1st BD in list. More...
 
UINTPTR LastBdAddr
 Virtual address of last BD in the list. More...
 
u32 Length
 Total size of ring in bytes. More...
 
UINTPTR Separation
 
    Number of bytes between the starting

address of adjacent BDs More...

 
XAxiDma_BdFreeHead
 First BD in the free group. More...
 
XAxiDma_BdPreHead
 First BD in the pre-work group. More...
 
XAxiDma_BdHwHead
 First BD in the work group. More...
 
XAxiDma_BdHwTail
 Last BD in the work group. More...
 
XAxiDma_BdPostHead
 First BD in the post-work group. More...
 
XAxiDma_BdBdaRestart
 BD to load when channel is started. More...
 
XAxiDma_BdCyclicBd
 Useful for Cyclic DMA operations. More...
 
int FreeCnt
 Number of allocatable BDs in free group. More...
 
int PreCnt
 Number of BDs in pre-work group. More...
 
int HwCnt
 Number of BDs in work group. More...
 
int PostCnt
 Number of BDs in post-work group. More...
 
int AllCnt
 Total Number of BDs for channel. More...
 
int RingIndex
 Ring Index. More...
 
int Cyclic
 Check for cyclic DMA Mode. More...
 

Detailed Description

Container structure for descriptor storage control.

If address translation is enabled, then all addresses and pointers excluding FirstBdPhysAddr are expressed in terms of the virtual address.

Field Documentation

int XAxiDma_BdRing::AllCnt
XAxiDma_Bd* XAxiDma_BdRing::BdaRestart

BD to load when channel is started.

Referenced by XAxiDma_BdRingCreate(), and XAxiDma_UpdateBdRingCDesc().

int XAxiDma_BdRing::Cyclic
XAxiDma_Bd* XAxiDma_BdRing::CyclicBd

Useful for Cyclic DMA operations.

Referenced by XAxiDma_BdRingCreate(), XAxiDma_BdRingToHw(), and XAxiDma_StartBdRingHw().

UINTPTR XAxiDma_BdRing::FirstBdAddr

Virtual address of 1st BD in list.

Referenced by XAxiDma_BdRingCheck(), XAxiDma_BdRingClone(), and XAxiDma_BdRingCreate().

UINTPTR XAxiDma_BdRing::FirstBdPhysAddr

Physical address of 1st BD in list.

Referenced by XAxiDma_BdRingCheck(), and XAxiDma_BdRingCreate().

int XAxiDma_BdRing::FreeCnt
XAxiDma_Bd* XAxiDma_BdRing::FreeHead
int XAxiDma_BdRing::HasStsCntrlStrm

Whether has stscntrl stream.

Referenced by XAxiDma_BdRingCreate(), and XAxiDma_CfgInitialize().

int XAxiDma_BdRing::HwCnt
XAxiDma_Bd* XAxiDma_BdRing::HwHead

First BD in the work group.

Referenced by XAxiDma_BdRingCheck(), XAxiDma_BdRingCreate(), and XAxiDma_BdRingFromHw().

XAxiDma_Bd* XAxiDma_BdRing::HwTail
int XAxiDma_BdRing::IsRxChannel
UINTPTR XAxiDma_BdRing::LastBdAddr

Virtual address of last BD in the list.

Referenced by XAxiDma_BdRingCheck(), and XAxiDma_BdRingCreate().

u32 XAxiDma_BdRing::Length

Total size of ring in bytes.

Referenced by XAxiDma_BdRingCreate().

int XAxiDma_BdRing::PostCnt

Number of BDs in post-work group.

Referenced by XAxiDma_BdRingCheck(), XAxiDma_BdRingCreate(), XAxiDma_BdRingFree(), and XAxiDma_BdRingFromHw().

XAxiDma_Bd* XAxiDma_BdRing::PostHead

First BD in the post-work group.

Referenced by XAxiDma_BdRingCheck(), XAxiDma_BdRingCreate(), and XAxiDma_BdRingFree().

int XAxiDma_BdRing::PreCnt
XAxiDma_Bd* XAxiDma_BdRing::PreHead

First BD in the pre-work group.

Referenced by XAxiDma_BdRingCheck(), XAxiDma_BdRingCreate(), and XAxiDma_BdRingToHw().

UINTPTR XAxiDma_BdRing::Separation

    Number of bytes between the starting

address of adjacent BDs

Referenced by XAxiDma_BdRingCheck(), XAxiDma_BdRingClone(), and XAxiDma_BdRingCreate().