Difference between revisions of "Ezynq"

From ElphelWiki
Jump to: navigation, search
(Decription)
 
(19 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
==Decription==
 
==Decription==
[https://github.com/Elphel/ezynq Ezynq] project is started to create a bootloader for systems based on the Xilinx Zynq SoC without the inconvenience of the non-free tools and/or files. The goal is not just to "free" the code, but to provide users with the higher degree of flexibility in fine-tuning of the configuration parameters.
+
[https://git.elphel.com/Elphel/ezynq Ezynq] project is started to create a bootloader for systems based on the Xilinx Zynq SoC without the inconvenience of the non-free tools and/or files. The goal is not just to "free" the code, but to provide users with the higher degree of flexibility in fine-tuning of the configuration parameters.
  
 
====="Free" the code part=====
 
====="Free" the code part=====
Line 8: Line 8:
 
* FSBL is under Xilinx's copyright
 
* FSBL is under Xilinx's copyright
 
* The current (2014/02/23) official SPL implementation in the [https://github.com/Xilinx/u-boot-xlnx/tree/master-next u-boot-xlnx master-next 54fee227ef141214141a226efd17ae0516deaf32] branch is FSBL-less but it requires to use the files (<b>ps7_init.c/h</b>) that come under Xilinx's copyright which makes u-boot noncompliant with its GPL license.
 
* The current (2014/02/23) official SPL implementation in the [https://github.com/Xilinx/u-boot-xlnx/tree/master-next u-boot-xlnx master-next 54fee227ef141214141a226efd17ae0516deaf32] branch is FSBL-less but it requires to use the files (<b>ps7_init.c/h</b>) that come under Xilinx's copyright which makes u-boot noncompliant with its GPL license.
 +
 +
<b>as of 2016/01/13...</b>
 +
* For a new board you still have to run an extra Xilinx program to generate ps7_init.c/h.
 +
 +
<b>as of 2016/03/18...</b>
 +
* u-boot-xlnx master-next branch is removed long ago - so the link above is broken
 +
 +
<b>as of 2016/06/25...</b>
 +
* ezynq depends on original u-boot instead of u-boot-xlnx
  
 
==Supported boards==
 
==Supported boards==
Line 22: Line 31:
 
| style="padding:0px 15px 0px 15px;" | Zynq 7Z045  
 
| style="padding:0px 15px 0px 15px;" | Zynq 7Z045  
 
| style="padding:0px 15px 0px 15px;" | Xilinx
 
| style="padding:0px 15px 0px 15px;" | Xilinx
| style="padding:0px 15px 0px 15px;" | <font color='green'>Y</font>
+
| style="padding:0px 15px 0px 15px;" | <font color='red'>N</font>
 
|-  
 
|-  
 
| style="padding:0px 15px 0px 15px;" | [http://www.zedboard.org/ ZedBoard]
 
| style="padding:0px 15px 0px 15px;" | [http://www.zedboard.org/ ZedBoard]
 
| style="padding:0px 15px 0px 15px;" | Zynq 7Z020  
 
| style="padding:0px 15px 0px 15px;" | Zynq 7Z020  
 
| style="padding:0px 15px 0px 15px;" | Digilent/Avnet
 
| style="padding:0px 15px 0px 15px;" | Digilent/Avnet
| style="padding:0px 15px 0px 15px;" | <font color='green'>Y</font>
+
| style="padding:0px 15px 0px 15px;" | <font color='red'>N</font>
 
|-  
 
|-  
 
| style="padding:0px 15px 0px 15px;" | [http://blog.elphel.com/2013/11/nc393-development-progress-testing-the-hardware/ 10393]
 
| style="padding:0px 15px 0px 15px;" | [http://blog.elphel.com/2013/11/nc393-development-progress-testing-the-hardware/ 10393]
Line 34: Line 43:
 
| style="padding:0px 15px 0px 15px;" | <font color='green'>Y</font>
 
| style="padding:0px 15px 0px 15px;" | <font color='green'>Y</font>
 
|}
 
|}
 
  
 
==Output==
 
==Output==
 
* '''boot.bin''' (SPL) - loads u-boot.img, no FSBL needed.
 
* '''boot.bin''' (SPL) - loads u-boot.img, no FSBL needed.
* '''u-boot.img''' (u-boot image)
+
* '''u-boot-dtb.img''' (u-boot image)
  
 
Boot: Copy them to SD card in order to boot from it.
 
Boot: Copy them to SD card in order to boot from it.
  
 +
==Build==
 +
For instructions please follow [[Poky_2.0_manual|this guide]].
  
 +
<!--
 
==Install meta-toolchain (Kubuntu 13.04)==
 
==Install meta-toolchain (Kubuntu 13.04)==
 
* Build:
 
* Build:
 
<font size='2'>
 
<font size='2'>
 
  sudo apt-get install texinfo chrpath
 
  sudo apt-get install texinfo chrpath
  git clone -b dora git://git.yoctoproject.org/poky
+
  git clone -b jethro git://git.yoctoproject.org/poky
 
  cd poky
 
  cd poky
 
  . ./oe-init-build-env
 
  . ./oe-init-build-env
Line 53: Line 64:
 
</font>
 
</font>
  
* Run installation script in ''build/tmp/deploy/''
+
* Run installation script in ''build/tmp/deploy/sdk''
  
==Install Ezynq (Kubuntu 13.04)==
+
==Install Ezynq (Kubuntu 14.04)==
 
<font size='2'>
 
<font size='2'>
  git clone git://git.code.sf.net/p/elphel/ezynq ezynq
+
  git clone https://git.elphel.com/Elphel/ezynq.git
 
  cd ezynq
 
  cd ezynq
  ./install_uboot.sh
+
  ./install_uboot.sh (edit the toolchain path)
 
</font>
 
</font>
 
  
 
==Build==
 
==Build==
Line 79: Line 89:
 
** '''boot_head.bin''' - contains values for RBL register initialization
 
** '''boot_head.bin''' - contains values for RBL register initialization
 
** '''boot.bin''' - the SPL image
 
** '''boot.bin''' - the SPL image
** '''u-boot.img''' - the u-boot image
+
** '''u-boot-dtb.img''' - the u-boot image
 
** '''u-boot.html''' - configuration settings overview
 
** '''u-boot.html''' - configuration settings overview
 
** '''u-boot.map''' - the bootloader's memory map
 
** '''u-boot.map''' - the bootloader's memory map
 
** '''u-boot''' - ELF file
 
** '''u-boot''' - ELF file
 
  
 
==Develop (add support for new boards)==
 
==Develop (add support for new boards)==
* Add a new board record to the list in the ''boards.cfg'' (or leave as is if the item already exists).
+
* (not needed anymore?) Add a new board record to the list in the ''boards.cfg'' (or leave as is if the item already exists).
 +
* Create '''configs/zynq_microzed_defconfig''' file
 
* Create a configuration file for the new board - use ''include/configs/zynq_microzed.h'' as a reference
 
* Create a configuration file for the new board - use ''include/configs/zynq_microzed.h'' as a reference
 
* Edit (or create new for specific memory and chip) according to the board configuration the following files:
 
* Edit (or create new for specific memory and chip) according to the board configuration the following files:
Line 94: Line 104:
 
* Build:
 
* Build:
 
  <font size='2'>./makeuboot <new_board>_config</font>
 
  <font size='2'>./makeuboot <new_board>_config</font>
 
  
 
==Known issues==
 
==Known issues==
Line 105: Line 114:
 
* Bitstream loading is not tested, current code does not enable level shifters - it may be more appropriate to do just before loading of the bitstream.
 
* Bitstream loading is not tested, current code does not enable level shifters - it may be more appropriate to do just before loading of the bitstream.
 
* Write level training for DDR memory doesn't work in MicroZed and ZC706
 
* Write level training for DDR memory doesn't work in MicroZed and ZC706
 +
-->

Latest revision as of 13:46, 20 November 2017

Decription

Ezynq project is started to create a bootloader for systems based on the Xilinx Zynq SoC without the inconvenience of the non-free tools and/or files. The goal is not just to "free" the code, but to provide users with the higher degree of flexibility in fine-tuning of the configuration parameters.

"Free" the code part

as of 2014/02/23...

Ezynq addresses the potential legal problems with distribution of a product/software based on Zynq platform:

as of 2016/01/13...

  • For a new board you still have to run an extra Xilinx program to generate ps7_init.c/h.

as of 2016/03/18...

  • u-boot-xlnx master-next branch is removed long ago - so the link above is broken

as of 2016/06/25...

  • ezynq depends on original u-boot instead of u-boot-xlnx

Supported boards

Board Chip Manufacturer Tested?
MicroZed Zynq 7Z010 Avnet Y
ZC706 Zynq 7Z045 Xilinx N
ZedBoard Zynq 7Z020 Digilent/Avnet N
10393 Zynq 7Z030 Elphel Y

Output

  • boot.bin (SPL) - loads u-boot.img, no FSBL needed.
  • u-boot-dtb.img (u-boot image)

Boot: Copy them to SD card in order to boot from it.

Build

For instructions please follow this guide.