Xilinx ML300 platform
=====================

0. Introduction
---------------

The Xilinx ML300 board is based on the Virtex-II Pro FPGA with
integrated IBM PowerPC 405 core. The board is normally booted from
System ACE CF. U-Boot is then run out of main memory.

An FPGA is a configurable and thus very flexible device. To
accommodate for this flexibility this port of U-Boot includes the
required means to regenerate the drivers and configuration files if
you decide to change the hardware design. The required steps are
described below.


1. Requirements
---------------

To compile and run U-Boot on the Xilinx ML300 platform you need the
following items.

- A Xilinx ML300 platform (see http://www.xilinx.com/ml300)
- EDK and ISE development tools (shipping with ML300)
- Parallel4 cable (shipping with ML300)
- The EDK reference design for ML300. You can get this as design #6 from
  http://www.xilinx.com/ise/embedded/edk_examples.htm
- A BOOTP/TFTP server


2. Quick Start
--------------

To compile and run U-Boot on ML300 follow the steps below. Make sure
to consult the documentation for U-Boot, EDK, and the EDK reference
design for ML300 if you have any questions.

1. Implement the EDK reference design for ML300. You can use any of
   the project files, for example from a xygwin shell:
   $ xps -nw system_linux.xmp
   XPS% run init_bram
2. Configure and compile U-Boot. Change into the root directory of
   U-Boot and run:
   $ export CROSS_COMPILE=powerpc-eabi-
   $ make ml300_config
   $ make
3. Set up the ML300, connect the Parallel4 and the serial cable. Start
   a terminal on your host computer and set the communication
   parameters to 9600,8N1,no handshake.
4. Set up the BOOTP/TFTP server on your host machine. U-Boot is
   preconfigured to use a fixed HW MAC address of 00:0A:35:00:22:01.
5. Download the bitstream to the ML300.
6. Use XMD to download and run U-Boot on the ML300:
   $ xmd
   XMD% ppcconnect
   XMD% dow u-boot
   XMD% run

You can now make an ACE file out of bitstream and U-Boot:
   $ xmd genace.tcl -jprog -board ml300 -hw  \
     implementation/download.bit -elf u-boot -ace top.ace

Put the ACE file onto the MicroDrive, for example into xilinx/myace,
and reboot ML300.


3. Generating a Custom BSP for U-Boot
-------------------------------------

If you decide to change the EDK reference design for ML300 or if you
build a new design from scratch either with the Base System Builder in
XPS or all by hand you most likely will change the base addresses for
the Uart and the Ethernet peripheral. If you do so you will have two
options:

1. Edit boards/xilinx/ml300/xparameters.h to reflect the changes you
   made to your hardware.
2. Use the MLD technology provided by Xilinx Platform Studio to make
   the changes automatically. To do so go to the root directory of the
   EDK reference design for ML300. Copy the Linux project file and the
   Linux software configuration file:
   $ cp system_linux.xmp system_uboot.xmp
   $ cp system_linux.mss system_uboot.mss

   Edit system_uboot.xmp and and have it point to system_uboot.mss for
   the software configuration.

   Then, copy the sw_services directory in
   boards/xilinx/ml300/sw_services to the root directory of the EDK
   reference design for ML300.
   $ cp -R <uboot dir>/boards/xilinx/ml300/sw_services <edk dir>

   Modify system_uboot.mss. Look for the Linux library definition
   and change it to generate a BSP for U-Boot. An example, might look
   like this:

   BEGIN LIBRARY
    PARAMETER LIBRARY_NAME = uboot
    PARAMETER LIBRARY_VER = 1.00.a
    PARAMETER CONNECTED_PERIPHS = (opb_uart16550_0,opb_ethernet_0)
    PARAMETER TARGET_DIR = <uboot dir>
   END

   Now, you are ready to generate the Xilinx ML300 BSP for U-Boot:
   $ xps -nw system_uboot.xmp
   XPS% run libs

   If all goes well the new configuration has been copied into the
   right places within the U-Boot source tree. Recompile U-Boot and
   run it on the ML300.


4. ToDo
-------

- Add support for all other peripherals on ML300.
- Read the MAC address out of the IIC EEPROM.
- Store the bootargs in the IIC EEPROM.


5. References
-------------

ML300:			http://www.xilinx.com/ml300
EDK:			http://www.xilinx.com/edk
ISE:			http://www.xilinx.com/ise
Reference Design:	http://www.xilinx.com/ise/embedded/edk_examples.htm
