This page contains just notes from the development. It is not a guide for compilation (yet).
Loopback test
This page contains just notes from the development. It is not a guide for compilation (yet).
petalinux commands:
petalinux-create --type project --template zynq --name loopback_test.petalinux cd loopback_test.petalinux/ petalinux-config --get-hw-description=~/dma/loopback_test/loopback_test.sdk/ # → Subsystem AUTO Hardware Settings → Ethernet Settings echo "IMAGE_INSTALL_append = \" iperf3 \"" >>project-spec/meta-user/recipes-core/images/petalinux-image.bbappend petalinux-config -c rootfs petalinux-config -c kernel petalinux-build -x distclean && petalinux-build -v && petalinux-package --boot --fsbl images/linux/zynq_fsbl.elf --fpga images/linux/system.bit --uboot --force
U-boot arguments (interactive):
setenv bootargs cma=256M boot
cma=256 parameter in petalinux:
petalinux-config # DTG Settings → Kernel Bootargs → unset generate boot args automatically # DTG Settings → Kernel Bootargs → set user set kernel bootargs to "console=ttyPS0,115200 earlyprintk cma=256M"
proxy app:
petalinux-create -t apps --name xldas --enable
modified axi dma driver:
petalinux-create -t modules -n axidmachar --enable petalinux-config -c kernel #takes a while to start #unset → _D_evice Drivers → _D_MA Engine support → Xilinx AXI DMAS Engine
Add to device tree file /project-spec/meta-user/recipes-bsp/device-tree/files/system-user.dtsi - raping the axi-dma device tree entries. No further changes to the device tree is needed, as this driver replaces the xilinx dma ("xlnx,axi-dma-1.00.a"). That is actually the reason why the xilinx dma core has to be disabled.
taskset:
petalinux-config -c busybox # enable: Miscellaneous Utilities ─> taskset
playing with buffer sizes:
setenv bootargs cma=256M axidmachar.bufsize_rd=4096 axidmachar.bufcount_rd=60000
TCP benchmarking with dd:
for i in 1k 2k 4k 8k 16k 32k 64k 128k 256k 512k 1024k 2M 4M 8M ; do taskset 2 ./dd if=/dev/axidmard of=/dev/null bs=$i count=1G iflag=count_bytes ; done