aboutsummaryrefslogtreecommitdiff
path: root/src/include/console
diff options
context:
space:
mode:
authorKyösti Mälkki <kyosti.malkki@gmail.com>2019-11-02 14:12:18 +0200
committerPatrick Georgi <pgeorgi@google.com>2019-11-11 10:31:29 +0000
commit45ddb4344f73051855da6d4e87a5ba4b4c66af71 (patch)
tree1a62d88791bb5ff4ead56d395925829b69a84e54 /src/include/console
parent19825e8e375d1c4d0448e7ffe3bb2e2c230c9eea (diff)
console,boot_state: Exclude printk() from reported times
Use monotonic timer to accumulate the time spent in console code. For bootblock and romstage, only stage total is reported. For ramstage each boot_state is reported individually. Change-Id: Id3998bab553ff803a93257a3f2c7bfea44c31729 Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/36574 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net> Reviewed-by: Nico Huber <nico.h@gmx.de>
Diffstat (limited to 'src/include/console')
-rw-r--r--src/include/console/console.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/include/console/console.h b/src/include/console/console.h
index 1c2a276af0..607c96862e 100644
--- a/src/include/console/console.h
+++ b/src/include/console/console.h
@@ -64,6 +64,11 @@ asmlinkage void console_init(void);
int console_log_level(int msg_level);
void do_putchar(unsigned char byte);
+/* Return number of microseconds elapsed from start of stage or the previous
+ get_and_reset() call. */
+long console_time_get_and_reset(void);
+void console_time_report(void);
+
#define printk(LEVEL, fmt, args...) do_printk(LEVEL, fmt, ##args)
#define vprintk(LEVEL, fmt, args) do_vprintk(LEVEL, fmt, args)
@@ -87,6 +92,8 @@ static inline int console_log_level(int msg_level) { return 0; }
static inline void printk(int LEVEL, const char *fmt, ...) {}
static inline void vprintk(int LEVEL, const char *fmt, va_list args) {}
static inline void do_putchar(unsigned char byte) {}
+static inline long console_time_get_and_reset(void) { return 0; }
+static inline void console_time_report(void) {}
#endif
int do_printk(int msg_level, const char *fmt, ...)