|
@@ -33,13 +33,9 @@
|
|
|
|
|
|
DECLARE_GLOBAL_DATA_PTR;
|
|
|
|
|
|
-enum bootstage_flags {
|
|
|
- BOOTSTAGEF_ERROR = 1 << 0, /* Error record */
|
|
|
- BOOTSTAGEF_ALLOC = 1 << 1, /* Allocate an id */
|
|
|
-};
|
|
|
-
|
|
|
struct bootstage_record {
|
|
|
ulong time_us;
|
|
|
+ uint32_t start_us;
|
|
|
const char *name;
|
|
|
int flags; /* see enum bootstage_flags */
|
|
|
enum bootstage_id id;
|
|
@@ -49,10 +45,9 @@ static struct bootstage_record record[BOOTSTAGE_ID_COUNT] = { {1} };
|
|
|
static int next_id = BOOTSTAGE_ID_USER;
|
|
|
|
|
|
ulong bootstage_add_record(enum bootstage_id id, const char *name,
|
|
|
- int flags)
|
|
|
+ int flags, ulong mark)
|
|
|
{
|
|
|
struct bootstage_record *rec;
|
|
|
- ulong mark = timer_get_boot_us();
|
|
|
|
|
|
if (flags & BOOTSTAGEF_ALLOC)
|
|
|
id = next_id++;
|
|
@@ -77,12 +72,13 @@ ulong bootstage_add_record(enum bootstage_id id, const char *name,
|
|
|
|
|
|
ulong bootstage_mark(enum bootstage_id id)
|
|
|
{
|
|
|
- return bootstage_add_record(id, NULL, 0);
|
|
|
+ return bootstage_add_record(id, NULL, 0, timer_get_boot_us());
|
|
|
}
|
|
|
|
|
|
ulong bootstage_error(enum bootstage_id id)
|
|
|
{
|
|
|
- return bootstage_add_record(id, NULL, BOOTSTAGEF_ERROR);
|
|
|
+ return bootstage_add_record(id, NULL, BOOTSTAGEF_ERROR,
|
|
|
+ timer_get_boot_us());
|
|
|
}
|
|
|
|
|
|
ulong bootstage_mark_name(enum bootstage_id id, const char *name)
|
|
@@ -91,7 +87,7 @@ ulong bootstage_mark_name(enum bootstage_id id, const char *name)
|
|
|
|
|
|
if (id == BOOTSTAGE_ID_ALLOC)
|
|
|
flags = BOOTSTAGEF_ALLOC;
|
|
|
- return bootstage_add_record(id, name, flags);
|
|
|
+ return bootstage_add_record(id, name, flags, timer_get_boot_us());
|
|
|
}
|
|
|
|
|
|
static void print_time(unsigned long us_time)
|