
Simon, Heinrich,
On Thu, Sep 09, 2021 at 09:02:23AM -0400, Tom Rini wrote:
On Thu, Sep 09, 2021 at 09:47:21PM +0900, AKASHI Takahiro wrote:
On Thu, Sep 09, 2021 at 08:15:43AM -0400, Tom Rini wrote:
On Thu, Sep 09, 2021 at 09:10:23PM +0900, AKASHI Takahiro wrote:
Tom,
On Thu, Sep 09, 2021 at 07:46:15AM -0400, Tom Rini wrote:
On Thu, Sep 09, 2021 at 05:30:36PM +0900, AKASHI Takahiro wrote:
On Thu, Sep 09, 2021 at 09:27:50AM +0200, Heinrich Schuchardt wrote: > On 9/9/21 8:09 AM, AKASHI Takahiro wrote: > > On Thu, Sep 09, 2021 at 07:27:10AM +0200, Heinrich Schuchardt wrote: > > > mkeficapsule is used to create capsules for UEFI firmware update. > > > To ease inclusion into U-Boot tools packages of Linux distributions we > > > should add it to the tools-only_defconfig. > > > > > > Provide dummy values for CONFIG_AVB_BUF_ADDR, CONFIG_AVB_BUF_SIZE to > > > satisfy Kconfig. > > > > > > Suggested-by: Vagrant Cascadian vagrant@debian.org > > > Signed-off-by: Heinrich Schuchardt xypron.glpk@gmx.de > > > --- > > > configs/tools-only_defconfig | 7 ++++++- > > > 1 file changed, 6 insertions(+), 1 deletion(-) > > > > > > diff --git a/configs/tools-only_defconfig b/configs/tools-only_defconfig > > > index f54bc1802c..8a20d3fb05 100644 > > > --- a/configs/tools-only_defconfig > > > +++ b/configs/tools-only_defconfig > > > @@ -5,6 +5,8 @@ CONFIG_ANDROID_BOOT_IMAGE=y > > > CONFIG_FIT=y > > > CONFIG_FIT_SIGNATURE=y > > > CONFIG_MISC_INIT_F=y > > > +CONFIG_AVB_BUF_ADDR=0x0 > > > +CONFIG_AVB_BUF_SIZE=0x8192 > > > # CONFIG_CMD_BOOTD is not set > > > # CONFIG_CMD_BOOTM is not set > > > # CONFIG_CMD_ELF is not set > > > @@ -29,4 +31,7 @@ CONFIG_SYSRESET=y > > > # CONFIG_VIRTIO_MMIO is not set > > > # CONFIG_VIRTIO_PCI is not set > > > # CONFIG_VIRTIO_SANDBOX is not set > > > -# CONFIG_EFI_LOADER is not set > > > +CONFIG_EFI_CAPSULE_ON_DISK=y > > > +CONFIG_EFI_CAPSULE_FIRMWARE_FIT=y > > > +CONFIG_EFI_CAPSULE_FIRMWARE_RAW=y > > > +CONFIG_EFI_CAPSULE_AUTHENTICATE=y > > > > I think that we should use the way that I suggested in my patch[1]. > > > > -Takahiro Akashi > > > > [1] https://lists.denx.de/pipermail/u-boot/2021-August/459349.html > > Your patch [1] still requires some rework: > https://patchwork.ozlabs.org/project/uboot/patch/20210831024659.53464-2-taka... > > [1] changes what mkeficapsule looks like and this patch makes it > available in tools-only_defconfig? > > Aren't these two patches complementary?
With my patch applied, the only option we need to compile mkeficapsule is: CONFIG_TOOLS_MKEFICAPSULE (and optionally CONFIG_TOOLS_LIBCRYPTO)
There is no target-config dependency as you have expected.
There's two issues. First, the general one is that when just building host tools (typically to package up in a distribution of some sort), it shouldn't depend on how "U-Boot" was configured (set aside the default environment problem).
I don't get your point. CONFIG_TOOLS_MKEFICAPSULE is only for building mkeficapsule. It has nothing to do with U-Boot itself.
My point is that "make tools-only" must build all the tools that would be packaged up in a distribution or otherwise sent to end users. It must not depend on (with the exceptions above) how we configured the build.
I can see bunch of "hostprogs-$(CONFIG_...) += ...", and some of them are not always built. So what do you mean by "all the tools"?
Our emails crossed. Yes, I was slightly wrong above, and the comment at the top of tools/Makefile: # A couple of simple rules: # # 1) Do not use target CONFIG_* options to enable or disable features in # host # tools. Only use the configs from tools/Kconfig # 2) It's okay to use target configs to disable building specific tools. # That's as long as the features of those tools aren't modified.
are correct. So it's OK that the tool today depends on CONFIG_EFI_HAVE_CAPSULE_SUPPORT.
Which tools be packed in is totally up to a distro, isn't it?
That's the difference between building and packaging. The best general answer is to build everything and package individually, when fine grained control is desired. But no, making more work on each distribution to get all tools built makes things harder, not easier, is the feedback we've gotten (and with my OE guy hat on, agree with).
@Simon, Even so, I would like you to clarify what "all (the tools)" and "tools-only" means. Looking at tools/Makefile, "hostprogs-y" can be affected by several different types of kconfigs:
1) the tools is necessary to build the u-boot binary for a specific target or board. 2) the tool is not needed for building, but is used for a specific feature of U-Boot (later by users).
tools-only_defconfig addresses (2), plus 3) all the kconfigs which will allows for building "full-featured" tools which can be implemented with such kconfigs on or off.
@Heinrich, Regarding CONFIG_EFI_HAVE_CAPSULE_SUPPORT, I prefer having a dedicated kconfig, CONFIG_TOOLS_MKEFICAPSULE for some reasons:
* Difference btw (2) and (3) is not trivial to users, and if CONFIG_EFI_HAVE_CAPSULE_SUPPORT is used, even much so. * On the other hand, ===> config TOOLS_MKEFICAPSULE bool "Build efimkcapsule command" default y if EFI_CAPSULE_ON_DISK <=== would make this clear. (We might better use 'imply' here.) * CONFIG_EFI_HAVE_CAPSULE_SUPPORT is an internal kconfig, while CONFIG_TOOL_MAKEFICAPSULE is an external one and you can turn it on and off with "make menuconfig". (There is a small possibility that people may want to use another tool instead, like one from EDK-II's script? Who knows.)
Finally,
Currently the tool is not build at all if CONFIG_EFI_HAVE_CAPSULE_SUPPORT is not selected. Do I understand you right that this dependency should be lifted?
I'm not sure this statement targeted me or not. As a matter of fact, the implementation of mkeficapsule even in the current form doesn't depend on none of CONFIG_EFI_HAVE_CAPSULE_SUPPORT CONFIG_EFI_CAPSULE_ON_DISK CONFIG_EFI_CAPSULE_FIRMWARE_FIT CONFIG_EFI_CAPSULE_FIRMWARE_RAW CONFIG_EFI_CAPSULE_AUTHENTICATE
-Takahiro Akashi
-- Tom