Commit 9731191f75a54c4fa17e9b9b88f3144cf4b47836
1 parent
0bb9fef913
Exists in
master
and in
4 other branches
kgdboc: Add ekgdboc for early use of the kernel debugger
The ekgdboc= differs from kgdboc= in that you can begin debuggin as soon as the exceptions are setup and the kgdb I/O driver is available, instead of waiting until the tty subsystem is available. CC: kgdb-bugreport@lists.sourceforge.net Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
Showing 2 changed files with 25 additions and 0 deletions Side-by-side Diff
Documentation/kernel-parameters.txt
... | ... | @@ -713,6 +713,12 @@ |
713 | 713 | The VGA output is eventually overwritten by the real |
714 | 714 | console. |
715 | 715 | |
716 | + ekgdboc= [X86,KGDB] Allow early kernel console debugging | |
717 | + ekgdboc=kbd | |
718 | + | |
719 | + This is desgined to be used in conjunction with | |
720 | + the boot argument: earlyprintk=vga | |
721 | + | |
716 | 722 | eata= [HW,SCSI] |
717 | 723 | |
718 | 724 | edd= [EDD] |
drivers/serial/kgdboc.c
... | ... | @@ -223,6 +223,25 @@ |
223 | 223 | .post_exception = kgdboc_post_exp_handler, |
224 | 224 | }; |
225 | 225 | |
226 | +#ifdef CONFIG_KGDB_SERIAL_CONSOLE | |
227 | +/* This is only available if kgdboc is a built in for early debugging */ | |
228 | +int __init kgdboc_early_init(char *opt) | |
229 | +{ | |
230 | + /* save the first character of the config string because the | |
231 | + * init routine can destroy it. | |
232 | + */ | |
233 | + char save_ch; | |
234 | + | |
235 | + kgdboc_option_setup(opt); | |
236 | + save_ch = config[0]; | |
237 | + init_kgdboc(); | |
238 | + config[0] = save_ch; | |
239 | + return 0; | |
240 | +} | |
241 | + | |
242 | +early_param("ekgdboc", kgdboc_early_init); | |
243 | +#endif /* CONFIG_KGDB_SERIAL_CONSOLE */ | |
244 | + | |
226 | 245 | module_init(init_kgdboc); |
227 | 246 | module_exit(cleanup_kgdboc); |
228 | 247 | module_param_call(kgdboc, param_set_kgdboc_var, param_get_string, &kps, 0644); |
-
mentioned in commit 754227