[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