Nios® II Embedded Design Suite (EDS)
Support for Embedded Development Tools, Processors (SoCs and Nios® II processor), Embedded Development Suites (EDSs), Boot and Configuration, Operating Systems, C and C++
Intel Support hours are Monday-Fridays, 8am-5pm PST, except Holidays. Thanks to our community members who provide support during our down time or before we get to your questions. We appreciate you!

Need Forum Guidance? Click here
Search our FPGA Knowledge Articles here.
12453 Discussions

Yocto build with custom device tree from Quartus

Honored Contributor II


I am working with the Atlas/DE0-Nano-SoC Cyclone V board, and I have Yocto (krogoth branch) building fine with the linux-altera kernel (4.6 from krogoth branch, patched with PREEMPT RT) and Linaro gcc (5.3 from master branch), using the default device tree (socfpga_cyclonev_de0_sockit - actually, it builds and installs about 5 of them, and I have to rename this one on the SD card to socfpga.dtb). 



Now I want to work with the FPGA, and I'm starting out by pushing some I/O out through the FPGA fabric to the GPIO pins. I have the devicetree source generated from Quartus and sopc2dts. 


I was rather surprised that none of the Altera/Rocketboards or Yocto documentation seems cover integrating a custom device tree with the Yocto build, but I have scoured the web looking for information, and have come up short on finding an actual solution. 


Things I've done/tried: 

- adding to the kernel recipe to copy the .dts into the kernel source 

- change KERNEL_DEVICETREE to match: 

--- the base filename of the .dts (socfpga_cyclone5_mydevtree) 

--- the full filename of the .dts (socfpga_cyclone5_mydevtree.dts) 

--- the full filename of the desired .dtb (socfpga_cyclone5_mydevtree.dtb) 

--- the full path and filename of the .dts (/path/to/socfpga_cyclone5_mydevtree.dts) 

- similarly change KERNEL_DEVICETREE_cyclone5 

- change both KERNEL_DEVICETREE and KERNEL_DEVICETREE_cyclone5 to matching or different versions of the above 

- editing the Makefile in ${TMPDIR}/work-shared/cyclone5/kernel-source/arch/arm/boot/dts to include a target for my desired .dtb 

- many other things that seemed to make sense at the time... 


I can actually get the device tree blob built (but it requires running bitbake twice and changing KERNEL_DEVICETREE and/or KERNEL_DEVICETREE_cyclone5 between runs - I'd like to fix that). Then bitbake errors out building the SD card image because somehow it's still trying to include 5+ versions of the .dtb, even though I have overwritten the variable it's supposed to be looking at for that list (KERNEL_DEVICETREE). 


Any help would be greatly appreciated! 


0 Kudos
0 Replies