diff options
| author | Albert ARIBAUD <albert.u.boot@aribaud.net> | 2013-05-30 14:45:06 +0200 | 
|---|---|---|
| committer | Albert ARIBAUD <albert.u.boot@aribaud.net> | 2013-05-30 14:45:06 +0200 | 
| commit | a19b0dd62d7b8efc658fa1aa685ff5665878f3ee (patch) | |
| tree | 1fadf0fb3da83203ba28f209ec99e1b33e03f4d5 /include/bootstage.h | |
| parent | 60985bba58e7695dac1fddae8cdbb62d8cfd1254 (diff) | |
| parent | a71d45d706a5b51c348160163b6c159632273fed (diff) | |
| download | olio-uboot-2014.01-a19b0dd62d7b8efc658fa1aa685ff5665878f3ee.tar.xz olio-uboot-2014.01-a19b0dd62d7b8efc658fa1aa685ff5665878f3ee.zip | |
Merge branch 'u-boot/master' into 'u-boot-arm/master'
Conflicts:
	common/cmd_fpga.c
	drivers/usb/host/ohci-at91.c
Diffstat (limited to 'include/bootstage.h')
| -rw-r--r-- | include/bootstage.h | 59 | 
1 files changed, 57 insertions, 2 deletions
| diff --git a/include/bootstage.h b/include/bootstage.h index 3b2216b8a..6dc0422ba 100644 --- a/include/bootstage.h +++ b/include/bootstage.h @@ -221,7 +221,7 @@ enum bootstage_id {   */  ulong timer_get_boot_us(void); -#ifndef CONFIG_SPL_BUILD +#if !defined(CONFIG_SPL_BUILD) && !defined(USE_HOSTCC)  /*   * Board code can implement show_boot_progress() if needed.   * @@ -233,10 +233,21 @@ void show_boot_progress(int val);  #define show_boot_progress(val) do {} while (0)  #endif -#if defined(CONFIG_BOOTSTAGE) && !defined(CONFIG_SPL_BUILD) +#if defined(CONFIG_BOOTSTAGE) && !defined(CONFIG_SPL_BUILD) && \ +	!defined(USE_HOSTCC)  /* This is the full bootstage implementation */  /** + * Relocate existing bootstage records + * + * Call this after relocation has happened and after malloc has been initted. + * We need to copy any pointers in bootstage records that were added pre- + * relocation, since memory can be overritten later. + * @return Always returns 0, to indicate success + */ +int bootstage_relocate(void); + +/**   * Add a new bootstage record   *   * @param id	Bootstage ID to use (ignored if flags & BOOTSTAGEF_ALLOC) @@ -257,6 +268,19 @@ ulong bootstage_error(enum bootstage_id id);  ulong bootstage_mark_name(enum bootstage_id id, const char *name);  /** + * Mark a time stamp in the given function and line number + * + * See BOOTSTAGE_MARKER() for a convenient macro. + * + * @param file		Filename to record (NULL if none) + * @param func		Function name to record + * @param linenum	Line number to record + * @return recorded time stamp + */ +ulong bootstage_mark_code(const char *file, const char *func, +			  int linenum); + +/**   * Mark the start of a bootstage activity. The end will be marked later with   * bootstage_accum() and at that point we accumulate the time taken. Calling   * this function turns the given id into a accumulator rather than and @@ -315,11 +339,22 @@ int bootstage_stash(void *base, int size);  int bootstage_unstash(void *base, int size);  #else +static inline ulong bootstage_add_record(enum bootstage_id id, +		const char *name, int flags, ulong mark) +{ +	return 0; +} +  /*   * This is a dummy implementation which just calls show_boot_progress(),   * and won't even do that unless CONFIG_SHOW_BOOT_PROGRESS is defined   */ +static inline int bootstage_relocate(void) +{ +	return 0; +} +  static inline ulong bootstage_mark(enum bootstage_id id)  {  	show_boot_progress(id); @@ -337,6 +372,22 @@ static inline ulong bootstage_mark_name(enum bootstage_id id, const char *name)  	return 0;  } +static inline ulong bootstage_mark_code(const char *file, const char *func, +					int linenum) +{ +	return 0; +} + +static inline uint32_t bootstage_start(enum bootstage_id id, const char *name) +{ +	return 0; +} + +static inline uint32_t bootstage_accum(enum bootstage_id id) +{ +	return 0; +} +  static inline int bootstage_stash(void *base, int size)  {  	return 0;	/* Pretend to succeed */ @@ -348,4 +399,8 @@ static inline int bootstage_unstash(void *base, int size)  }  #endif /* CONFIG_BOOTSTAGE */ +/* Helper macro for adding a bootstage to a line of code */ +#define BOOTSTAGE_MARKER()	\ +		bootstage_mark_code(__FILE__, __func__, __LINE__) +  #endif |