[Buildroot] [PATCH 1/1] Fix rasberry Pi 64bit firmware overlay inclusion

Peter Seiderer ps.report at gmx.net
Sun Jan 6 18:31:34 UTC 2019


Hello Matt,

On Sun, 6 Jan 2019 12:11:44 +1100, Matt Flax <flatmax at flatmax.org> wrote:

> On 6/1/19 2:17 am, Peter Seiderer wrote:
> > Hello Matt,
> >
> > On Sat, 5 Jan 2019 10:08:04 +1100, Matt Flax <flatmax at flatmax.org> wrote:
> >  
> >> On 5/1/19 6:50 am, Peter Seiderer wrote:  
> >>> Hello Max,
> >>>
> >>> On Thu,  3 Jan 2019 22:00:36 +1100, Matt Flax <flatmax at flatmax.org> wrote:
> >>>     
> >>>> This patch enables the inclusion of the Pi's overlays. Previously
> >>>> the overlays were not included in the genimage configuration.
> >>>> This patch ensures overlays are included in the sdcard (when
> >>>> enabled) by defaulting to the inclusion of an empty
> >>>> output/images/rpi-firmware/overlays directory in genimage cfg.
> >>>>
> >>>> The Pi's overlays are built with the following config
> >>>> variables:
> >>>> BR2_PACKAGE_RPI_FIRMWARE=y
> >>>> BR2_PACKAGE_RPI_FIRMWARE_INSTALL_DTBS=y
> >>>> BR2_PACKAGE_RPI_FIRMWARE_INSTALL_DTB_OVERLAYS=y
> >>>> BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM=y
> >>>> BR2_LINUX_KERNEL_IMAGE_NAME="Image"
> >>>> BR2_LINUX_KERNEL_IMAGE_TARGET_NAME="Image modules dtbs"
> >>>>
> >>>> After building, the dtbo files are present in the
> >>>> output/images/rpi-firmware/overlays directory but not added
> >>>> to the sdcard because they are missing from the genimage cfg
> >>>> file.  
> >>> Thanks for suggested patch, the reasoning for genimage-raspberrypi3-64.cfg not
> >>> containing a overlays entry is it is not needed for the raspberrypi3_64_defconfig
> >>> use case (mind the buildroot minimalistic defconfig approach) in contrast to the
> >>> raspberrypi3_defconfig where the overlay is needed for the pi3-miniuart-bt one...
> >>>
> >>> Adding a (maybe) empty overlays directory to the sdcard image would violate
> >>> the minimalistic approach...  
> >>
> >> With or without this patch, I see no viable way to update the device
> >> tree. Is there a method ?  
> > See e.g. configs/raspberrypi3_defconfig for a specialized case:
> >
> > 	BR2_ROOTFS_POST_SCRIPT_ARGS="--add-pi3-miniuart-bt-overlay"
> >  
> >> What is a Raspberry Pi without a method to support the addons and hats ?  
> > A minimalistic starting point for a minimal system, each add-on/hat
> > would surely need additional packages/software, each customized system
> > needs a customized configuration....
> >  
> >> Do you have a method for supporting any of the various addons/hats which
> >> would normally work with an overlay line added to /boot/config.txt ?
> >>  
> > Or take a look at  '[RFC] raspberrypi: post-image.sh arguments as config.txt properties ' [1]
> > for a more general approach...
> >
> > Regards,
> > Peter
> >
> > [1] https://patchwork.ozlabs.org/patch/1007728/  
> 
> 
> Thanks for the pointer. It is pretty clear that support for the RPi 
> requires a lot more work and blocking revisions doesn't really help. 

