[U-Boot] how does one "extend" the list of POST tests?
Robert P. J. Day
rpjday at crashcourse.ca
Tue Mar 29 14:05:49 CEST 2016
On Tue, 29 Mar 2016, Robert P. J. Day wrote:
> one more question, i think, on the framework of u-boot POST tests.
> the README.POST file states:
>
> o) Extensibility
>
> The framework shall allow adding/removing/replacing POST tests.
> Also, standalone POST tests shall be supported.
>
> how many different ways are there to extend the list of POST tests?
>
> given that post/tests.c defines the list of tests statically, you
> clearly can't *dynamically* add tests. i do see that that list of
> tests includes the generic tests:
>
> #if CONFIG_POST & CONFIG_SYS_POST_BSPEC1
> CONFIG_POST_BSPEC1,
> #endif
> #if CONFIG_POST & CONFIG_SYS_POST_BSPEC2
> CONFIG_POST_BSPEC2,
> #endif
> #if CONFIG_POST & CONFIG_SYS_POST_BSPEC3
> CONFIG_POST_BSPEC3,
> #endif
> #if CONFIG_POST & CONFIG_SYS_POST_BSPEC4
> CONFIG_POST_BSPEC4,
> #endif
> #if CONFIG_POST & CONFIG_SYS_POST_BSPEC5
> CONFIG_POST_BSPEC5,
> #endif
>
> so, sure, one can take advantage of any of those five available test
> slots, but that's not really a general solution.
>
> so other than editing post/tests.c and manually adding more tests,
> is there any other mechanism for adding POST tests?
whoops, i just noticed the ability to add tests through the
environment in post/post.c:
#ifndef CONFIG_POST_SKIP_ENV_FLAGS
static void post_get_env_flags(int *test_flags)
{
int flag[] = { POST_POWERON, POST_NORMAL, POST_SLOWTEST,
POST_CRITICAL };
char *var[] = { "post_poweron", "post_normal", "post_slowtest",
"post_critical" };
as i read it, that still limits one to selecting tests already
implemented, but it's still an increase in flexibility. will keep
reading ...
rday
p.s. once i nail all this down, i plan on submitting a few more
patches, and writing this up for public consumption on my wiki.
p.p.s. if anyone has a board-specific implementation of some POST
tests they want to share, i can use all the examples i can get.
--
========================================================================
Robert P. J. Day Ottawa, Ontario, CANADA
http://crashcourse.ca
Twitter: http://twitter.com/rpjday
LinkedIn: http://ca.linkedin.com/in/rpjday
========================================================================
More information about the U-Boot
mailing list