bootstage: Create an initial header for boot progress integers
authorSimon Glass <sjg@chromium.org>
Sat, 14 Jan 2012 15:24:44 +0000 (15:24 +0000)
committerWolfgang Denk <wd@denx.de>
Sun, 18 Mar 2012 19:43:38 +0000 (20:43 +0100)
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>
include/bootstage.h [new file with mode: 0644]
include/common.h

diff --git a/include/bootstage.h b/include/bootstage.h
new file mode 100644 (file)
index 0000000..ddfb07a
--- /dev/null
@@ -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
index 0bda049819cf37a43a75585a82474af8effbc22c..399363af1c92a994eb80d2cb241aa5454524e13b 100644 (file)
@@ -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