* [U-Boot] [PATCH v1 0/5] Provide SPL support for bootcount (in the case of using falcon boot mode)
@ 2018-02-10 10:20 Lukasz Majewski
2018-02-10 10:20 ` [U-Boot] [PATCH v1 1/5] bootcount: config: Make the SYS_BOOTCOUNT_ADDR available also for non EXT setups Lukasz Majewski
` (4 more replies)
0 siblings, 5 replies; 7+ messages in thread
From: Lukasz Majewski @ 2018-02-10 10:20 UTC (permalink / raw)
To: u-boot
This patch series provides support for controlling bootcount limits in SPL.
It also enables this feature on display5 board to present usage patterns.
"Green" travis CI build:
https://travis-ci.org/lmajewski/u-boot-dfu
This patch has been applied on top of u-boot/master:
SHA1: 1811a928c6c7604d6d05a84b4d552a7c31b4994e
This patch series shall be applied on top of:
[U-Boot,1/2] Convert CONFIG_BOOTCOUNT_LIMIT to Kconfig
http://patchwork.ozlabs.org/patch/871585/
[U-Boot,2/2] Convert CONFIG_SYS_BOOTCOUNT_SINGLEWORD to Kconfig
http://patchwork.ozlabs.org/patch/871586/
Lukasz Majewski (5):
bootcount: config: Make the SYS_BOOTCOUNT_ADDR available also for non
EXT setups
bootcount: Add function wrappers to handle bootcount increment and
error checking
spl: bootcount: Enable bootcount support in SPL
config: display5: Enable boot count feature in the display5 board
arm: display5: Extend SPL to support bootcount checking
board/liebherr/display5/spl.c | 4 +++-
common/spl/Kconfig | 9 +++++++++
configs/display5_defconfig | 5 +++++
drivers/Makefile | 1 +
drivers/bootcount/Kconfig | 13 ++++++-------
include/bootcount.h | 25 +++++++++++++++++++++++++
6 files changed, 49 insertions(+), 8 deletions(-)
--
2.11.0
^ permalink raw reply [flat|nested] 7+ messages in thread
* [U-Boot] [PATCH v1 1/5] bootcount: config: Make the SYS_BOOTCOUNT_ADDR available also for non EXT setups
2018-02-10 10:20 [U-Boot] [PATCH v1 0/5] Provide SPL support for bootcount (in the case of using falcon boot mode) Lukasz Majewski
@ 2018-02-10 10:20 ` Lukasz Majewski
2018-02-12 7:31 ` [U-Boot] EXT: " Ray, Ian
2018-02-10 10:20 ` [U-Boot] [PATCH v1 2/5] bootcount: Add function wrappers to handle bootcount increment and error checking Lukasz Majewski
` (3 subsequent siblings)
4 siblings, 1 reply; 7+ messages in thread
From: Lukasz Majewski @ 2018-02-10 10:20 UTC (permalink / raw)
To: u-boot
This commit gives the opportunity to reuse the CONFIG_SYS_BOOTCOUNT_ADDR
Kconfig entry also for boards, which do not use EXT as a storage for
bootcount (i.e. on flash ones).
Signed-off-by: Lukasz Majewski <lukma@denx.de>
---
drivers/bootcount/Kconfig | 13 ++++++-------
1 file changed, 6 insertions(+), 7 deletions(-)
diff --git a/drivers/bootcount/Kconfig b/drivers/bootcount/Kconfig
index d82289f57b..1254bb51ca 100644
--- a/drivers/bootcount/Kconfig
+++ b/drivers/bootcount/Kconfig
@@ -31,6 +31,12 @@ config BOOTCOUNT_EXT
Add support for maintaining boot count in a file on an EXT
filesystem.
+config SYS_BOOTCOUNT_ADDR
+ hex "RAM address used for reading and writing the boot counter"
+ default 0x7000A000
+ help
+ Set the address used for reading and writing the boot counter.
+
if BOOTCOUNT_EXT
config SYS_BOOTCOUNT_EXT_INTERFACE
@@ -56,13 +62,6 @@ config SYS_BOOTCOUNT_EXT_NAME
help
Set the filename and path of the file used to store the boot counter.
-config SYS_BOOTCOUNT_ADDR
- hex "RAM address used for reading and writing the boot counter"
- default 0x7000A000
- depends on BOOTCOUNT_EXT
- help
- Set the address used for reading and writing the boot counter.
-
endif
endif
--
2.11.0
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [U-Boot] [PATCH v1 2/5] bootcount: Add function wrappers to handle bootcount increment and error checking
2018-02-10 10:20 [U-Boot] [PATCH v1 0/5] Provide SPL support for bootcount (in the case of using falcon boot mode) Lukasz Majewski
2018-02-10 10:20 ` [U-Boot] [PATCH v1 1/5] bootcount: config: Make the SYS_BOOTCOUNT_ADDR available also for non EXT setups Lukasz Majewski
@ 2018-02-10 10:20 ` Lukasz Majewski
2018-02-10 10:20 ` [U-Boot] [PATCH v1 3/5] spl: bootcount: Enable bootcount support in SPL Lukasz Majewski
` (2 subsequent siblings)
4 siblings, 0 replies; 7+ messages in thread
From: Lukasz Majewski @ 2018-02-10 10:20 UTC (permalink / raw)
To: u-boot
Those two functions can be used in either SPL or U-boot proper to provide
easy bootcount management.
Signed-off-by: Lukasz Majewski <lukma@denx.de>
---
include/bootcount.h | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
diff --git a/include/bootcount.h b/include/bootcount.h
index 06fb4d3578..534875a5a5 100644
--- a/include/bootcount.h
+++ b/include/bootcount.h
@@ -38,3 +38,28 @@ static inline u32 raw_bootcount_load(volatile u32 *addr)
return in_be32(addr);
}
#endif
+
+#ifdef CONFIG_SPL_BOOTCOUNT_LIMIT
+static inline bool bootcount_error(void)
+{
+ unsigned long bootcount = bootcount_load();
+ unsigned long bootlimit = env_get_ulong("bootlimit", 10, 0);
+
+ if (bootlimit && (bootcount >= bootlimit)) {
+ printf("Warning: Bootlimit (%lu) exceeded.\n", bootcount);
+ return true;
+ }
+
+ return false;
+}
+
+static inline void bootcount_inc(void)
+{
+ unsigned long bootcount = bootcount_load();
+
+ bootcount_store(++bootcount);
+}
+#else
+static inline bool bootcount_error(void) { return false; }
+static inline void bootcount_inc(void) {}
+#endif /* CONFIG_SPL_BOOTCOUNT_LIMIT */
--
2.11.0
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [U-Boot] [PATCH v1 3/5] spl: bootcount: Enable bootcount support in SPL
2018-02-10 10:20 [U-Boot] [PATCH v1 0/5] Provide SPL support for bootcount (in the case of using falcon boot mode) Lukasz Majewski
2018-02-10 10:20 ` [U-Boot] [PATCH v1 1/5] bootcount: config: Make the SYS_BOOTCOUNT_ADDR available also for non EXT setups Lukasz Majewski
2018-02-10 10:20 ` [U-Boot] [PATCH v1 2/5] bootcount: Add function wrappers to handle bootcount increment and error checking Lukasz Majewski
@ 2018-02-10 10:20 ` Lukasz Majewski
2018-02-10 10:20 ` [U-Boot] [PATCH v1 4/5] config: display5: Enable boot count feature in the display5 board Lukasz Majewski
2018-02-10 10:20 ` [U-Boot] [PATCH v1 5/5] arm: display5: Extend SPL to support bootcount checking Lukasz Majewski
4 siblings, 0 replies; 7+ messages in thread
From: Lukasz Majewski @ 2018-02-10 10:20 UTC (permalink / raw)
To: u-boot
New, SPL related config option - CONFIG_SPL_BOOTCOUNT_LIMIT has been
added to allow drivers/bootcount code re-usage in SPL.
This code is necessary to use and setup bootcount in SPL in the case of
falcon boot mode.
Signed-off-by: Lukasz Majewski <lukma@denx.de>
---
common/spl/Kconfig | 9 +++++++++
drivers/Makefile | 1 +
2 files changed, 10 insertions(+)
diff --git a/common/spl/Kconfig b/common/spl/Kconfig
index 65b3aff244..37354e262e 100644
--- a/common/spl/Kconfig
+++ b/common/spl/Kconfig
@@ -46,6 +46,15 @@ config SPL_BOOTROM_SUPPORT
BOOT_DEVICE_BOOTROM (or fall-through to the next boot device in the
boot device list, if not implemented for a given board)
+config SPL_BOOTCOUNT_LIMIT
+ bool "Support bootcount in SPL"
+ depends on SPL_ENV_SUPPORT
+ help
+ On some boards, which use 'falcon' mode, it is necessary to check
+ and increment the number of boot attempts. Such boards do not
+ use proper U-Boot for normal boot flow and hence needs those
+ adjustments to be done in the SPL.
+
config SPL_RAW_IMAGE_SUPPORT
bool "Support SPL loading and booting of RAW images"
default n if (ARCH_MX6 && (SPL_MMC_SUPPORT || SPL_SATA_SUPPORT))
diff --git a/drivers/Makefile b/drivers/Makefile
index e6062a5683..2a988360a0 100644
--- a/drivers/Makefile
+++ b/drivers/Makefile
@@ -20,6 +20,7 @@ obj-$(CONFIG_$(SPL_TPL_)TIMER) += timer/
ifndef CONFIG_TPL_BUILD
ifdef CONFIG_SPL_BUILD
+obj-$(CONFIG_SPL_BOOTCOUNT_LIMIT) += bootcount/
obj-$(CONFIG_SPL_CPU_SUPPORT) += cpu/
obj-$(CONFIG_SPL_CRYPTO_SUPPORT) += crypto/
obj-$(CONFIG_SPL_GPIO_SUPPORT) += gpio/
--
2.11.0
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [U-Boot] [PATCH v1 4/5] config: display5: Enable boot count feature in the display5 board
2018-02-10 10:20 [U-Boot] [PATCH v1 0/5] Provide SPL support for bootcount (in the case of using falcon boot mode) Lukasz Majewski
` (2 preceding siblings ...)
2018-02-10 10:20 ` [U-Boot] [PATCH v1 3/5] spl: bootcount: Enable bootcount support in SPL Lukasz Majewski
@ 2018-02-10 10:20 ` Lukasz Majewski
2018-02-10 10:20 ` [U-Boot] [PATCH v1 5/5] arm: display5: Extend SPL to support bootcount checking Lukasz Majewski
4 siblings, 0 replies; 7+ messages in thread
From: Lukasz Majewski @ 2018-02-10 10:20 UTC (permalink / raw)
To: u-boot
The boot count is enabled in both SPL and u-boot proper.
Signed-off-by: Lukasz Majewski <lukma@denx.de>
---
configs/display5_defconfig | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/configs/display5_defconfig b/configs/display5_defconfig
index 1502b77fea..97c3b6a60c 100644
--- a/configs/display5_defconfig
+++ b/configs/display5_defconfig
@@ -14,6 +14,7 @@ CONFIG_SPL_LOAD_FIT=y
CONFIG_OF_BOARD_SETUP=y
CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=arch/arm/mach-imx/spl_sd.cfg,MX6Q"
CONFIG_SPL=y
+CONFIG_SPL_BOOTCOUNT_LIMIT=y
# CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR is not set
CONFIG_SPL_DMA_SUPPORT=y
CONFIG_SPL_ENV_SUPPORT=y
@@ -49,6 +50,10 @@ CONFIG_EFI_PARTITION=y
# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_OF_CONTROL=y
CONFIG_ENV_IS_IN_SPI_FLASH=y
+CONFIG_BOOTCOUNT=y
+CONFIG_BOOTCOUNT_LIMIT=y
+CONFIG_SYS_BOOTCOUNT_SINGLEWORD=y
+CONFIG_SYS_BOOTCOUNT_ADDR=0x020CC068
CONFIG_SPI_FLASH=y
CONFIG_SPI_FLASH_BAR=y
CONFIG_SPI_FLASH_SPANSION=y
--
2.11.0
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [U-Boot] [PATCH v1 5/5] arm: display5: Extend SPL to support bootcount checking
2018-02-10 10:20 [U-Boot] [PATCH v1 0/5] Provide SPL support for bootcount (in the case of using falcon boot mode) Lukasz Majewski
` (3 preceding siblings ...)
2018-02-10 10:20 ` [U-Boot] [PATCH v1 4/5] config: display5: Enable boot count feature in the display5 board Lukasz Majewski
@ 2018-02-10 10:20 ` Lukasz Majewski
4 siblings, 0 replies; 7+ messages in thread
From: Lukasz Majewski @ 2018-02-10 10:20 UTC (permalink / raw)
To: u-boot
This patch is necessary for providing basic bootcount checking in the case
of using "falcon" boot mode.
It forces u-boot proper boot, when we exceed the number of errors.
Signed-off-by: Lukasz Majewski <lukma@denx.de>
---
board/liebherr/display5/spl.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/board/liebherr/display5/spl.c b/board/liebherr/display5/spl.c
index 0a36e656c0..e21b4bee75 100644
--- a/board/liebherr/display5/spl.c
+++ b/board/liebherr/display5/spl.c
@@ -20,6 +20,7 @@
#include <environment.h>
#include <fsl_esdhc.h>
#include <netdev.h>
+#include <bootcount.h>
#include "common.h"
DECLARE_GLOBAL_DATA_PTR;
@@ -214,7 +215,7 @@ void board_boot_order(u32 *spl_boot_list)
env_load();
s = env_get("BOOT_FROM");
- if (s && strcmp(s, "ACTIVE") == 0) {
+ if (s && !bootcount_error() && strcmp(s, "ACTIVE") == 0) {
spl_boot_list[0] = BOOT_DEVICE_MMC1;
spl_boot_list[1] = spl_boot_device();
}
@@ -242,6 +243,7 @@ int spl_start_uboot(void)
if (env_get_yesno("boot_os") != 1)
return 1;
#endif
+ bootcount_inc();
return 0;
}
#endif
--
2.11.0
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [U-Boot] EXT: [PATCH v1 1/5] bootcount: config: Make the SYS_BOOTCOUNT_ADDR available also for non EXT setups
2018-02-10 10:20 ` [U-Boot] [PATCH v1 1/5] bootcount: config: Make the SYS_BOOTCOUNT_ADDR available also for non EXT setups Lukasz Majewski
@ 2018-02-12 7:31 ` Ray, Ian
0 siblings, 0 replies; 7+ messages in thread
From: Ray, Ian @ 2018-02-12 7:31 UTC (permalink / raw)
To: u-boot
> On 10 Feb 2018, at 12.20, Lukasz Majewski <lukma@denx.de> wrote:
>
> This commit gives the opportunity to reuse the CONFIG_SYS_BOOTCOUNT_ADDR
> Kconfig entry also for boards, which do not use EXT as a storage for
> bootcount (i.e. on flash ones).
>
> Signed-off-by: Lukasz Majewski <lukma@denx.de>
>
Reviewed-by: Ian Ray <ian.ray@ge.com>
> ---
>
> drivers/bootcount/Kconfig | 13 ++++++-------
> 1 file changed, 6 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/bootcount/Kconfig b/drivers/bootcount/Kconfig
> index d82289f57b..1254bb51ca 100644
> --- a/drivers/bootcount/Kconfig
> +++ b/drivers/bootcount/Kconfig
> @@ -31,6 +31,12 @@ config BOOTCOUNT_EXT
> Add support for maintaining boot count in a file on an EXT
> filesystem.
>
> +config SYS_BOOTCOUNT_ADDR
> + hex "RAM address used for reading and writing the boot counter"
> + default 0x7000A000
> + help
> + Set the address used for reading and writing the boot counter.
> +
> if BOOTCOUNT_EXT
>
> config SYS_BOOTCOUNT_EXT_INTERFACE
> @@ -56,13 +62,6 @@ config SYS_BOOTCOUNT_EXT_NAME
> help
> Set the filename and path of the file used to store the boot counter.
>
> -config SYS_BOOTCOUNT_ADDR
> - hex "RAM address used for reading and writing the boot counter"
> - default 0x7000A000
> - depends on BOOTCOUNT_EXT
> - help
> - Set the address used for reading and writing the boot counter.
> -
> endif
>
> endif
> --
> 2.11.0
>
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2018-02-12 7:31 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-02-10 10:20 [U-Boot] [PATCH v1 0/5] Provide SPL support for bootcount (in the case of using falcon boot mode) Lukasz Majewski
2018-02-10 10:20 ` [U-Boot] [PATCH v1 1/5] bootcount: config: Make the SYS_BOOTCOUNT_ADDR available also for non EXT setups Lukasz Majewski
2018-02-12 7:31 ` [U-Boot] EXT: " Ray, Ian
2018-02-10 10:20 ` [U-Boot] [PATCH v1 2/5] bootcount: Add function wrappers to handle bootcount increment and error checking Lukasz Majewski
2018-02-10 10:20 ` [U-Boot] [PATCH v1 3/5] spl: bootcount: Enable bootcount support in SPL Lukasz Majewski
2018-02-10 10:20 ` [U-Boot] [PATCH v1 4/5] config: display5: Enable boot count feature in the display5 board Lukasz Majewski
2018-02-10 10:20 ` [U-Boot] [PATCH v1 5/5] arm: display5: Extend SPL to support bootcount checking Lukasz Majewski
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.