Message ID | 1315837122-11952-5-git-send-email-valentin.longchamp@keymile.com |
---|---|
State | Accepted |
Delegated to: | Wolfgang Denk |
Headers | show |
Dear Valentin Longchamp, In message <1315837122-11952-5-git-send-email-valentin.longchamp@keymile.com> you wrote: > 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> > Acked-by: Mike Frysinger <vapier@gentoo.org> > --- > post/post.c | 20 +++++++++++++++----- > 1 files changed, 15 insertions(+), 5 deletions(-) Applied, thanks. Best regards, Wolfgang Denk
diff --git a/post/post.c b/post/post.c index 61acf8d..1ee0a29 100644 --- a/post/post.c +++ b/post/post.c @@ -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) {