Versions Compared

Key

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

...

Excerpt
  • PetaLinux
  • SD
  • ETH
  • USB
  • I2C
  • RTC
  • FMeter
  • SI5338 Initialisation with FSBL


Revision History

HTML
<!--
- Add changes from design
- Export PDF to download, if vivado revision is changed!
  -->

...

Module ModelBoard Part Short NamePCB Revision SupportNotes
 TE0745-02-30-1I 30 01,02     
 TE0745-02-35-1C  01,02 
    2 

Design supports following carriers:

Carrier ModelNotes
---TEB0745 

Additional HW Requirements:

...

  1. _create_win_setup.cmd/_create_linux_setup.sh and follow instructions on shell:
  2. Press 0 and enter for minimum setup
  3. (optional Win OS) Generate Virtual Drive or use short directory  for the reference design (for example x:\<design name>)
  4. Create Project
    1. Select correct device and Xilinx install path on "design_basic_settings.cmd" and create Vivado project with "vivado_create_project_guimode.cmd"
      Note: Select correct one, see TE Board Part Files
  5. Create HDF and export to prebuilt folder
    1. Run on Vivado TCL: TE::hw_build_design -export_prebuilt
      Note: Script generate design and export files into \prebuilt\hardware\<short dir>. Use GUI is the same, except file export to prebuilt folder
  6. Create Linux (uboot.elf and image.ub) with exported HDF
    1. HDF is exported to "prebuilt\hardware\<short name>"
      Note: HW Export from Vivado GUI create another path as default workspace.
    2. Create Linux images on VM, see PetaLinux KICKstart
      1. Use TE Template from /os/petalinux
        Note: run init_config.sh before you start petalinux config. This will set correct temporary path variable.
  7. Add Linux files (uboot.elf and image.ub) to prebuilt folder
    1. "prebuilt\os\petalinux\default" or "prebuilt\os\petalinux\<short name>"
      Notes: Scripts select "prebuilt\os\petalinux\<short name>", if exist, otherwise "prebuilt\os\petalinux\default"
  8. Generate Programming Files with HSI/SDK
    1. Run on Vivado TCL: TE::sw_run_hsi
      Note: Scripts generate applications and bootable files, which are defined in "sw_lib\apps_list.csv"
    2. (alternative) Start SDK with Vivado GUI or start with TE Scripts on Vivado TCL: TE::sw_run_sdk
      Note: See SDK Projects

...

  1. Generate Platform Project or use prebuilt from download
  2. ...


Launch

Programming

HTML
<!--
Description of Block Design, Constrains...
BD Pictures from Export...
  -->

...

  1. Prepare HW like described on section Programming
  2. Connect UART USB (most cases same as JTAG)
  3. Select SD Card as Boot Mode
    Note: See TRM of the Carrier , which is usedand Module.
  4. Power On PCB
    Note: 1. Zynq Boot ROM loads FSBL from SD into OCM, 2. FSBL loads U-boot from SD into DDR, 3. U-boot load Linux from SD into DDR

...

  1. Open Serial Console (e.g. putty)
    1. Speed: 115200
    2. COM Port: Win OS, see device manager, Linux OS see  dmesg |grep tty  (UART is *USB1)
  2. Linux Console:
    Note: Wait until Linux boot finished For Linux Login use:
    1. User Name: root
    2. Password: root

 

System Design - Vivado

HTML
<!--
Description of Block Design, Constrains...
BD Pictures from Export...
  -->

Block Design

PS Interfaces

Constrains

Basic module constrains

...

languageruby
title_i_bitgen_common.xdc
  1. You can use Linux shell now.
    1. I2C 0 Bus type: i2cdetect -y -r 0
    2. RTC check: dmesg | grep rtc
    3. ETH0 works with udhcpc
    4. USB type  "lsusb" or connect USB2.0 device

Vivado HW Manager

SI5338_CLK0 Counter: 

  1. Open Vivado HW-Manager and add VIO signal to dashboard (*.ltx located on prebuilt folder).
    1. Set radix from VIO signals to unsigned integer.
      Note: Frequency Counter is inaccurate and displayed unit is Hz

SI5338 CLK is configured to  125MHz by default.


System Design - Vivado

Design specific constrain

...

languageruby
title_i_io.xdc

...

HTML
<!--
optional chapter
separate sections for different appsDescription of Block Design, Constrains...
BD Pictures from Export...
  -->

