hi Simon, On Mon, 19 Jun 2023 at 18:07, Simon Glass <s...@chromium.org> wrote: > > Hi Sughosh, > > On Thu, 15 Jun 2023 at 17:25, Sughosh Ganu <sughosh.g...@linaro.org> wrote: > > > > hi Simon, > > > > On Thu, 15 Jun 2023 at 14:44, Simon Glass <s...@chromium.org> wrote: > > > > > > Hi Sughosh, > > > > > > On Tue, 13 Jun 2023 at 11:39, Sughosh Ganu <sughosh.g...@linaro.org> > > > wrote: > > > > > > > > Add a target for building EFI capsules. The capsule parameters are > > > > specified through a config file, and the path to the config file is > > > > specified through CONFIG_EFI_CAPSULE_CFG_FILE. When the config file is > > > > not specified, the command only builds tools. > > > > > > > > Signed-off-by: Sughosh Ganu <sughosh.g...@linaro.org> > > > > --- > > > > Makefile | 9 +++++++++ > > > > 1 file changed, 9 insertions(+) > > > > > > > > diff --git a/Makefile b/Makefile > > > > index 10bfaa52ad..96db29aa77 100644 > > > > --- a/Makefile > > > > +++ b/Makefile > > > > @@ -1151,6 +1151,15 @@ dtbs: dts/dt.dtb > > > > dts/dt.dtb: u-boot > > > > $(Q)$(MAKE) $(build)=dts dtbs > > > > > > > > +quiet_cmd_mkeficapsule = MKEFICAPSULE $@ > > > > +cmd_mkeficapsule = $(objtree)/tools/mkeficapsule $@ > > > > + > > > > +PHONY += capsule > > > > +capsule: tools > > > > +ifneq ($(CONFIG_EFI_CAPSULE_CFG_FILE),"") > > > > + $(call cmd,mkeficapsule) > > > > +endif > > > > + > > > > quiet_cmd_copy = COPY $@ > > > > cmd_copy = cp $< $@ > > > > > > > > -- > > > > 2.34.1 > > > > > > > > > > We should be using binman to build images...you seem to be building > > > something in parallel with that. Can you please take a look at binman? > > > > Again, I had explored using binman for this task. The one issue where > > I find the above flow better is that I can simply build my payload > > image(s) followed by 'make capsule' to generate the capsules for > > earlier generated images. In it's current form, I don't see an easy > > way to enforce this dependency in binman when I want to build the > > payload followed by generation of capsules. I did see the mention of > > encapsulating an entry within another dependent entry, but I think > > that makes the implementation more complex than it ought to be. > > > > I think it is much easier to use the make flow to generate the images > > followed by capsules, instead of tweaking the binman node to first > > generate the payload images, followed by enabling the capsule node to > > build the capsules. If there is an easy way of enforcing this > > dependency, please let me know. Thanks > > Can you share your explorations? I think the capsule should be created > as part of the build, if enabled. Rather than changing the input > files, binman should produce new output files.
This is an issue of handling dependencies in binman, and not changing input files. We do not have support for telling binman "build/generate this particular image first before you proceed to build the capsules using the earlier built images". I am not sure if this can be done in a generic manner in binman, so that irrespective of the image being generated, it can be specified to build capsules once the capsule input images have been generated. > > We are trying to remove most of the output logic in Makefile. It > should just be producing input files for binman. I understand. However, like I mentioned above, as of now, we don't have a way of handling dependencies in binman, at least in a generic manner. Once this support gets added, I know that it would be trivial to add support for building capsules in binman. -sughosh