[U-Boot] [PATCH 31/31] 83xx, kmeter1: added bootcount feature
Heiko Schocher
hs at denx.de
Wed Jan 28 10:41:02 CET 2009
add CONFIG_BOUTCOUNT_LIMIT feature for 83xx CPU.
activate this feature for the kmeter1 board.
Signed-off-by: Heiko Schocher <hs at 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.
--
1.6.0.6
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
More information about the U-Boot
mailing list