Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languageruby
title_i_bitgen_common.xdc
set_property BITSTREAM.GENERAL.COMPRESS TRUE [current_design]
set_property CONFIG_VOLTAGE 3.3 [current_design]
set_property CFGBVS VCCO [current_design]

set_property BITSTREAM.CONFIG.USR_ACCESSUNUSEDPIN TIMESTAMPPULLNONE [current_design]

Design specific constrain

Code Block
collapse
languageruby
title_i_io.xdc
linenumberstrue
true
set_property PACKAGE_PIN K2K9 [get_ports {fclkSI5338_CLK0_D_clk_p[0]}]
set_property IOSTANDARD LVCMOS18LVDS [get_ports {fclkSI5338_CLK0_D_clk_p[0]}]
set_property CLOCK_DEDICATED_ROUTE FALSEDIFF_TERM TRUE [get_nets fclk_IBUFports {SI5338_CLK0_D_clk_p[0]]

Software Design - SDK/HSI

HTML
<!--
optional chapter
separate sections for different apps
  -->

For SDK project creation, follow instructions from:

SDK Projects

Application

FSBL

Xilinx default FSBL

U-Boot

}]

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]}]

Software Design - SDK/HSI

HTML
<!--
optional chapter
separate sections for different apps
  -->

For SDK project creation, follow instructions from:

SDK Projects

Application

FSBL

TE modified 2017.2 FSBL

  • Si5338 Configuration, ETH+OTG Reset over GPIO see xfsbl_board.c and xfsbl_board.h
  • Add register_map.h, si5338.c, si5338.h

Hello World

Xilinx default Hello world example. Note: Hello World output appears only on time on power up. 

U-Boot

U-Boot.elf is generated with PetaLinux. U-Boot.elf is generated with PetaLinux. SDK/HSI is used to generate Boot.bin.

Software Design -  PetaLinux

HTML
<!--
optional chapter
Add "No changes." or "Activate: -->List"
   -->

Description currently not available.

Config

No changes.

U-Boot

...

<!--
optional chapter
Add "No changes." or "Activate: -->List"
   -->

Description currently not available.

Config

No changes.

U-Boot

  • Change platform-top.h
Code Block
languagejs
#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" \ 
""

Device Tree

Code Block
languagejs
/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";
};

...