README.ml300 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. Xilinx ML300 platform
  2. =====================
  3. 0. Introduction
  4. ---------------
  5. The Xilinx ML300 board is based on the Virtex-II Pro FPGA with
  6. integrated AMCC PowerPC 405 core. The board is normally booted from
  7. System ACE CF. U-Boot is then run out of main memory.
  8. An FPGA is a configurable and thus very flexible device. To
  9. accommodate for this flexibility this port of U-Boot includes the
  10. required means to regenerate the drivers and configuration files if
  11. you decide to change the hardware design. The required steps are
  12. described below.
  13. 1. Requirements
  14. ---------------
  15. To compile and run U-Boot on the Xilinx ML300 platform you need the
  16. following items.
  17. - A Xilinx ML300 platform (see http://www.xilinx.com/ml300)
  18. - EDK and ISE development tools (shipping with ML300)
  19. - Parallel4 cable (shipping with ML300)
  20. - The EDK reference design for ML300. You can get this as design #6 from
  21. http://www.xilinx.com/ise/embedded/edk_examples.htm
  22. - A BOOTP/TFTP server
  23. 2. Quick Start
  24. --------------
  25. To compile and run U-Boot on ML300 follow the steps below. Make sure
  26. to consult the documentation for U-Boot, EDK, and the EDK reference
  27. design for ML300 if you have any questions.
  28. 1. Implement the EDK reference design for ML300. You can use any of
  29. the project files, for example from a xygwin shell:
  30. $ xps -nw system_linux.xmp
  31. XPS% run init_bram
  32. 2. Configure and compile U-Boot. Change into the root directory of
  33. U-Boot and run:
  34. $ export CROSS_COMPILE=powerpc-eabi-
  35. $ make ml300_config
  36. $ make
  37. 3. Set up the ML300, connect the Parallel4 and the serial cable. Start
  38. a terminal on your host computer and set the communication
  39. parameters to 9600,8N1,no handshake.
  40. 4. Set up the BOOTP/TFTP server on your host machine. U-Boot is
  41. preconfigured to use a fixed HW MAC address of 00:0A:35:00:22:01.
  42. 5. Download the bitstream to the ML300.
  43. 6. Use XMD to download and run U-Boot on the ML300:
  44. $ xmd
  45. XMD% ppcconnect
  46. XMD% dow u-boot
  47. XMD% run
  48. You can now make an ACE file out of bitstream and U-Boot:
  49. $ xmd genace.tcl -jprog -board ml300 -hw \
  50. implementation/download.bit -elf u-boot -ace top.ace
  51. Put the ACE file onto the MicroDrive, for example into xilinx/myace,
  52. and reboot ML300.
  53. 3. Generating a Custom BSP for U-Boot
  54. -------------------------------------
  55. If you decide to change the EDK reference design for ML300 or if you
  56. build a new design from scratch either with the Base System Builder in
  57. XPS or all by hand you most likely will change the base addresses for
  58. the Uart and the Ethernet peripheral. If you do so you will have two
  59. options:
  60. 1. Edit boards/xilinx/ml300/xparameters.h to reflect the changes you
  61. made to your hardware.
  62. 2. Use the MLD technology provided by Xilinx Platform Studio to make
  63. the changes automatically. To do so go to the root directory of the
  64. EDK reference design for ML300. Copy the Linux project file and the
  65. Linux software configuration file:
  66. $ cp system_linux.xmp system_uboot.xmp
  67. $ cp system_linux.mss system_uboot.mss
  68. Edit system_uboot.xmp and and have it point to system_uboot.mss for
  69. the software configuration.
  70. Then, copy the sw_services directory in
  71. boards/xilinx/ml300/sw_services to the root directory of the EDK
  72. reference design for ML300.
  73. $ cp -R <uboot dir>/boards/xilinx/ml300/sw_services <edk dir>
  74. Modify system_uboot.mss. Look for the Linux library definition
  75. and change it to generate a BSP for U-Boot. An example, might look
  76. like this:
  77. BEGIN LIBRARY
  78. PARAMETER LIBRARY_NAME = uboot
  79. PARAMETER LIBRARY_VER = 1.00.a
  80. PARAMETER CONNECTED_PERIPHS = (opb_uart16550_0,opb_ethernet_0)
  81. PARAMETER TARGET_DIR = <uboot dir>
  82. END
  83. Now, you are ready to generate the Xilinx ML300 BSP for U-Boot:
  84. $ xps -nw system_uboot.xmp
  85. XPS% run libs
  86. If all goes well the new configuration has been copied into the
  87. right places within the U-Boot source tree. Recompile U-Boot and
  88. run it on the ML300.
  89. 4. ToDo
  90. -------
  91. - Add support for all other peripherals on ML300.
  92. - Read the MAC address out of the IIC EEPROM.
  93. - Store the bootargs in the IIC EEPROM.
  94. 5. References
  95. -------------
  96. ML300: http://www.xilinx.com/ml300
  97. EDK: http://www.xilinx.com/edk
  98. ISE: http://www.xilinx.com/ise
  99. Reference Design: http://www.xilinx.com/ise/embedded/edk_examples.htm