aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/kernel/udbg.c
diff options
context:
space:
mode:
authorMichael Ellerman <michael@ellerman.id.au>2006-01-10 19:54:09 -0500
committerPaul Mackerras <paulus@samba.org>2006-01-10 22:48:26 -0500
commit296167ae1799815b9ed2d135a847436502f2ee91 (patch)
tree5e9496d0a60e10a021c12117ec6bc8d513f39463 /arch/powerpc/kernel/udbg.c
parentbf6a7112bda99aadd6675526423a96be6b356a3d (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.c25
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
19void (*udbg_putc)(char c); 20void (*udbg_putc)(char c);
20int (*udbg_getc)(void); 21int (*udbg_getc)(void);
21int (*udbg_getc_poll)(void); 22int (*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 */
28void __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 */
24void udbg_puts(const char *s) 49void udbg_puts(const char *s)
25{ 50{