From 1947c2d2a08fb07330d15fc30416969afbe61bbc Mon Sep 17 00:00:00 2001 From: Stefano Babic Date: Thu, 22 Feb 2018 12:30:41 +0100 Subject: [PATCH] bootcount: flush after storing the bootcounter If the bootcounter address is in a cached memory, a flush of dcache must occur after updateing the bootcounter. Issue found on i.MX6 where bootcounter is put into the internal (cached) IRAM. Signed-off-by: Stefano Babic --- drivers/bootcount/bootcount.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/bootcount/bootcount.c b/drivers/bootcount/bootcount.c index e00d81c..a3162c9 100644 --- a/drivers/bootcount/bootcount.c +++ b/drivers/bootcount/bootcount.c @@ -18,6 +18,9 @@ __weak void bootcount_store(ulong a) raw_bootcount_store(reg, a); raw_bootcount_store(reg + 4, BOOTCOUNT_MAGIC); #endif /* defined(CONFIG_SYS_BOOTCOUNT_SINGLEWORD */ + flush_dcache_range(CONFIG_SYS_BOOTCOUNT_ADDR, + CONFIG_SYS_BOOTCOUNT_ADDR + + CONFIG_SYS_CACHELINE_SIZE); } __weak ulong bootcount_load(void)