On 07.09.20 07:34, AKASHI Takahiro wrote:
> This function is essentially independent from tftp, and will also be
> utilised in implementing UEFI capsule update in a later commit.
> So just give it a more generic name.
> In addition, a new configuration option, CONFIG_DFU_ALT, was introduced
> so that the file will be compiled with different options, particularly
> one added in a later commit.
>
> Signed-off-by: AKASHI Takahiro <takahiro.aka...@linaro.org>
> ---
>  common/update.c                       |  5 +++--
>  drivers/dfu/Kconfig                   |  5 +++++
>  drivers/dfu/Makefile                  |  2 +-
>  drivers/dfu/{dfu_tftp.c => dfu_alt.c} | 17 ++++++++++++--
>  include/dfu.h                         | 32 +++++++++++++--------------
>  5 files changed, 40 insertions(+), 21 deletions(-)
>  rename drivers/dfu/{dfu_tftp.c => dfu_alt.c} (67%)
>
> diff --git a/common/update.c b/common/update.c
> index 36b6b7523d50..39946776d74f 100644
> --- a/common/update.c
> +++ b/common/update.c
> @@ -324,8 +324,9 @@ got_update_file:
>                       }
>               } else if (fit_image_check_type(fit, noffset,
>                                               IH_TYPE_FIRMWARE)) {
> -                     ret = dfu_tftp_write(fit_image_name, update_addr,
> -                                          update_size, interface, devstring);
> +                     ret = dfu_write_by_name(fit_image_name, update_addr,
> +                                             update_size, interface,
> +                                             devstring);
>                       if (ret)
>                               return ret;
>               }
> diff --git a/drivers/dfu/Kconfig b/drivers/dfu/Kconfig
> index 0eec00ba734d..78f901ff348a 100644
> --- a/drivers/dfu/Kconfig
> +++ b/drivers/dfu/Kconfig
> @@ -14,8 +14,13 @@ config DFU_OVER_TFTP
>       depends on NET
>
>  if DFU
> +config DFU_ALT
> +     bool

You cannot define CONFIG_DFU_ALT as bool. This symbol already exists as
string in include/configs/odroid.h, include/configs/s5p_goni.h, et.al.
It is used to initialize environment variable dfu_alt_info. Your patch
leads to an error on Travis:

       arm:  +   odroid

+In file included from <command-line>:

+include/linux/kconfig.h:21:49: error: pasting "__ARG_PLACEHOLDER_" and
""uImage fat 0 1;"" does not give a valid preprocessing token

+   21 | #define _config_enabled(value)
__config_enabled(__ARG_PLACEHOLDER_##value)

Best regards

Heinrich

> +     default n
> +
>  config DFU_TFTP
>       bool "DFU via TFTP"
> +     select DFU_ALT
>       select DFU_OVER_TFTP
>       help
>         This option allows performing update of DFU-managed medium with data
> diff --git a/drivers/dfu/Makefile b/drivers/dfu/Makefile
> index 0d7925c083ef..cc7de1d3ed9b 100644
> --- a/drivers/dfu/Makefile
> +++ b/drivers/dfu/Makefile
> @@ -9,5 +9,5 @@ obj-$(CONFIG_$(SPL_)DFU_MTD) += dfu_mtd.o
>  obj-$(CONFIG_$(SPL_)DFU_NAND) += dfu_nand.o
>  obj-$(CONFIG_$(SPL_)DFU_RAM) += dfu_ram.o
>  obj-$(CONFIG_$(SPL_)DFU_SF) += dfu_sf.o
> -obj-$(CONFIG_$(SPL_)DFU_TFTP) += dfu_tftp.o
> +obj-$(CONFIG_$(SPL_)DFU_ALT) += dfu_alt.o
>  obj-$(CONFIG_$(SPL_)DFU_VIRT) += dfu_virt.o
> diff --git a/drivers/dfu/dfu_tftp.c b/drivers/dfu/dfu_alt.c
> similarity index 67%
> rename from drivers/dfu/dfu_tftp.c
> rename to drivers/dfu/dfu_alt.c
> index ffae4bb54f80..5b1b13d7170d 100644
> --- a/drivers/dfu/dfu_tftp.c
> +++ b/drivers/dfu/dfu_alt.c
> @@ -10,8 +10,21 @@
>  #include <errno.h>
>  #include <dfu.h>
>
> -int dfu_tftp_write(char *dfu_entity_name, unsigned int addr, unsigned int 
> len,
> -                char *interface, char *devstring)
> +/**
> + * dfu_write_by_name() - write data to DFU medium
> + * @dfu_entity_name:    Name of DFU entity to write
> + * @addr:               Address of data buffer to write
> + * @len:                Number of bytes
> + * @interface:          Destination DFU medium (e.g. "mmc")
> + * @devstring:          Instance number of destination DFU medium (e.g. "1")
> + *
> + * This function is storing data received on DFU supported medium which
> + * is specified by @dfu_entity_name.
> + *
> + * Return:              0 - on success, error code - otherwise
> + */
> +int dfu_write_by_name(char *dfu_entity_name, unsigned int addr,
> +                   unsigned int len, char *interface, char *devstring)
>  {
>       char *s, *sb;
>       int alt_setting_num, ret;
> diff --git a/include/dfu.h b/include/dfu.h
> index 84abdc79acd1..cecfbd76597b 100644
> --- a/include/dfu.h
> +++ b/include/dfu.h
> @@ -494,27 +494,27 @@ static inline int dfu_fill_entity_virt(struct 
> dfu_entity *dfu, char *devstr,
>  #endif
>
>  /**
> - * dfu_tftp_write() - write TFTP data to DFU medium
> + * dfu_write_by_name() - write data to DFU medium
> + * @dfu_entity_name: Name of DFU entity to write
> + * @addr:            Address of data buffer to write
> + * @len:             Number of bytes
> + * @interface:               Destination DFU medium (e.g. "mmc")
> + * @devstring:               Instance number of destination DFU medium (e.g. 
> "1")
>   *
> - * This function is storing data received via TFTP on DFU supported medium.
> + * This function is storing data received on DFU supported medium which
> + * is specified by @dfu_entity_name.
>   *
> - * @dfu_entity_name: name of DFU entity to write
> - * @addr:            address of data buffer to write
> - * @len:             number of bytes
> - * @interface:               destination DFU medium (e.g. "mmc")
> - * @devstring:               instance number of destination DFU medium (e.g. 
> "1")
> - *
> - * Return:           0 on success, otherwise error code
> + * Return:           0 - on success, error code - otherwise
>   */
> -#if CONFIG_IS_ENABLED(DFU_TFTP)
> -int dfu_tftp_write(char *dfu_entity_name, unsigned int addr, unsigned int 
> len,
> -                char *interface, char *devstring);
> +#if CONFIG_IS_ENABLED(DFU_ALT)
> +int dfu_write_by_name(char *dfu_entity_name, unsigned int addr,
> +                   unsigned int len, char *interface, char *devstring);
>  #else
> -static inline int dfu_tftp_write(char *dfu_entity_name, unsigned int addr,
> -                              unsigned int len, char *interface,
> -                              char *devstring)
> +static inline int dfu_write_by_name(char *dfu_entity_name, unsigned int addr,
> +                                 unsigned int len, char *interface,
> +                                 char *devstring)
>  {
> -     puts("TFTP write support for DFU not available!\n");
> +     puts("write support for DFU not available!\n");
>       return -ENOSYS;
>  }
>  #endif
>

Reply via email to