We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 29103

9.1isp2 EDK/XPS - PLB TEMAC driver SgCheck () returns BD Error


Keyword: PLB TEMAC, SgCheck (), SG, DMA, BD, Error

I am working on a design based on PLB TEMAC managed by interrupts with DMA (NO DRE). The utilized driver is "temac v2_00_a"; in particular, the SGDMA APIs. After TEMAC initialization, the function XTemac_SgCheck fails with returned value XST_DMA_BD_ERROR.


This problem will be fixed in EDK 9.2i SP2. For EDK 9.1i or before, you can safely ignore this error.

The error is related to the following condition in the SgCheck function.


This condition will read the BD's control register first and AND it with the RX Mask. The RX mask is defined as bit 1 of the register. However, according to the SG DMA data sheet, this bit in the DMACR is reserved and is read as zero. So in the transmit logic, this condition will always return zero and thus not return an error. But in the receive logic, it will be NOT'ed to 1 and thus always return the BD ERROR. In fact, there is no direction bit defined in any of the DMA channel registers.

AR# 29103
Date Created 09/04/2007
Last Updated 12/15/2012
Status Active
Type General Article