cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
yamatk
Visitor
Visitor
3,164 Views
Registered: ‎08-24-2016

EMACPS: AHB burst size

Hi everyone,

 

I am working with the BareMetal driver for  real-time operation and high speed performance.

 

The emacps(GEM) bare metal driver sets AHB burst length as INCR16, only when GEM version is greater than 2. My XCZ030-1FFG676 silicon has GEM ver.2. So bare metal driver use INCR4(default).

 

But PetaLinux driver always sets INCR16. There are no version check. 

 

Does bare metal driver check wrong version?

 

---- SDK baremetal driver(xemacps.c:XEmacPs_Reset) start ----

 /* Single bursts */
 /* FIXME: Why Single bursts? */
 if (InstancePtr->Version > 2) {
  XEmacPs_WriteReg(InstancePtr->Config.BaseAddress, XEMACPS_DMACR_OFFSET,
   (XEmacPs_ReadReg(InstancePtr->Config.BaseAddress, XEMACPS_DMACR_OFFSET) |
#ifdef __aarch64__
   (u32)XEMACPS_DMACR_ADDR_WIDTH_64 |
#endif
   (u32)XEMACPS_DMACR_INCR16_AHB_BURST));
 }

 XEmacPs_WriteReg(InstancePtr->Config.BaseAddress, XEMACPS_TXSR_OFFSET, 0x0U);

---- SDK baremetal driver end ----

 

---- PetaLinux driver(xilinx_emacps.c:xemacps_init_hw) start ---- 
 regval |= XEMACPS_DMACR_BLENGTH_INCR16;
 xemacps_write(lp->baseaddr, XEMACPS_DMACR_OFFSET, regval);

---- PetaLinux driver end ---- 

 

Regards.

Takatoshi

0 Kudos
0 Replies