summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2012-01-14 15:24:44 +0000
committerWolfgang Denk <wd@denx.de>2012-03-18 20:43:38 +0100
commit097e17836d9e8d3f5abb5987f8ac706168d1c2ec (patch)
tree1e3573b3845c321658e77b12ae8d5d7e2c2e0202
parent6eee21daf3d1cabad8a4dfaf6641d8845ee7578a (diff)
bootstage: Create an initial header for boot progress integers
At present boot_stage_progress() is called with various magic numbers. The new bootstage.h header will be used to turn these into symbolic names throughout the code. The intent is not that these numbers are passed to Linux. In fact by using an enum to track them we should eventually be able to remove the explict numbers and just have the stages count up from 0. Signed-off-by: Simon Glass <sjg@chromium.org>
-rw-r--r--include/bootstage.h58
-rw-r--r--include/common.h6
2 files changed, 60 insertions, 4 deletions
diff --git a/include/bootstage.h b/include/bootstage.h
new file mode 100644
index 00000000000..ddfb07a2251
--- /dev/null
+++ b/include/bootstage.h
@@ -0,0 +1,58 @@
+/*
+ * This file implements recording of each stage of the boot process. It is
+ * intended to implement timing of each stage, reporting this information
+ * to the user and passing it to the OS for logging / further analysis.
+ *
+ * Copyright (c) 2011 The Chromium OS Authors.
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+#ifndef _BOOTSTAGE_H
+#define _BOOTSTAGE_H
+
+/*
+ * A list of boot stages that we know about. Each of these indicates the
+ * state that we are at, and the action that we are about to perform. For
+ * errors, we issue an error for an item when it fails. Therefore the
+ * normal sequence is:
+ *
+ * progress action1
+ * progress action2
+ * progress action3
+ *
+ * and an error condition where action 3 failed would be:
+ *
+ * progress action1
+ * progress action2
+ * progress action3
+ * error on action3
+ */
+enum bootstage_id {
+ BOOTSTAGE_ID_RUN_OS = 15, /* Exiting U-Boot, entering OS */
+};
+
+/*
+ * Board code can implement show_boot_progress() if needed.
+ *
+ * @param val Progress state (enum bootstage_id), or -id if an error
+ * has occurred.
+ */
+void show_boot_progress(int val);
+
+#endif
diff --git a/include/common.h b/include/common.h
index 0bda049819c..399363af1c9 100644
--- a/include/common.h
+++ b/include/common.h
@@ -798,10 +798,8 @@ int pcmcia_init (void);
#ifdef CONFIG_STATUS_LED
# include <status_led.h>
#endif
-/*
- * Board-specific Platform code can reimplement show_boot_progress () if needed
- */
-void show_boot_progress(int val);
+
+#include <bootstage.h>
/* Multicore arch functions */
#ifdef CONFIG_MP