On 5 October 2017 at 07:34, <[email protected]> wrote: > Hi all, > > I'm hoping this is a quick and easy issue someone already knows the answer > to. I'm working with a ZCU102, using meta-petalinux, meta-xilinx, > meta-xilinx-tools and bitbake/poky 1.34.0 -- both meta-xilinx and > meta-xilinx-tools on the master branch and am having an issue with the > meta-xilinx device-tree recipe. Just for quick and easy reference, the > device-tree recipe is here: > https://github.com/Xilinx/meta-xilinx/blob/master/recipes-bsp/device-tree/device-tree.bb > > The issue that I'm running into is that when I run "bitbake device-tree" I > get an error that there are no dts files in the device-tree/1.0-r0 > directory. Full error shown below: > > ERROR: device-tree-1.0-r0 do_compile: Function failed: do_compile (log file > is located at > /work/MPSoC/yocto_2017.2/build/tmp/work/zcu102_zynqmp-xilinx-linux/device-tree/1.0-r0/temp/log.do_compile.15884) > ERROR: Logfile of failure stored in: > /work/MPSoC/yocto_2017.2/build/tmp/work/zcu102_zynqmp-xilinx-linux/device-tree/1.0-r0/temp/log.do_compile.15884 > Log data follows: > | DEBUG: Executing shell function do_compile > | > /work/MPSoC/yocto_2017.2/build/tmp/work/zcu102_zynqmp-xilinx-linux/device-tree/1.0-r0 > | gcc: error: > /work/MPSoC/yocto_2017.2/build/tmp/work/zcu102_zynqmp-xilinx-linux/device-tree/1.0-r0/*.dts: > No such file or directory > | gcc: warning: ‘-x assembler-with-cpp’ after last input file has no effect > | gcc: fatal error: no input files > | compilation terminated. > | WARNING: > /work/MPSoC/yocto_2017.2/build/tmp/work/zcu102_zynqmp-xilinx-linux/device-tree/1.0-r0/temp/run.do_compile.15884:1 > exit 4 from 'gcc -E -nostdinc -Ulinux -x assembler-with-cpp > -I/work/MPSoC/yocto_2017.2/build/tmp/work/zcu102_zynqmp-xilinx-linux/device-tree/1.0-r0 > -I/work/MPSoC/yocto_2017.2/build/tmp/work-shared/zcu102-zynqmp/kernel-source/arch/arm64/boot/dts > -I/work/MPSoC/yocto_2017.2/build/tmp/work-shared/zcu102-zynqmp/kernel-source/arch/arm64/boot/dts/include > -I/work/MPSoC/yocto_2017.2/build/tmp/work-shared/zcu102-zynqmp/kernel-source/arch/arm64/boot/dts/xilinx > -o `basename ${DTS_FILE}`.pp ${DTS_FILE}' > | ERROR: Function failed: do_compile (log file is located at > /work/MPSoC/yocto_2017.2/build/tmp/work/zcu102_zynqmp-xilinx-linux/device-tree/1.0-r0/temp/log.do_compile.15884) > ERROR: Task > (/work/MPSoC/yocto_2017.2/sources/core/../meta-xilinx/recipes-bsp/device-tree/device-tree.bb:do_compile) > failed with exit code '1' > NOTE: Tasks Summary: Attempted 534 tasks of which 464 didn't need to be > rerun and 1 failed. > > Summary: 1 task failed: > > /work/MPSoC/yocto_2017.2/sources/core/../meta-xilinx/recipes-bsp/device-tree/device-tree.bb:do_compile > Summary: There were 5 WARNING messages shown. > Summary: There was 1 ERROR message shown, returning a non-zero exit code. > > After reviewing the history on this recipe, it appears the recipe was > restructured months ago to "Improve, clean up and remove > MACHINE_DEVICETREE". Based on this commit, it appears the intent was to use > the dts/dtsi files within the kernel sources as a base for generating a > device tree. There was a line added to ensure that > "virtual/kernel:do_shared_workdir" is run prior to the device-tree recipe. > My assumption is that the kernel recipe do_shared_workdir task is supposed > to copy the selected machine's dts files into the shared workdir so they can > be used by this device-tree recipe. However, this does not seem to happen in > my case -- > > /work/MPSoC/yocto_2017.2/build/tmp/work-shared/zcu102-zynqmp/kernel-source$ > ls > arch COPYING Documentation fs ipc kernel Makefile > README scripts tools > block CREDITS drivers include Kbuild lib mm > REPORTING-BUGS security usr > certs crypto firmware init Kconfig MAINTAINERS net > samples sound virt > > Additionally, the device-tree recipe loops over any *.dts files in the ${S} > directory, which is mapped to ${WORKDIR} in this recipe > (https://github.com/Xilinx/meta-xilinx/blob/master/recipes-bsp/device-tree/device-tree.bb#L51). > This loop will effectively do an ls in the > build/tmp/work/zcu102_zynqmp-xilinx-linux/device-tree/1.0-r0 directory to > check for any *.dts files. This directory definitely does not contain any > dts files. > > I'm guessing I'm missing something small/simple here. Can anyone provide any > guidance?
The 'device-tree' recipe is intended to build custom source device-trees within OE outside of the kernel source itself (whilst still being able to reference the kernel dts includes). Unless you have provided some additional device tree sources via a .bbappend to device-tree (like meta-xilinx does for some specific machines https://github.com/Xilinx/meta-xilinx/blob/master/recipes-bsp/device-tree/device-tree.bbappend) there will be no dts files in the ${S} directory of the device-tree recipe build and it will fail. The zcu102-zynqmp board already has device trees in the linux-xlnx kernel source (built by setting KERNEL_DEVICETREE in the machine conf), so there is no need to use device-tree for that machine. If you are using meta-xilinx-tools you might be confusing 'device-tree' for the 'device-tree-generation' recipe? Which uses Xilinx tools to generate device trees from your HDF design. Regards, Nathan -- _______________________________________________ meta-xilinx mailing list [email protected] https://lists.yoctoproject.org/listinfo/meta-xilinx
