From 074f516bda136e5464499fc63a854d8469f8e9fb Mon Sep 17 00:00:00 2001 From: Jonas Date: Fri, 20 Nov 2009 15:23:58 +0100 Subject: 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 --- include/asm-arm/boottime.h | 41 +++++++++++++++++++++++++++++++---------- include/asm-arm/setup.h | 16 ++++++++++++---- 2 files changed, 43 insertions(+), 14 deletions(-) (limited to 'include') 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 + * + * 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 #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 { -- cgit v1.2.3