time: add aml time profile function [1/1]
PD#SWPL-141778
Problem:
need calculate cost time in every stages
Solution:
add aml time profile for testing cost time in stages
Verify:
s1a_bg201
Change-Id: I025b6ac7defedcf5319bbd04796407d1e9811787
Signed-off-by: benlong.zhou <benlong.zhou@amlogic.com>
diff --git a/common/cli.c b/common/cli.c
index a47d6a3..81dfbbd 100644
--- a/common/cli.c
+++ b/common/cli.c
@@ -21,6 +21,10 @@
#include <asm/global_data.h>
#include <dm/ofnode.h>
+#ifdef CONFIG_AMLOGIC_MODIFY
+#include <asm/amlogic/arch/timer.h>
+#endif
+
#ifdef CONFIG_CMDLINE
/*
* Run a command using the selected parser.
@@ -31,6 +35,12 @@
*/
int run_command(const char *cmd, int flag)
{
+#ifdef CONFIG_AMLOGIC_MODIFY
+#ifdef CONFIG_AMLOGIC_TIME_PROFILE
+ unsigned int tick = get_time();
+ int ret;
+#endif
+#endif
#if !CONFIG_IS_ENABLED(HUSH_PARSER)
/*
* cli_run_command can return 0 or 1 for success, so clean up
@@ -45,8 +55,21 @@
if (flag & CMD_FLAG_ENV)
hush_flags |= FLAG_CONT_ON_NEWLINE;
+#ifdef CONFIG_AMLOGIC_MODIFY
+#ifdef CONFIG_AMLOGIC_TIME_PROFILE
+ ret = parse_string_outer(cmd, hush_flags);
+ tick = get_time() - tick;
+ if (tick > 1000 && gd->time_print_flag) {
+ printf("\n ---long cmd, time:%5d, cmd:%s\n", tick, cmd);
+ }
+ return ret;
+#else
return parse_string_outer(cmd, hush_flags);
#endif
+#else
+ return parse_string_outer(cmd, hush_flags);
+#endif
+#endif
}
/*