diff options
| author | Joe Hershberger <joe.hershberger@ni.com> | 2012-10-03 12:14:57 +0000 | 
|---|---|---|
| committer | Tom Rini <trini@ti.com> | 2012-10-03 16:01:23 -0700 | 
| commit | da83bcd7b33d9e4dca3913cb5c0827dce0f8672a (patch) | |
| tree | c12603d5b315deb4d2e25a5fcb4b0cd8108a7ce9 /common/cmd_misc.c | |
| parent | c167cc02033e45913ce6a3ba4575e7890ce55f07 (diff) | |
| download | olio-uboot-2014.01-da83bcd7b33d9e4dca3913cb5c0827dce0f8672a.tar.xz olio-uboot-2014.01-da83bcd7b33d9e4dca3913cb5c0827dce0f8672a.zip | |
Add a command to access the system timer
Two sub-commands... start and get.
 * start sets the reference.
 * get prints out the time since the last start (in "<sec>.<msec>" format).
If get is called without start, returns time since boot.
Simple way to benchmark an operation: "timer start;<commands-to-measure>;timer get"
Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Diffstat (limited to 'common/cmd_misc.c')
| -rw-r--r-- | common/cmd_misc.c | 27 | 
1 files changed, 27 insertions, 0 deletions
| diff --git a/common/cmd_misc.c b/common/cmd_misc.c index 973b1c208..3b47a0c09 100644 --- a/common/cmd_misc.c +++ b/common/cmd_misc.c @@ -53,3 +53,30 @@ U_BOOT_CMD(  	"N\n"  	"    - delay execution for N seconds (N is _decimal_ !!!)"  ); + +#ifdef CONFIG_CMD_TIMER +static int do_timer(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) +{ +	static ulong start; + +	if (argc != 2) +		return CMD_RET_USAGE; + +	if (!strcmp(argv[1], "start")) +		start = get_timer(0); + +	if (!strcmp(argv[1], "get")) { +		ulong msecs = get_timer(start) * 1000 / CONFIG_SYS_HZ; +		printf("%ld.%03d\n", msecs / 1000, (int)(msecs % 1000)); +	} + +	return 0; +} + +U_BOOT_CMD( +	timer,    2,    1,     do_timer, +	"access the system timer", +	"start - Reset the timer reference.\n" +	"timer get   - Print the time since 'start'." +); +#endif |