ARM: msm: Move debug-macro.S to include/debug
authorStephen Boyd <sboyd@codeaurora.org>
Wed, 24 Jul 2013 20:54:28 +0000 (13:54 -0700)
committerDavid Brown <davidb@codeaurora.org>
Tue, 6 Aug 2013 18:17:40 +0000 (11:17 -0700)
One more step to allowing MSM to participate in the
multi-platform defconfig.

Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
[davidb: Comment cleanup requested by sboyd]
Signed-off-by: David Brown <davidb@codeaurora.org>
arch/arm/Kconfig.debug
arch/arm/include/debug/msm.S [new file with mode: 0644]
arch/arm/mach-msm/include/mach/debug-macro.S [deleted file]
arch/arm/mach-msm/include/mach/msm_iomap-8960.h
arch/arm/mach-msm/include/mach/msm_iomap-8x60.h
arch/arm/mach-msm/include/mach/msm_iomap.h
arch/arm/mach-msm/include/mach/uncompress.h [deleted file]
arch/arm/mach-msm/io.c

index e401a76..4a62a8d 100644 (file)
@@ -777,6 +777,11 @@ config DEBUG_LL_INCLUDE
                                 DEBUG_IMX6SL_UART
        default "debug/keystone.S" if DEBUG_KEYSTONE_UART0 || \
                                      DEBUG_KEYSTONE_UART1
+       default "debug/msm.S" if DEBUG_MSM_UART1 || \
+                                DEBUG_MSM_UART2 || \
+                                DEBUG_MSM_UART3 || \
+                                DEBUG_MSM8660_UART || \
+                                DEBUG_MSM8960_UART
        default "debug/mvebu.S" if DEBUG_MVEBU_UART || \
                                   DEBUG_MVEBU_UART_ALTERNATE
        default "debug/mxs.S" if DEBUG_IMX23_UART || DEBUG_IMX28_UART
@@ -804,13 +809,13 @@ config DEBUG_LL_INCLUDE
 
 config DEBUG_UNCOMPRESS
        bool
-       default y if ARCH_MULTIPLATFORM && DEBUG_LL && \
+       default y if (ARCH_MULTIPLATFORM || ARCH_MSM) && DEBUG_LL && \
                     !DEBUG_OMAP2PLUS_UART && \
                     !DEBUG_TEGRA_UART
 
 config UNCOMPRESS_INCLUDE
        string
-       default "debug/uncompress.h" if ARCH_MULTIPLATFORM
+       default "debug/uncompress.h" if ARCH_MULTIPLATFORM || ARCH_MSM
        default "mach/uncompress.h"
 
 config EARLY_PRINTK
