Zedboard: Linaro + ADV7511 demo

I’m pursuing a few different directions with the Zedboard, one of which you might think of as the from-scratch Linaro (Ubuntu) Linux option. This post outlines the build process in case anyone finds it useful.

I used two main sources of information. The first one is Jan Gray’s guide, which synthesizes a number of sources. These sources include my second main source, which is Analog Devices’ documentation on the ADV7511 reference design.

I’m writing this up after the fact, but my notes are reasonably complete. However I’m not aiming to clone Jan Gray’s guide, just to broadly outline what I did differently, and what worked and didn’t work for me.

Setup

  • PlanAhead/ISE/SDK 14.6 on a 64-bit Red Hat box
  • Linux Mint 14 laptop (for SD card writing, I don’t have root on the Red Hat machine)

SD Card prep

I actually did this step last, but since everyone’s guide has it first, I’ll mention it first. I used gparted on Mint to do the partitioning. I used FAT16 instead of FAT32 for the boot partition; not sure if it matters.

Programmable Logic

This part is pretty straightforward, just clone the fpgahdl_xilinx repo or download the tarball, import the .xmp (refer XPS to the cf_lib directory when it complains), and off you go. Well, except for the fact that 14.6 has a bug. You can either disable one of the SPI interfaces or just apply the patch.

u-boot

Xilinx has moved its repo to github, but everything’s basically the same. The first time through, I didn’t check out the recommended branch (xilinx-v14.4), and the kernel panicked. The second time, I did do the checkout, and it worked; however I don’t know enough whether to blame this step.

The other important thing here is to disable the ramdisk per Jan Gray’s instructions. It seems that you have to delete the offending line entirely. Before building, I exported CROSS_COMPILE=/opt/Xilinx/14.6/ISE_DS/EDK/gnu/arm/lin/bin/arm-xilinx-linux-gnueabi- and ARCH=arm, and ran the Xilinx settings*.sh for good measure.

FSBL, boot image

I exported the hardware to SDK from PlanAhead. Building the FSBL and generating the boot image were uneventful. However I’m not sure I did it all right because there’s a lot of trash in the serial terminal before getting to u-boot. I’m pretty sure the trash is related to cold-start, because hitting the reset button makes it boot up fine.

Linux kernel

I cloned the Analog Devices Linux repo and checked it out to xcomm_zynq. I didn’t note whether the defconfig was ‘zynq’ or ‘zync’. As of this writing, the branch actually appears to be a 3.10 kernel.

root@linaro-ubuntu-desktop:~# uname -a                                          
Linux linaro-ubuntu-desktop 3.10.0-g40d8cf2 #2 SMP PREEMPT Sun Sep 29 19:34:18 x

Linaro image

I used the exact same release as Jan Gray’s guide: https://releases.linaro.org/12.11/ubuntu/precise-images/ubuntu-desktop/linaro-precise-ubuntu-desktop-20121124-560.tar.gz

One notable difference with Mint is where the SD card partitions get mounted: they show up under /media/username/partition, so the tar command needs to be adapted accordingly.

Results

20130929494

booting linaro

cat /proc/cpuinfo on zedboard

cat /proc/cpuinfo on zedboard

It worked! Well, it was getting late and the USB didn’t seem to work, so I didn’t poke around much. (Edit: I had the wrong jumper setting. JP3 needed to be out.) And I had to manually start the boot process in the u-boot> terminal, so I must be missing something. Perhaps a baud setting, too? I’m new to all this. Cold boot seems to be problematic.

terminal junk

terminal junk

xcomm_zynq_3_8?

A comment on Jan Gray’s guide noted that there is another branch of the kernel with a newer version number. My admittedly hazy understanding of this is that newer releases of Linaro require the newer kernel, namely the 13.x Raring release. (Actually, the first time through, I tried to run the 3.8 kernel with Precise, and it kernel panic-ed on me. So please tell me if I’m not understanding this correctly.) I’m confused because I checked my kernel and it’s a 3.10 version. So I guess I really don’t understand kernel compatibility.

Next up

I’d like to try one of the ALIP releases, since they’re a bit lighter in weight compared to the Ubuntu desktop version. Should be interesting.

This entry was posted in linux, zedboard. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s