[U-Boot] [PATCH v3 13/15] bootstage: Implement core microsecond boot time measurement

Simon Glass sjg at chromium.org
Tue Mar 20 06:44:06 CET 2012


Hi Wolfgang,

On Mon, Mar 19, 2012 at 12:13 AM, Wolfgang Denk <wd at denx.de> wrote:
> Dear Simon Glass,
>
> In message <1326590698-7767-14-git-send-email-sjg at chromium.org> you wrote:
>> This defines the basics of a new boot time measurement feature. This allows
>> logging of very accurate time measurements as the boot proceeds, by using
>> an available microsecond counter.
>>
>> To enable the feature, define CONFIG_BOOTSTAGE in your board config file.
>> Also available is CONFIG_BOOTSTAGE_REPORT which will cause a report to be
>> printed just before handing off to the OS.
>>
>> Most IDs are not named at this stage. For that I would first like to
>> renumber them all.
>
> Hm.... I'm not sure what happened.
>
> I am positively sure (and I just checked again in the bash history)
> that I did apply the correct version of "[PATCH v3 11/15] timer: add
> microsecond boot func".
>
> However, the repository appears to have an old version instead:
>
>        f933e84   2012-03-18 21:43:17 +0100   bootstage: arm: Add bootstage calls in board and bootm
>        573f14f   2012-03-18 21:42:56 +0100   bootstage: Plumb in bootstage calls for basic operations
>        3a608ca   2012-03-18 21:42:14 +0100   bootstage: Implement core microsecond boot time measurement
>        770605e   2012-03-18 21:41:39 +0100   bootstage: Replace show_boot_progress/error() with bootstage_...()
> ==>     5ff5539   2012-03-18 21:33:53 +0100   bootstage: Define an optional microsecond timer
>        aacc8c1   2012-03-18 21:33:32 +0100   bootstage: Convert FIT progress numbers to enums
>        c8e66db   2012-03-18 21:33:05 +0100   bootstage: Convert net progress numbers to enums
>        cd24a6b   2012-03-18 21:27:20 +0100   bootstage: Convert NAND progress numbers to enums
>        90e153d   2012-03-18 21:24:21 +0100   bootstage: Convert IDE progress numbers to enums
>        8ade950   2012-03-18 21:16:22 +0100   bootstage: Convert progress numbers 20-41 to enums
>        5e41088   2012-03-18 20:59:53 +0100   bootstage: Convert progress numbers 10-19 to enums
>        5dc8871   2012-03-18 20:57:37 +0100   bootstage: Convert progress numbers 1-9 into enums
>        5ddb118   2012-03-18 20:56:00 +0100   bootstage: Use show_boot_error() for -ve progress numbers
>        578ac1e   2012-03-18 20:45:57 +0100   bootstage: Make use of BOOTSTAGE_ID_RUN_OS in show_boot_progress()
>        097e178   2012-03-18 20:43:38 +0100   bootstage: Create an initial header for boot progress integers
>
>
> I cannot reproduce it, but it seems patchworked palyed some trick on
> me (it has also beenx extremely slow last night - eventually some
> works was going on there?).
>
>
> Anyway. Fact is, the current mainline code contains a broken patch,
> which breaks for example the PMC440 board:
>
> Configuring for PMC440 board...
> /work/wd/tmp-ppc/examples/api/time.o: In function `__timer_get_boot_us':
> /home/wd/git/u-boot/work/lib/time.c:60: undefined reference to `get_timer'
> /home/wd/git/u-boot/work/lib/time.c:61: undefined reference to `get_timer'
> make[1]: *** [/work/wd/tmp-ppc/examples/api/demo] Error 1
>
>
> Can you please have a look and provide an incremental patch to bring mainline back in sync with your current code base?

Yes I will send one though. But this is my mistake, not yours. I did
not get around to sending an updated patch - I was in fact going to
ask about the best solution for it, as I was thinking of moving the
timer function into bootstage.c.

Anyway I will send a patch as is, but if you would rather the function
move so we can remove the #ifdef let me know.

Regards,
Simon

>
> Thanks.
>
> Best regards,
>
> Wolfgang Denk
>
> --
> DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
> HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
> Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
> Each team building another component has been using the  most  recent
> tested  version  of the integrated system as a test bed for debugging
> its piece. Their work will be set back by having that test bed change
> under them. Of course it must. But the changes need to be  quantized.
> Then  each  user  has periods of productive stability, interrupted by
> bursts of test-bed change. This seems to be much less disruptive than
> a constant rippling and trembling.
>                     - Frederick Brooks Jr., "The Mythical Man Month"


More information about the U-Boot mailing list