The University of Queensland Homepage
School of ITEE ITEE Main Website

 Getting Started

Getting started with MicroBlaze uClinux

Legal stuff

  1. No warranty is offered or implied.  If you blow up your hardware, it's not my fault. 
  2. The MicroBlaze uClinux port is released under the GPL.

Mailing list

Details of the publicly accessible mailing list for the MicroBlaze uClinux project are found here.  If you want to get involved, please join the list and start asking questions!

Introduction

The purpose of this document is to provide enough information to allow a moderately experienced MicroBlaze developer/tinkerer to build, download and execute the MicroBlaze port of the uClinux kernel.

The MicroBlaze port is far from complete, with several outstanding issues before it can even be considered to be functional.  Contributions are welcome.

Development Environment

The first step is to obtain a working development environment and toolchain.

Hardware Platform

In this initial stage, the uClinux kernel is only configured to support one hardware target, called mbvanilla.  The use of a static hardware target for reconfigurable computing may seem a little strange, but it was vital in nailing down the core issues of the MicroBlaze port.

To get started quickly, you need to make this mbvanilla hardware platform and get it into your Xilinx board.  I am using the Insight/Memec P160 prototyping board.  You will need to do some work to get it up and running on a different board.  It shouldn't be too much work, so if you want to do this just get on the mailing list and I'll help you work it out.

mbvanilla

Download the latest mbvanilla hardware target from the website (this page).

Building the Kernel

  1. Login to the uClinux anonymous CVS server

    $ cvs -d:pserver:anonymous@cvs.uclinux.org:/var/cvs login

    Press enter when prompted for a password
     

  2. Decide where you want the uClinux distribution tree to live, say /opt

    $ cd /opt
     
  3. Get the uClinux distribution environment, uClinux-dist.  This can take a while, there's over a hundred megabytes to download.

    cvs -z3 -d:pserver:anonymous@cvs.uclinux.org:/var/cvs co uClinux-dist
     
  4. Get the uClinux-2.4.x source, and place it next to the uClinux-dist directory.  This too can take a while, though not as long as uClinux-dist.

    $ cd /opt
    $ cvs -z3 -d:pserver:anonymous@cvs.uclinux.org:/var/cvs co uClinux-2.4.x
     
  5. Download the latest patches from the downloads page.
     
  6. Make a symbolic link mapping uClinux-2.4.x as uClinux-dist/linux-2.4.x

    $ ln -s uClinux-2.4.x uClinux-dist/linux-2.4.x
     
  7. Apply any required patches:
     
  8. Launch the kernel configuration process

    $ make menuconfig

    The first time you run this it may take some time to build the kernel configuration tools etc.
     
  9. Choose "Target Platform Selection", and make the following selections:

     
    (Insight/XC2V1K_MicroBlaze) Vendor/Product
    (uClibc) LibC version
    [*] Default all settings


    Select Exit, Exit, Yes, then press enter as required for the defaults

    $ make dep

    This may take some time.  It should not report any errors.
     

  10. You are now ready to build the kernel image:

    $ make

    Again, this may take some time, depending on the speed of your build system.  If all goes well, you should end up with files called "image.bin" and "image.elf" sitting in the images directory.
     
  11. Build the mbvanilla hardware and download the mbvanilla bitstream to the MicroBlaze
     
  12. Download and run the kernel image.
     

Last updated 31-May-2005


Last updated 08-May-2006   
© 2003-2006 John Williams unless otherwise stated