blob: c9ef6e6c81673579d9db1c1daf6c2331fa75d084 [file] [log] [blame]
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