[U-Boot] [RFC PATCH v2 15/15] bootstage: arm: Add bootstage calls in board and bootm

Simon Glass
2012-01-12T05:38:13Z

Hi Mike,

On Mon, Jan 9, 2012 at 9:31 AM, Mike Frysinger <vapier@gentoo.org> wrote:
> On Sunday 08 January 2012 18:48:18 Simon Glass wrote:
>> On Sun, Jan 8, 2012 at 11:58 AM, Mike Frysinger wrote:
>> > On Sunday 08 January 2012 12:43:09 Simon Glass wrote:
>> >> On Sun, Jan 8, 2012 at 12:36 AM, Mike Frysinger wrote:
>> >> > On Saturday 10 December 2011 16:08:07 Simon Glass wrote:
>> >> >> --- a/arch/arm/lib/bootm.c
>> >> >> +++ b/arch/arm/lib/bootm.c
>> >> >>
>> >> >> ?static void announce_and_cleanup(void)
>> >> >> ?{
>> >> >> ? ? ? printf("\nStarting kernel ...\n\n");
>> >> >> + ? ? bootstage_mark_name(BOOTSTAGE_ID_BOOTM_HANDOFF,
>> >> >> "start_kernel"); +#ifdef CONFIG_BOOTSTAGE_REPORT
>> >> >> + ? ? bootstage_report();
>> >> >> +#endif
>> >> >
>> >> > shouldn't the header make bootstage_report() into a stub when
>> >> > CONFIG_BOOTSTAGE_REPORT isn't defined ? ?then you won't need the ifdef
>> >> > protection here.
>> >>
>> >> Well maybe. I am hoping for a link error if someone calls it without
>> >> defining that CONFIG. Otherwise it could be very confusing for people
>> >> that they can't get a report!
>> >
>> > i'm not sure we need worry about that
>>
>> I have had another look at this. The idea is that anyone can call
>> bootstage_report() to get a report, but if they define
>> CONFIG_BOOTSTAGE_REPORT then one is printing automatically by U-Boot
>> just before jumping to the kernel.
>>
>> So I don't want this define to remove the ability to print a report,
>> just to enable printing a report at a time which is hopefully
>> suitable.
>>
>> Does that make sense?
>
> ok, so we have:
> #ifdef CONFIG_BOOTSTAGE
> extern void bootstage_report(void);
> #else
> #define bootstage_report()
> #endif
>
> and CONFIG_BOOTSTAGE_REPORT controls the automatic calls to the report func
>
> is the arm-specific bootm hooks the best place for this ? ?wouldn't putting
> this into the common bootm code be better ?

Well the intent is to do this at the last moment. I actually have a
patch which does a 'fake' run through all the bootm code and does the
report after that, so we see everything that is happening before we
settle on and print out our timings.

announce_and_cleanup() is about as close to the end as I can get :-)

Regards,
Simon

> -mike