When adding a generic-uio device to my petalinux config, in the system-user.dtsi file, in Petalinux 2023.1, I got an error:
system-user.dtsi:7.1-23 Label or path AD9851_AXI_20231112_0 not found
FATAL ERROR: Syntax error parsing input tree
My file looked like this:
/include/ "system-conf.dtsi"
&AD9851_AXI_20231112_0 {
compatible = "generic-uio";
};
This seemed to match the examples and tutorials I could find, however it would not work. I tried different small syntax things, I verifiied that the label was defined in my pl.dtsi file (located in plnx_workspace/device-tree/devcie-tree/pl.dtsi).
What ended up fixing this was importing the pl.dtsi manually, however I got a syntax error with /THE AUTOMATICALLY GENRATED PL.DTSI FILE/!!!
It had 2 bonus lines that look like they have changed the syntax for. The error:
Error: /home/vivado/project/EBAZ4205_projects/wheat/Petalinux-SW/petalinux_sd/components/plnx_workspace/device-tree/device-tree/pl.dtsi:8.1-9 syntax error
FATAL ERROR: Unable to parse input tree
The bonus lines:
8 /dts-v1/;
9 /plugin/;
Removing those offending lines made my pl.dtsi file look like:
/*
* CAUTION: This file is automatically generated by Xilinx.
* Version: XSCT
* Today is: Sat Nov 18 00:14:07 2023
*/
&fpga_full {
firmware-name = "ebaz4205_wrapper.bit.bin";
};
&amba {
#address-cells = <1>;
#size-cells = <1>;
clocking0: clocking0 {
#clock-cells = <0>;
assigned-clock-rates = <50000000>;
blah blah
My entire system-user.dtsi file looks like now:
/include/ "system-conf.dtsi"
/{
};
#include "pl.dtsi"
&AD9851_AXI_20231112_0 {
compatible = "generic-uio";
};
Obviously, the pl.dtsi should be included automatically, in some kind of system-top.dtsi file, but on my system it was not. FWIW, my vivado project and my petalinux versions are both 2023.1. Hopefully someone will find this and save some time!!