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 \