diff options
Diffstat (limited to 'drivers/bootcount/bootcount_davinci.c')
| -rw-r--r-- | drivers/bootcount/bootcount_davinci.c | 13 | 
1 files changed, 7 insertions, 6 deletions
| diff --git a/drivers/bootcount/bootcount_davinci.c b/drivers/bootcount/bootcount_davinci.c index efa4d42cb..f0acfad80 100644 --- a/drivers/bootcount/bootcount_davinci.c +++ b/drivers/bootcount/bootcount_davinci.c @@ -6,8 +6,7 @@   */  #include <bootcount.h> -#include <asm/arch/da850_lowlevel.h> -#include <asm/arch/davinci_misc.h> +#include <asm/davinci_rtc.h>  void bootcount_store(ulong a)  { @@ -21,17 +20,19 @@ void bootcount_store(ulong a)  	 */  	writel(RTC_KICK0R_WE, ®->kick0r);  	writel(RTC_KICK1R_WE, ®->kick1r); -	raw_bootcount_store(®->scratch0, a); -	raw_bootcount_store(®->scratch1, BOOTCOUNT_MAGIC); +	raw_bootcount_store(®->scratch2, +			    (BOOTCOUNT_MAGIC & 0xffff0000) | (a & 0x0000ffff));  }  ulong bootcount_load(void)  { +	unsigned long val;  	struct davinci_rtc *reg =  		(struct davinci_rtc *)CONFIG_SYS_BOOTCOUNT_ADDR; -	if (raw_bootcount_load(®->scratch1) != BOOTCOUNT_MAGIC) +	val = raw_bootcount_load(®->scratch2); +	if ((val & 0xffff0000) != (BOOTCOUNT_MAGIC & 0xffff0000))  		return 0;  	else -		return raw_bootcount_load(®->scratch0); +		return val & 0x0000ffff;  } |