mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-29 08:01:08 +00:00
bootcount_davinci: Switch to scratch register #2
The RTC IP block here provides 3 scratch registers. Currently when using DeepSleep on am335x the scratch0/1 registers are used so moving ourself to scratch2 makes cooperation easier. Signed-off-by: Tom Rini <trini@ti.com>
This commit is contained in:
parent
155d424a9a
commit
22ee397504
1 changed files with 6 additions and 4 deletions
|
@ -20,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;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue