"" /> "" />
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";
or
fragment@0 {
target = <&fpga_full>;
Now we only support "target-path" method. The other method should be supported too.
Step1: edit an example pl.dtsi file and generate dtbo file.
As below is the file contents example:
// pl.dtsi overlay dts file.
/dts-v1/;
/plugin/;
/ {
fragment@0 {
target = "<&fpga_full>";
#address-cells = <1>;
#size-cells = <1>;
__overlay__
{ #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)