Skip to content

zhangfengdegithub/zynq-linux-dma

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 

Repository files navigation

zynq-linux-dma

A user space DMA example on Zynq platform (ZC706) under Petalinux.

Environment Requirement

EDK Versions

Vivado 2014.4 with corresponding Petalinux SDK.

Hardware Platform

ZC706 Evaluation Board.

Hardware Architecture

HW architecture This project implements a self-looped DMA connecting with both PL and PS DDRs. The PL DDR is invisible to Linux running on PS. Data can be moved between (1) PS and PL DDRs, (2) PS and PS DDRs, and (3) PL and PL DDRs from programs in user space. The hardware can be built from the hw/system.tcl.

Software Flow

Create Modules

petalinux-create -t modules --name xdma --enable

Replace files in ./component/modules/xdma with those from sw/modules/xdma.

Create Apps

petalinux-create -t apps --name xdma-demo --enable

Replace files in ./component/apps/xdma-demo with those from sw/apps/xdma-demo.

Build Projects

petalinux-built

Run Deme

After booting kernel, we can load drivers and run demos.

insmod /lib/modules/`uname -r`/extra/xdma.ko

Run the demo:

/bin/xdma-demo

Acknowledgement

Thanks for bmartini and John. This is a improved version of bmartini's, and an implementation of John's idea.

Currently, I'm adding multi-process support and dynamically allocation of kernel space.

About

A userspace DMA example on Zynq platform (ZC706).

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 59.9%
  • Tcl 35.5%
  • C++ 4.6%