summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorJonas <jonas.aberg@stericsson.com>2009-11-20 15:23:58 +0100
committerMichael Brandt <Michael.Brandt@stericsson.com>2010-01-13 12:00:28 +0100
commit074f516bda136e5464499fc63a854d8469f8e9fb (patch)
treea558c3f77be82412385b95a375889239f5933186 /include
parent2e0649a4f0a40848676fb183437915c1e8dcb866 (diff)
Updated timing measurement structure, changed atags and added idle time measurement. Note: idle time measurement does not seem to work reliable at the moment. Verification needed.
Signed-off-by: Michael Brandt <Michael.Brandt@stericsson.com>
Diffstat (limited to 'include')
-rw-r--r--include/asm-arm/boottime.h41
-rw-r--r--include/asm-arm/setup.h16
2 files changed, 43 insertions, 14 deletions
diff --git a/include/asm-arm/boottime.h b/include/asm-arm/boottime.h
index 3f8971380..c9a43e259 100644
--- a/include/asm-arm/boottime.h
+++ b/include/asm-arm/boottime.h
@@ -1,20 +1,41 @@
+/*
+ * (C) Copyright 2009 ST-Ericsson AB
+ * Jonas Aaberg <jonas.aberg@stericsson.com>
+ *
+ * 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 that 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, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ */
+
+
#ifndef BOOTTIME_H
#define BOOTTIME_H
-ulong get_raw_timer(void);
-extern ulong boottime_ticks_uboot_init;
-extern ulong boottime_ticks_load_kernel;
-extern ulong boottime_ticks_uboot_done;
+#include <asm/setup.h>
#ifdef CONFIG_BOOTTIME
-#define boottime_tag_uboot_init() boottime_ticks_uboot_init = get_raw_timer();
-#define boottime_tag_load_kernel() boottime_ticks_load_kernel = get_raw_timer();
-#define boottime_tag_uboot_done() boottime_ticks_uboot_done = get_raw_timer();
+int boottime_tag(char *name);
+void boottime_remove_last(void);
+struct boottime_entry *boottime_get_entry(unsigned int i);
+ulong boottime_idle_get(void);
+ulong boottime_idle_done(void);
+void boottime_idle_add(ulong i);
#else
-#define boottime_tag_uboot_init()
-#define boottime_tag_load_kernel()
-#define boottime_tag_uboot_done()
+#define boottime_tag(x) 0
+#define boottime_remove_last()
+#define boottime_idle_add(x)
#endif
#endif
diff --git a/include/asm-arm/setup.h b/include/asm-arm/setup.h
index cadc12435..467f6d9dd 100644
--- a/include/asm-arm/setup.h
+++ b/include/asm-arm/setup.h
@@ -206,14 +206,22 @@ struct tag_memclk {
};
/* for automatic boot timing testcases */
-#define ATAG_BOOTTIME_UBOOT_INIT 0x41000403
-#define ATAG_BOOTTIME_LOAD_KERNEL 0x41000404
-#define ATAG_BOOTTIME_UBOOT_DONE 0x41000405
+#define ATAG_BOOTTIME 0x41000403
+#define BOOTTIME_MAX_NAME_LEN 64
+#define BOOTTIME_MAX 10
+struct boottime_entry {
+ u32 tick;
+ u8 name[BOOTTIME_MAX_NAME_LEN];
+};
struct tag_boottime {
- u32 tick;
+ struct boottime_entry entry[BOOTTIME_MAX];
+ u32 idle;
+ u32 total;
+ u8 num;
};
+
struct tag {
struct tag_header hdr;
union {