diff options
author | Michael Ellerman <michael@ellerman.id.au> | 2006-01-10 19:54:09 -0500 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2006-01-10 22:48:26 -0500 |
commit | 296167ae1799815b9ed2d135a847436502f2ee91 (patch) | |
tree | 5e9496d0a60e10a021c12117ec6bc8d513f39463 /arch/powerpc/kernel/udbg.c | |
parent | bf6a7112bda99aadd6675526423a96be6b356a3d (diff) |
[PATCH] powerpc: Make early debugging configurable via Kconfig
This patch adds Kconfig entries to control the early debugging options,
currently in setup_64.c.
Doing this via Kconfig rather than #defines means you can have one source tree,
which is buildable for multiple platforms - and you can enable the correct
early debug option for each platform via .config.
I made udbg_early_init() a static inline because otherwise GCC is to daft to
optimise it away when debugging is off.
Now that we have udbg_init_rtas() we can make call_rtas_display_status* static.
Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'arch/powerpc/kernel/udbg.c')
-rw-r--r-- | arch/powerpc/kernel/udbg.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/arch/powerpc/kernel/udbg.c b/arch/powerpc/kernel/udbg.c index 558c1ceb2b93..3774e80094f5 100644 --- a/arch/powerpc/kernel/udbg.c +++ b/arch/powerpc/kernel/udbg.c | |||
@@ -15,11 +15,36 @@ | |||
15 | #include <linux/sched.h> | 15 | #include <linux/sched.h> |
16 | #include <linux/console.h> | 16 | #include <linux/console.h> |
17 | #include <asm/processor.h> | 17 | #include <asm/processor.h> |
18 | #include <asm/udbg.h> | ||
18 | 19 | ||
19 | void (*udbg_putc)(char c); | 20 | void (*udbg_putc)(char c); |
20 | int (*udbg_getc)(void); | 21 | int (*udbg_getc)(void); |
21 | int (*udbg_getc_poll)(void); | 22 | int (*udbg_getc_poll)(void); |
22 | 23 | ||
24 | /* | ||
25 | * Early debugging facilities. You can enable _one_ of these via .config, | ||
26 | * if you do so your kernel _will not boot_ on anything else. Be careful. | ||
27 | */ | ||
28 | void __init udbg_early_init(void) | ||
29 | { | ||
30 | #if defined(CONFIG_PPC_EARLY_DEBUG_LPAR) | ||
31 | /* For LPAR machines that have an HVC console on vterm 0 */ | ||
32 | udbg_init_debug_lpar(); | ||
33 | #elif defined(CONFIG_PPC_EARLY_DEBUG_G5) | ||
34 | /* For use on Apple G5 machines */ | ||
35 | udbg_init_pmac_realmode(); | ||
36 | #elif defined(CONFIG_PPC_EARLY_DEBUG_RTAS) | ||
37 | /* RTAS panel debug */ | ||
38 | udbg_init_rtas(); | ||
39 | #elif defined(CONFIG_PPC_EARLY_DEBUG_MAPLE) | ||
40 | /* Maple real mode debug */ | ||
41 | udbg_init_maple_realmode(); | ||
42 | #elif defined(CONFIG_PPC_EARLY_DEBUG_ISERIES) | ||
43 | /* For iSeries - hit Ctrl-x Ctrl-x to see the output */ | ||
44 | udbg_init_iseries(); | ||
45 | #endif | ||
46 | } | ||
47 | |||
23 | /* udbg library, used by xmon et al */ | 48 | /* udbg library, used by xmon et al */ |
24 | void udbg_puts(const char *s) | 49 | void udbg_puts(const char *s) |
25 | { | 50 | { |