[U-Boot] [PATCH] POST progress API
Michael Zaidman
michael.zaidman at gmail.com
Mon Mar 1 10:47:36 CET 2010
Added POST progress API implemented as weak calls before and after
each call to the POST test callback in the post_run_single routine
of the post.c file.
Signed-off-by: Michael Zaidman <michael.zaidman at gmail.com>
---
include/post.h | 5 +++++
post/post.c | 17 +++++++++++++++--
2 files changed, 20 insertions(+), 2 deletions(-)
diff --git a/include/post.h b/include/post.h
index 9fcd3ce..ff83bce 100644
--- a/include/post.h
+++ b/include/post.h
@@ -53,6 +53,11 @@
#define POST_FAIL_SAVE 0x80
+#define POST_BEFORE 1
+#define POST_AFTER 0
+#define POST_PASSED 1
+#define POST_FAILED 0
+
#ifndef __ASSEMBLY__
struct post_test {
diff --git a/post/post.c b/post/post.c
index b29eb87..00e8353 100644
--- a/post/post.c
+++ b/post/post.c
@@ -231,6 +231,12 @@ static void post_get_flags (int *test_flags)
}
}
+void __show_post_progress (unsigned int test_num, int before, int result)
+{
+}
+void show_post_progress (unsigned int, int, int)
+ __attribute__((weak, alias("__show_post_progress")));
+
static int post_run_single (struct post_test *test,
int test_flags, int flags, unsigned int i)
{
@@ -248,13 +254,18 @@ static int post_run_single (struct post_test *test,
if (test_flags & POST_PREREL)
post_log_mark_start ( test->testid );
else
- post_log ("POST %s ", test->cmd);
+ post_log ("POST %s ", test->cmd);
}
+ show_post_progress(i, POST_BEFORE, POST_FAILED);
+
if (test_flags & POST_PREREL) {
- if ((*test->test) (flags) == 0)
+ if ((*test->test) (flags) == 0) {
post_log_mark_succ ( test->testid );
+ show_post_progress(i, POST_AFTER, POST_PASSED);
+ }
else {
+ show_post_progress(i, POST_AFTER, POST_FAILED);
if (test_flags & POST_CRITICAL)
gd->flags |= GD_FLG_POSTFAIL;
if (test_flags & POST_STOP)
@@ -264,6 +275,7 @@ static int post_run_single (struct post_test *test,
if ((*test->test) (flags) != 0) {
post_log ("FAILED\n");
show_boot_progress (-32);
+ show_post_progress(i, POST_AFTER, POST_FAILED);
if (test_flags & POST_CRITICAL)
gd->flags |= GD_FLG_POSTFAIL;
if (test_flags & POST_STOP)
@@ -271,6 +283,7 @@ static int post_run_single (struct post_test *test,
}
else
post_log ("PASSED\n");
+ show_post_progress(i, POST_AFTER, POST_PASSED);
}
if ((test_flags & POST_REBOOT) && !(flags & POST_MANUAL)) {
--
1.6.3.3
More information about the U-Boot
mailing list