Add boot counter support using an sysreg which is persistent across reset. Signed-off-by: Rob Herring <rob.herring@calxeda.com>master
parent
7b81649a05
commit
877012df30
@ -0,0 +1,36 @@ |
|||||||
|
/*
|
||||||
|
* Copyright 2011 Calxeda, Inc. |
||||||
|
* |
||||||
|
* This program is free software; you can redistribute it and/or modify it |
||||||
|
* under the terms of the GNU General Public License as published by the Free |
||||||
|
* Software Foundation; either version 2 of the License, or (at your option) |
||||||
|
* any later version. |
||||||
|
* |
||||||
|
* This program is distributed in the hope it will be useful, but WITHOUT |
||||||
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for |
||||||
|
* more details. |
||||||
|
* |
||||||
|
* You should have received a copy of the GNU General Public License along with |
||||||
|
* this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/ |
||||||
|
|
||||||
|
#include <common.h> |
||||||
|
#include <asm/io.h> |
||||||
|
|
||||||
|
#ifdef CONFIG_BOOTCOUNT_LIMIT |
||||||
|
void bootcount_store(ulong a) |
||||||
|
{ |
||||||
|
writel((BOOTCOUNT_MAGIC & 0xffff0000) | a, CONFIG_SYS_BOOTCOUNT_ADDR); |
||||||
|
} |
||||||
|
|
||||||
|
ulong bootcount_load(void) |
||||||
|
{ |
||||||
|
u32 tmp = readl(CONFIG_SYS_BOOTCOUNT_ADDR); |
||||||
|
|
||||||
|
if ((tmp & 0xffff0000) != (BOOTCOUNT_MAGIC & 0xffff0000)) |
||||||
|
return 0; |
||||||
|
else |
||||||
|
return tmp & 0x0000ffff; |
||||||
|
} |
||||||
|
#endif |
Loading…
Reference in new issue