]> Git Repo - J-u-boot.git/blobdiff - common/bootstage.c
xpl: Rename spl_phase() to xpl_phase()
[J-u-boot.git] / common / bootstage.c
index 0fd33be97eae7d76309df1dbe536f1ecff816ba6..dca331481923df20199cad50dbe1620bf4038407 100644 (file)
@@ -3,7 +3,6 @@
  * Copyright (c) 2011, Google Inc. All rights reserved.
  */
 
-
 /*
  * This module records the progress of boot and arbitrary commands, and
  * permits accurate timestamping of each.
@@ -11,7 +10,6 @@
 
 #define LOG_CATEGORY   LOGC_BOOT
 
-#include <common.h>
 #include <bootstage.h>
 #include <hang.h>
 #include <log.h>
@@ -56,12 +54,16 @@ struct bootstage_hdr {
        u32 next_id;            /* Next ID to use for bootstage */
 };
 
-int bootstage_relocate(void)
+int bootstage_relocate(void *to)
 {
-       struct bootstage_data *data = gd->bootstage;
+       struct bootstage_data *data;
        int i;
        char *ptr;
 
+       debug("Copying bootstage from %p to %p\n", gd->bootstage, to);
+       memcpy(to, gd->bootstage, sizeof(struct bootstage_data));
+       data = gd->bootstage = to;
+
        /* Figure out where to relocate the strings to */
        ptr = (char *)(data + 1);
 
@@ -137,7 +139,7 @@ ulong bootstage_add_record(enum bootstage_id id, const char *name,
                        rec->flags = flags;
                        rec->id = id;
                } else {
-                       log_warning("Bootstage space exhasuted\n");
+                       log_warning("Bootstage space exhausted\n");
                }
        }
 
@@ -147,15 +149,9 @@ ulong bootstage_add_record(enum bootstage_id id, const char *name,
        return mark;
 }
 
-
-ulong bootstage_mark(enum bootstage_id id)
-{
-       return bootstage_add_record(id, NULL, 0, timer_get_boot_us());
-}
-
-ulong bootstage_error(enum bootstage_id id)
+ulong bootstage_error_name(enum bootstage_id id, const char *name)
 {
-       return bootstage_add_record(id, NULL, BOOTSTAGEF_ERROR,
+       return bootstage_add_record(id, name, BOOTSTAGEF_ERROR,
                                    timer_get_boot_us());
 }
 
@@ -493,7 +489,7 @@ int bootstage_unstash(const void *base, int size)
        for (rec = data->record + data->next_id, i = 0; i < hdr->count;
             i++, rec++) {
                rec->name = ptr;
-               if (spl_phase() == PHASE_SPL)
+               if (xpl_phase() == PHASE_SPL)
                        rec->name = strdup(ptr);
 
                /* Assume no data corruption here */
@@ -508,6 +504,22 @@ int bootstage_unstash(const void *base, int size)
        return 0;
 }
 
+#if IS_ENABLED(CONFIG_BOOTSTAGE_STASH)
+int _bootstage_stash_default(void)
+{
+       return bootstage_stash(map_sysmem(CONFIG_BOOTSTAGE_STASH_ADDR, 0),
+                              CONFIG_BOOTSTAGE_STASH_SIZE);
+}
+
+int _bootstage_unstash_default(void)
+{
+       const void *stash = map_sysmem(CONFIG_BOOTSTAGE_STASH_ADDR,
+                                      CONFIG_BOOTSTAGE_STASH_SIZE);
+
+       return bootstage_unstash(stash, CONFIG_BOOTSTAGE_STASH_SIZE);
+}
+#endif
+
 int bootstage_get_size(void)
 {
        struct bootstage_data *data = gd->bootstage;
This page took 0.028199 seconds and 4 git commands to generate.