From 4b9758c8ec6103c26228e1cda9731ab8bf1113e9 Mon Sep 17 00:00:00 2001 From: Justus Winter <4winter@informatik.uni-hamburg.de> Date: Tue, 25 Mar 2014 22:25:44 +0100 Subject: i386: improve the immediate console Improve the immediate console to the point that it can be enabled and display e.g. assertion failures from very early on (i.e. from `c_boot_entry'). * device/cons.h (romgetc, romputc): New declarations. * i386/configfrag.ac: Add configuration variable. * i386/i386at/conf.c (dev_name_list): Add entry. * i386/i386at/cons_conf.c (constab): Add entry. * i386/i386at/immc.c: Add missing includes. (immc_cnprobe, immc_cninit, immc_cngetc, immc_romputc): New functions. (immc_cnputc): Fix signature, use virtual addresses. * i386/i386at/immc.h: New file. * i386/i386at/kd.c: Use `#if ENABLE_IMMEDIATE_CONSOLE'. * i386/i386at/kd.h (kd_setpos): Add missing declaration. * i386/i386at/model_dep.c (c_boot_entry): Install immediate console as early boot console. --- device/cons.h | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'device') diff --git a/device/cons.h b/device/cons.h index 8ac796c..34f3bc5 100644 --- a/device/cons.h +++ b/device/cons.h @@ -54,4 +54,15 @@ extern int cngetc(void); extern int cnmaygetc(void); extern void cnputc(char); + +/* + * ROM getc/putc primitives. + * On some architectures, the boot ROM provides basic character input/output + * routines that can be used before devices are configured or virtual memory + * is enabled. This can be useful to debug (or catch panics from) code early + * in the bootstrap procedure. + */ +extern int (*romgetc)(char c); +extern void (*romputc)(char c); + #endif /* _DEVICE_CONS_H */ -- cgit v1.2.3