Configuring kmemleak on the Zynq

The other day I came across a memory leak in a char device driver I am implementing for the Linux Kernel. While in user space one can make use of Valgrind (see post), kernel space is not that simple to monitor. Instead, one can use kmemleak, a memory leak detector embedded in the kernel which, among other architectures, supports ARM. In this post I will cover one minor configuration obstacle that one must overcome to get kmemleak to work on the Zynq ZC702.

Continue reading

Running Ubuntu on Zynq-7000

I have lately needed to get Ubuntu running on my Zynq, and as usual, it required a bit more a following a recipe. My final goal was to run a macro benchmark where the task was to compile the Linux Kernel for ARM in the Zynq itself. In this post, I will go through what are the necessary steps to get Ubuntu running on the Zynq, what is needed to get a working apt-get, and finally how to fix some compilation errors when compiling the kernel. Note that the last point is not specific for the kernel, but it can happen even when compiling a simple Hello World.

Continue reading

Open Virtualization for Xilinx’s ZC-702

Open Virtualization (OV) is the first open software implementation of a Trusted Security Environment (TEE) for ARM TrustZone hardware security extensions as specified in Global Platform’s TEE Specification.. Sierraware is the company behind it. Since I first knew of OV I have had a great interest in using it for my research, and therefore I have spent some time understanding it and improving it to work with the boards we work with – the Xilinx’s ZC702. This efforts are now materialized in a git repository, under a GNU v2.0 License.

Continue reading

Setting up the environment for the Xilinx ZC702 (Zynq-7000 SoC) – ISE Design Suite (14.x)

About a month ago my group purchased the Xilinx Zynq-7000 SoC ZC702 Evaluation Kit, featuring the ZC702 SoC board. Far from being trivial, getting the SDK and the framework (ISE Design Suite 14.x + ARM Tools) to work properly in a stable environment is quite challenging. In this post I will go through the different alternatives, describing the pros and cons I considered. I will also propose a mixed set-up combining 2 virtual machines, as well as a step-by-step guideline for it. This configuration is actually the one I am using for programming the ZC702.

Continue reading