|
|
|
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
|