On Sat, Sep 7, 2019 at 1:42 AM Jon Ringle <jonringle@gmail.com> wrote:

On Tue, Sep 3, 2019 at 9:53 AM Roland Hieber <rhi@pengutronix.de> wrote:
On Sat, Aug 31, 2019 at 10:35:05PM -0400, Jon Ringle wrote:
> B) If so, where should the overlays/ directory live...?

If you put the DTBOs into configs/platform-v7a/rpi-firmware/overlays/,
you can change configs/platform-v7a/rules/image-rpi3.make to pick them
up when you add the files to IMAGE_RPI3_DATA (this works by passing the
variable contents to genimage by replacing @FIRMWARE_RPI3@ in
configs/platform-v7a/config/images/rpi3.config) (and accordingly for
s/rpi3/rpi2/).


The problem I am having is that there doesn't seem to be a way to tell genimage to create files in a subdirectory.
In the image there needs to be a subdir `overlays/`, but genimage is putting all files in the root dir of the image.


It was a pain in the ass to figure out how to get genimage to cooperate with putting the *.dtbo in the overlays/ dir in the image.
This is what I came up with:

IMAGE_RPI3_DATA := \
    $(wildcard $(IMAGE_RPI3_DATA_DIR)/*.bin) \
    $(wildcard $(IMAGE_RPI3_DATA_DIR)/*.elf) \
    $(wildcard $(IMAGE_RPI3_DATA_DIR)/*.dat) \
    $(wildcard $(IMAGE_RPI3_DATA_DIR)/*.dtb) \
    $(wildcard $(IMAGE_RPI3_DATA_DIR)/config.txt)
IMAGE_RPI3_OVERLAYS_DATA := \
    $(wildcard $(IMAGE_RPI3_DATA_DIR)/overlays/*.dtbo)


# ----------------------------------------------------------------------------
# Image
# ----------------------------------------------------------------------------

define squote
$(addsuffix $(ptx/def/squote),$(addprefix $(ptx/def/squote),$(1)))
endef

define squote_and_comma
$(subst $(ptx/def/space),$(comma) ,$(call squote, $(1)))
endef

define filespec
$(patsubst %,file $(call squote,$(1)/$(notdir $(2))) { image=$(call squote, $(2)) },$(2))
endef

IMAGE_RPI3_ENV := \
        FIRMWARE_RPI3="$(call squote_and_comma,$(IMAGE_RPI3_DATA))" \
        FIRMWARE_RPI3_OVERLAYS="$(foreach file,$(IMAGE_RPI3_OVERLAYS_DATA),$(call filespec,overlays,$(file)))"

-Jon