Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[PATCH] ARM: decompressor: use platform debug macros

Rather than duplicate the assembly for debug macros in the
decompressor head.S, use asm/arch/debug-macros.S instead.

Signed-off-by: Russell King <rmk@arm.linux.org.uk>

+23 -84
+23 -84
arch/arm/boot/compressed/head.S
··· 18 18 * Please select one of the following when turning on debugging. 19 19 */ 20 20 #ifdef DEBUG 21 - #if defined(CONFIG_DEBUG_DC21285_PORT) 22 - .macro loadsp, rb 23 - mov \rb, #0x42000000 24 - .endm 25 - .macro writeb, rb 26 - str \rb, [r3, #0x160] 27 - .endm 28 - #elif defined(CONFIG_DEBUG_ICEDCC) 21 + 22 + #include <asm/arch/debug-macro.S> 23 + 24 + #if defined(CONFIG_DEBUG_ICEDCC) 29 25 .macro loadsp, rb 30 26 .endm 31 - .macro writeb, rb 32 - mcr p14, 0, \rb, c0, c1, 0 27 + .macro writeb, ch, rb 28 + mcr p14, 0, \ch, c0, c1, 0 33 29 .endm 34 - #elif defined(CONFIG_FOOTBRIDGE) 30 + #else 31 + .macro writeb, ch, rb 32 + senduart \ch, \rb 33 + .endm 34 + 35 + #if defined(CONFIG_FOOTBRIDGE) || \ 36 + defined(CONFIG_ARCH_RPC) || \ 37 + defined(CONFIG_ARCH_INTEGRATOR) || \ 38 + defined(CONFIG_ARCH_PXA) || \ 39 + defined(CONFIG_ARCH_IXP4XX) || \ 40 + defined(CONFIG_ARCH_IXP2000) || \ 41 + defined(CONFIG_ARCH_LH7A40X) || \ 42 + defined(CONFIG_ARCH_OMAP) 35 43 .macro loadsp, rb 36 - mov \rb, #0x7c000000 37 - .endm 38 - .macro writeb, rb 39 - strb \rb, [r3, #0x3f8] 40 - .endm 41 - #elif defined(CONFIG_ARCH_RPC) 42 - .macro loadsp, rb 43 - mov \rb, #0x03000000 44 - orr \rb, \rb, #0x00010000 45 - .endm 46 - .macro writeb, rb 47 - strb \rb, [r3, #0x3f8 << 2] 48 - .endm 49 - #elif defined(CONFIG_ARCH_INTEGRATOR) 50 - .macro loadsp, rb 51 - mov \rb, #0x16000000 52 - .endm 53 - .macro writeb, rb 54 - strb \rb, [r3, #0] 55 - .endm 56 - #elif defined(CONFIG_ARCH_PXA) /* Xscale-type */ 57 - .macro loadsp, rb 58 - mov \rb, #0x40000000 59 - orr \rb, \rb, #0x00100000 60 - .endm 61 - .macro writeb, rb 62 - strb \rb, [r3, #0] 44 + addruart \rb 63 45 .endm 64 46 #elif defined(CONFIG_ARCH_SA1100) 65 47 .macro loadsp, rb ··· 52 70 add \rb, \rb, #0x00010000 @ Ser1 53 71 # endif 54 72 .endm 55 - .macro writeb, rb 56 - str \rb, [r3, #0x14] @ UTDR 57 - .endm 58 - #elif defined(CONFIG_ARCH_IXP4XX) 59 - .macro loadsp, rb 60 - mov \rb, #0xc8000000 61 - .endm 62 - .macro writeb, rb 63 - str \rb, [r3, #0] 64 - #elif defined(CONFIG_ARCH_IXP2000) 65 - .macro loadsp, rb 66 - mov \rb, #0xc0000000 67 - orr \rb, \rb, #0x00030000 68 - .endm 69 - .macro writeb, rb 70 - str \rb, [r3, #0] 71 - .endm 72 - #elif defined(CONFIG_ARCH_LH7A40X) 73 - .macro loadsp, rb 74 - ldr \rb, =0x80000700 @ UART2 UARTBASE 75 - .endm 76 - .macro writeb, rb 77 - strb \rb, [r3, #0] 78 - .endm 79 - #elif defined(CONFIG_ARCH_OMAP) 80 - .macro loadsp, rb 81 - mov \rb, #0xff000000 @ physical base address 82 - add \rb, \rb, #0x00fb0000 83 - #if defined(CONFIG_OMAP_LL_DEBUG_UART2) || defined(CONFIG_OMAP_LL_DEBUG_UART3) 84 - add \rb, \rb, #0x00000800 85 - #endif 86 - #ifdef CONFIG_OMAP_LL_DEBUG_UART3 87 - add \rb, \rb, #0x00009000 88 - #endif 89 - .endm 90 - .macro writeb, rb 91 - strb \rb, [r3] 92 - .endm 93 73 #elif defined(CONFIG_ARCH_IOP331) 94 74 .macro loadsp, rb 95 75 mov \rb, #0xff000000 96 76 orr \rb, \rb, #0x00ff0000 97 77 orr \rb, \rb, #0x0000f700 @ location of the UART 98 78 .endm 99 - .macro writeb, rb 100 - str \rb, [r3, #0] 101 - .endm 102 79 #elif defined(CONFIG_ARCH_S3C2410) 103 - .macro loadsp, rb 80 + .macro loadsp, rb 104 81 mov \rb, #0x50000000 105 82 add \rb, \rb, #0x4000 * CONFIG_S3C2410_LOWLEVEL_UART_PORT 106 83 .endm 107 - .macro writeb, rb 108 - strb \rb, [r3, #0x20] 109 - .endm 110 84 #else 111 85 #error no serial architecture defined 86 + #endif 112 87 #endif 113 88 #endif 114 89 ··· 673 734 1: ldrb r2, [r0], #1 674 735 teq r2, #0 675 736 moveq pc, lr 676 - 2: writeb r2 737 + 2: writeb r2, r3 677 738 mov r1, #0x00020000 678 739 3: subs r1, r1, #1 679 740 bne 3b