[PATCH 1/3] misc: add bootcount framework
Jean-Christophe PLAGNIOL-VILLARD
plagnioj at jcrosoft.com
Fri Sep 20 00:46:15 EDT 2013
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj at jcrosoft.com>
---
drivers/misc/Kconfig | 3 +++
drivers/misc/Makefile | 1 +
drivers/misc/bootcount.c | 24 ++++++++++++++++++++++++
include/bootcount.h | 21 +++++++++++++++++++++
4 files changed, 49 insertions(+)
create mode 100644 drivers/misc/bootcount.c
create mode 100644 include/bootcount.h
diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig
index 606490b..a972ba4 100644
--- a/drivers/misc/Kconfig
+++ b/drivers/misc/Kconfig
@@ -15,4 +15,7 @@ config JTAG
help
Controls JTAG chains connected to I/O pins
+config BOOTCOUNT
+ bool
+
endif # MISC_DEVICES
diff --git a/drivers/misc/Makefile b/drivers/misc/Makefile
index b085577..fa668c1 100644
--- a/drivers/misc/Makefile
+++ b/drivers/misc/Makefile
@@ -3,3 +3,4 @@
#
obj-$(CONFIG_JTAG) += jtag.o
+obj-$(CONFIG_BOOTCOUNT) += bootcount.o
diff --git a/drivers/misc/bootcount.c b/drivers/misc/bootcount.c
new file mode 100644
index 0000000..0205d00
--- /dev/null
+++ b/drivers/misc/bootcount.c
@@ -0,0 +1,24 @@
+/*
+ * Copyright (C) 2013 Jean-Christophe PLAGNIOL-VILLARD <plagnioj at jcrosoft.com>
+ *
+ * GPLv2 Only
+ */
+
+#include <common.h>
+#include <init.h>
+#include <bootcount.h>
+
+static struct bootcount_driver *bd;
+
+void bootcount_register(struct bootcount_driver *drv)
+{
+ bd = drv;
+}
+
+static int bootcount_inc(void)
+{
+ if (bd)
+ bd->inc(bd);
+ return 0;
+}
+late_initcall(bootcount_inc);
diff --git a/include/bootcount.h b/include/bootcount.h
new file mode 100644
index 0000000..16e61c5
--- /dev/null
+++ b/include/bootcount.h
@@ -0,0 +1,21 @@
+/*
+ * Copyright (C) 2013 Jean-Christophe PLAGNIOL-VILLARD <plagnioj at jcrosoft.com>
+ *
+ * GPLv2 Only
+ */
+
+#ifndef __BOOTCOUNT_H__
+#define __BOOTCOUNT_H__
+
+struct bootcount_driver {
+ void (*inc)(struct bootcount_driver *d);
+ void *priv;
+};
+
+#ifdef CONFIG_BOOTCOUNT
+void bootcount_register(struct bootcount_driver *d);
+#else
+static inline void bootcount_register(struct bootcount_driver *d) {}
+#endif
+
+#endif /* __BOOTCOUNT_H__ */
--
1.8.4.rc1
More information about the barebox
mailing list