MIDAS - The Multiple Instance Data Acquisition System

Linux for the Xilinx Virtex4/5 FPGAs

(1) Introduction

This document describes how to obtain and build a Linux system for use in the PowerPC processor core of a Xilinx Virtex4/5 FPGA.
Specific boards for which Linux systems have been built are the Xilinx reference boards ML403, ML405 (Virtex 4) and ML507 (Virtex 5).
Specific installation and build steps are given for the installation on the system nnlxb at Daresbury.

(2) Embedded Linux Development Linux (ELDK)

The first step is to obtain and install the EDLK for the required PowerPC processor. The Virtex 4 PPC core is a PPC 405 processor and the Virtex 5 PPC core is a PPC 440 processor.

(3) Embedded Linux Kernel

The PowerPC processors 405 and 440 and the architecture powerpc have now been merged into the mainstream Linux distribution (as of release 2.6.28). The last Linux release which supports the architecture ppc is 2.6.25. Both use the ELDK obtained above.
Since release 2.6.28 introduces a new way to handle devices embedded into the fabric of the FPGA (such as ethernet and all "user" devices) both 2.6.25 (ML403) and 2.6.28 (ML405 and ML507) are currently in use.

(4) Building the System ACE file

At Daresbury we elect (at least for the development phase) to load the Linux kernel using System ACE from a Compact Flash card as supported by all the Xilinx reference boards.
This requires that the elf file generated by the Linux build is combined with a bitstream (.bit) file generated by Xilinx EDK.
Xilinx ISE and EDK are installed on nnlxb in /opt/Xilinx/10.1.

(5) ML405

A Linux kernel for the ML405 is obtained using the same procedure as described for the ML507 above.
[Note: At Daresbury the Linux installation for the ML405 is /opt/SoftDev/Xilinx/linux-2.6.28-rc6/ml405]

The default Linux configuration is taken from the file arch/powerpc/configs/40x/virtex4_defconfig.
The target to be built is defined by CONFIG_EXTRA_TARGETS="simpleImage.virtex405-ml405".

(6) ML403

A Linux kernel for the ML403 is currently obtained using the older (pre Device Tree) structure and the architecture ARCH=ppc. The last Linux release for which this is supported is 2.6.25-rc9.

Version 1.1 V Pucknell, STFC, Daresbury Lab.   Oct 30 2009


© 2011 NPG - STFC