mirror of
				https://github.com/smaeul/u-boot.git
				synced 2025-10-30 19:48:19 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			129 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			129 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 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
 |