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