The University of Queensland Homepage
School of ITEE ITEE Main Website

 uClinux-dist Build Environment for Xilinx PowerPC Devices

Please Note: The following is provided as-is. Please do not contact the author for support. Thanks!

Overview

This is a set of files which provide the ability to use the uClinux-dist build environment to create Linux systems for PowerPC 405 processors found in recent Xilinx FPGAs.

This IS NOT uClinux for the PowerPC - it's a regular Linux kernel (a modified MontaVista 2.4 kernel), build inside the uClinux-dist environment and toolset commonly used for uClinux environment

The system consist of three main parts:

1. Linux PowerPC Kernel Source

The kernel is based on the LinuxPPC branch of the official 2.4 BitKeeper tree (version 2.4.29-pre1). The main changes that were made to the kernel are:

  • Use of the auto-config.in mechanism (as used for Microblaze systems), rather than the existing xparameters.h system. This brings a number of advantages, such as the ability to use the hardware parameters in scripts and Makefiles (e.g., to enable ethernet device support in the kernel only if the corresponding hardware is present). It also provides an identical build environments for both Microblaze and PowerPC.
  • Support for the romfs filesystem as used in many uClinux systems.
  • Addition of a new "xilinx-auto" platform, which enables the changes described above when selected.

2. uClinux Vendors Tree

A new reference platform, "powerpc-auto", has been added to the Xilinx vendor tree in the uClinux distribution. This is the PowerPC equivalent of the "uclinux-auto" platform which is used for Microblaze systems.

3. Compiler Tool Chain

Buildroot was used to create a PowerPC cross-compilation toolchain suitable for use with the uClibc C library.

Quick Start

  1. Download the latest uClinux source distribution, and untar it.
  2. Download the compiler tool chain, untar it and ensure that the toolchain's "bin" directory is in your search path.
  3. Download the powerpc-auto vendors tree, change to your uClinux-dist directory and untar it.
  4. Download the patched PowerPC kernel, change to the parent of your uClinux-dist directory, and untar it.
  5. In your uClinux-dist directory, create a symbolic link called linux-2.4.x which points to the linuxppc-2.4 directory (linux-2.4.x -> ../linuxppc-2.4).
  6. Ensure that you have the latest uClinux EDK Board Support Package installed (version 1.00d or later is required).
  7. Replace the file linuxppc-2.4/arch/ppc/platforms/xilinx-auto/auto-config.in with your own version (generated by the Xilinx EDK).
  8. Configure your Linux environment as usual (make menuconfig). Select "Xilinx" as the vendor, and "powerpc-auto" as the product.
  9. Type "make dep", then "make".
  10. Download your resulting image to anywhere in RAM, and start execution at that location. The bootloader will decompress the kernel and filesystem to address 0 and begin execution of the kernel.

Outstanding Issues

  • Very limited testing - has so far been tested on the XUP-V2Pro board, with UARTLite and Ethernet cores only.
  • Total size of the kernel plus romfs filesystem is currently limited to 4 MB (uncompressed).
  • Some device drivers have not yet been converted to use the auto-config.in build flow (Xilinx LCD, touchscreen and PCI), and will therefore not work.

Files

File Name
Description
Download Size
Installation Instructions
powerpc-elf-tools-20060320.tgz PowerPC compiler tool chain.
10.6 MB
Create a directory (e.g. /usr/local/powerpc-elf-tools), change to that directory and untar the archive. Then, ensure that /usr/local/powerpc-elf-tools/bin is in your search path.
vendors-20051021.tgz Update to the uClinux vendors tree. Adds the new powerpc-auto target. 25.7 KB Change to your uClinux-dist directory and untar the archive.
linuxppc-2.4-20051021.tgz Complete Linux 2.4 kernel source code (already patched).
38.6 MB
Untar the archive, and create a symbolic link from uClinux-dist/linux-2.4.x to the new linuxppc-2.4 directory.