POST: make env test flags fetching optional

Some boards have the environment variables defined in a slow EEPROM. post_run
accesses these environment variables to define which tests have to be run (in
post_get_flags). This is very slow before the code relocation on some boards
with a slow I2C EEPROM for environement variables.

This patch adds a config option to skip the fetching of the test flags in the
environment variables. The test flags assigned to the tests then only are the
ones statically defined for the test in post/tests.c.

Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com>
Signed-off-by: Holger Brunck <holger.brunck@keymile.com>
This commit is contained in:
Valentin Longchamp 2011-08-03 02:37:02 +00:00 committed by Wolfgang Denk
parent 79843950b2
commit 212a0cafad
1 changed files with 15 additions and 5 deletions

View File

@ -191,7 +191,8 @@ static void post_bootmode_test_off (void)
post_word_store (word);
}
static void post_get_flags (int *test_flags)
#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 };
@ -204,10 +205,6 @@ static void post_get_flags (int *test_flags)
int last;
int i, j;
for (j = 0; j < post_list_size; j++) {
test_flags[j] = post_list[j].flags;
}
for (i = 0; i < varnum; i++) {
if (getenv_f(var[i], list, sizeof (list)) <= 0)
continue;
@ -245,6 +242,19 @@ static void post_get_flags (int *test_flags)
name = s + 1;
}
}
}
#endif
static void post_get_flags(int *test_flags)
{
int j;
for (j = 0; j < post_list_size; j++)
test_flags[j] = post_list[j].flags;
#ifndef CONFIG_POST_SKIP_ENV_FLAGS
post_get_env_flags(test_flags);
#endif
for (j = 0; j < post_list_size; j++) {
if (test_flags[j] & POST_POWERON) {