Loading arch/arm/boot/compressed/head.S +10 −0 Original line number Diff line number Diff line Loading @@ -20,11 +20,21 @@ #ifdef DEBUG #if defined(CONFIG_DEBUG_ICEDCC) #ifdef CONFIG_CPU_V6 .macro loadsp, rb .endm .macro writeb, ch, rb mcr p14, 0, \ch, c0, c5, 0 .endm #else .macro loadsp, rb .endm .macro writeb, ch, rb mcr p14, 0, \ch, c0, c1, 0 .endm #endif #else #include <asm/arch/debug-macro.S> Loading arch/arm/boot/compressed/misc.c +21 −0 Original line number Diff line number Diff line Loading @@ -30,6 +30,25 @@ static void putstr(const char *ptr); #include <asm/arch/uncompress.h> #ifdef CONFIG_DEBUG_ICEDCC #ifdef CONFIG_CPU_V6 static void icedcc_putc(int ch) { int status, i = 0x4000000; do { if (--i < 0) return; asm volatile ("mrc p14, 0, %0, c0, c1, 0" : "=r" (status)); } while (status & (1 << 29)); asm("mcr p14, 0, %0, c0, c5, 0" : : "r" (ch)); } #else static void icedcc_putc(int ch) { int status, i = 0x4000000; Loading @@ -44,6 +63,8 @@ static void icedcc_putc(int ch) asm("mcr p14, 0, %0, c1, c0, 0" : : "r" (ch)); } #endif #define putc(ch) icedcc_putc(ch) #define flush() do { } while (0) #endif Loading arch/arm/kernel/debug.S +34 −1 Original line number Diff line number Diff line Loading @@ -21,6 +21,36 @@ #if defined(CONFIG_DEBUG_ICEDCC) @@ debug using ARM EmbeddedICE DCC channel #if defined(CONFIG_CPU_V6) .macro addruart, rx .endm .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 #else .macro addruart, rx .endm Loading @@ -46,9 +76,12 @@ bne 1001b 1002: .endm #endif /* CONFIG_CPU_V6 */ #else #include <asm/arch/debug-macro.S> #endif #endif /* CONFIG_DEBUG_ICEDCC */ /* * Useful debugging routines Loading Loading
arch/arm/boot/compressed/head.S +10 −0 Original line number Diff line number Diff line Loading @@ -20,11 +20,21 @@ #ifdef DEBUG #if defined(CONFIG_DEBUG_ICEDCC) #ifdef CONFIG_CPU_V6 .macro loadsp, rb .endm .macro writeb, ch, rb mcr p14, 0, \ch, c0, c5, 0 .endm #else .macro loadsp, rb .endm .macro writeb, ch, rb mcr p14, 0, \ch, c0, c1, 0 .endm #endif #else #include <asm/arch/debug-macro.S> Loading
arch/arm/boot/compressed/misc.c +21 −0 Original line number Diff line number Diff line Loading @@ -30,6 +30,25 @@ static void putstr(const char *ptr); #include <asm/arch/uncompress.h> #ifdef CONFIG_DEBUG_ICEDCC #ifdef CONFIG_CPU_V6 static void icedcc_putc(int ch) { int status, i = 0x4000000; do { if (--i < 0) return; asm volatile ("mrc p14, 0, %0, c0, c1, 0" : "=r" (status)); } while (status & (1 << 29)); asm("mcr p14, 0, %0, c0, c5, 0" : : "r" (ch)); } #else static void icedcc_putc(int ch) { int status, i = 0x4000000; Loading @@ -44,6 +63,8 @@ static void icedcc_putc(int ch) asm("mcr p14, 0, %0, c1, c0, 0" : : "r" (ch)); } #endif #define putc(ch) icedcc_putc(ch) #define flush() do { } while (0) #endif Loading
arch/arm/kernel/debug.S +34 −1 Original line number Diff line number Diff line Loading @@ -21,6 +21,36 @@ #if defined(CONFIG_DEBUG_ICEDCC) @@ debug using ARM EmbeddedICE DCC channel #if defined(CONFIG_CPU_V6) .macro addruart, rx .endm .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 #else .macro addruart, rx .endm Loading @@ -46,9 +76,12 @@ bne 1001b 1002: .endm #endif /* CONFIG_CPU_V6 */ #else #include <asm/arch/debug-macro.S> #endif #endif /* CONFIG_DEBUG_ICEDCC */ /* * Useful debugging routines Loading