"" /> "" />

Wind River Support Network


LIN1021-507 : xilinx-zynqmp: dtbo can't recognize taget="<>"

Created: Jun 7, 2021    Updated: Jul 13, 2021
Resolved Date: Jun 8, 2021
Found In Version:
Fix Version:
Severity: Standard
Applicable for: Wind River Linux LTS 21
Component/s: BSP


When using Device Tree Overly (DTO), there are 2 ways to point where
the the contents of the overlay will go into the live tree. one is using
"target-path" and the other is "target". For example, "fragement@0" can
be inserted to the node "fpga_full: fpga-full" by using 2 methods as below:

fragment@0 {
target-path = "/fpga-full";
fragment@0 {
target = <&fpga_full>;


Now we only support "target-path" method. The other method should be supported too.

Steps to Reproduce

Step1: edit an example pl.dtsi file and generate dtbo file.

As below is the file contents example:

// pl.dtsi overlay dts file.

/ {
 fragment@0 {
 target = "<&fpga_full>";
 #address-cells = <1>;
 #size-cells = <1>;


{ #address-cells = <2>; #size-cells = <2>; firmware-name = "system.bit.bin"; }


We can create Device Tree Overlay Blob (.dtbo) file from
 the pl.dtsi file as below:

dtc -O dtb -o pl.dtbo -b 0 -@ pl.dtsi

Step2 running command as below on target board:

1) Set flags for Full Bitstream.
 # echo 0 > /sys/class/fpga_manager/fpga0/flags

2) Copy the Full Bitstream (.bin) and pl.dtbo files into firmware folder
 # mkdir -p /lib/firmware
 # cp xxx/system.bit.bin /lib/firmware/system.bit.bin
 # cp xxx/pl.dtbo /lib/firmware/pl.dtbo

3) Apply overlay DTB(pl.dtbo) to add live device nodes
 # mkdir /sys/kernel/config/device-tree/overlays/system
 # cd /lib/firmware/
 # echo pl.dtbo > /sys/kernel/config/device-tree/overlays/system/path

There will be error log as below:

OF: resolver: no symbols in root of device tree.
 OF: resolver: overlay phandle fixup failed: -22
 create_overlay: Failed to create overlay (err=-22)
Live chat