Differences

This shows you the differences between two versions of the page.

Link to this comparison view

programmable-logic:genesys-zu:getting-started [2021/08/12 04:49] – [First Boot] Damo Ferencprogrammable-logic:genesys-zu:getting-started [2022/10/04 11:38] (current) – external edit 127.0.0.1
Line 15: Line 15:
  
 The microSD card can be found in the Genesys ZU's microSD card slot. The microSD card can be found in the Genesys ZU's microSD card slot.
-For more details about the board check the refrence manual: +For more details about the board check the reference manual: 
-[[https://reference.digilentinc.com/programmable-logic/genesys-zu/reference-manual]]+[[programmable-logic/genesys-zu/reference-manual]]
 </WRAP> <WRAP column half> </WRAP> <WRAP column half>
 {{:reference:programmable-logic:genesys-zu:unboxing-hideaways.png?400|}} {{:reference:programmable-logic:genesys-zu:unboxing-hideaways.png?400|}}
Line 23: Line 23:
 <WRAP group> <WRAP column half> <WRAP group> <WRAP column half>
 == What comes in the box? == == What comes in the box? ==
-  * Genesys ZU-3EG **(4)**+  * Genesys ZU-3EG (or -5EV) **(4)**
   * 12V, 8A power supply **(8)**   * 12V, 8A power supply **(8)**
   * IEC cable with European plug **(1)**   * IEC cable with European plug **(1)**
Line 30: Line 30:
   * USB A to Type C cable **(3)**   * USB A to Type C cable **(3)**
   * JTAG HS1 programmer and cable **(6)** *   * JTAG HS1 programmer and cable **(6)** *
-  * microSD card with the Out-of-Box Petalinux Image (loaded into the Genesys ZU's microSD card slot), with a case **(7)**+  * microSD card (loaded into the Genesys ZU's microSD card slot), with a case **(7)**
   * Voucher for license for Xilinx's MIPI CSI-2 IP cores (not pictured here).   * Voucher for license for Xilinx's MIPI CSI-2 IP cores (not pictured here).
 </WRAP> <WRAP column half> </WRAP> <WRAP column half>
Line 40: Line 40:
  
 Sources for the Out of Box demo can be found on Github: Sources for the Out of Box demo can be found on Github:
-  * [[https://github.com/Digilent/genesys-zu-hw/|Vivado Project]] +  * [[https://github.com/Digilent/Genesys-ZU/tree/3eg/oob/master|3EG Out-of-Box]] 
-  * [[https://github.com/Digilent/genesys-zu-os/|Petalinux Project]]+  * [[https://github.com/Digilent/Genesys-ZU/tree/5ev/oob/master|5EV Out-of-Box]] 
  
 ==== First Boot ==== ==== First Boot ====
Line 47: Line 48:
 **Note:** //At time of manufacturing, the programming mode select jumper is set to "SD", and the microSD card with the Out-of-Box Petalinux image is placed in the microSD card slot.// **Note:** //At time of manufacturing, the programming mode select jumper is set to "SD", and the microSD card with the Out-of-Box Petalinux image is placed in the microSD card slot.//
  
-**Note:** //For more information about the board, please check the [[https://reference.digilentinc.com/programmable-logic/genesys-zu/reference-manual|reference manual]].//+**Note:** //Some boards may contain an empty SD card due to a manufacturing error. If after the 4.-th instruction the boot sequence doesn't start you are in this situation. In this case, please check the Getting the Out-of-Box image section at the end of the page. After doing those steps, you can continue here.// 
 + 
 +**Note:** //For more information about the board, please check the [[programmable-logic/genesys-zu/reference-manual|reference manual]].//
  
   - Connect the power supply.   - Connect the power supply.
Line 62: Line 65:
 <WRAP round important 660px> <WRAP round important 660px>
 ==Important==  ==Important== 
-When finished using the Genesys ZU, make sure to safely shut down the OS through the shell.+When finished using the Genesys ZU, make sure to safely shut down the OS through the shell. The following command can be used: 
 +<code> shutdown -h now </code>
 </WRAP> </WRAP>
  
Line 70: Line 74:
 Several test scripts are built into the OS. These can be found in the /usr/bin directory, and are listed below: Several test scripts are built into the OS. These can be found in the /usr/bin directory, and are listed below:
  
-//Table 2. Test Scripts//+//Table 1. Test Scripts//
 |<75% 20% 80%>| |<75% 20% 80%>|
-^ Test Name        ^ Description   ^ +^ Test Name        ^ Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ^ 
-| DP-bist          | Displays a test pattern over DisplayPort                                                                                                                                                                                                                                                                                                             | +| DP-bist          | Displays a test pattern over DisplayPort                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | 
-| DP-bist-wrapper  | Wraps DP-bist to allow it to run in the background                                                                                                                                                                                                                                                                                                   | +| DP-bist-wrapper  | Wraps DP-bist to allow it to run in the background                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | 
-| network-bist     | Tests the network connections through eth0 and wlan0 by bringing the interface up, requesting an IP address through DHCP and pinging the default gateway DHCP gives us. The first argument is the interface to test, `eth0` or `wlan0`. For `wlan0` two more arguments need to be provided, the SSID and PSK of the access point to associate with.  | +| network-bist     | Tests the network connections through eth0 and wlan0 by bringing the interface up, requesting an IP address through DHCP and pinging the default gateway DHCP gives us. The first argument is the interface to test, `eth0` or `wlan0`. For `wlan0` two more arguments need to be provided, the SSID and PSK of the access point to associate with. If the board was connected to internet via cable before trying to connect to wifi and the wlan has a different inet than the cable connection, the attempt to ping will fail because it will try to ping the the old inet(via cable).  | 
-| pci-bist         | Checks whether a specific device (Qualcomm QCA6174) is installed in the Mini PCIe slot.                                                                                                                                                                                                                                                              | +| pci-bist         | Checks whether a specific device (Qualcomm QCA6174) is installed in the Mini PCIe slot.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | 
-| rtc-test         | Tests the Real Time Clock                                                                                                                                                                                                                                                                                                                            | +| rtc-test         | Tests the Real Time Clock. Chech this [[https://www.epochconverter.com/|link]] for the current time since epoch in seconds.                                                                                                                                                                                                                                                                                                                                                                                                                                                                | 
-| sim-bist         | Querries the gammu utility for the presence of a SIM card. Needs a cellular modem installed in the Mini PCIe slot.                                                                                                                                                                                                                                   | +| sim-bist         | Querries the gammu utility for the presence of a SIM card. Needs a cellular modem installed in the Mini PCIe slot.                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | 
-| sysmon           | Checks the temperature of the FPGA PL or the voltage on the power rails                                                                                                                                                                                                                                                                              | +| sysmon           | Checks the temperature of the FPGA PL or the voltage on the power rails. The chanels can be seen by listing the /sys/bus/iio/devices/iio\:device0                                                                                                                                                                                                                                                                                                                                                                                                                                          | 
-| type-c-dir       | Displays the orientation of the attached USB Type C cable.                                                                                                                                                                                                                                                                                           | +| type-c-dir       | Displays the orientation of the attached USB Type C cable.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | 
-| uio-test         | Tests several AXI GPIO peripherals tied to PL User IOs (LEDs, RGB LEDs, buttons, switches)                                                                                                                                                                                                                                                           | +| uio-test         | Tests several AXI GPIO peripherals tied to PL User IOs (LEDs, RGB LEDs, buttons, switches)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | 
-| usb-bist         | Tests onboard USB devices to see if they are being enumerated and brought up correctly                                                                                                                                                                                                                                                               | +| usb-bist         | Tests onboard USB devices to see if they are being enumerated and brought up correctly. Returns zero in case of success, if the device is connected, otherwise returns a non-zero value and prints a message.                                                                                                                                                                                                                                                                                                                                                                              | 
-| usb-reset        | Resets all connected USB devices by unbinding and binding their drivers. This should also provide a hardware reset to the devices.                                                                                                                                                                                                                   | +| usb-reset        | Resets all connected USB devices by unbinding and binding their drivers. This should also provide a hardware reset to the devices.                                                                                                                                                                                                                                                                                                                                                                                                                                                         | 
-| wifi-bist        | Used by the network-bist script.                                                                                                                                                                                                                                                                                                                     | +| wifi-bist        | Used by the network-bist script. Associates the board with the wireless point. The wto parameters are the wifi ssid and password.                                                                                                                                                                                                                                                                                                                                                                                                                                                          | 
-| zuca-test-suite  | Wraps the other test scripts for testing in manufacturing. Requires modification to be run by a user.                                                                                                                                                                                                                                                |+| zuca-test-suite  | Wraps the other test scripts for testing in manufacturing. Requires modification to be run by a user. For internal use only.                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
  
-Further information on these tests can be found by reviewing the test scripts on the board with a built-in text editor, or by viewing their sources on GitHub: [[https://github.com/Digilent/Genesys-ZU-OOB-os/tree/3eg-master/project-spec/meta-user/recipes-apps/zuca-test-suite/files|zuca-test-suite files]].+Further information on these tests can be found by reviewing the test scripts on the board with a built-in text editor and by viewing their sources on GitHub: [[https://github.com/Digilent/Genesys-ZU-OS/tree/3eg/oob/master/project-spec/meta-user/recipes-apps/zuca-test-suite/files|zuca-test-suite files]].
  
 ---- ----
Line 107: Line 111:
 === Inventory === === Inventory ===
   * Computer running Linux with the following software installed:   * Computer running Linux with the following software installed:
-    * Vivado 2019.1 with Digilent Board Files:+    * Vivado 2020.1 with Digilent Board Files:
       * //Installation instructions can be found in this Wiki's [[vivado:installing-vivado:start|Installing Vivado, Xilinx SDK, and Digilent Board Files]] guide.//       * //Installation instructions can be found in this Wiki's [[vivado:installing-vivado:start|Installing Vivado, Xilinx SDK, and Digilent Board Files]] guide.//
       * Make sure that the installation includes support for Zynq Ultrascale parts.       * Make sure that the installation includes support for Zynq Ultrascale parts.
-    * Petalinux 2019.1: +    * Petalinux 2020.1: 
-      * //Installation instructions can be found in Chapter 2 of Xilinx's [[https://www.xilinx.com/support/documentation/sw_manuals/xilinx2019_1/ug1144-petalinux-tools-reference-guide.pdf|Petalinux Tools Documentation (UG1144)]]//+      * //Installation instructions can be found in Chapter 2 of Xilinx's [[https://docs.xilinx.com/v/u/2020.1-English/ug1144-petalinux-tools-reference-guide|Petalinux Tools Documentation (UG1144)]]//
   * Github repositories for the Hardware and Software components of the Out-of-Box demo. \\ **Note:** //How to clone these repositories is discussed in further detail below.//   * Github repositories for the Hardware and Software components of the Out-of-Box demo. \\ **Note:** //How to clone these repositories is discussed in further detail below.//
-    * [[https://github.com/Digilent/Genesys-ZU-OOB-hw|Genesys-ZU-OOB-hw]] +    * [[https://github.com/Digilent/genesys-zu]]
-    * [[https://github.com/Digilent/Genesys-ZU-OOB-os|Genesys-ZU-OOB-os]]+
 **Important:** //For more information on supported Linux distributions, required dependencies, and other additional requirements, see Xilinx UG1144, linked above.// **Important:** //For more information on supported Linux distributions, required dependencies, and other additional requirements, see Xilinx UG1144, linked above.//
  
-  * The original sources used to produce the image found on the SD card shipped with the Genesys ZU can be found in the commits tagged "3eg-oob_v1.1" in the Genesys-ZU-OOB-hw and Genesys-ZU-OOB-os repositories, linked below:+  * The original sources used to produce the image found on the SD card shipped with the Genesys ZU-3EG rev B can be found in the commits tagged "3eg-oob_v1.1" in the Genesys-ZU-OOB-hw and Genesys-ZU-OOB-os repositories, linked below:
     * [[https://github.com/Digilent/Genesys-ZU-OOB-hw/tree/3eg-oob_v1.1|Genesys-ZU-OOB-hw (3eg-oob_v1.1)]]     * [[https://github.com/Digilent/Genesys-ZU-OOB-hw/tree/3eg-oob_v1.1|Genesys-ZU-OOB-hw (3eg-oob_v1.1)]]
     * [[https://github.com/Digilent/Genesys-ZU-OOB-os/tree/3eg-oob_v1.1|Genesys-ZU-OOB-os (3eg-oob_v1.1)]]     * [[https://github.com/Digilent/Genesys-ZU-OOB-os/tree/3eg-oob_v1.1|Genesys-ZU-OOB-os (3eg-oob_v1.1)]]
 +  * The original sources used to produce the image found on the SD card shipped with the Genesys ZU (both variants) rev D can be found under tag "<variant/oob/release/v2.1" in the Genesys ZU repositories, linked below:
 +    * [[https://github.com/Digilent/Genesys-ZU/releases/tag/3eg%2Foob%2Frelease%2Fv2.1|Genesys-ZU (3eg/oob/release/v2.1)]]
 +    * [[https://github.com/Digilent/Genesys-ZU/releases/tag/5ev%2Foob%2Frelease%2Fv2.1|Genesys-ZU (5ev/oob/release/v2.1)]]
  
 ---- ----
Line 129: Line 135:
 Change directory into the cloned repository's directory: Change directory into the cloned repository's directory:
 <code>cd <repo></code> <code>cd <repo></code>
-Next, find and check out the -master <branch> that matches the variant of your board, and initialize and update the repository's submodules:+Next, find and check out the oob/master <branch> or release tag that matches the variant of your board (3eg/5ev), and initialize and update the repository's submodules:
 <code>git branch -a <code>git branch -a
-git checkout <branch>+git checkout <branch/tag>
 git submodule update --init --recursive git submodule update --init --recursive
 </code> </code>
Line 154: Line 160:
 In the TCL console at the bottom of the Vivado window, use the following command to recreate the Vivado project from its sources, where <repo path> represents the full path to the cloned repository: In the TCL console at the bottom of the Vivado window, use the following command to recreate the Vivado project from its sources, where <repo path> represents the full path to the cloned repository:
 <code> <code>
-source <repo path>/proj/create_project.tcl+source <repo path>/digilent-vivado-scripts/digilent_vivado_checkout.tcl
 </code> </code>
-**Note:** //An additional script, cleanup.sh, has been been placed in the proj directory of the repository. This script can be used to delete project files to return the proj directory to a state where the project can be recreated from source again.//+
 </WRAP> <WRAP column half> </WRAP> <WRAP column half>
 {{ :reference:programmable-logic:genesys-zu:generate-bitstream.png?nolink&600 |}} {{ :reference:programmable-logic:genesys-zu:generate-bitstream.png?nolink&600 |}}
Line 194: Line 200:
 Change directory into the cloned repository's directory: Change directory into the cloned repository's directory:
 <code>cd <repo></code> <code>cd <repo></code>
-Check out the -master <branch> that matches the variant of your board. The available remote branches can be listed through the use of `git branch -a`. +Check out the oob/master <branch> or release tag that matches the variant of your board (3eg/5ev). The available remote branches can be listed through the use of `git branch -a`. 
-<code>get checkout <branch></code>+<code>get checkout <branch> 
 +git submodule update --init --recursive</code>
 </WRAP> <WRAP column half> </WRAP> <WRAP column half>
 {{ :reference:programmable-logic:genesys-zu:os-clone.png?nolink&600 |}} {{ :reference:programmable-logic:genesys-zu:os-clone.png?nolink&600 |}}
Line 220: Line 227:
 Any changes in Vivado to the set of IP connected to the processor over AXI require that the system-user.dtsi file be edited to associate the connected IP with compatible drivers. Any changes in Vivado to the set of IP connected to the processor over AXI require that the system-user.dtsi file be edited to associate the connected IP with compatible drivers.
  
-Additional information on what can be changed and how can be found in Xilinx's [[https://www.xilinx.com/support/documentation/sw_manuals/xilinx2019_1/ug1144-petalinux-tools-reference-guide.pdf|Petalinux Tools Documentation (UG1144)]].+Additional information on what can be changed and how can be found in Xilinx's [[https://docs.xilinx.com/v/u/2020.1-English/ug1144-petalinux-tools-reference-guide|Petalinux Tools Documentation (UG1144)]].
 </WRAP> <WRAP column half> </WRAP> <WRAP column half>
 {{ :reference:programmable-logic:genesys-zu:petalinux-config.png?nolink&600 |}} {{ :reference:programmable-logic:genesys-zu:petalinux-config.png?nolink&600 |}}
Line 249: Line 256:
 A microSD card used to boot Petalinux must first be formatted with a FAT32 filesystem, and the build outputs BOOT.bin and image.ub must be placed within the first partition. A variety of techniques can be used to accomplish this, for example, the dd command command can be used to format the card. A microSD card used to boot Petalinux must first be formatted with a FAT32 filesystem, and the build outputs BOOT.bin and image.ub must be placed within the first partition. A variety of techniques can be used to accomplish this, for example, the dd command command can be used to format the card.
  
-Once the SD card has been installed, the board can be booted as seen in the [[#using_the_out-of-box_image|Using the Out-of-Box Image]] seciton of this guide. Make sure that the programming mode select jumper has been set to "SD", power on the board, and connect a serial terminal to it through it's USBUART interface.+Once the SD card has been installed, the board can be booted as seen in the [[#using_the_out-of-box_image|Using the Out-of-Box Image]] seciton of this guide. Make sure that the programming mode select jumper has been set to "SD", power on the board, and connect a serial terminal to it through its USB-UART interface.
 </WRAP> <WRAP column half> </WRAP> <WRAP column half>
 {{:reference:programmable-logic:genesys-zu:sd-card-slot.png?600|}} {{:reference:programmable-logic:genesys-zu:sd-card-slot.png?600|}}
 </WRAP> </WRAP> </WRAP> </WRAP>
  
 +----
 +===== Getting the Out-of-Box Image =====
 + * The Out-of-box image files can be found under tag "<variant/oob/release/v2.1" in the Genesys ZU repositories, linked below:
 +    * [[https://github.com/Digilent/Genesys-ZU/releases/tag/3eg%2Foob%2Frelease%2Fv2.1|Genesys-ZU (3eg/oob/release/v2.1)]]
 +    * [[https://github.com/Digilent/Genesys-ZU/releases/tag/5ev%2Foob%2Frelease%2Fv2.1|Genesys-ZU (5ev/oob/release/v2.1)]]
 + * Instructions for Windows:
 +  - Click on the link corresponding to your board version, and download the genesys-zu-version.img.gz file, and uncompress it.
 +  - Download a tool, like [[https://sourceforge.net/projects/sdimager/|SD Imager]] to write the image file to the SD card. In case of SD Imager, you need to extract the downloaded .zip, and then run SDImager.exe.
 +  - Plug in the SD card into your PC (for example via SD card adapter). The SD card is located in the SD card slot, which can be opened by pulling it slightly in the direction of the cooler.
 +  - Select your SD card as SD drive, your uncompressed image file as Image file, and click on the Write button.
 +  - Wait for the SD Imager to terminate the write, then click on the Exit button.
 +  - Eject the SD card, unplug it, and put it back into the SD card slot of the board.
 +* Instructions for Linux:
 +  - Click on the link corresponding to your board version, and download the genesys-zu-version.img.gz file, and uncompress it.
 +  - Plug in the SD card into your PC (for example via SD card adapter). The SD card is located in the SD card slot, which can be opened by pulling it slightly in the direction of the cooler.
 +  - Your card must appear in the /dev/ folder.
 +  - Copy the uncompressed image file with the dd command:<code>sudo dd if=./genesys-zu-version.img of=/dev/sdc</code>In the command replace sdc with your SD card, and version with your board version.
 +  - Eject the SD card, unplug it, and put it back into the SD card slot of the board.
 ---- ----
 ===== Final Thoughts ===== ===== Final Thoughts =====