From: Detlev Zundel <dzu@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] POST related question
Date: Thu, 11 Feb 2010 10:49:30 +0100 [thread overview]
Message-ID: <m28wb0rtjp.fsf@ohwell.denx.de> (raw)
In-Reply-To: <660c0f821002110053r651933cbl7e2e6f7030ab367c@mail.gmail.com> (Michael Zaidman's message of "Thu, 11 Feb 2010 10:53:36 +0200")
Hi Michael,
> On Wed, Feb 10, 2010 at 5:54 PM, Detlev Zundel <dzu@denx.de> wrote:
>> Hi Michael,
>>
>>> Working on the POST for our board (which I am going to submit
>>> to the u-boot in the near future) I was asked to output the POST tests
>>> sequence progress to the dedicated LEDs (current test?s index and
>>> test?s result ? PASS or FAIL) in addition to the conventional console
>>> output. Such indication can be helpful at the customer premises when
>>> console is not available as well as at the production testing/diagnostics
>>> to understand which POST test has failed while serial console does not
>>> show signs of life.
>>> In order to fulfill this requirement I see two possibilities:
>>>
>>> 1) Common infrastructure change - add pre-test and after test callbacks
>>> to the post_test structure in the tests.c file. Call these callbacks
>>> before and after each POST test in the post_run_single routine of post.c file.
>>>
>>> 2) Local, board specific change ? duplicate all necessary POST tests into
>>> specific board folder and add output to LEDs interface into every
>>> xxxx_post_test routine.
>>>
>>> Please advise.
>>
>> Thinking about it, why can't we 3) introduce show_post_progress(). ?It
>> seems to me that the show_boot_progress (grep the README) implements
>> exactly the same idea for the boot process, so it would make sense to
>> re-use the implementation idea. ?Nowadays we could solve the overrideing
>> with weak functions.
>>
>> What do you think?
>>
[...]
> Actually the option #3 is very similar to the #1 option about which I thought
> also before my first post? However, option #1 has few advantages as:
>
> a) Flexibility - it is not restricted to the progress status only;
> rather it can be
> customized for additional functionality such as printing of extended user
> notification before and after specific test or doing something else?
>
> b) In the case of slow POST tests it will be especially helpful to know which
> test is currently executing, immediately at the beginning of the test (form
> within pre-test phase) while the test?s results will come long time after this
> moment and can be indicated via after-test phase.
>
> Again, we need such indication only when POST output for some reason is
> not available via serial console.
>
> Of course, these pre/after callbacks can be added explicitly at the
> beginning/end
> of every post test (what is actually the option #3) but making them to
> be a part of
> the post_test structure keeps code smaller and more readable.
>
> I agree that the show_boot_progress is good approach in general but in the POST
> system where we have the callback infrastructure already in place why
> do not use
> its advantages?
Ok, maybe we should get more specific here. If I understand you
correctly, your original option #1 would add two callback fields to the
post_test structure post_list in tests.c, right? I believe this to be
real overkill - this allows for potentialle 2 times the number of tests
different functions to be called, whereas I would imagine that at most
two functions will be used in reality, i.e. one before a test runs -
called with an argument of what test will be started - and one after the
test ran - again called with an argument indicating the test.
My original idea of only onw function still makes sense to me in that I
myself would want to keep the code doing indications to the user in one
central place. So maybe we could have a show_post_progress(int index,
int before, int result) which is called from the common infrastructure
with the corresponding values before and after a test. In this setup
one should be able to produce meaningful output through whatever means
are available and it boils down to very little code in the end.
Do you believe you need more flexibility?
Cheers
Detlev
--
The structure of a system reflects the structure of the organization
that built it.
-- Richard E. Fairley
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-40 Fax: (+49)-8142-66989-80 Email: dzu at denx.de
next prev parent reply other threads:[~2010-02-11 9:49 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-02-10 9:59 [U-Boot] POST related question Michael Zaidman
[not found] ` <20100210132826.3221C4C04E@gemini.denx.de>
2010-02-10 14:33 ` Michael Zaidman
2010-02-10 14:36 ` Michael Zaidman
2010-02-10 15:54 ` Detlev Zundel
2010-02-11 8:53 ` Michael Zaidman
2010-02-11 9:49 ` Detlev Zundel [this message]
2010-02-11 10:29 ` Michael Zaidman
2010-02-11 11:43 ` Detlev Zundel
2010-02-11 12:49 ` Michael Zaidman
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=m28wb0rtjp.fsf@ohwell.denx.de \
--to=dzu@denx.de \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox