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
 }
 
 /*