[Buildroot] [PATCH 1/1] package/rpi-firmware: Support Device Tree Overlay
Arnout Vandecappelle
arnout at mind.be
Wed Oct 6 20:57:20 UTC 2021
On 06/10/2021 19:09, Peter Seiderer wrote:
> Hello Takumi,
>
> thanks for suggested patch...., comment below:
>
> On Mon, 4 Oct 2021 02:54:46 +0900, Takumi Takahashi <takumiiinn at gmail.com> wrote:
>
>> Building the Raspberry Pi GitHub official kernel repository
>> will generate a Device Tree Overlay Blob files under
>> `$(LINUX_DIR)/arch/$(KERNEL_ARCH)/boot/dts/overlays`.
>>
>> This commit changes to install the Device Tree Overlay Blob file
>> generated during kernel build under the following conditions:
>>
>> - `$(BR2_PACKAGE_RPI_FIRMWARE_INSTALL_DTB_OVERLAYS)`
>> - `n`
>> - `$(BR2_LINUX_KERNEL_DTB_OVERLAY_SUPPORT)`
>> - `y`
>>
>> Signed-off-by: Takumi Takahashi <takumiiinn at gmail.com>
>> ---
>> package/rpi-firmware/rpi-firmware.mk | 10 ++++++++++
>> 1 file changed, 10 insertions(+)
>>
>> diff --git a/package/rpi-firmware/rpi-firmware.mk b/package/rpi-firmware/rpi-firmware.mk
>> index 181650fa08..39962b3d70 100644
>> --- a/package/rpi-firmware/rpi-firmware.mk
>> +++ b/package/rpi-firmware/rpi-firmware.mk
>> @@ -30,6 +30,16 @@ else
>> define RPI_FIRMWARE_INSTALL_DTB_OVERLAYS
>> $(INSTALL) -d $(BINARIES_DIR)/rpi-firmware/overlays
>> endef
>> +ifeq ($(BR2_LINUX_KERNEL_DTB_OVERLAY_SUPPORT),y)
>> +# If you are using the official raspberry pi kernel, dtbo will be created under
>> +# the overlays directory, so use that.
>> +define RPI_FIRMWARE_INSTALL_KERNEL_DTB_OVERLAYS
>> + for dtbo in $(LINUX_DIR)/arch/$(KERNEL_ARCH)/boot/dts/overlays/*.dtbo; do \
It is possible to use an upstream kernel that doesn't have this, and enable
overlay support in the upstream kernel (i.e. using upstream overlays instead of
the RPi hacks). In that case, this will fail with something like '*.dtbo: no
such file or directory'.
To fix that, use a make loop instead of a shell loop. Something like (untested):
$(foreach dtbo,$(wildcard
$(LINUX_DIR)/arch/$(KERNEL_ARCH)/boot/dts/overlays/*.dtbo),\
$(INSTALL) -D -m 0644 ${dtbo} $(BINARIES_DIR)/rpi-firmware/overlays/$(notdir
$(dtbo))$(sep))
Note that you also don't need the 'exit 1' any more because they're all
separate commands.
>> + $(INSTALL) -D -m 0644 $${dtbo} $(BINARIES_DIR)/rpi-firmware/overlays/$${dtbo##*/} || exit 1; \
>> + done
>> +endef
>> +LINUX_POST_INSTALL_IMAGES_HOOKS += RPI_FIRMWARE_INSTALL_KERNEL_DTB_OVERLAYS
>> +endif
>
> I believe this is the wrong place to copy the linux-kernel generated overlays
> (as they are independent of the rpi-firmware package), a better place would
> be a BR2_ROOTFS_POST_BUILD_SCRIPT script...
Indeed, if this feature would be added anywhere, it would have to be in the
linux package, not in rpi-firmware. You'd need to add BR2_PACKAGE_RPI_FIRMWARE
to the condition as well.
I've marked the patch as Changes Requested in patchwork.
Regards,
Arnout
>
> Regards,
> Peter
>
>> endif
>>
>> ifeq ($(BR2_PACKAGE_RPI_FIRMWARE_INSTALL_VCDBG),y)
>
> _______________________________________________
> buildroot mailing list
> buildroot at buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
>
More information about the buildroot
mailing list