[U-Boot] [PATCH v5 4/7] bootcount: Rewrite autoboot to use wrapper functions from bootcount.h

Alex Kiernan alex.kiernan at gmail.com
Tue May 8 05:23:56 UTC 2018


On Wed, May 2, 2018 at 3:11 PM Lukasz Majewski <lukma at denx.de> wrote:

> The code has been refactored to use common wrappers from bootcount.h
> header.

> Signed-off-by: Lukasz Majewski <lukma at denx.de>
> Reviewed-by: Stefan Roese <sr at denx.de>
> Reviewed-by: Tom Rini <trini at konsulko.com>

Reviewed-by:  Alex Kiernan <alex.kiernan at gmail.com>


> ---

> Changes in v5:
> - None

> Changes in v4:
> - Use global data pointer (gd_t *) instead of bootcount specific enum

> Changes in v3:
> - New patch

> Changes in v2: None

>   common/autoboot.c | 23 +++++------------------
>   1 file changed, 5 insertions(+), 18 deletions(-)

> diff --git a/common/autoboot.c b/common/autoboot.c
> index 2eef7a04cc..a0f7822c9e 100644
> --- a/common/autoboot.c
> +++ b/common/autoboot.c
> @@ -14,6 +14,7 @@
>   #include <menu.h>
>   #include <post.h>
>   #include <u-boot/sha256.h>
> +#include <bootcount.h>

>   DECLARE_GLOBAL_DATA_PTR;

> @@ -291,18 +292,8 @@ const char *bootdelay_process(void)
>   {
>          char *s;
>          int bootdelay;
> -#ifdef CONFIG_BOOTCOUNT_LIMIT
> -       unsigned long bootcount = 0;
> -       unsigned long bootlimit = 0;
> -#endif /* CONFIG_BOOTCOUNT_LIMIT */
> -
> -#ifdef CONFIG_BOOTCOUNT_LIMIT
> -       bootcount = bootcount_load();
> -       bootcount++;
> -       bootcount_store(bootcount);
> -       env_set_ulong("bootcount", bootcount);
> -       bootlimit = env_get_ulong("bootlimit", 10, 0);
> -#endif /* CONFIG_BOOTCOUNT_LIMIT */
> +
> +       bootcount_inc();

>          s = env_get("bootdelay");
>          bootdelay = s ? (int)simple_strtol(s, NULL, 10) :
CONFIG_BOOTDELAY;
> @@ -324,13 +315,9 @@ const char *bootdelay_process(void)
>                  s = env_get("failbootcmd");
>          } else
>   #endif /* CONFIG_POST */
> -#ifdef CONFIG_BOOTCOUNT_LIMIT
> -       if (bootlimit && (bootcount > bootlimit)) {
> -               printf("Warning: Bootlimit (%u) exceeded. Using
altbootcmd.\n",
> -                      (unsigned)bootlimit);
> +       if (bootcount_error())
>                  s = env_get("altbootcmd");
> -       } else
> -#endif /* CONFIG_BOOTCOUNT_LIMIT */
> +       else
>                  s = env_get("bootcmd");

>          process_fdt_options(gd->fdt_blob);
> --
> 2.11.0



-- 
Alex Kiernan


More information about the U-Boot mailing list