From mboxrd@z Thu Jan 1 00:00:00 1970 From: Heiko Schocher Date: Wed, 28 Jan 2009 10:41:02 +0100 Subject: [U-Boot] [PATCH 31/31] 83xx, kmeter1: added bootcount feature Message-ID: <4980282E.3020109@denx.de> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de add CONFIG_BOUTCOUNT_LIMIT feature for 83xx CPU. activate this feature for the kmeter1 board. Signed-off-by: Heiko Schocher --- 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 #include #include +#ifdef CONFIG_BOOTCOUNT_LIMIT +#include +#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