Commit da83bcd7 authored by Joe Hershberger's avatar Joe Hershberger Committed by Tom Rini

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: 's avatarJoe Hershberger <joe.hershberger@ni.com>
parent c167cc02
......@@ -858,7 +858,8 @@ The following options need to be configured:
CONFIG_CMD_SPI * SPI serial bus support
CONFIG_CMD_TFTPSRV * TFTP transfer in server mode
CONFIG_CMD_TFTPPUT * TFTP put command (upload)
CONFIG_CMD_TIME * run command and report execution time
CONFIG_CMD_TIME * run command and report execution time (ARM specific)
CONFIG_CMD_TIMER * access to the system tick timer
CONFIG_CMD_USB * USB support
CONFIG_CMD_CDP * Cisco Discover Protocol support
CONFIG_CMD_MFSL * Microblaze FSL support
......
......@@ -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
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment