summaryrefslogtreecommitdiff
path: root/drivers/bootcount
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/bootcount')
-rw-r--r--drivers/bootcount/Makefile3
-rw-r--r--drivers/bootcount/bootcount_davinci.c4
-rw-r--r--drivers/bootcount/bootcount_env.c29
3 files changed, 35 insertions, 1 deletions
diff --git a/drivers/bootcount/Makefile b/drivers/bootcount/Makefile
index 8256ed0f4..bed6971aa 100644
--- a/drivers/bootcount/Makefile
+++ b/drivers/bootcount/Makefile
@@ -6,5 +6,6 @@ obj-y += bootcount.o
obj-$(CONFIG_AT91SAM9XE) += bootcount_at91.o
obj-$(CONFIG_BLACKFIN) += bootcount_blackfin.o
obj-$(CONFIG_SOC_DA8XX) += bootcount_davinci.o
-obj-$(CONFIG_AM33XX) += bootcount_davinci.o
+obj-$(CONFIG_BOOTCOUNT_AM33XX) += bootcount_davinci.o
obj-$(CONFIG_BOOTCOUNT_RAM) += bootcount_ram.o
+obj-$(CONFIG_BOOTCOUNT_ENV) += bootcount_env.o
diff --git a/drivers/bootcount/bootcount_davinci.c b/drivers/bootcount/bootcount_davinci.c
index f0acfad80..fa87b5e7b 100644
--- a/drivers/bootcount/bootcount_davinci.c
+++ b/drivers/bootcount/bootcount_davinci.c
@@ -2,6 +2,10 @@
* (C) Copyright 2011
* Heiko Schocher, DENX Software Engineering, hs@denx.de.
*
+ * A bootcount driver for the RTC IP block found on many TI platforms.
+ * This requires the RTC clocks, etc, to be enabled prior to use and
+ * not all boards with this IP block on it will have the RTC in use.
+ *
* SPDX-License-Identifier: GPL-2.0+
*/
diff --git a/drivers/bootcount/bootcount_env.c b/drivers/bootcount/bootcount_env.c
new file mode 100644
index 000000000..2d6e8db12
--- /dev/null
+++ b/drivers/bootcount/bootcount_env.c
@@ -0,0 +1,29 @@
+/*
+ * (C) Copyright 2013
+ * Heiko Schocher, DENX Software Engineering, hs@denx.de.
+ *
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+
+#include <common.h>
+
+void bootcount_store(ulong a)
+{
+ int upgrade_available = getenv_ulong("upgrade_available", 10, 0);
+
+ if (upgrade_available) {
+ setenv_ulong("bootcount", a);
+ saveenv();
+ }
+}
+
+ulong bootcount_load(void)
+{
+ int upgrade_available = getenv_ulong("upgrade_available", 10, 0);
+ ulong val = 0;
+
+ if (upgrade_available)
+ val = getenv_ulong("bootcount", 10, 0);
+
+ return val;
+}