
add CONFIG_BOUTCOUNT_LIMIT feature for 83xx CPU. activate this feature for the kmeter1 board.
Signed-off-by: Heiko Schocher hs@denx.de --- cpu/mpc83xx/cpu.c | 27 +++++++++++++++++++++++++++ include/configs/keymile-common.h | 2 -- 2 files changed, 27 insertions(+), 2 deletions(-)
diff --git a/cpu/mpc83xx/cpu.c b/cpu/mpc83xx/cpu.c index 587fca3..7c12672 100644 --- a/cpu/mpc83xx/cpu.c +++ b/cpu/mpc83xx/cpu.c @@ -34,6 +34,9 @@ #include <libfdt.h> #include <tsec.h> #include <netdev.h> +#ifdef CONFIG_BOOTCOUNT_LIMIT +#include <asm/io.h> +#endif
DECLARE_GLOBAL_DATA_PTR;
@@ -385,3 +388,27 @@ int cpu_eth_init(bd_t *bis) #endif return 0; } + +#ifdef CONFIG_BOOTCOUNT_LIMIT + +#if !defined(CONFIG_BOOTCOUNT_ADDR) +#define CONFIG_BOOTCOUNT_ADDR 0x11bff8 +#endif + +void bootcount_store (ulong a) +{ + void *reg = (unsigned __iomem *)(CONFIG_SYS_IMMR + CONFIG_BOOTCOUNT_ADDR); + out_be32 (reg, a); + out_be32 (reg + 4, BOOTCOUNT_MAGIC); +} + +ulong bootcount_load (void) +{ + void *reg = (unsigned __iomem *)(CONFIG_SYS_IMMR + CONFIG_BOOTCOUNT_ADDR); + + if (in_be32 (reg + 4) != BOOTCOUNT_MAGIC) + return 0; + else + return in_be32 (reg); +} +#endif /* CONFIG_BOOTCOUNT_LIMIT */ diff --git a/include/configs/keymile-common.h b/include/configs/keymile-common.h index 3736cd8..6a25262 100644 --- a/include/configs/keymile-common.h +++ b/include/configs/keymile-common.h @@ -27,9 +27,7 @@ /* Do boardspecific init for all boards */ #define CONFIG_BOARD_EARLY_INIT_R 1
-#if defined(CONFIG_MGCOGE) || defined(CONFIG_MGSUVD) || defined(CONFIG_KMSUPX4) #define CONFIG_BOOTCOUNT_LIMIT -#endif
/* * Command line configuration.