diff mbox

[U-Boot,v4,4/8] POST: make env test flags fetching optional

Message ID 1315837122-11952-5-git-send-email-valentin.longchamp@keymile.com
State Accepted
Delegated to: Wolfgang Denk
Headers show

Commit Message

Valentin Longchamp Sept. 12, 2011, 2:18 p.m. UTC
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(-)

Comments

Wolfgang Denk Oct. 5, 2011, 6:52 p.m. UTC | #1
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 mbox

Patch

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) {