Re: [PATCH v2 2/7] kbuild: Allow DTB overlays to built into .dtso.S files

From: Frank Rowand
Date: Mon Oct 24 2022 - 19:43:47 EST


On 10/24/22 12:34, Andrew Davis wrote:
> DTB files can be built into the kernel by converting them to assembly
> files then assembling them into object files. We extend this here
> for DTB overlays with the .dtso extensions.
>
> We change the start and end delimiting tag prefix to make it clear that
> this data came from overlay files.
>
> [Based on patch by Frank Rowand <frank.rowand@xxxxxxxx>]
> Signed-off-by: Andrew Davis <afd@xxxxxx>
> Reviewed-by: Geert Uytterhoeven <geert+renesas@xxxxxxxxx>
> Tested-by: Geert Uytterhoeven <geert+renesas@xxxxxxxxx>
> ---

Reviewed-by: Frank Rowand <frowand.list@xxxxxxxxx>
Tested-by: Frank Rowand <frowand.list@xxxxxxxxx>

-Frank


> scripts/Makefile.lib | 20 +++++++++++++++++++-
> 1 file changed, 19 insertions(+), 1 deletion(-)
>
> diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
> index 0376a6f18bfb1..250b9fd73f6d2 100644
> --- a/scripts/Makefile.lib
> +++ b/scripts/Makefile.lib
> @@ -358,7 +358,7 @@ DTC_FLAGS += $(DTC_FLAGS_$(basetarget))
> DTC_FLAGS += $(if $(filter $(patsubst $(obj)/%,%,$@), $(base-dtb-y)), -@)
>
> # Generate an assembly file to wrap the output of the device tree compiler
> -quiet_cmd_dt_S_dtb= DTB $@
> +quiet_cmd_dt_S_dtb= DTBS $@
> cmd_dt_S_dtb= \
> { \
> echo '\#include <asm-generic/vmlinux.lds.h>'; \
> @@ -375,6 +375,24 @@ cmd_dt_S_dtb= \
> $(obj)/%.dtb.S: $(obj)/%.dtb FORCE
> $(call if_changed,dt_S_dtb)
>
> +# Generate an assembly file to wrap the output of the device tree compiler
> +quiet_cmd_dt_S_dtbo= DTBOS $@
> +cmd_dt_S_dtbo= \
> +{ \
> + echo '\#include <asm-generic/vmlinux.lds.h>'; \
> + echo '.section .dtb.init.rodata,"a"'; \
> + echo '.balign STRUCT_ALIGNMENT'; \
> + echo '.global __dtbo_$(subst -,_,$(*F))_begin'; \
> + echo '__dtbo_$(subst -,_,$(*F))_begin:'; \
> + echo '.incbin "$<" '; \
> + echo '__dtbo_$(subst -,_,$(*F))_end:'; \
> + echo '.global __dtbo_$(subst -,_,$(*F))_end'; \
> + echo '.balign STRUCT_ALIGNMENT'; \
> +} > $@
> +
> +$(obj)/%.dtbo.S: $(obj)/%.dtbo FORCE
> + $(call if_changed,dt_S_dtbo)
> +
> quiet_cmd_dtc = DTC $@
> cmd_dtc = $(HOSTCC) -E $(dtc_cpp_flags) -x assembler-with-cpp -o $(dtc-tmp) $< ; \
> $(DTC) -o $@ -b 0 \