diff options
| -rw-r--r-- | arch/arm/Kconfig.debug | 5 | ||||
| -rw-r--r-- | arch/arm/include/debug/icedcc.S | 90 | ||||
| -rw-r--r-- | arch/arm/kernel/debug.S | 87 | ||||
| -rw-r--r-- | arch/arm/kernel/head.S | 4 | 
4 files changed, 100 insertions, 86 deletions
diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug index f15f82bf3a5..4f9760bd234 100644 --- a/arch/arm/Kconfig.debug +++ b/arch/arm/Kconfig.debug @@ -373,6 +373,11 @@ choice  endchoice +config DEBUG_LL_INCLUDE +	string +	default "debug/icedcc.S" if DEBUG_ICEDCC +	default "mach/debug-macro.S" +  config EARLY_PRINTK  	bool "Early printk"  	depends on DEBUG_LL diff --git a/arch/arm/include/debug/icedcc.S b/arch/arm/include/debug/icedcc.S new file mode 100644 index 00000000000..43afcb021fa --- /dev/null +++ b/arch/arm/include/debug/icedcc.S @@ -0,0 +1,90 @@ +/* + *  arch/arm/include/debug/icedcc.S + * + *  Copyright (C) 1994-1999 Russell King + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + */ + +		@@ debug using ARM EmbeddedICE DCC channel + +		.macro	addruart, rp, rv, tmp +		.endm + +#if defined(CONFIG_CPU_V6) || defined(CONFIG_CPU_V6K) || defined(CONFIG_CPU_V7) + +		.macro	senduart, rd, rx +		mcr	p14, 0, \rd, c0, c5, 0 +		.endm + +		.macro	busyuart, rd, rx +1001: +		mrc	p14, 0, \rx, c0, c1, 0 +		tst	\rx, #0x20000000 +		beq	1001b +		.endm + +		.macro	waituart, rd, rx +		mov	\rd, #0x2000000 +1001: +		subs	\rd, \rd, #1 +		bmi	1002f +		mrc	p14, 0, \rx, c0, c1, 0 +		tst	\rx, #0x20000000 +		bne	1001b +1002: +		.endm + +#elif defined(CONFIG_CPU_XSCALE) + +		.macro	senduart, rd, rx +		mcr	p14, 0, \rd, c8, c0, 0 +		.endm + +		.macro	busyuart, rd, rx +1001: +		mrc	p14, 0, \rx, c14, c0, 0 +		tst	\rx, #0x10000000 +		beq	1001b +		.endm + +		.macro	waituart, rd, rx +		mov	\rd, #0x10000000 +1001: +		subs	\rd, \rd, #1 +		bmi	1002f +		mrc	p14, 0, \rx, c14, c0, 0 +		tst	\rx, #0x10000000 +		bne	1001b +1002: +		.endm + +#else + +		.macro	senduart, rd, rx +		mcr	p14, 0, \rd, c1, c0, 0 +		.endm + +		.macro	busyuart, rd, rx +1001: +		mrc	p14, 0, \rx, c0, c0, 0 +		tst	\rx, #2 +		beq	1001b + +		.endm + +		.macro	waituart, rd, rx +		mov	\rd, #0x2000000 +1001: +		subs	\rd, \rd, #1 +		bmi	1002f +		mrc	p14, 0, \rx, c0, c0, 0 +		tst	\rx, #2 +		bne	1001b +1002: +		.endm + +#endif	/* CONFIG_CPU_V6 */ diff --git a/arch/arm/kernel/debug.S b/arch/arm/kernel/debug.S index c45522c3678..66f711b2e0e 100644 --- a/arch/arm/kernel/debug.S +++ b/arch/arm/kernel/debug.S @@ -20,90 +20,9 @@   * references to these in a production kernel!   */ -#if defined(CONFIG_DEBUG_ICEDCC) -		@@ debug using ARM EmbeddedICE DCC channel - -		.macro	addruart, rp, rv, tmp -		.endm - -#if defined(CONFIG_CPU_V6) || defined(CONFIG_CPU_V6K) || defined(CONFIG_CPU_V7) - -		.macro	senduart, rd, rx -		mcr	p14, 0, \rd, c0, c5, 0 -		.endm - -		.macro	busyuart, rd, rx -1001: -		mrc	p14, 0, \rx, c0, c1, 0 -		tst	\rx, #0x20000000 -		beq	1001b -		.endm - -		.macro	waituart, rd, rx -		mov	\rd, #0x2000000 -1001: -		subs	\rd, \rd, #1 -		bmi	1002f -		mrc	p14, 0, \rx, c0, c1, 0 -		tst	\rx, #0x20000000 -		bne	1001b -1002: -		.endm - -#elif defined(CONFIG_CPU_XSCALE) - -		.macro	senduart, rd, rx -		mcr	p14, 0, \rd, c8, c0, 0 -		.endm - -		.macro	busyuart, rd, rx -1001: -		mrc	p14, 0, \rx, c14, c0, 0 -		tst	\rx, #0x10000000 -		beq	1001b -		.endm - -		.macro	waituart, rd, rx -		mov	\rd, #0x10000000 -1001: -		subs	\rd, \rd, #1 -		bmi	1002f -		mrc	p14, 0, \rx, c14, c0, 0 -		tst	\rx, #0x10000000 -		bne	1001b -1002: -		.endm - -#else - -		.macro	senduart, rd, rx -		mcr	p14, 0, \rd, c1, c0, 0 -		.endm - -		.macro	busyuart, rd, rx -1001: -		mrc	p14, 0, \rx, c0, c0, 0 -		tst	\rx, #2 -		beq	1001b - -		.endm - -		.macro	waituart, rd, rx -		mov	\rd, #0x2000000 -1001: -		subs	\rd, \rd, #1 -		bmi	1002f -		mrc	p14, 0, \rx, c0, c0, 0 -		tst	\rx, #2 -		bne	1001b -1002: -		.endm - -#endif	/* CONFIG_CPU_V6 */ - -#elif !defined(CONFIG_DEBUG_SEMIHOSTING) -#include <mach/debug-macro.S> -#endif	/* CONFIG_DEBUG_ICEDCC */ +#if !defined(CONFIG_DEBUG_SEMIHOSTING) +#include CONFIG_DEBUG_LL_INCLUDE +#endif  #ifdef CONFIG_MMU  		.macro	addruart_current, rx, tmp1, tmp2 diff --git a/arch/arm/kernel/head.S b/arch/arm/kernel/head.S index 3db960e20cb..9874d074119 100644 --- a/arch/arm/kernel/head.S +++ b/arch/arm/kernel/head.S @@ -23,8 +23,8 @@  #include <asm/thread_info.h>  #include <asm/pgtable.h> -#ifdef CONFIG_DEBUG_LL -#include <mach/debug-macro.S> +#if defined(CONFIG_DEBUG_LL) && !defined(CONFIG_DEBUG_SEMIHOSTING) +#include CONFIG_DEBUG_LL_INCLUDE  #endif  /*  |