]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
trace: select TIMER_EARLY to avoid infinite recursion
authorPragnesh Patel <pragnesh.patel@sifive.com>
Sun, 17 Jan 2021 12:41:24 +0000 (18:11 +0530)
committerAndes <uboot@andestech.com>
Mon, 18 Jan 2021 03:06:32 +0000 (11:06 +0800)
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>
lib/Kconfig

index a704568443c9580377f562099c222bd853d24724..9b9177f2aae60d67806614653932874210ea66ac 100644 (file)
@@ -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