Jump to content

Ionel

Technical Forum Moderator
  • Posts

    183
  • Joined

  • Last visited

Posts posted by Ionel

  1. Hi @vinod

    You can boot from the qspi

    When you package BOOT.BIN with petalinux-package command you can specify what it should contain.
    A normal boot requires that BOOT.bin contains fsbl, bitstream, u-boot (u-boot containg a dtb)
    you can place BOOT.BIN in qspi. and the following thing should happen :
    1. zsbl loads fsbl from qspi and gives control to it.
    2. fsbl loads bitstream in PL. if no error it will go to next step (enable debugging for fsbl helps with debugging this)
    3. fsbl loads ssbl(second stage boot loader which is u-boot)
    4. u-boot searches for instructions on what to do which are in boot.scr which is not found so it lunches a prompt on serial terminal. At this point you can instruct u-boot what to do.

    In a normal boot flow, boot.scr instructs u-boot to load u-boot image(Image.ub a FIT file containing dtb,ramdisk, kernel image) from various sources (SD,TFTP,others).
    zybo-z7-10 has 16MB of flash so BOOT.BIN will have around 3 MB without kernel.
    Striping the kernel(about 54MB) to that level you have to give up a lot of functionality.
    You will also need a files system to contain the user-space/applications.

    However you can point u-boot to load Image.ub from SD or TFTP. for this you have to know a bit about u-boot.
    You can also boot a baremetal/standalone application (instead of u-boot and Linux kernel) . You can develop this application according to your needs. You can use XSDK or Vitis for this.

    Also please do not start a new thread for the same topic.

  2.  

    Quote

    ok Thanks, CAn I build 2019 Eclypse Z7 BSP on ubuntu 22 ? or it needs only ubuntu 18

    petalinux 2019.1 latest supported ubuntu version is 18.04.1 (64bit)

    Newer version of petalinux supports newer version. Select version of petaliunx on this link https://docs.xilinx.com/r/en-US/ug1144-petalinux-tools-reference-guide/Setting-Up-Your-Environment

    Quote

    Actually i received one xsa file from 2023.1 vivado design suite and also file called  project_1.xpr.zip , and they wanted the design to be integrated it into Eclypse-Z7 Petalinux OS build , how to proceed ?

    Assuming you have created a new petalinux 2023.1 project

    petalinux-config --get-hw-description=/path/to/directory/containing/.xsa/file/

    This steps imports your hardware descrption in your petalinux zynq project
    Building the project should generate a base OS which is a starting point for development. However it dose not contain the software required to use the hardware designed in Vivado

    Xilinx XSDK was replaced by Xilinx Vitis
    For your newly generated OS you can create an SDK that can be used in Vitis by running petalinux-build --sdk
     

    As a reference you can search https://github.com/Digilent/Eclypse-Z7 and sub repositories to find how various thing are achieved.

  3. To check if your boot.bin is ok. Enable fsbl debug and listen on UART during the boot process. You may need to connect as soon as you power the board to catch those messages.

    To enable fsbl debug:  Create a .bbappend for fsbl recipe in your layer or directly edit fsbl recipe and add line:

    YAML_COMPILER_FLAGS_append = " -DFSBL_DEBUG_INFO"

    In newer version I think the syntax is:

    YAML_COMPILER_FLAGS:append = " -DFSBL_DEBUG_INFO"


    This way you know if there is something wrong on the first step of the boot process.

  4. zc702 is a different board that has same Zynq Architecture .

    Depending on what you want to do with the board there are some resources on the link you posted.

    For instance board files for Vivado can be found here: https://github.com/Digilent/vivado-boards/

    Vivado projects(different branch => different example) https://github.com/Digilent/Eclypse-Z7-HW

    Bare-metal software (different branch => different example) https://github.com/Digilent/Eclypse-Z7-SW

    Operating System with examples(different branch => different example) (https://github.com/Digilent/Eclypse-Z7-OS

    An umbrella repository|entry point (different branch => different example) repository for synchronizing above resources https://github.com/Digilent/Eclypse-Z7

  5. Assuming petalinux was not installed with sudo (ownership of /opt/pkg directory was changed to current user).

    If NOT so then remove and install according to ug1144 https://docs.xilinx.com/r/2022.1-English/ug1144-petalinux-tools-reference-guide/Installing-the-PetaLinux-Tool

    Make sure you have all dependencies for Petalinux installed,

    https://support.xilinx.com/s/article/000033799?language=en_US found in 2022.1_PetaLinux_Package_List.xlsx file at the bottom of this page.

    Start a clean build

     

  6. According to https://docs.xilinx.com/r/2022.1-English/ug1144-petalinux-tools-reference-guide/Installation-Requirements

    In release notes: https://support.xilinx.com/s/article/000033799?language=en_US

    In 2022.1_PetaLinux_Package_List.xlsx file the following command is specified to install the required dependencies for Ubuntu Desktop/Server 64-bit:

    sudo apt-get install iproute2 gawk python3 python build-essential gcc git make net-tools libncurses5-dev tftpd zlib1g-dev libssl-dev flex bison libselinux1 gnupg wget git-core diffstat chrpath socat xterm autoconf libtool tar unzip texinfo zlib1g-dev gcc-multilib automake zlib1g:i386 screen pax gzip cpio python3-pip python3-pexpect xz-utils debianutils iputils-ping python3-git python3-jinja2 libegl1-mesa libsdl1.2-dev pylint3

    A list of packages can be found in this file for your specific version of Ubuntu if one of packages in above command is not found in the repository.

  7. To check if your boot.bin is ok. Enable fsbl debug and listen on UART during the boot process. You may need to connect as soon as you power the board to catch those messages.

    To enable fsbl debug:  Create a .bbappend for fsbl recipe in your layer or directly edit fsbl recipe and add line:

    YAML_COMPILER_FLAGS_append = " -DFSBL_DEBUG_INFO"

    In newer version I think the syntax is:

    YAML_COMPILER_FLAGS:append = " -DFSBL_DEBUG_INFO"


    This way you know if there is something wrong on the first step of the boot process.

  8. Have you tried using petalinux(based on yocto)?

    during boot zedboard searches for BOOT.BIN on the boot partition.

    This file contains the fsbl, bistream and u-boot(compiled to contain a dtb) .

    petalinux boot order: u-boot loads boot.scr(boot instruction for u-boot) which by default tries to boot from Image.ub (a FIT containing: .dtb, kernel, and initramfs)
     

    If you use yocto(not petalinux) make sure you generate a BOOT.BIN(enabling fsbl debug helps in this situation. Also after fsbl loads u-boot you can try various ways in u-boot CLI to load and boot linux kernel.

    https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18841862/Install+and+Build+with+Xilinx+Yocto#InstallandBuildwithXilinxYocto-InstalltheImages

  9. @mbritton HI

    quick check: Have you place the host jumper near the usb port on the board?

    In your second attempt you have a syntax error in your device tree(system-user.dtsi). You can find the exact issue in petalinux lol, not visible in image you attached(in a previous text line maybe)

  10. Hi @toddsharpe

    does writing BOOT.BIN at the begging of QSPI boots into u-boot ? when qspi jumper is set?

    u-boot loads boot.scr and loads image.ub according to instructions in boot.scr
    if boot.scr has a wrong address for image.ub(is a FIT) the entire process fails.

     

    According to
    https://docs.xilinx.com/r/2021.2-English/ug1144-petalinux-tools-reference-guide/Configuring-U-Boot-Boot-Script-boot.scr

    expected boot.scr address is 0xFC0000

  11.  Subprocess output:
    /mnt/2Tb/local/src/zyboZ7/build191/PetaLinux/zyboZ7/build/tmp/work/zynq_generic-xilinx-linux-gnueabi/device-tree/xilinx-v2022.1+gitAUTOINC+1b364a44fa-r0/system-user.dtsi:80.26-84.9: ERROR (phandle_references): /dma_smm_asymmetric: Reference to non-existent node or label "axi_dma_0"
    
    /mnt/2Tb/local/src/zyboZ7/build191/PetaLinux/zyboZ7/build/tmp/work/zynq_generic-xilinx-linux-gnueabi/device-tree/xilinx-v2022.1+gitAUTOINC+1b364a44fa-r0/system-user.dtsi:80.26-84.9: ERROR (phandle_references): /dma_smm_asymmetric: Reference to non-existent node or label "axi_dma_0"
    
    /mnt/2Tb/local/src/zyboZ7/build191/PetaLinux/zyboZ7/build/tmp/work/zynq_generic-xilinx-linux-gnueabi/device-tree/xilinx-v2022.1+gitAUTOINC+1b364a44fa-r0/system-user.dtsi:80.26-84.9: ERROR (phandle_references): /dma_smm_asymmetric: Reference to non-existent node or label "axi_dma_1"
    
    /mnt/2Tb/local/src/zyboZ7/build191/PetaLinux/zyboZ7/build/tmp/work/zynq_generic-xilinx-linux-gnueabi/device-tree/xilinx-v2022.1+gitAUTOINC+1b364a44fa-r0/system-user.dtsi:80.26-84.9: ERROR (phandle_references): /dma_smm_asymmetric: Reference to non-existent node or label "axi_dma_1" 

    You have made changes to the design (xsa) wich leads to changes in pl.dtsi file. This took place after issuing `petalinux-config --get-hw-description` leading to removal of axi_dma_0 and axi_dma_1 nodes. In system-user.dtsi those exact node are referred leading to a device tree compilation error.
    If you did not do any changes to xsa then a clean build should solve this issue. (rm -rf  build components && petaliunx-build).

    You may want to avoid removing build/download directory by moving it to a different path and make a symlink to it in build directrory after issuing petalinux-config --silent(creates the build directory).

  12. Hi @MichelleNicholes,

    You may know that GPIO are hardware resources and implicitly should be managed by the kernel via a driver. You can also manage them in user-space via /sys/class/ interface offered by the kernel. To implement this using Vitis(Cross Architecture and maybe Cross Platform) you must provide Vitis with a sysroot and maybe a toolchain found in petalinux SDK for your rootfs. This can be generated using petalinux: https://docs.xilinx.com/r/en-US/ug1144-petalinux-tools-reference-guide/Building-SDK. Starting there is mostly what you did in terminal (read write from /sys/ files).

    Here is a similar situation describe step by step. https://xilinx.github.io/Embedded-Design-Tutorials/docs/2022.2/build/html/docs/Introduction/ZynqMPSoC-EDT/6-build-linux-sw-for-ps.html#creating-linux-applications-in-the-vitis-ide

  13. 1. Please post output for ip a on both arty and host.
    2. Are you running a dhcp client on Arty or a dhcp server?

    3. Are you running ubuntu22 in VM. If yes with NAT or bridge ?
    4. Post device tree node for axi_ethernetlite_0 found in <petalinux_project>components/plnx_workspace/device-tree/device-tree/pl.dtsi

     

    This may also help.

    https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18841972/Linux+Emaclite+Driver

     

  14. On the Linux side after adding extra filters no changes should be done after Importing the new hardware (petalinux-config --get-hw-description=<path-to-xsa>)
    The exception is if the filter needs driving in which case:

    1. Add device tree node(s) for the filter(s)
    2. Add a kernel driver (see Linux Media Subsystem)
    3. Add some user-space app to use the driver if necessary.
    Quote

    but this just resulted in the camera not being recognised on boot.

    What lead to this conclusion?

  15. File <petalinux_project>components/plnx_workspace/device-tree/device-tree/pl.dtsi is where node axi_dma_0 or axi_dma_1 is generated according to hardware description in .xsa file imported with petalinux-config --get-hw-description=<path-to-xsa> (see UG1144).

    Dose your design(exported from Vivado) contains any axi_dma component? Only then a node in device tree is added for it.

    You need to also understand where dma_proxy node should be placed inside device tree. Normally under amba_pl. Use & when extending in system-user.dtsi

    example:

    &amba_pl {
      dma_proxy {
        ..
      };
    };

    Does axi_dma_0 component exist in pl.dtsi because it is referred by dma_proxy?

×
×
  • Create New...