On 07-05-2025 18:30, u-b...@cairnwater.com wrote:
Hi,

Does anyone have any advice on how to add DTOs needed by libcamera to a u-boot in a buildroot or Yocto build or on whether it's more appropriate to add them as part of u-boot or as another part of the build?

We'd like to add Kieran's DTOs

https://git.uk.ideasonboard.com/camera/dt-overlays/src/branch/main/arch/arm64/boot/dts/freescale

to the buildroot default configuration for Debix Model A SBC

https://github.com/buildroot/buildroot/blob/master/configs/polyhex_debix_model_a_defconfig

Ideally we'd also like to add the overlays for the Sony IMX 708 Image Sensor used in the RPi V3 camera but these aren't mainline:

https://github.com/raspberrypi/linux/blob/rpi-6.12.y/arch/arm/boot/dts/overlays/imx708-overlay.dts https://github.com/raspberrypi/linux/blob/rpi-6.12.y/arch/arm/boot/dts/overlays/imx708.dtsi

We're planning to use the Debix Model A SBC or Debix SoM A with SoM A I/O board to prototype a new open source wildlife camera for our work in conservation of tree dwelling endangered dormice

https://new-homes-for-old-friends.cairnwater.com/

then after field studies with the prototype design a custom board for an NXP i.MX 8M Plus SoM.

The analysis for the new open source wildlife camera is here:

https://github.com/William-Robert-Robertson/WildCamera

Will


You can enable device-tree overlay loading in the kernel and do it all there.

U-boot can also do it for you, example bootscript that detects the panel to use and then loads the appropriate overlay (this runs on a RPi4 board):


fdt addr ${fdt_addr}
setenv panel fancy-display-panel

[Magic I2C stuff to detect hardware and set "panel"]

fdt resize 8192
fatload mmc 0:1 ${kernel_addr_r} /overlays/${panel}.dtbo
fdt apply ${kernel_addr_r}

[load and boot your kernel]


Example recipe to create the overlay, e.g. "device-tree-fancy.bb":


SUMMARY = "Devicetree overlay for FANCY board"

SRC_URI = "\
    file://fancy-display-panel.dts \
    file://fancier-display-panel.dts \
    "

inherit devicetree

# Override to NOT have a devicetree subdir
FILES:${PN} = "/boot/overlays"

devicetree_do_install() {
    for DTB_FILE in `ls *.dtb *.dtbo`; do
        install -Dm 0644 ${B}/${DTB_FILE} ${D}/boot/overlays/${DTB_FILE}
    done
}

do_deploy() {
    for DTB_FILE in `ls *.dtb *.dtbo`; do
        install -Dm 0644 ${B}/${DTB_FILE} ${DEPLOYDIR}/${DTB_FILE}
    done
}



--
Mike Looijmans
System Expert

TOPIC Embedded Products B.V.
Materiaalweg 4, 5681 RJ Best
The Netherlands

T: +31 (0) 499 33 69 69
E: mike.looijm...@topic.nl
W: www.topic.nl



Reply via email to