blob: 53629557f611a1f81c97886ebd438207583cc8b8 [file] [log] [blame]
benlong.zhouf0969fb2023-10-26 16:42:01 +08001#include <common.h>
2#include <asm/global_data.h>
3
4DECLARE_GLOBAL_DATA_PTR;
5
6#ifdef CONFIG_AMLOGIC_TIME_PROFILE
7void record_init_call_time(void *func, unsigned int time)
8{
9 int i;
10
11 for (i = 0; i < INITCALL_CNT; i++) {
12 if (!gd->ict[i].func) {
13 gd->ict[i].func = func;
14 gd->ict[i].time = time;
15 return;
16 }
17 }
18 printf("Lost init call %p, time:%d\n", func, time);
19}
20
21void dump_initcall_time(void)
22{
23 int i;
24 const char *sym;
25 unsigned long base;
26 unsigned long end;
27
28 for (i = 0; i < INITCALL_CNT; i++) {
29 if (gd->ict[i].func && gd->ict[i].time > 1000) {
30 sym = symbol_lookup((unsigned long)gd->ict[i].func,
31 &base, &end);
32 if (sym)
33 printf("init call time:%8d, func:%s\n",
34 gd->ict[i].time, sym);
35 else
36 printf("init call time:%8d, func:%p\n",
37 gd->ict[i].time, gd->ict[i].func);
38 }
39 }
40}
41
42#endif