HTML |
---|
<!-- Template Revision 1.0 Basic Notes - export PDF to download, if vivado revision is changed! - Template is for different design and SDSoC and examples, remove unused or wrong description! --> |
Scroll Only (inline) |
---|
Online version of this manual and other related documents can be found at https://wiki.trenz-electronic.de/display/PD/Trenz+Electronic+Documentation |
Scroll pdf ignore | ||||
---|---|---|---|---|
Table of contents
|
HTML |
---|
<!-- General Design description --> |
HTML |
---|
<!-- Add Basic Key Features of the design (should be tested) --> |
Excerpt |
---|
|
HTML |
---|
<!-- - Add changes from design - Export PDF to download, if vivado revision is changed! --> |
Date | Vivado | Project Built | Authors | Description |
---|---|---|---|---|
2017-10-19 | 2017.2 | John Hartfiel | initial release |
HTML |
---|
<!-- - add known Design issues and general Notes for the current revision --> |
Issues | Description | Workaround | To be fixed version |
---|---|---|---|
USB2.0 | works only with USB3.0 enabled in Vivado Design | enable USB3.0 | --- |
HTML |
---|
<!-- Add needed external Software --> |
Software | Version | Note |
---|---|---|
Vivado | 2017.2 | needed |
SDK | 2017.2 | needed |
PetaLinux | 2017.2 | needed |
SI5338 Clock Builder | --- | optional |
HTML |
---|
<!-- Hardware Support --> |
Basic description of TE Board Part Files is available on TE Board Part Files.
Complete List is available on <design name>/board_files/*_board_files.csv
Design supports following modules:
Module Model | Board Part Short Name | PCB Revision Support | Notes |
---|---|---|---|
TE0820-ES1 | es1 | 01 | |
TE0820-02-2EG-1E | 2eg_1e | 02 | also TE0820-02-2EG-1E3 |
TE0820-02-2CG-1E | 2cg_1e | 02 | |
TE0820-02-3EG-1E | 3eg_1e | 02 | also TE0820-02-3EG-1E3 |
TE0820-02-3CG-1E | 3cg_1e | 02 |
Design supports following carriers:
Carrier Model | Notes |
---|---|
TE0701 | Important: See restrictions on usage with 7 Serie Carriers: 4 x 5 cm carriers |
TE0703 | Important: See restrictions on usage with 7 Serie Carriers: 4 x 5 cm carriers Used as reference carrier. |
TE0705 | Important: See restrictions on usage with 7 Serie Carriers: 4 x 5 cm carriers |
TE0706 | Important: See restrictions on usage with 7 Serie Carriers: 4 x 5 cm carriers |
TEBA0841 | Important: See restrictions on usage with 7 Serie Carriers: 4 x 5 cm carriers |
Additional HW Requirements:
Additional Hardware | Notes |
---|---|
USB Cable for JTAG/UART | Check Carrier Board and Programmer for correct typ |
XMOD Programmer | Carrier Board dependent, only if carrier has no own FTDI |
Cooler | It's recommended to use cooler on ZynqMP device |
HTML |
---|
<!-- Remove unused content --> |
For general structure and of the reference design, see Project Delivery
Type | Location | Notes |
---|---|---|
Vivado | <design name>/block_design <design name>/constraints <design name>/ip_lib | Vivado Project will be generated by TE Scripts |
SDK/HSI | <design name>/sw_lib | Additional Software Template for SDK/HSI and apps_list.csv with settings for HSI |
PetaLinux | <design name>/os/petalinux | PetaLinux template with current configuration |
Type | Location | Notes |
---|---|---|
SI5338 | <design name>/misc/Si5338 | SI5343 Project with current PLL Configuration |
HTML |
---|
<!-- <table width="100%"> <tr> <th>File </th> <th>File-Extension</th> <th>Description </th> </tr> <tr> <td>BIF-File </td> <td>*.bif </td> <td>File with description to generate Bin-File </td> </tr> <tr> <td>BIN-File </td> <td>*.bin </td> <td>Flash Configuration File with Boot-Image (Zynq-FPGAs) </td> </tr> <tr> <td>BIT-File </td> <td>*.bit </td> <td>FPGA Configuration File </td> </tr> <tr> <td>DebugProbes-File </td> <td>*.ltx </td> <td>Definition File for Vivado/Vivado Labtools Debugging Interface </td> </tr> <tr> <td>Debian SD-Image </td> <td>*.img </td> <td>Debian Image for SD-Card </td> </tr> <tr> <td>Diverse Reports </td> <td> --- </td> <td>Report files in different formats </td> </tr> <tr> <td>Hardware-Platform-Specification-Files</td> <td>*.hdf </td> <td>Exported Vivado Hardware Specification for SDK/HSI </td> </tr> <tr> <td>LabTools Project-File </td> <td>*.lpr </td> <td>Vivado Labtools Project File </td> </tr> <tr> <td>MCS-File </td> <td>*.mcs </td> <td>Flash Configuration File with Boot-Image (MicroBlaze or FPGA part only) </td> </tr> <tr> <td>MMI-File </td> <td>*.mmi </td> <td>File with BRAM-Location to generate MCS or BIT-File with *.elf content (MicroBlaze only) </td> </tr> <tr> <td>OS-Image </td> <td>*.ub </td> <td>Image with Linux Kernel (On Petalinux optional with Devicetree and RAM-Disk) </td> </tr> <tr> <td>Software-Application-File </td> <td>*.elf </td> <td>Software Application for Zynq or MicroBlaze Processor Systems </td> </tr> <tr> <td>SREC-File </td> <td>*.srec </td> <td>Converted Software Application for MicroBlaze Processor Systems </td> </tr> </table> --> |
File | File-Extension | Description |
---|---|---|
BIF-File | *.bif | File with description to generate Bin-File |
BIN-File | *.bin | Flash Configuration File with Boot-Image (Zynq-FPGAs) |
BIT-File | *.bit | FPGA (PL Part) Configuration File |
DebugProbes-File | *.ltx | Definition File for Vivado/Vivado Labtools Debugging Interface |
Diverse Reports | --- | Report files in different formats |
Hardware-Platform-Specification-Files | *.hdf | Exported Vivado Hardware Specification for SDK/HSI and PetaLinux |
LabTools Project-File | *.lpr | Vivado Labtools Project File |
OS-Image | *.ub | Image with Linux Kernel (On Petalinux optional with Devicetree and RAM-Disk) |
Software-Application-File | *.elf | Software Application for Zynq or MicroBlaze Processor Systems |
Reference Design is only usable with the specified Vivado/SDK/PetaLinux/SDx version. Do never use different Versions of Xilinx Software for the same Project.
HTML |
---|
<!-- Add correct path:https://shop.trenz-electronic.de/en/Download/?path=Trenz_Electronic/TE0803/Reference_Design/2017.1/Starterkit --> |
Reference Design is available on:
HTML |
---|
<!-- Basic Design Steps Add/ Remove project specific --> |
Note |
---|
Reference Design is available with and without prebuilt files. It's recommended to use TE prebuilt files for first lunch. |
Trenz Electronic provides a tcl based built environment based on Xilinx Design Flow.
See also:
The Trenz Electronic FPGA Reference Designs are TCL-script based project. Command files for execution will be generated with "_create_win_setup.cmd" on Windows OS and "_create_linux_setup.sh" on Linux OS.
TE Scripts are only needed to generate the vivado project, all other additional steps are optional and can also executed by Xilinx Vivado/SDK GUI. For currently Scripts limitations on Win and Linux OS see: Project Delivery Currently limitations of functionality
HTML |
---|
<!-- Description of Block Design, Constrains... BD Pictures from Export... --> |
Note |
---|
Check Module and Carrier TRMs for proper HW configuration before you try any design. |
Xilinx documentation for programming and debugging: Vivado/SDK/SDSoC-Xilinx Software Programming and Debugging
Note: Depending on CPLD Firmware and Boot Mode settings, QSPI boot with Linux image on SD or complete SD Boot is possible.
HTML |
---|
<!-- Example: Connect JTAG and power on PCB (if not done) Select correct device and Xilinx install path on "design_basic_settings.cmd" and create Vivado project with "vivado_create_project_guimode.cmd" or open with "vivado_open_project_guimode.cmd", if generated. Type on Vivado Console: TE::pr_program_flash_mcsfile -swapp u-boot Note: Alternative use SDK or setup Flash on Vivado manually Reboot (if not done automatically) --> |
Used this if you use CPLD Firmware with QSPI Boot selectable
Not used on this Example.
SI5339_CLK0 Counter:
SI5338 CLK is configured to 200MHz by default.
PHY LEDS
CPLD Firmware:
HTML |
---|
<!-- Description of Block Design, Constrains... BD Pictures from Export... --> |
Activated interfaces:
Type | Note |
---|---|
DDR | |
QSPI | MIO |
GEM3 | MIO |
USB0 | MIO, Note: USB3 is also activated, see release notes |
SD0 | MIO |
SD1 | MIO |
I2C0 | MIO |
UART0 | MIO |
Code Block | ||||
---|---|---|---|---|
| ||||
set_property BITSTREAM.GENERAL.COMPRESS TRUE [current_design] set_property BITSTREAM.CONFIG.UNUSEDPIN PULLNONE [current_design |
Code Block | ||||
---|---|---|---|---|
| ||||
set_property PACKAGE_PIN K9 [get_ports {SI5338_CLK0_D_clk_p[0]}] set_property IOSTANDARD LVDS [get_ports {SI5338_CLK0_D_clk_p[0]}] set_property DIFF_TERM TRUE [get_ports {SI5338_CLK0_D_clk_p[0]}] set_property PACKAGE_PIN H1 [get_ports {x0_phy_led[0]}] set_property IOSTANDARD LVCMOS18 [get_ports {x0_phy_led[0]}] set_property PACKAGE_PIN J1 [get_ports {x1_firmware[0]}] set_property IOSTANDARD LVCMOS18 [get_ports {x1_firmware[0]}] |
HTML |
---|
<!-- optional chapter separate sections for different apps --> |
For SDK project creation, follow instructions from:
TE modified 2017.2 FSBL
Changes:
Xilinx default PMU firmware.
Xilinx default Hello world example. Note: Hello World output appears only on time on power up.
U-Boot.elf is generated with PetaLinux. SDK/HSI is used to generate Boot.bin.
HTML |
---|
<!-- optional chapter Add "No changes." or "Activate: -->List" --> |
For PetaLinux installation and project creation, follow instructions from:
No changes.
Code Block | ||
---|---|---|
| ||
#include <configs/platform-auto.h> /* Bugfix to select SD1 instead of eMMC(SD0) */ #define CONFIG_EXTRA_ENV_SETTINGS \ SERIAL_MULTI \ CONSOLE_ARG \ PSSERIAL0 \ "nc=setenv stdout nc;setenv stdin nc;\0" \ "ethaddr=00:0a:35:00:22:01\0" \ "importbootenv=echo \"Importing environment from SD ...\"; " \ "env import -t ${loadbootenv_addr} $filesize\0" \ "loadbootenv=load mmc $sdbootdev:$partid ${loadbootenv_addr} ${bootenv}\0" \ "sd_uEnvtxt_existence_test=test -e mmc $sdbootdev:$partid /uEnv.txt\0" \ "uenvboot=" \ "if run sd_uEnvtxt_existence_test; then" \ "run loadbootenv" \ "echo Loaded environment from ${bootenv};" \ "run importbootenv; \0" \ "sdboot=echo boot Petalinux; run uenvboot ; mmcinfo && fatload mmc 1 ${netstart} ${kernel_img} && bootm \0" \ "autoload=no\0" \ "clobstart=0x10000000\0" \ "netstart=0x10000000\0" \ "dtbnetstart=0x11800000\0" \ "loadaddr=0x10000000\0" \ "boot_img=BOOT.BIN\0" \ "load_boot=tftpboot ${clobstart} ${boot_img}\0" \ "update_boot=setenv img boot; setenv psize ${bootsize}; setenv installcmd \"install_boot\"; run load_boot ${installcmd}; setenv img; setenv psize; setenv installcmd\0" \ "install_boot=mmcinfo && fatwrite mmc 1 ${clobstart} ${boot_img} ${filesize}\0" \ "bootenvsize=0x40000\0" \ "bootenvstart=0x100000\0" \ "eraseenv=sf probe 0 && sf erase ${bootenvstart} ${bootenvsize}\0" \ "jffs2_img=rootfs.jffs2\0" \ "load_jffs2=tftpboot ${clobstart} ${jffs2_img}\0" \ "update_jffs2=setenv img jffs2; setenv psize ${jffs2size}; setenv installcmd \"install_jffs2\"; run load_jffs2 test_img; setenv img; setenv psize; setenv installcmd\0" \ "sd_update_jffs2=echo Updating jffs2 from SD; mmcinfo && fatload mmc 1:1 ${clobstart} ${jffs2_img} && run install_jffs2\0" \ "install_jffs2=sf probe 0 && sf erase ${jffs2start} ${jffs2size} && " \ "sf write ${clobstart} ${jffs2start} ${filesize}\0" \ "kernel_img=image.ub\0" \ "load_kernel=tftpboot ${clobstart} ${kernel_img}\0" \ "update_kernel=setenv img kernel; setenv psize ${kernelsize}; setenv installcmd \"install_kernel\"; run load_kernel ${installcmd}; setenv img; setenv psize; setenv installcmd\0" \ "install_kernel=mmcinfo && fatwrite mmc 1 ${clobstart} ${kernel_img} ${filesize}\0" \ "cp_kernel2ram=mmcinfo && fatload mmc 1 ${netstart} ${kernel_img}\0" \ "dtb_img=system.dtb\0" \ "load_dtb=tftpboot ${clobstart} ${dtb_img}\0" \ "update_dtb=setenv img dtb; setenv psize ${dtbsize}; setenv installcmd \"install_dtb\"; run load_dtb test_img; setenv img; setenv psize; setenv installcmd\0" \ "sd_update_dtb=echo Updating dtb from SD; mmcinfo && fatload mmc 1:1 ${clobstart} ${dtb_img} && run install_dtb\0" \ "fault=echo ${img} image size is greater than allocated place - partition ${img} is NOT UPDATED\0" \ "test_crc=if imi ${clobstart}; then run test_img; else echo ${img} Bad CRC - ${img} is NOT UPDATED; fi\0" \ "test_img=setenv var \"if test ${filesize} -gt ${psize}\\; then run fault\\; else run ${installcmd}\\; fi\"; run var; setenv var\0" \ "netboot=tftpboot ${netstart} ${kernel_img} && bootm\0" \ "default_bootcmd=run cp_kernel2ram && bootm ${netstart}\0" \ "" |
Code Block | ||
---|---|---|
| ||
/include/ "system-conf.dtsi" / { }; /* ETH PHY */ &gem3 { status = "okay"; ethernet_phy0: ethernet-phy@0 { compatible = "marvell,88e1510"; device_type = "ethernet-phy"; reg = <1>; }; }; /* QSPI PHY */ &qspi { #address-cells = <1>; #size-cells = <0>; status = "okay"; flash0: flash@0 { compatible = "n25q256a"; reg = <0x0>; #address-cells = <1>; #size-cells = <1>; }; }; /* DMA not used: Reduce error messages on linux.*/ &lpd_dma_chan1 { status = "disabled"; }; &lpd_dma_chan2 { status = "disabled"; }; &lpd_dma_chan3 { status = "disabled"; }; &lpd_dma_chan4 { status = "disabled"; }; &lpd_dma_chan5 { status = "disabled"; }; &lpd_dma_chan6 { status = "disabled"; }; &lpd_dma_chan7 { status = "disabled"; }; &lpd_dma_chan8 { status = "disabled"; }; |
No changes.
Activate:
Script App to load init.sh from SD Card if available.
See: \os\petalinux\project-spec\meta-user\recipes-apps\startup\files
HTML |
---|
<!-- Add Description for other Software, for example SI CLK Builder ... --> |
No additional software is needed.
To get content of older revision got to "Change History" of this page and select older document revision number.
HTML |
---|
<!-- Generate new entry: 1:add new row below first 2:Copy Page Information Macro(date+user) Preview, Page Information Macro Preview 3.Update Metadate =Page Information Macro Preview+1 --> |
Date | Document Revision | Authors | Description | ||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
| Work in progress | ||||||||||||||||||||||
2017-09-11 | v.1 |
| Initial release | ||||||||||||||||||||||
All |
|
Include Page | ||||
---|---|---|---|---|
|