Ionel
-
Posts
183 -
Joined
-
Last visited
Content Type
Profiles
Forums
Events
Gallery
Posts posted by Ionel
-
-
Hi @vinod
You can boot from the qspiWhen 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.
-
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
QuoteActually 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 VivadoXilinx 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.
-
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. -
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
-
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
-
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.
-
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. -
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.
-
@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)
-
-
-
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.expected boot.scr address is 0xFC0000
-
@SIE
can you post your <project>/components/plnx_workspace/device-tree/device-tree/pcw.dtsi file ? -
Here is the fix for this issue: https://github.com/Digilent/digilent-apps/commit/06ec7256376eba3010fd8dbf18a3e8da1327e3b5
Edit recipes(.bb) of your included packages as such. If your project is a git clone the alternative is to point digilent-apps git submodule to new URL & commit.
-
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).
-
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
-
Hi @sarvan
You may want to see this:
https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18841883/Yocto
https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842475/PetaLinux+Yocto+Tips
https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18841862/Install+and+Build+with+Xilinx+Yocto, ( Build with Xilinx Yocto )
As James Watson mentioned you need to make sure features of the board that you want in your projects/applications are supported in u-boot & kernel of your chosen Yoctoproject version.
-
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.dtsiThis may also help.
https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18841972/Linux+Emaclite+Driver
-
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:- Add device tree node(s) for the filter(s)
- Add a kernel driver (see Linux Media Subsystem)
- Add some user-space app to use the driver if necessary.
Quotebut this just resulted in the camera not being recognised on boot.
What lead to this conclusion?
-
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?
-
local.conf is overwritten by petalinux actually the entire build directory.
In newer versions of petalinux systemd is used by default.
To backport this change you need to make changes to the rootfs in meta-user layer.
-
Another solution is to make an ext4 partiton on the card and place the rootfs there. This way you are no longer constrained by the size of the RAM available on the board.
Make sure to select corresponding version of this User Guide for your petalinux version (in this case 2022.1
-
It appears that `bsp.conf` is not included anywhere. However CONFIG_SYS_BOOTM_LEN is defined in zynq-common.h to (60*1024*1024) so if you need change the value you need to redefine it after including zynq-common.h in platform-top.h
-
Recipes in https://github.com/Digilent/digilent-apps were changed to use the encrypted channel to fetch the sources.
In petalinux project https://github.com/Digilent/Cora-Z7-OS branch `10/Petalinux/upgrade` was integrated in branch `10/master`
To fetch the fix:
git fetch
git checkout 10/master
git submodule update --init
Eclypse Z7 build error : Petalinux
in Embedded Linux
Posted
It looks like internet was cut off during build. Fetch tasks are responsible for downloading sources.
What was the behavior on retry ?