ARM: zynq: make use of debug_ll_io_init()
authorJosh Cartwright <josh.cartwright@ni.com>
Mon, 19 Nov 2012 16:16:01 +0000 (10:16 -0600)
committerMichal Simek <michal.simek@xilinx.com>
Wed, 21 Nov 2012 09:52:05 +0000 (10:52 +0100)
Convert low-level debugging routines to make use of debug_ll_io_init().
This is part of the preparation for ARCH_MULTIPLATFORM support for Zynq.

Signed-off-by: Josh Cartwright <josh.cartwright@ni.com>
Tested-by: Michal Simek <michal.simek@xilinx.com>
arch/arm/Kconfig.debug
arch/arm/include/debug/zynq.S [new file with mode: 0644]
arch/arm/mach-zynq/common.c
arch/arm/mach-zynq/include/mach/debug-macro.S [deleted file]

index 7754d51f2b19fc3f3be91355771de8b4569a7cef..d6bdad204d918a7553fa169afbf14e4ffcb48ee0 100644 (file)
@@ -435,6 +435,7 @@ config DEBUG_LL_INCLUDE
        default "debug/socfpga.S" if DEBUG_SOCFPGA_UART
        default "debug/vexpress.S" if DEBUG_VEXPRESS_UART0_DETECT || \
                DEBUG_VEXPRESS_UART0_CA9 || DEBUG_VEXPRESS_UART0_RS1
+       default "debug/zynq.S" if DEBUG_ZYNQ_UART0 || DEBUG_ZYNQ_UART1
        default "mach/debug-macro.S"
 
 config EARLY_PRINTK
diff --git a/arch/arm/include/debug/zynq.S b/arch/arm/include/debug/zynq.S
new file mode 100644 (file)
index 0000000..08aed97
--- /dev/null
@@ -0,0 +1,35 @@
+/*
+ * Debugging macro include header
+ *
+ *  Copyright (C) 2011 Xilinx
+ *
+ * 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/zynq_soc.h>
+#include <mach/uart.h>
+
+               .macro  addruart, rp, rv, tmp
+               ldr     \rp, =LL_UART_PADDR     @ physical
+               ldr     \rv, =LL_UART_VADDR     @ virtual
+               .endm
+
+               .macro  senduart,rd,rx
+               str     \rd, [\rx, #UART_FIFO_OFFSET]   @ TXDATA
+               .endm
+
+               .macro  waituart,rd,rx
+               .endm
+
+               .macro  busyuart,rd,rx
+1002:          ldr     \rd, [\rx, #UART_SR_OFFSET]     @ get status register
+               tst     \rd, #UART_SR_TXFULL            @
+               bne     1002b                   @ wait if FIFO is full
+               .endm
index 2202f67c8a09aa56e08834c7f9f511c0f7f97036..a2f48daa11ca0d4bb05563e54b145ee75d476070 100644 (file)
@@ -72,23 +72,11 @@ static void __init xilinx_irq_init(void)
  * running include the GIC, UART and Timer Counter.
  */
 
-static struct map_desc io_desc[] __initdata = {
-       {
-               .virtual        = SCU_PERIPH_VIRT,
-               .pfn            = __phys_to_pfn(SCU_PERIPH_PHYS),
-               .length         = SCU_PERIPH_SIZE,
-               .type           = MT_DEVICE,
-       },
-
-#ifdef CONFIG_DEBUG_LL
-       {
-               .virtual        = LL_UART_VADDR,
-               .pfn            = __phys_to_pfn(LL_UART_PADDR),
-               .length         = UART_SIZE,
-               .type           = MT_DEVICE,
-       },
-#endif
-
+static struct map_desc scu_desc __initdata = {
+       .virtual        = SCU_PERIPH_VIRT,
+       .pfn            = __phys_to_pfn(SCU_PERIPH_PHYS),
+       .length         = SCU_PERIPH_SIZE,
+       .type           = MT_DEVICE,
 };
 
 static void __init xilinx_zynq_timer_init(void)
@@ -117,7 +105,8 @@ static struct sys_timer xttcpss_sys_timer = {
  */
 static void __init xilinx_map_io(void)
 {
-       iotable_init(io_desc, ARRAY_SIZE(io_desc));
+       debug_ll_io_init();
+       iotable_init(&scu_desc, 1);
 }
 
 static const char *xilinx_dt_match[] = {
diff --git a/arch/arm/mach-zynq/include/mach/debug-macro.S b/arch/arm/mach-zynq/include/mach/debug-macro.S
deleted file mode 100644 (file)
index 3ab0be1..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-/* arch/arm/mach-zynq/include/mach/debug-macro.S
- *
- * Debugging macro include header
- *
- *  Copyright (C) 2011 Xilinx
- *
- * 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/zynq_soc.h>
-#include <mach/uart.h>
-
-               .macro  addruart, rp, rv, tmp
-               ldr     \rp, =LL_UART_PADDR     @ physical
-               ldr     \rv, =LL_UART_VADDR     @ virtual
-               .endm
-
-               .macro  senduart,rd,rx
-               str     \rd, [\rx, #UART_FIFO_OFFSET]   @ TXDATA
-               .endm
-
-               .macro  waituart,rd,rx
-               .endm
-
-               .macro  busyuart,rd,rx
-1002:          ldr     \rd, [\rx, #UART_SR_OFFSET]     @ get status register
-               tst     \rd, #UART_SR_TXFULL            @
-               bne     1002b                   @ wait if FIFO is full
-               .endm