>-----Original Message----- >From: Simon Glass <s...@chromium.org> >Sent: 18 November 2020 20:07 >To: Pragnesh Patel <pragnesh.pa...@openfive.com> >Cc: Heinrich Schuchardt <xypron.g...@gmx.de>; U-Boot Mailing List <u- >b...@lists.denx.de> >Subject: Re: [PATCH] common/board_r: make sure to call initr_dm() before >initr_trace() > >[External Email] Do not click links or attachments unless you recognize the >sender and know the content is safe > >Hi Pragnesh, > >On Mon, 16 Nov 2020 at 22:23, Pragnesh Patel <pragnesh.pa...@openfive.com> >wrote: >> >> Hi, >> >> >-----Original Message----- >> >From: Simon Glass <s...@chromium.org> >> >Sent: 17 November 2020 05:23 >> >To: Pragnesh Patel <pragnesh.pa...@openfive.com> >> >Cc: Heinrich Schuchardt <xypron.g...@gmx.de>; U-Boot Mailing List <u- >> >b...@lists.denx.de> >> >Subject: Re: [PATCH] common/board_r: make sure to call initr_dm() >> >before >> >initr_trace() >> > >> >[External Email] Do not click links or attachments unless you >> >recognize the sender and know the content is safe >> > >> >Hi, >> > >> >On Sun, 15 Nov 2020 at 05:16, Pragnesh Patel >> ><pragnesh.pa...@openfive.com> >> >wrote: >> >> >> >> Hi Heinrich, >> >> >> >> >-----Original Message----- >> >> >From: Heinrich Schuchardt <xypron.g...@gmx.de> >> >> >Sent: 12 November 2020 18:02 >> >> >To: Pragnesh Patel <pragnesh.pa...@openfive.com> >> >> >Cc: U-Boot Mailing List <u-boot@lists.denx.de>; Simon Glass >> >> ><s...@chromium.org> >> >> >Subject: Re: [PATCH] common/board_r: make sure to call initr_dm() >> >> >before >> >> >initr_trace() >> >> > >> >> >[External Email] Do not click links or attachments unless you >> >> >recognize the sender and know the content is safe >> >> > >> >> >On 11/12/20 12:18 PM, Pragnesh Patel wrote: >> >> >> Tracing need timer ticks and initr_dm() will make gd->timer and >> >> >> gd->dm_root is equal to NULL, so make sure that initr_dm() to >> >> >> call before tracing got enabled. >> >> >> >> >> >> Signed-off-by: Pragnesh Patel <pragnesh.pa...@sifive.com> >> >> >> --- >> >> >> common/board_r.c | 6 +++--- >> >> >> 1 file changed, 3 insertions(+), 3 deletions(-) >> >> >> >> >> >> diff --git a/common/board_r.c b/common/board_r.c index >> >> >> 29dd7d26d9..7140a39947 100644 >> >> >> --- a/common/board_r.c >> >> >> +++ b/common/board_r.c >> >> >> @@ -693,6 +693,9 @@ static int run_main_loop(void) >> >> >> * TODO: perhaps reset the watchdog in the initcall function after >> >> >> each >call? >> >> >> */ >> >> >> static init_fnc_t init_sequence_r[] = { >> >> >> +#ifdef CONFIG_DM >> >> >> + initr_dm, >> >> >> +#endif >> >> >> initr_trace, >> >> >> initr_reloc, >> >> >> /* TODO: could x86/PPC have this also perhaps? */ @@ >> >> >> -718,9 >> >> >> +721,6 @@ static init_fnc_t init_sequence_r[] = { >> >> >> initr_noncached, >> >> >> #endif >> >> >> initr_of_live, >> >> >> -#ifdef CONFIG_DM >> >> >> - initr_dm, >> >> >> -#endif >> >> > >> >> >You are moving initr_of_live before initr_of_live. I doubt this >> >> >will work for boards that have CONFIG_OF_LIVE=y. >> >> >> >> yes you are right. It will not work for CONFIG_OF_LIVE. >> >> >> >> > >> >> >Can't we move initr_trace down in the code to after both >> >> >initr_of_live and initr_dm? >> >> > >> >> >@Simon: >> >> >Please, advise. >> >> >> >> I am okay with this suggestion. >> > >> >Actually can we use the early timer for this case? >> > >> >DM init is a part of U-Boot and not being able to trace it would be >unfortunate. >> >> Got it. >> >> If someone wants to use tracing without TIMER_EARLY then >> >> - initr_dm() will make gd->dm_root = NULL; and gd->timer = NULL; and >> __cyg_profile_func_enter () will call timer_get_us() -> get_ticks() -> >dm_timer_init(). >> >> dm_timer_init() will not able to initialize timer and return an error. >> >> We need to find any solution for this. > >How about we make TRACE select or depend on TIMER_EARLY?
I am okay with this. Better to make TRACE select TIMER_EARLY. > >Regards, >Simon