summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorPragnesh Patel <pragnesh.patel@sifive.com>2021-01-17 18:11:24 +0530
committerAndes <uboot@andestech.com>2021-01-18 11:06:32 +0800
commita80f85138c9457141c799c022b5c924252031512 (patch)
tree449fbc79c6369b75d69b878ce63dbe3a581e0fd6 /lib
parent8f78e527942b81a4e1e0d20c2ee0a76daeb4e1e0 (diff)
downloadu-boot-a80f85138c9457141c799c022b5c924252031512.tar.gz
u-boot-a80f85138c9457141c799c022b5c924252031512.tar.xz
u-boot-a80f85138c9457141c799c022b5c924252031512.zip
trace: select TIMER_EARLY to avoid infinite recursion
When tracing functions is enabled this adds calls to __cyg_profile_func_enter() and __cyg_profile_func_exit() to the traced functions. __cyg_profile_func_enter() and __cyg_profile_func_exit() invoke timer_get_us() to record the entry and exit time. initr_dm() will make gd->dm_root = NULL and gd->timer = NULL, so timer_get_us() -> get_ticks() -> dm_timer_init() will lead to an indefinite recursion. So select TIMER_EARLY when tracing got enabled. Signed-off-by: Pragnesh Patel <pragnesh.patel@sifive.com> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Rick Chen <rick@andestech.com>
Diffstat (limited to 'lib')
-rw-r--r--lib/Kconfig1
1 files changed, 1 insertions, 0 deletions
diff --git a/lib/Kconfig b/lib/Kconfig
index a704568443..9b9177f2aa 100644
--- a/lib/Kconfig
+++ b/lib/Kconfig
@@ -210,6 +210,7 @@ config BITREVERSE
config TRACE
bool "Support for tracing of function calls and timing"
imply CMD_TRACE
+ select TIMER_EARLY
help
Enables function tracing within U-Boot. This allows recording of call
traces including timing information. The command can write data to