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