For SDK project creation, follow instructions from:

SDK Projects

Application

FSBL

Xilinx default FSBL

U-Boot

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"
   -->

For PetaLinux installation and  project creation, follow instructions from:

Config

No changes.

U-Boot

No changes.

Device Tree

Code Block
languagejs
/include/ "system-conf.dtsi"
/ {
};


Kernel

No changes.

Rootfs

...

Block Design

Image Added

PS Interfaces

TypeNote
DDR
QSPIMIO
ETH0MIO
USB0MIO
SD0MIO
UART0MIO
I2C0MIO
GPIOMIO/EMIO
ETH0 ResetMIO
USB0 ResetMIO
I2C0 ResetMIO
Timer 0EMIO


Constrains

Basic module constrains

Code Block
languageruby
title_i_bitgen_common
set_property BITSTREAM.GENERAL.COMPRESS TRUE [current_design]
set_property CONFIG_VOLTAGE 1.8 [current_design]
set_property CFGBVS GND [current_design]

Design specific constrain

No additional constrains.

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

Changes:

  • Si5338 Configuration see fsbl_hooks.c
  • Add register_map.h, si5338.c, si5338.h


U-Boot

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"
   -->

For PetaLinux installation and  project creation, follow instructions from:

Config

No changes.

U-Boot

No changes.

Device Tree

Code Block
languagejs
/include/ "system-conf.dtsi"
/ {
};


/* ethernet */
&gem0 {
    phy-handle = <&phy0>;
    mdio {
        #address-cells = <1>;
        #size-cells = <0>;
        phy0: phy@1 {
            compatible = "marvell,88e1510";
            device_type = "ethernet-phy";
            reg = <1>;
        } ;
    } ;
};

/* usb */
/{
    usb_phy0: usb_phy@0 {
        compatible = "ulpi-phy";
        #phy-cells = <0>;
        reg = <0xe0002000 0x1000>;
        view-port = <0x0170>;
        drv-vbus;
    };
};

&usb0 {
    dr_mode = "host";
    //dr_mode = "peripheral";
    usb-phy = <&usb_phy0>;
};

/* flash */
&flash0 {
    compatible = "micron,n25q256a";
    #size-cells = <1>;
    reg = <0x0>;
    spi-tx-bus-width = <1>;
    spi-rx-bus-width = <4>;
    spi-max-frequency = <10000000>;

};

/* I2C */

&i2c0 {
    #address-cells = <1>;
    #size-cells = <0>;

    rtc0: rtc@6F {
        compatible = "isl12022";
        reg = <0x6F>;
    };


    i2cmux_SFP: i2cmux@72  {
        compatible = "nxp,pca9548";
        #address-cells = <1>;
        #size-cells = <0>;
        reg = <0x72>;

        SFP@0 {
            #address-cells = <1>;
            #size-cells = <0>;
            reg = <0>;
        };
        SFP@1 {
            #address-cells = <1>;
            #size-cells = <0>;
            reg = <1>;
        };
        SFP@2 {
            #address-cells = <1>;
            #size-cells = <0>;
            reg = <2>;
        };
        SFP@3 {
            #address-cells = <1>;
            #size-cells = <0>;
            reg = <3>;
        };
        SFP@4 {
            #address-cells = <1>;
            #size-cells = <0>;
            reg = <4>;
        };
        SFP@5 {
            #address-cells = <1>;
            #size-cells = <0>;
            reg = <5>;
        };
        SFP@6 {
            #address-cells = <1>;
            #size-cells = <0>;
            reg = <6>;
        };
        SFP@7 {
            #address-cells = <1>;
            #size-cells = <0>;
            reg = <7>;
        };
    };

};

Kernel

Activate:

  • USB_ULPI_BUS
  • RTC_DRV_ISL12022

Rootfs

Activate:

  • i2c-tools

Applications

startup

Script App to load init.sh from SD Card if available.

...

HTML
<!--
Add Description for other Software, for example SI CLK Builder ...
 -->

...

SI5338

Download  ClockBuilder Desktop for SI5338

  1. Install and start ClockBuilder
  2. Select SI5338
  3. Options → Open register map file
    Note: File location <design name>/misc/Si5338/RegisterMap.txt
  4. Modify settings
  5. Options → save C code header files
  6. Replace Header files from FSBL template with generated file

Appx. A: Change History and Legal Notices

...