Forums › Reference, Evaluation, and Development Boards › OSD3358-SM-RED › Compiling osd3358-bsm-refdesign.dts
Tagged: device tree
I’m trying to get a Yocto kernel recipe (using TI’s ti-linux-4.9.y branch of its ti-linux-kernel repository) to build, and am getting stuck at the point where it compiles the device tree. I’m using the files from your repo on Github ( https://github.com/octavosystems/OSD335x-Device-Tree ). I copied the osd3358-bsm-refdesign.dts file to a different name, but haven’t altered it otherwise except as noted below.
First, I can’t find evidence that am33xx-pruss-rproc.dtsi exists anywhere, so I commented out the line that tries to include that (I assume that will change certain behaviors, but hoped that it wouldn’t prevent any resulting image from booting).
Next, I get a message that’s less obvious to debug:
1 2 3 4 5 6 |
| DTC arch/arm/boot/dts/am335x-thecount.dtb | Error: /home/andy/ytc/build/tmp/work-shared/ovm335x-SM-RED/kernel-source/arch/arm/boot/dts/am335x-thecount.dts:139.19-20 syntax error | FATAL ERROR: Unable to parse input tree | scripts/Makefile.lib:313: recipe for target 'arch/arm/boot/dts/am335x-thecount.dtb' failed | make[3]: *** [arch/arm/boot/dts/am335x-thecount.dtb] Error 1 | arch/arm/Makefile:336: recipe for target 'am335x-thecount.dtb' failed |
It looks like it’s complaining about line 139, but I’m unsure, as that section of the file is completely unmodified from what’s in your repo.
Any advice would be welcome!
One more bit of info: the version of dtc is 1.4.4
acook,
Please note that the device tree files were compiled with device tree rebuilder (https://github.com/RobertCNelson/dtb-rebuilder) with no issues. The OSD3358 device tree Github (https://github.com/octavosystems/OSD335x-Device-Tree) contains 3 files listed below:
There is also a compiled version of the device tree in OSD335x-Device-Tree/OSD3358-SM-RED (osd3358-bsm-refdesign.dtb)
In order to compile, the 3 files listed above need to be placed in dtb-rebuilder/src/arm after cloning the device tree rebuilder(branch 4.4-ti). You can use the Makefile in there to compile all the files or specific ones in the src/arm directory. This is also where you should be able to find the dependency am33xx-pruss-rproc.dtsi. The device tree rebuilder uses dtc(1.4.4) also.
Coming to the next part of the question, assuming that you renamed the file osd3358-bsm-refdesign.dts to am335x-thecount.dts, line 139
audio-ports = <AFMT_I2S 0x03>;
is from am335x-boneblack.dts line 143 (can also be found in src/arm directory of device-tree-rebuilder) and is a not supposed to cause any issues during compilation. If you have any more information regarding the error, we will be happy to help.
Thank you for your question.
Thank you for the reply, Neeraj. I eventually figured out what was going on. The version of tda998x.h that’s in the 4.9 Linux source is more specific with its #define values, and only generalizes to AFMT_I2S at the driver layer. I thus had to change AFMT_I2S to TDA998x_I2S in the device tree, and then it finished building.
Device Tree Rebuilder should prove helpful for iterating as we customize some drivers for our hardware, though, so thank you for pointing to that!
I’m also looking for am33xx-pruss-rproc.dtsi included by osd3358-bsm-refdesign.dts, but I was unable to find it in the Yocto ecosystem. Where does it originate from?
I also had to comment the missing include and rename AFMT_I2S to TDA998x_I2S. Wouldn’t it make sense to fix that in the repo?
Mario,
pruss-rproc: https://github.com/RobertCNelson/dtb-rebuilder/blob/4.4-ti/src/arm/am33xx-pruss-rproc.dtsi
Will fix the repo. Thanks for pointing out!
Neeraj
Octavo Systems LLC all rights reserved
OCTAVO is registered in the U.S. Patent and Trademark Office. OSD, C-SiP, and the Octavo Logo are trademarks of Octavo Systems LLC.
"*" indicates required fields
"*" indicates required fields
"*" indicates required fields
"*" indicates required fields