Don`t know what your mean by 'blocking revisions'?

> Despite adding post_script_args, there simply isn't any way to include 
> overlays in the current setup.

Your initial suggested patch shows the way to do it:

- enable BR2_PACKAGE_RPI_FIRMWARE_INSTALL_DTB_OVERLAYS=y
- use a customized genimage config file with overlay directory enabled
- use a customized genimage config file pointing to a customized config.txt file

> 
> For example :
> 
> If I add the variable 
> BR2_ROOTFS_POST_SCRIPT_ARGS="--add-pi3-miniuart-bt-overlay"
> 
> It will put the following into boot/config.txt :
> 
> dtoverlay=pi3-miniuart-bt
> 
> But - now here is the clincher - THERE IS NO WAY TO GET OVERLAYS INTO 
> THE BOOT PARTITION !
> 
> Can you please be more helpful ? I see specifically the following problems :
> 
> 1] Can you suggest a better method to include overlays in the sdcard  
> during a build process ?

See above...

> 
> 2] For a 64 bit system, does overlay loading even work ? I tried to load 
> an overlay by putting dtoverlay into config.txt but it seemed to not 
> even be aware of its presence !

Should work the same way as 32 bit, but did not test it recently...how
do you determine 'not even be aware of its presence'?
 
> 
> 3] Because of 2] is there a particular place to put overlays rather then 
> boot/overlays ?

Not a buildroot specific question, more for a raspberry forum..., but
according to [2] the right place for the overlays is the boot partition
overlays directory...

Regards,
Peter

[2] https://www.raspberrypi.org/documentation/configuration/device-tree.md

> 
> 
> thanks
> 
> Matt
> 
> 
> 
> 
> >> Matt
> >>
> >>  
> >>> Regards,
> >>> Peter
> >>>
> >>> [Skipped CC to 'Matt Flax <flatmax at flatmax.org>' - mail server answers with 'mailbox unavailable']
> >>>     
> >>>> Signed-off-by: Matt Flax <flatmax at flatmax.org>
> >>>> ---
> >>>>    board/raspberrypi/genimage-raspberrypi3-64.cfg | 1 +
> >>>>    package/rpi-firmware/rpi-firmware.mk           | 4 ++++
> >>>>    2 files changed, 5 insertions(+)
> >>>>
> >>>> diff --git a/board/raspberrypi/genimage-raspberrypi3-64.cfg b/board/raspberrypi/genimage-raspberrypi3-64.cfg
> >>>> index 0d0ca750a7..af1d17cde7 100644
> >>>> --- a/board/raspberrypi/genimage-raspberrypi3-64.cfg
> >>>> +++ b/board/raspberrypi/genimage-raspberrypi3-64.cfg
> >>>> @@ -9,6 +9,7 @@ image boot.vfat {
> >>>>          "rpi-firmware/config.txt",
> >>>>          "rpi-firmware/fixup.dat",
> >>>>          "rpi-firmware/start.elf",
> >>>> +      "rpi-firmware/overlays",
> >>>>          "Image"
> >>>>        }
> >>>>      }
> >>>> diff --git a/package/rpi-firmware/rpi-firmware.mk b/package/rpi-firmware/rpi-firmware.mk
> >>>> index bb54904ae6..0df7b17cbd 100644
> >>>> --- a/package/rpi-firmware/rpi-firmware.mk
> >>>> +++ b/package/rpi-firmware/rpi-firmware.mk
> >>>> @@ -24,6 +24,10 @@ define RPI_FIRMWARE_INSTALL_DTB_OVERLAYS
> >>>>    		$(INSTALL) -D -m 0644 $${ovldtb} $(BINARIES_DIR)/rpi-firmware/overlays/$${ovldtb##*/} || exit 1; \
> >>>>    	done
> >>>>    endef
> >>>> +else
> >>>> +define RPI_FIRMWARE_INSTALL_DTB_OVERLAYS
> >>>> +		$(INSTALL) -d $(BINARIES_DIR)/rpi-firmware/overlays || exit 1;
> >>>> +endef
> >>>>    endif
> >>>>    
> >>>>    ifeq ($(BR2_PACKAGE_RPI_FIRMWARE_INSTALL_VCDBG),y)  
> >>> _______________________________________________
> >>> buildroot mailing list
> >>> buildroot at busybox.net
> >>> http://lists.busybox.net/mailman/listinfo/buildroot  
> >> _______________________________________________
> >> buildroot mailing list
> >> buildroot at busybox.net
> >> http://lists.busybox.net/mailman/listinfo/buildroot  
> > _______________________________________________
> > buildroot mailing list
> > buildroot at busybox.net
> > http://lists.busybox.net/mailman/listinfo/buildroot  
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot




More information about the buildroot mailing list