bootcount: Add bootcount command
PATCH 1/1 bootcount: Add bootcount command
Add a command to manipulate the bootcounter. This is useful if you can run device recovery from inside U-Boot and need to reset the bootcounter after executing that process as part of altbootcmd.
---
cmd/Kconfig | 7 +++++++ cmd/Makefile | 1 + cmd/bootcount.c | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 69 insertions(+) create mode 100644 cmd/bootcount.c
cmd/Kconfig +7 -0
@@ -1218,6 +1218,13 @@ config CMD_BMP the image into RAM, then using this command to look at it or display it. +config CMD_BOOTCOUNT + bool "bootcount" + depends on BOOTCOUNT_LIMIT + help + Enable the bootcount command, which allows interrogation and + reset of the bootcounter. + config CMD_BSP bool "Enable board-specific commands" help
cmd/Makefile +1 -0
@@ -22,6 +22,7 @@ obj-$(CONFIG_CMD_BEDBUG) += bedbug.o obj-$(CONFIG_CMD_BINOP) += binop.o obj-$(CONFIG_CMD_BLOCK_CACHE) += blkcache.o obj-$(CONFIG_CMD_BMP) += bmp.o +obj-$(CONFIG_CMD_BOOTCOUNT) += bootcount.o obj-$(CONFIG_CMD_BOOTEFI) += bootefi.o obj-$(CONFIG_CMD_BOOTMENU) += bootmenu.o obj-$(CONFIG_CMD_BOOTSTAGE) += bootstage.o
cmd/bootcount.c new file +61 -0
61 lines not on this page · raw message
Signature · 1 line
2.7.4
PATCH 1/1 bootcount: Add bootcount command
Quoted 102 lines · On Sat, 12 May 2018 05:49:47 +0000 Alex Kiernan <[email protected]> wrote:
Add a command to manipulate the bootcounter. This is useful if you can run device recovery from inside U-Boot and need to reset the bootcounter after executing that process as part of altbootcmd.
Signed-off-by Alex Kiernan <[email protected]>---
cmd/Kconfig | 7 +++++++ cmd/Makefile | 1 + cmd/bootcount.c | 61+++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 69 insertions(+) create mode 100644
cmd/bootcount.ccmd/Kconfig +0
-0@@ -1218,6 +1218,13 @@ config CMD_BMP the image into RAM, then using this command to look at itor display it.
cmd/Kconfig +5
-0+config CMD_BOOTCOUNT + bool "bootcount" + depends on BOOTCOUNT_LIMIT + help + Enable the bootcount command, which allows interrogationand
cmd/Kconfig +2
-0+ reset of the bootcounter. + config CMD_BSP bool "Enable board-specific commands" helpcmd/Makefile +1
-0@@ -22,6 +22,7 @@ obj-$(CONFIG_CMD_BEDBUG) += bedbug.o obj-$(CONFIG_CMD_BINOP) += binop.o obj-$(CONFIG_CMD_BLOCK_CACHE) += blkcache.o obj-$(CONFIG_CMD_BMP) += bmp.o +obj-$(CONFIG_CMD_BOOTCOUNT) += bootcount.o obj-$(CONFIG_CMD_BOOTEFI) += bootefi.o obj-$(CONFIG_CMD_BOOTMENU) += bootmenu.o obj-$(CONFIG_CMD_BOOTSTAGE) += bootstage.ocmd/bootcount.c new file +42
-0@@ -0,0 +1,61 @@ +// SPDX-License-Identifier: GPL-2.0+ + +#include <common.h> +#include <command.h> +#include <bootcount.h> + +static int do_bootcount_print (cmd_tbl_t *cmdtp,int flag,int argc, +char *const argv[]) +{ +printf ("%lu\n" ,bootcount_load ()); +return CMD_RET_SUCCESS ; +} + +static int do_bootcount_reset (cmd_tbl_t *cmdtp,int flag,int argc, +char *const argv[]) +{ +/* +* note that we're explicitly not resetting the environment +* variable, so you still have the old bootcounter available +*/ +bootcount_store (0 ); +return CMD_RET_SUCCESS ; +} + +static cmd_tbl_t bootcount_sub[] = { +U_BOOT_CMD_MKENT (print,1 ,1 , do_bootcount_print,"" ,"" ), +U_BOOT_CMD_MKENT (reset,1 ,1 , do_bootcount_reset,"" ,"" ), +}; + +static int do_bootcount (cmd_tbl_t *cmdtp,int flag,int argc, +char *const argv[]) +{ +cmd_tbl_t *cp; + +if (argc <2 ) +return CMD_RET_USAGE ; + +/* drop initial "bootcount" arg */ + argc--; + argv++; + + cp = find_cmd_tbl(argv[0], bootcount_sub,
ARRAY_SIZE(bootcount_sub));cmd/bootcount.c new file +9
-0+if (cp) +return cp->cmd (cmdtp, flag, argc, argv); + +return CMD_RET_USAGE ; +} + +#if CONFIG_IS_ENABLED (SYS_LONGHELP ) +static char bootcount_help_text[] = +"print - print current bootcounter\n"
cmd/bootcount.c line 61
Quoted 10 lines
cmd/bootcount.c new file +10
-0+"reset - reset the bootcounter" + ; +#endif + +U_BOOT_CMD (bootcount,2 ,1 , do_bootcount, +"bootcount" , +#if CONFIG_IS_ENABLED(SYS_LONGHELP) + bootcount_help_text +#endif +);
Best regards,
Lukasz Majewski
--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de -------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20180513/a1530bb8/attachment.sig>
Quoted 6 lines · Alex Kiernan
Add a command to manipulate the bootcounter. This is useful if you can run device recovery from inside U-Boot and need to reset the bootcounter after executing that process as part of altbootcmd.
Signed-off-by Alex Kiernan <[email protected]>Reviewed-by Lukasz Majewski <[email protected]>
Applied to u-boot/master, thanks!
Signature · 8 lines
Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 819 bytes Desc: not available URL: <http://lists.denx.de/pipermail/u-boot/attachments/20180524/6526966e/attachment.sig>