diff --git a/arch/arm/include/debug/msm.S b/arch/arm/include/debug/msm.S
new file mode 100644 (file)
index 0000000..9166e1b
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+ *
+ * Copyright (C) 2007 Google, Inc.
+ * Copyright (c) 2011, Code Aurora Forum. All rights reserved.
+ * Author: Brian Swetland <swetland@google.com>
+ *
+ * This software is licensed under the terms of the GNU General Public
+ * License version 2, as published by the Free Software Foundation, and
+ * may be copied, distributed, and modified under those terms.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#if defined(CONFIG_ARCH_MSM7X00A) || defined(CONFIG_ARCH_QSD8X50)
+#define MSM_UART1_PHYS        0xA9A00000
+#define MSM_UART2_PHYS        0xA9B00000
+#define MSM_UART3_PHYS        0xA9C00000
+#elif defined(CONFIG_ARCH_MSM7X30)
+#define MSM_UART1_PHYS        0xACA00000
+#define MSM_UART2_PHYS        0xACB00000
+#define MSM_UART3_PHYS        0xACC00000
+#endif
+
+#if defined(CONFIG_DEBUG_MSM_UART1)
+#define MSM_DEBUG_UART_BASE    0xE1000000
+#define MSM_DEBUG_UART_PHYS    MSM_UART1_PHYS
+#elif defined(CONFIG_DEBUG_MSM_UART2)
+#define MSM_DEBUG_UART_BASE    0xE1000000
+#define MSM_DEBUG_UART_PHYS    MSM_UART2_PHYS
+#elif defined(CONFIG_DEBUG_MSM_UART3)
+#define MSM_DEBUG_UART_BASE    0xE1000000
+#define MSM_DEBUG_UART_PHYS    MSM_UART3_PHYS
+#endif
+
+#ifdef CONFIG_DEBUG_MSM8660_UART
+#define MSM_DEBUG_UART_BASE    0xF0040000
+#define MSM_DEBUG_UART_PHYS    0x19C40000
+#endif
+
+#ifdef CONFIG_DEBUG_MSM8960_UART
+#define MSM_DEBUG_UART_BASE    0xF0040000
+#define MSM_DEBUG_UART_PHYS    0x16440000
+#endif
+
+       .macro  addruart, rp, rv, tmp
+#ifdef MSM_DEBUG_UART_PHYS
+       ldr     \rp, =MSM_DEBUG_UART_PHYS
+       ldr     \rv, =MSM_DEBUG_UART_BASE
+#endif
+       .endm
+
+       .macro  senduart, rd, rx
+#ifdef CONFIG_MSM_HAS_DEBUG_UART_HS
+       @ Write the 1 character to UARTDM_TF
+       str     \rd, [\rx, #0x70]
+#else
+       str     \rd, [\rx, #0x0C]
+#endif
+       .endm
+
+       .macro  waituart, rd, rx
+#ifdef CONFIG_MSM_HAS_DEBUG_UART_HS
+       @ check for TX_EMT in UARTDM_SR
+       ldr     \rd, [\rx, #0x08]
+       tst     \rd, #0x08
+       bne     1002f
+       @ wait for TXREADY in UARTDM_ISR
+1001:  ldr     \rd, [\rx, #0x14]
+       tst     \rd, #0x80
+       beq     1001b
+1002:
+       @ Clear TX_READY by writing to the UARTDM_CR register
+       mov     \rd, #0x300
+       str     \rd, [\rx, #0x10]
+       @ Write 0x1 to NCF register
+       mov     \rd, #0x1
+       str     \rd, [\rx, #0x40]
+       @ UARTDM reg. Read to induce delay
+       ldr     \rd, [\rx, #0x08]
+#else
+       @ wait for TX_READY
+1001:  ldr     \rd, [\rx, #0x08]
+       tst     \rd, #0x04
+       beq     1001b
+#endif
+       .endm
+
+       .macro  busyuart, rd, rx
+       .endm
diff --git a/arch/arm/mach-msm/include/mach/debug-macro.S b/arch/arm/mach-msm/include/mach/debug-macro.S
deleted file mode 100644 (file)
index 0e05f88..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- *
- * Copyright (C) 2007 Google, Inc.
- * Copyright (c) 2011, Code Aurora Forum. All rights reserved.
- * Author: Brian Swetland <swetland@google.com>
- *
- * This software is licensed under the terms of the GNU General Public
- * License version 2, as published by the Free Software Foundation, and
- * may be copied, distributed, and modified under those terms.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- */
-
-#include <mach/hardware.h>
-#include <mach/msm_iomap.h>
-
-       .macro  addruart, rp, rv, tmp
-#ifdef MSM_DEBUG_UART_PHYS
-       ldr     \rp, =MSM_DEBUG_UART_PHYS
-       ldr     \rv, =MSM_DEBUG_UART_BASE
-#endif
-       .endm
-
-       .macro  senduart, rd, rx
-#ifdef CONFIG_MSM_HAS_DEBUG_UART_HS
-       @ Write the 1 character to UARTDM_TF
-       str     \rd, [\rx, #0x70]
-#else
-       str     \rd, [\rx, #0x0C]
-#endif
-       .endm
-
-       .macro  waituart, rd, rx
-#ifdef CONFIG_MSM_HAS_DEBUG_UART_HS
-       @ check for TX_EMT in UARTDM_SR
-       ldr     \rd, [\rx, #0x08]
-       tst     \rd, #0x08
-       bne     1002f
-       @ wait for TXREADY in UARTDM_ISR
-1001:  ldr     \rd, [\rx, #0x14]
-       tst     \rd, #0x80
-       beq     1001b
-1002:
-       @ Clear TX_READY by writing to the UARTDM_CR register
-       mov     \rd, #0x300
-       str     \rd, [\rx, #0x10]
-       @ Write 0x1 to NCF register
-       mov     \rd, #0x1
-       str     \rd, [\rx, #0x40]
-       @ UARTDM reg. Read to induce delay
-       ldr     \rd, [\rx, #0x08]
-#else
-       @ wait for TX_READY
-1001:  ldr     \rd, [\rx, #0x08]
-       tst     \rd, #0x04
-       beq     1001b
-#endif
-       .endm
-
-       .macro  busyuart, rd, rx
-       .endm
index 7bca8d7..396958b 100644 (file)
@@ -38,9 +38,4 @@
 #define MSM8960_TMR0_PHYS      0x0208A000
 #define MSM8960_TMR0_SIZE      SZ_4K
 
-#ifdef CONFIG_DEBUG_MSM8960_UART
-#define MSM_DEBUG_UART_BASE    0xF0040000
-#define MSM_DEBUG_UART_PHYS    0x16440000
-#endif
-
 #endif
index 4f57b43..dede6aa 100644 (file)
@@ -41,9 +41,4 @@
 #define MSM8X60_TMR0_PHYS      0x02040000
 #define MSM8X60_TMR0_SIZE      SZ_4K
 
-#ifdef CONFIG_DEBUG_MSM8660_UART
-#define MSM_DEBUG_UART_BASE    0xF0040000
-#define MSM_DEBUG_UART_PHYS    0x19C40000
-#endif
-
 #endif
index c56e81f..0b36c42 100644 (file)
 #include "msm_iomap-8x60.h"
 #include "msm_iomap-8960.h"
 
-#define MSM_DEBUG_UART_SIZE    SZ_4K
-#if defined(CONFIG_DEBUG_MSM_UART1)
-#define MSM_DEBUG_UART_BASE    0xE1000000
-#define MSM_DEBUG_UART_PHYS    MSM_UART1_PHYS
-#elif defined(CONFIG_DEBUG_MSM_UART2)
-#define MSM_DEBUG_UART_BASE    0xE1000000
-#define MSM_DEBUG_UART_PHYS    MSM_UART2_PHYS
-#elif defined(CONFIG_DEBUG_MSM_UART3)
-#define MSM_DEBUG_UART_BASE    0xE1000000
-#define MSM_DEBUG_UART_PHYS    MSM_UART3_PHYS
-#endif
-
 /* Virtual addresses shared across all MSM targets. */
 #define MSM_CSR_BASE           IOMEM(0xE0001000)
 #define MSM_TMR_BASE           IOMEM(0xF0200000)
diff --git a/arch/arm/mach-msm/include/mach/uncompress.h b/arch/arm/mach-msm/include/mach/uncompress.h
deleted file mode 100644 (file)
index 9432487..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Copyright (C) 2007 Google, Inc.
- * Copyright (c) 2011, Code Aurora Forum. All rights reserved.
- *
- * This software is licensed under the terms of the GNU General Public
- * License version 2, as published by the Free Software Foundation, and
- * may be copied, distributed, and modified under those terms.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- */
-
-#ifndef __ASM_ARCH_MSM_UNCOMPRESS_H
-#define __ASM_ARCH_MSM_UNCOMPRESS_H
-
-#include <asm/barrier.h>
-#include <asm/processor.h>
-#include <mach/msm_iomap.h>
-
-#define UART_CSR      (*(volatile uint32_t *)(MSM_DEBUG_UART_PHYS + 0x08))
-#define UART_TF       (*(volatile uint32_t *)(MSM_DEBUG_UART_PHYS + 0x0c))
-
-#define UART_DM_SR    (*((volatile uint32_t *)(MSM_DEBUG_UART_PHYS + 0x08)))
-#define UART_DM_CR    (*((volatile uint32_t *)(MSM_DEBUG_UART_PHYS + 0x10)))
-#define UART_DM_ISR   (*((volatile uint32_t *)(MSM_DEBUG_UART_PHYS + 0x14)))
-#define UART_DM_NCHAR (*((volatile uint32_t *)(MSM_DEBUG_UART_PHYS + 0x40)))
-#define UART_DM_TF    (*((volatile uint32_t *)(MSM_DEBUG_UART_PHYS + 0x70)))
-
-static void putc(int c)
-{
-#if defined(MSM_DEBUG_UART_PHYS)
-#ifdef CONFIG_MSM_HAS_DEBUG_UART_HS
-       /*
-        * Wait for TX_READY to be set; but skip it if we have a
-        * TX underrun.
-        */
-       if (!(UART_DM_SR & 0x08))
-               while (!(UART_DM_ISR & 0x80))
-                       cpu_relax();
-
-       UART_DM_CR = 0x300;
-       UART_DM_NCHAR = 0x1;
-       UART_DM_TF = c;
-#else
-       while (!(UART_CSR & 0x04))
-               cpu_relax();
-       UART_TF = c;
-#endif
-#endif
-}
-
-static inline void flush(void)
-{
-}
-
-static inline void arch_decomp_setup(void)
-{
-}
-
-#endif
index 4a1a222..fe7c854 100644 (file)
@@ -52,26 +52,38 @@ static struct map_desc msm_io_desc[] __initdata = {
        MSM_CHIP_DEVICE_TYPE(GPIO1, MSM7X00, MT_DEVICE_NONSHARED),
        MSM_CHIP_DEVICE_TYPE(GPIO2, MSM7X00, MT_DEVICE_NONSHARED),
        MSM_DEVICE_TYPE(CLK_CTL, MT_DEVICE_NONSHARED),
-#if defined(CONFIG_DEBUG_MSM_UART1) || defined(CONFIG_DEBUG_MSM_UART2) || \
-       defined(CONFIG_DEBUG_MSM_UART3)
-       MSM_DEVICE_TYPE(DEBUG_UART, MT_DEVICE_NONSHARED),
-#endif
        {
                .virtual =  (unsigned long) MSM_SHARED_RAM_BASE,
                .pfn = __phys_to_pfn(MSM_SHARED_RAM_PHYS),
                .length =   MSM_SHARED_RAM_SIZE,
                .type =     MT_DEVICE,
        },
+#if defined(CONFIG_DEBUG_MSM_UART1) || defined(CONFIG_DEBUG_MSM_UART2) || \
+               defined(CONFIG_DEBUG_MSM_UART3)
+       {
+               /* Must be last: virtual and pfn filled in by debug_ll_addr() */
+               .length = SZ_4K,
+               .type = MT_DEVICE_NONSHARED,
+       }
+#endif
 };
 
 void __init msm_map_common_io(void)
 {
+       size_t size = ARRAY_SIZE(msm_io_desc);
+
        /* Make sure the peripheral register window is closed, since
         * we will use PTE flags (TEX[1]=1,B=0,C=1) to determine which
         * pages are peripheral interface or not.
         */
        asm("mcr p15, 0, %0, c15, c2, 4" : : "r" (0));
-       iotable_init(msm_io_desc, ARRAY_SIZE(msm_io_desc));
+#if defined(CONFIG_DEBUG_MSM_UART1) || defined(CONFIG_DEBUG_MSM_UART2) || \
+               defined(CONFIG_DEBUG_MSM_UART3)
+       debug_ll_addr(&msm_io_desc[size - 1].pfn,
+                     &msm_io_desc[size - 1].virtual);
+       msm_io_desc[size - 1].pfn = __phys_to_pfn(msm_io_desc[size - 1].pfn);
+#endif
+       iotable_init(msm_io_desc, size);
 }
 #endif
 
@@ -87,10 +99,6 @@ static struct map_desc qsd8x50_io_desc[] __initdata = {
        MSM_DEVICE(SCPLL),
        MSM_DEVICE(AD5),
        MSM_DEVICE(MDC),
-#if defined(CONFIG_DEBUG_MSM_UART1) || defined(CONFIG_DEBUG_MSM_UART2) || \
-       defined(CONFIG_DEBUG_MSM_UART3)
-       MSM_DEVICE(DEBUG_UART),
-#endif
        {
                .virtual =  (unsigned long) MSM_SHARED_RAM_BASE,
                .pfn = __phys_to_pfn(MSM_SHARED_RAM_PHYS),
@@ -101,6 +109,7 @@ static struct map_desc qsd8x50_io_desc[] __initdata = {
 
 void __init msm_map_qsd8x50_io(void)
 {
+       debug_ll_io_init();
        iotable_init(qsd8x50_io_desc, ARRAY_SIZE(qsd8x50_io_desc));
 }
 #endif /* CONFIG_ARCH_QSD8X50 */
@@ -109,13 +118,11 @@ void __init msm_map_qsd8x50_io(void)
 static struct map_desc msm8x60_io_desc[] __initdata = {
        MSM_CHIP_DEVICE(TMR, MSM8X60),
        MSM_CHIP_DEVICE(TMR0, MSM8X60),
-#ifdef CONFIG_DEBUG_MSM8660_UART
-       MSM_DEVICE(DEBUG_UART),
-#endif
 };
 
 void __init msm_map_msm8x60_io(void)
 {
+       debug_ll_io_init();
        iotable_init(msm8x60_io_desc, ARRAY_SIZE(msm8x60_io_desc));
 }
 #endif /* CONFIG_ARCH_MSM8X60 */
@@ -124,13 +131,11 @@ void __init msm_map_msm8x60_io(void)
 static struct map_desc msm8960_io_desc[] __initdata = {
        MSM_CHIP_DEVICE(TMR, MSM8960),
        MSM_CHIP_DEVICE(TMR0, MSM8960),
-#ifdef CONFIG_DEBUG_MSM8960_UART
-       MSM_DEVICE(DEBUG_UART),
-#endif
 };
 
 void __init msm_map_msm8960_io(void)
 {
+       debug_ll_io_init();
        iotable_init(msm8960_io_desc, ARRAY_SIZE(msm8960_io_desc));
 }
 #endif /* CONFIG_ARCH_MSM8960 */
@@ -150,10 +155,6 @@ static struct map_desc msm7x30_io_desc[] __initdata = {
        MSM_DEVICE(SAW),
        MSM_DEVICE(GCC),
        MSM_DEVICE(TCSR),
-#if defined(CONFIG_DEBUG_MSM_UART1) || defined(CONFIG_DEBUG_MSM_UART2) || \
-       defined(CONFIG_DEBUG_MSM_UART3)
-       MSM_DEVICE(DEBUG_UART),
-#endif
        {
                .virtual =  (unsigned long) MSM_SHARED_RAM_BASE,
                .pfn = __phys_to_pfn(MSM_SHARED_RAM_PHYS),
@@ -164,6 +165,7 @@ static struct map_desc msm7x30_io_desc[] __initdata = {
 
 void __init msm_map_msm7x30_io(void)
 {
+       debug_ll_io_init();
        iotable_init(msm7x30_io_desc, ARRAY_SIZE(msm7x30_io_desc));
 }
 #endif /* CONFIG_ARCH_MSM7X30 */