diff mbox series

[v3,02/17] dfu: add a hidden reverse-dependency on UPDATE_TFTP

Message ID 20200710012537.6264-3-takahiro.akashi@linaro.org
State Superseded, archived
Delegated to: Heinrich Schuchardt
Headers show
Series efi_loader: add capsule update support | expand

Commit Message

AKASHI Takahiro July 10, 2020, 1:25 a.m. UTC
DFU_OVER_TFTP support on "dfu" command relies on update_tftp()
being available. Just explicitly add this dependency.

Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org>
---
 drivers/dfu/Kconfig | 1 +
 1 file changed, 1 insertion(+)

Comments

Heinrich Schuchardt July 10, 2020, 5:21 a.m. UTC | #1
On 7/10/20 3:25 AM, AKASHI Takahiro wrote:
> DFU_OVER_TFTP support on "dfu" command relies on update_tftp()
> being available. Just explicitly add this dependency.
>
> Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org>
> ---
>  drivers/dfu/Kconfig | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/drivers/dfu/Kconfig b/drivers/dfu/Kconfig
> index 5d45d7d7c2d7..cafb6a34090e 100644
> --- a/drivers/dfu/Kconfig
> +++ b/drivers/dfu/Kconfig
> @@ -12,6 +12,7 @@ config DFU_OVER_USB
>  config DFU_OVER_TFTP
>  	bool
>  	depends on NET
> +	select UPDATE_TFTP

UPDATE_TFTP depends on FIT while DFU_OVER_TFTP does not depend on FIT.

So selecting UPDATE_TFTP without FIT creates an invalid configuration:

Symbol: UPDATE_TFTP [=y]
Type  : bool
Prompt: Auto-update using fitImage via TFTP
  Location:
(1) -> Update support
  Defined at common/Kconfig:1017
  Depends on: FIT [=n]
  Selected by [y]:
  - DFU_OVER_TFTP [=y] && NET [=y]

WARNING: unmet direct dependencies detected for UPDATE_TFTP
  Depends on [n]: FIT [=n]
  Selected by [y]:
  - DFU_OVER_TFTP [=y] && NET [=y]

common/update.c: In function ‘update_fit_getparams’:
common/update.c:220:6: error: implicit declaration of function
‘fit_image_get_data’; did you mean ‘image_get_data’?
[-Werror=implicit-function-declaration]
  220 |  if (fit_image_get_data(fit, noffset, &data, (size_t *)size))

The whole UEFI capsule update development should not depend on NET and
hence not on UPDATE_TFTP.

Best regards

Heinrich

>
>  if DFU
>  config DFU_TFTP
>
AKASHI Takahiro July 15, 2020, 5:14 a.m. UTC | #2
Heinrich,

On Fri, Jul 10, 2020 at 07:21:14AM +0200, Heinrich Schuchardt wrote:
> On 7/10/20 3:25 AM, AKASHI Takahiro wrote:
> > DFU_OVER_TFTP support on "dfu" command relies on update_tftp()
> > being available. Just explicitly add this dependency.
> >
> > Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org>
> > ---
> >  drivers/dfu/Kconfig | 1 +
> >  1 file changed, 1 insertion(+)
> >
> > diff --git a/drivers/dfu/Kconfig b/drivers/dfu/Kconfig
> > index 5d45d7d7c2d7..cafb6a34090e 100644
> > --- a/drivers/dfu/Kconfig
> > +++ b/drivers/dfu/Kconfig
> > @@ -12,6 +12,7 @@ config DFU_OVER_USB
> >  config DFU_OVER_TFTP
> >  	bool
> >  	depends on NET
> > +	select UPDATE_TFTP
> 
> UPDATE_TFTP depends on FIT while DFU_OVER_TFTP does not depend on FIT.
> 
> So selecting UPDATE_TFTP without FIT creates an invalid configuration:

Please read the code in common/update.c carefully.
Whether my patch is applied or not, update_tftp()
relies on FIT (and helper functions.)

So 'selecting UPDATE_TFTP without FIT' is just invalid.

> Symbol: UPDATE_TFTP [=y]
> Type  : bool
> Prompt: Auto-update using fitImage via TFTP
>   Location:
> (1) -> Update support
>   Defined at common/Kconfig:1017
>   Depends on: FIT [=n]
>   Selected by [y]:
>   - DFU_OVER_TFTP [=y] && NET [=y]
> 
> WARNING: unmet direct dependencies detected for UPDATE_TFTP
>   Depends on [n]: FIT [=n]
>   Selected by [y]:
>   - DFU_OVER_TFTP [=y] && NET [=y]
> 
> common/update.c: In function ‘update_fit_getparams’:
> common/update.c:220:6: error: implicit declaration of function
> ‘fit_image_get_data’; did you mean ‘image_get_data’?
> [-Werror=implicit-function-declaration]
>   220 |  if (fit_image_get_data(fit, noffset, &data, (size_t *)size))
> 
> The whole UEFI capsule update development should not depend on NET and
> hence not on UPDATE_TFTP.

Please read my succeeding patches carefully.
With all the patches applied, I guarantee that your assertion above is valid.

-Takahiro Akashi

> Best regards
> 
> Heinrich
> 
> >
> >  if DFU
> >  config DFU_TFTP
> >
>
diff mbox series

Patch

diff --git a/drivers/dfu/Kconfig b/drivers/dfu/Kconfig
index 5d45d7d7c2d7..cafb6a34090e 100644
--- a/drivers/dfu/Kconfig
+++ b/drivers/dfu/Kconfig
@@ -12,6 +12,7 @@  config DFU_OVER_USB
 config DFU_OVER_TFTP
 	bool
 	depends on NET
+	select UPDATE_TFTP
 
 if DFU
 config DFU_TFTP