diff options
author | Justus Winter <4winter@informatik.uni-hamburg.de> | 2014-03-25 22:25:44 +0100 |
---|---|---|
committer | Justus Winter <4winter@informatik.uni-hamburg.de> | 2015-06-28 12:55:30 +0200 |
commit | 4b9758c8ec6103c26228e1cda9731ab8bf1113e9 (patch) | |
tree | 64a9ba6685441e675bee388958e57fa0ad53f8dd /device | |
parent | fa5e2ae5645b3eb005931f60b5481ee7e478640e (diff) |
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.
Diffstat (limited to 'device')
-rw-r--r-- | device/cons.h | 11 |
1 files changed, 11 insertions, 0 deletions
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 */ |