Hi,
I am trying to understand the uboot support to store the bootcount in RAM and working on aarch64 platform. Relevant configuration: 1. CONFIG_BOOTCOUNT_LIMIT 2. CONFIG_BOOTCOUNT_RAM 3. BOOTCOUNT_ADDR <RAM address> Relevant code: drivers/bootcount/bootcount_ram.c From the code it is clear along with bootcount, uboot writes a MAGIC number and a BIG pattern. *Memory writing pattern in Uboot: *(In unsigned long: 8 bytes) <Bootcount><MAGIC Number><void><Pattern1><Pattern2><Pattern3><Pattern4><Pattern5>…… Pattern * 1000 times So effectively to save a counter we would need: 8 (Bootcount) + 8 (MAGIC Number) + 8 (void) + (8*1000) BIG PATTERN => 8024 bytes => ~8KB contiguous reserved memory in RAM. *Queries*: 1. If, I reduce the REPEAT times for pattern from 1000 to 100 the only consequence I see is the reduction in possibility of detecting bit errors. a. Do you see any other consequence if I reduce REPEAT times for pattern? 2. While reading the boot count Uboot always fail in pattern checking and reverts the bootcount to 0. a. It seems a *bug* to me in bootcount_ram.c line 59 where comparison between tmp and pattern[1] (0xFFFFFFFF) always fails. b. It works well with cast “if (tmp != *(int)* patterns[i % NBR_OF_PATTERNS])” -- Thanks & Regards, Manas Marwah _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot