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

Frank Rowand frowand.list at gmail.com
Mon Oct 24 15:01:41 PDT 2022


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 at sony.com>]
> Signed-off-by: Andrew Davis <afd at ti.com>
> Reviewed-by: Geert Uytterhoeven <geert+renesas at glider.be>
> Tested-by: Geert Uytterhoeven <geert+renesas at glider.be>
> ---

Reviewed-by: Frank Rowand <frowand.list at gmail.com>
Tested-by: Frank Rowand <frowand.list at gmail.com>

-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 \




More information about the linux-arm-kernel mailing list