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

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

The Xilinx ML300 board is based on the Virtex-II Pro FPGA with
integrated AMCC 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
