Skip to content
Snippets Groups Projects
README.ml300 4.21 KiB
Newer Older
  • Learn to ignore specific revisions
  • 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