linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/3] ARM: zynq: remove TTC early mapping
  2012-11-19 18:19 [PATCH 0/3] ARM: zynq: ARCH_MULTIPLATFORM support Josh Cartwright
@ 2012-11-19 16:01 ` Josh Cartwright
  2012-11-20 12:41   ` Michal Simek
  2012-11-19 16:16 ` [PATCH 2/3] ARM: zynq: make use of debug_ll_io_init() Josh Cartwright
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 9+ messages in thread
From: Josh Cartwright @ 2012-11-19 16:01 UTC (permalink / raw)
  To: Michal Simek, arm; +Cc: linux-arm-kernel, linux-kernel

Now that the TTC driver has proper support for DT bindings, it is not
necessary for the registers to be mapped early.  They will be mapped
during clock initialization using of_iomap().  Remove the early mapping.

In addition, remove the extraneous zynq_soc.h include from the timer
driver.

Signed-off-by: Josh Cartwright <josh.cartwright@ni.com>
---
 arch/arm/mach-zynq/common.c                | 5 -----
 arch/arm/mach-zynq/include/mach/zynq_soc.h | 6 +-----
 arch/arm/mach-zynq/timer.c                 | 1 -
 3 files changed, 1 insertion(+), 11 deletions(-)

diff --git a/arch/arm/mach-zynq/common.c b/arch/arm/mach-zynq/common.c
index 79bf5fb..2202f67 100644
--- a/arch/arm/mach-zynq/common.c
+++ b/arch/arm/mach-zynq/common.c
@@ -74,11 +74,6 @@ static void __init xilinx_irq_init(void)
 
 static struct map_desc io_desc[] __initdata = {
 	{
-		.virtual	= TTC0_VIRT,
-		.pfn		= __phys_to_pfn(TTC0_PHYS),
-		.length		= TTC0_SIZE,
-		.type		= MT_DEVICE,
-	}, {
 		.virtual	= SCU_PERIPH_VIRT,
 		.pfn		= __phys_to_pfn(SCU_PERIPH_PHYS),
 		.length		= SCU_PERIPH_SIZE,
diff --git a/arch/arm/mach-zynq/include/mach/zynq_soc.h b/arch/arm/mach-zynq/include/mach/zynq_soc.h
index 5ebbd8e..2995044 100644
--- a/arch/arm/mach-zynq/include/mach/zynq_soc.h
+++ b/arch/arm/mach-zynq/include/mach/zynq_soc.h
@@ -29,13 +29,9 @@
 #define UART_SIZE		SZ_4K
 #define UART_VIRT		0xF0001000
 
-#define TTC0_PHYS		0xF8001000
-#define TTC0_SIZE		SZ_4K
-#define TTC0_VIRT		(VMALLOC_END - TTC0_SIZE)
-
 #define SCU_PERIPH_PHYS		0xF8F00000
 #define SCU_PERIPH_SIZE		SZ_8K
-#define SCU_PERIPH_VIRT		(TTC0_VIRT - SCU_PERIPH_SIZE)
+#define SCU_PERIPH_VIRT		(VMALLOC_END - SCU_PERIPH_SIZE)
 
 #if IS_ENABLED(CONFIG_DEBUG_ZYNQ_UART1)
 # define LL_UART_PADDR		UART1_PHYS
diff --git a/arch/arm/mach-zynq/timer.c b/arch/arm/mach-zynq/timer.c
index 9662306..de3df28 100644
--- a/arch/arm/mach-zynq/timer.c
+++ b/arch/arm/mach-zynq/timer.c
@@ -29,7 +29,6 @@
 #include <linux/slab.h>
 #include <linux/clk-provider.h>
 
-#include <mach/zynq_soc.h>
 #include "common.h"
 
 /*
-- 
1.8.0



^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 2/3] ARM: zynq: make use of debug_ll_io_init()
  2012-11-19 18:19 [PATCH 0/3] ARM: zynq: ARCH_MULTIPLATFORM support Josh Cartwright
  2012-11-19 16:01 ` [PATCH 1/3] ARM: zynq: remove TTC early mapping Josh Cartwright
@ 2012-11-19 16:16 ` Josh Cartwright
  2012-11-20 12:41   ` Michal Simek
  2012-11-19 17:38 ` [PATCH 3/3] ARM: zynq: add support for ARCH_MULTIPLATFORM Josh Cartwright
  2012-11-20 12:30 ` [PATCH 0/3] ARM: zynq: ARCH_MULTIPLATFORM support Michal Simek
  3 siblings, 1 reply; 9+ messages in thread
From: Josh Cartwright @ 2012-11-19 16:16 UTC (permalink / raw)
  To: Michal Simek, arm; +Cc: linux-arm-kernel, linux-kernel

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>
---
 arch/arm/Kconfig.debug                             |  1 +
 .../mach/debug-macro.S => include/debug/zynq.S}    |  3 +--
 arch/arm/mach-zynq/common.c                        | 25 ++++++----------------
 3 files changed, 9 insertions(+), 20 deletions(-)
 rename arch/arm/{mach-zynq/include/mach/debug-macro.S => include/debug/zynq.S} (94%)

diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug
index 7754d51..d6bdad2 100644
--- a/arch/arm/Kconfig.debug
+++ b/arch/arm/Kconfig.debug
@@ -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/mach-zynq/include/mach/debug-macro.S b/arch/arm/include/debug/zynq.S
similarity index 94%
rename from arch/arm/mach-zynq/include/mach/debug-macro.S
rename to arch/arm/include/debug/zynq.S
index 3ab0be1..08aed97 100644
--- a/arch/arm/mach-zynq/include/mach/debug-macro.S
+++ b/arch/arm/include/debug/zynq.S
@@ -1,5 +1,4 @@
-/* arch/arm/mach-zynq/include/mach/debug-macro.S
- *
+/*
  * Debugging macro include header
  *
  *  Copyright (C) 2011 Xilinx
diff --git a/arch/arm/mach-zynq/common.c b/arch/arm/mach-zynq/common.c
index 2202f67..a2f48da 100644
--- a/arch/arm/mach-zynq/common.c
+++ b/arch/arm/mach-zynq/common.c
@@ -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[] = {
-- 
1.8.0



^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 3/3] ARM: zynq: add support for ARCH_MULTIPLATFORM
  2012-11-19 18:19 [PATCH 0/3] ARM: zynq: ARCH_MULTIPLATFORM support Josh Cartwright
  2012-11-19 16:01 ` [PATCH 1/3] ARM: zynq: remove TTC early mapping Josh Cartwright
  2012-11-19 16:16 ` [PATCH 2/3] ARM: zynq: make use of debug_ll_io_init() Josh Cartwright
@ 2012-11-19 17:38 ` Josh Cartwright
  2012-11-20 12:42   ` Michal Simek
  2012-11-20 12:30 ` [PATCH 0/3] ARM: zynq: ARCH_MULTIPLATFORM support Michal Simek
  3 siblings, 1 reply; 9+ messages in thread
From: Josh Cartwright @ 2012-11-19 17:38 UTC (permalink / raw)
  To: Michal Simek, arm; +Cc: linux-arm-kernel, linux-kernel

The majority of changes are necessary to remove dependencies on header
files within arch/arm/mach-zynq/include/mach:

  uncompress.h
    - Deleted. It is unused for ARCH_MULTIPLATFORM builds.

  uart.h:
    - Move uart definitions out of uart.h into debug/zynq.S, which is
      now the only user

  zynq_soc.h:
    - Move SCU address definitions into common.c.
    - Other #defines, such as PERIPHERAL_CLOCK_RATE, TTC0_BASE, etc, are
      unused and can be dropped

Signed-off-by: Josh Cartwright <josh.cartwright@ni.com>
---
 arch/arm/Kconfig                             | 14 ++------
 arch/arm/include/debug/zynq.S                | 20 +++++++++--
 arch/arm/mach-zynq/Kconfig                   | 13 +++++++
 arch/arm/mach-zynq/common.c                  |  8 ++---
 arch/arm/mach-zynq/include/mach/uart.h       | 25 --------------
 arch/arm/mach-zynq/include/mach/uncompress.h | 51 ----------------------------
 arch/arm/mach-zynq/include/mach/zynq_soc.h   | 49 --------------------------
 7 files changed, 37 insertions(+), 143 deletions(-)
 create mode 100644 arch/arm/mach-zynq/Kconfig
 delete mode 100644 arch/arm/mach-zynq/include/mach/uart.h
 delete mode 100644 arch/arm/mach-zynq/include/mach/uncompress.h
 delete mode 100644 arch/arm/mach-zynq/include/mach/zynq_soc.h

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index ccfe0ab..28a2048 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -955,18 +955,6 @@ config ARCH_VT8500
 	help
 	  Support for VIA/WonderMedia VT8500/WM85xx System-on-Chip.
 
-config ARCH_ZYNQ
-	bool "Xilinx Zynq ARM Cortex A9 Platform"
-	select ARM_AMBA
-	select ARM_GIC
-	select COMMON_CLK
-	select CPU_V7
-	select GENERIC_CLOCKEVENTS
-	select ICST
-	select MIGHT_HAVE_CACHE_L2X0
-	select USE_OF
-	help
-	  Support for Xilinx Zynq ARM Cortex A9 Platform
 endchoice
 
 menu "Multiple platform selection"
@@ -1128,6 +1116,8 @@ source "arch/arm/plat-versatile/Kconfig"
 
 source "arch/arm/mach-w90x900/Kconfig"
 
+source "arch/arm/mach-zynq/Kconfig"
+
 # Definitions to make life easier
 config ARCH_ACORN
 	bool
diff --git a/arch/arm/include/debug/zynq.S b/arch/arm/include/debug/zynq.S
index 08aed97..f9aa974 100644
--- a/arch/arm/include/debug/zynq.S
+++ b/arch/arm/include/debug/zynq.S
@@ -12,9 +12,25 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
  */
+#define UART_CR_OFFSET		0x00  /* Control Register [8:0] */
+#define UART_SR_OFFSET		0x2C  /* Channel Status [11:0] */
+#define UART_FIFO_OFFSET	0x30  /* FIFO [15:0] or [7:0] */
 
-#include <mach/zynq_soc.h>
-#include <mach/uart.h>
+#define UART_SR_TXFULL		0x00000010	/* TX FIFO full */
+#define UART_SR_TXEMPTY		0x00000008	/* TX FIFO empty */
+
+#define UART0_PHYS		0xE0000000
+#define UART1_PHYS		0xE0001000
+#define UART_SIZE		SZ_4K
+#define UART_VIRT		0xF0001000
+
+#if IS_ENABLED(CONFIG_DEBUG_ZYNQ_UART1)
+# define LL_UART_PADDR		UART1_PHYS
+#else
+# define LL_UART_PADDR		UART0_PHYS
+#endif
+
+#define LL_UART_VADDR		UART_VIRT
 
 		.macro	addruart, rp, rv, tmp
 		ldr	\rp, =LL_UART_PADDR	@ physical
diff --git a/arch/arm/mach-zynq/Kconfig b/arch/arm/mach-zynq/Kconfig
new file mode 100644
index 0000000..adb6c0e
--- /dev/null
+++ b/arch/arm/mach-zynq/Kconfig
@@ -0,0 +1,13 @@
+config ARCH_ZYNQ
+	bool "Xilinx Zynq ARM Cortex A9 Platform" if ARCH_MULTI_V7
+	select ARM_AMBA
+	select ARM_GIC
+	select COMMON_CLK
+	select CPU_V7
+	select GENERIC_CLOCKEVENTS
+	select ICST
+	select MIGHT_HAVE_CACHE_L2X0
+	select USE_OF
+	select SPARSE_IRQ
+	help
+	  Support for Xilinx Zynq ARM Cortex A9 Platform
diff --git a/arch/arm/mach-zynq/common.c b/arch/arm/mach-zynq/common.c
index a2f48da..e16d4be 100644
--- a/arch/arm/mach-zynq/common.c
+++ b/arch/arm/mach-zynq/common.c
@@ -30,10 +30,10 @@
 #include <asm/mach/time.h>
 #include <asm/mach-types.h>
 #include <asm/page.h>
+#include <asm/pgtable.h>
 #include <asm/hardware/gic.h>
 #include <asm/hardware/cache-l2x0.h>
 
-#include <mach/zynq_soc.h>
 #include "common.h"
 
 static struct of_device_id zynq_of_bus_ids[] __initdata = {
@@ -68,9 +68,9 @@ static void __init xilinx_irq_init(void)
 	of_irq_init(irq_match);
 }
 
-/* The minimum devices needed to be mapped before the VM system is up and
- * running include the GIC, UART and Timer Counter.
- */
+#define SCU_PERIPH_PHYS		0xF8F00000
+#define SCU_PERIPH_SIZE		SZ_8K
+#define SCU_PERIPH_VIRT		(VMALLOC_END - SCU_PERIPH_SIZE)
 
 static struct map_desc scu_desc __initdata = {
 	.virtual	= SCU_PERIPH_VIRT,
diff --git a/arch/arm/mach-zynq/include/mach/uart.h b/arch/arm/mach-zynq/include/mach/uart.h
deleted file mode 100644
index 5c47c97..0000000
--- a/arch/arm/mach-zynq/include/mach/uart.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/* arch/arm/mach-zynq/include/mach/uart.h
- *
- *  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.
- */
-
-#ifndef __MACH_UART_H__
-#define __MACH_UART_H__
-
-#define UART_CR_OFFSET		0x00  /* Control Register [8:0] */
-#define UART_SR_OFFSET		0x2C  /* Channel Status [11:0] */
-#define UART_FIFO_OFFSET	0x30  /* FIFO [15:0] or [7:0] */
-
-#define UART_SR_TXFULL		0x00000010	/* TX FIFO full */
-#define UART_SR_TXEMPTY		0x00000008	/* TX FIFO empty */
-
-#endif
diff --git a/arch/arm/mach-zynq/include/mach/uncompress.h b/arch/arm/mach-zynq/include/mach/uncompress.h
deleted file mode 100644
index af4e844..0000000
--- a/arch/arm/mach-zynq/include/mach/uncompress.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/* arch/arm/mach-zynq/include/mach/uncompress.h
- *
- *  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.
- */
-
-#ifndef __MACH_UNCOMPRESS_H__
-#define __MACH_UNCOMPRESS_H__
-
-#include <linux/io.h>
-#include <asm/processor.h>
-#include <mach/zynq_soc.h>
-#include <mach/uart.h>
-
-void arch_decomp_setup(void)
-{
-}
-
-static inline void flush(void)
-{
-	/*
-	 * Wait while the FIFO is not empty
-	 */
-	while (!(__raw_readl(IOMEM(LL_UART_PADDR + UART_SR_OFFSET)) &
-		UART_SR_TXEMPTY))
-		cpu_relax();
-}
-
-#define arch_decomp_wdog()
-
-static void putc(char ch)
-{
-	/*
-	 * Wait for room in the FIFO, then write the char into the FIFO
-	 */
-	while (__raw_readl(IOMEM(LL_UART_PADDR + UART_SR_OFFSET)) &
-		UART_SR_TXFULL)
-		cpu_relax();
-
-	__raw_writel(ch, IOMEM(LL_UART_PADDR + UART_FIFO_OFFSET));
-}
-
-#endif
diff --git a/arch/arm/mach-zynq/include/mach/zynq_soc.h b/arch/arm/mach-zynq/include/mach/zynq_soc.h
deleted file mode 100644
index 2995044..0000000
--- a/arch/arm/mach-zynq/include/mach/zynq_soc.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/* arch/arm/mach-zynq/include/mach/zynq_soc.h
- *
- *  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.
- */
-
-#ifndef __MACH_XILINX_SOC_H__
-#define __MACH_XILINX_SOC_H__
-
-#include <asm/pgtable.h>
-
-#define PERIPHERAL_CLOCK_RATE		2500000
-
-/* Static peripheral mappings are mapped at the top of the vmalloc region.  The
- * early uart mapping causes intermediate problems/failure at certain
- * addresses, including the very top of the vmalloc region.  Map it at an
- * address that is known to work.
- */
-#define UART0_PHYS		0xE0000000
-#define UART1_PHYS		0xE0001000
-#define UART_SIZE		SZ_4K
-#define UART_VIRT		0xF0001000
-
-#define SCU_PERIPH_PHYS		0xF8F00000
-#define SCU_PERIPH_SIZE		SZ_8K
-#define SCU_PERIPH_VIRT		(VMALLOC_END - SCU_PERIPH_SIZE)
-
-#if IS_ENABLED(CONFIG_DEBUG_ZYNQ_UART1)
-# define LL_UART_PADDR		UART1_PHYS
-#else
-# define LL_UART_PADDR		UART0_PHYS
-#endif
-
-#define LL_UART_VADDR		UART_VIRT
-
-/* The following are intended for the devices that are mapped early */
-
-#define TTC0_BASE			IOMEM(TTC0_VIRT)
-#define SCU_PERIPH_BASE			IOMEM(SCU_PERIPH_VIRT)
-
-#endif
-- 
1.8.0


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 0/3] ARM: zynq: ARCH_MULTIPLATFORM support
@ 2012-11-19 18:19 Josh Cartwright
  2012-11-19 16:01 ` [PATCH 1/3] ARM: zynq: remove TTC early mapping Josh Cartwright
                   ` (3 more replies)
  0 siblings, 4 replies; 9+ messages in thread
From: Josh Cartwright @ 2012-11-19 18:19 UTC (permalink / raw)
  To: Michal Simek, arm; +Cc: linux-arm-kernel, linux-kernel

Michal-

Here's an attempt at supporting ARCH_MULTIPLATFORM on Zynq.  I've gotten
a multiplatform kernel building and booting on the zc702, although I
haven't tried to boot the same image on another non-Zynq board, due to
lack of available hardware.

It would be super awesome if this set could land in 3.8, but I know
we're running out of time there.  I wouldn't be too heartbroken if it
didn't make it.

This patchset is on top of your arm-next branch and with the
debug_ll_init support patch @ arm-soc/devel/debug_ll_init.

Patch 1 drops the early TTC mapping.  It is not necessary, since the TTC
driver now supports pulling mapping info from the device tree.

Patch 2 converts zynq to use the debug_ll_init() infrastructure slated
to go into 3.8.

Patch 3 is the bulk of the set, moving around logic around within
mach-zynq/include, and setting up the necessary build magic to get Zynq
building w/ CONFIG_ARCH_MULTIPLATFORM.

Thanks,
   Josh

---
Josh Cartwright (3):
  ARM: zynq: remove TTC early mapping
  ARM: zynq: make use of debug_ll_io_init()
  ARM: zynq: add support for ARCH_MULTIPLATFORM

 arch/arm/Kconfig                                   | 14 +-----
 arch/arm/Kconfig.debug                             |  1 +
 .../mach/debug-macro.S => include/debug/zynq.S}    | 23 ++++++++--
 arch/arm/mach-zynq/Kconfig                         | 13 ++++++
 arch/arm/mach-zynq/common.c                        | 38 +++++-----------
 arch/arm/mach-zynq/include/mach/uart.h             | 25 ----------
 arch/arm/mach-zynq/include/mach/uncompress.h       | 51 ---------------------
 arch/arm/mach-zynq/include/mach/zynq_soc.h         | 53 ----------------------
 arch/arm/mach-zynq/timer.c                         |  1 -
 9 files changed, 46 insertions(+), 173 deletions(-)
 rename arch/arm/{mach-zynq/include/mach/debug-macro.S => include/debug/zynq.S} (61%)
 create mode 100644 arch/arm/mach-zynq/Kconfig
 delete mode 100644 arch/arm/mach-zynq/include/mach/uart.h
 delete mode 100644 arch/arm/mach-zynq/include/mach/uncompress.h
 delete mode 100644 arch/arm/mach-zynq/include/mach/zynq_soc.h

-- 
1.8.0


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 0/3] ARM: zynq: ARCH_MULTIPLATFORM support
  2012-11-19 18:19 [PATCH 0/3] ARM: zynq: ARCH_MULTIPLATFORM support Josh Cartwright
                   ` (2 preceding siblings ...)
  2012-11-19 17:38 ` [PATCH 3/3] ARM: zynq: add support for ARCH_MULTIPLATFORM Josh Cartwright
@ 2012-11-20 12:30 ` Michal Simek
  2012-11-21  7:23   ` Olof Johansson
  3 siblings, 1 reply; 9+ messages in thread
From: Michal Simek @ 2012-11-20 12:30 UTC (permalink / raw)
  To: Josh Cartwright
  Cc: arm, linux-arm-kernel, linux-kernel, Arnd Bergmann, Olof Johansson

Hi Josh, Arnd and Olof,

2012/11/19 Josh Cartwright <josh.cartwright@ni.com>:
> Michal-
>
> Here's an attempt at supporting ARCH_MULTIPLATFORM on Zynq.  I've gotten
> a multiplatform kernel building and booting on the zc702, although I
> haven't tried to boot the same image on another non-Zynq board, due to
> lack of available hardware.
>
> It would be super awesome if this set could land in 3.8, but I know
> we're running out of time there.  I wouldn't be too heartbroken if it
> didn't make it.
>
> This patchset is on top of your arm-next branch and with the
> debug_ll_init support patch @ arm-soc/devel/debug_ll_init.
>
> Patch 1 drops the early TTC mapping.  It is not necessary, since the TTC
> driver now supports pulling mapping info from the device tree.
>
> Patch 2 converts zynq to use the debug_ll_init() infrastructure slated
> to go into 3.8.
>
> Patch 3 is the bulk of the set, moving around logic around within
> mach-zynq/include, and setting up the necessary build magic to get Zynq
> building w/ CONFIG_ARCH_MULTIPLATFORM.
>

I wanted to look at it too today. You were faster!
I have tested your patches and all works for me.
I have also added them to my arm-next branch.

I don't have others ARM boards to test but it shouldn't be big problem
because others will test it.

We are out of merge window that's why we should wait to the next one.
Anyway Arnd/Olof if there is any option to get this to v3.8, please let me know.

Thanks,
Michal


-- 
Michal Simek, Ing. (M.Eng)
w: www.monstr.eu p: +42-0-721842854
Maintainer of Linux kernel 2.6 Microblaze Linux - http://www.monstr.eu/fdt/
Microblaze U-BOOT custodian

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 1/3] ARM: zynq: remove TTC early mapping
  2012-11-19 16:01 ` [PATCH 1/3] ARM: zynq: remove TTC early mapping Josh Cartwright
@ 2012-11-20 12:41   ` Michal Simek
  0 siblings, 0 replies; 9+ messages in thread
From: Michal Simek @ 2012-11-20 12:41 UTC (permalink / raw)
  To: Josh Cartwright; +Cc: arm, linux-arm-kernel, linux-kernel

2012/11/19 Josh Cartwright <josh.cartwright@ni.com>:
> Now that the TTC driver has proper support for DT bindings, it is not
> necessary for the registers to be mapped early.  They will be mapped
> during clock initialization using of_iomap().  Remove the early mapping.
>
> In addition, remove the extraneous zynq_soc.h include from the timer
> driver.
>
> Signed-off-by: Josh Cartwright <josh.cartwright@ni.com>
> ---
>  arch/arm/mach-zynq/common.c                | 5 -----
>  arch/arm/mach-zynq/include/mach/zynq_soc.h | 6 +-----
>  arch/arm/mach-zynq/timer.c                 | 1 -
>  3 files changed, 1 insertion(+), 11 deletions(-)

Tested-by: Michal Simek <michal.simek@xilinx.com>

Applied to xilinx arm-next branch.

Thanks,
Michal


-- 
Michal Simek, Ing. (M.Eng)
w: www.monstr.eu p: +42-0-721842854
Maintainer of Linux kernel 2.6 Microblaze Linux - http://www.monstr.eu/fdt/
Microblaze U-BOOT custodian

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 2/3] ARM: zynq: make use of debug_ll_io_init()
  2012-11-19 16:16 ` [PATCH 2/3] ARM: zynq: make use of debug_ll_io_init() Josh Cartwright
@ 2012-11-20 12:41   ` Michal Simek
  0 siblings, 0 replies; 9+ messages in thread
From: Michal Simek @ 2012-11-20 12:41 UTC (permalink / raw)
  To: Josh Cartwright; +Cc: arm, linux-arm-kernel, linux-kernel

2012/11/19 Josh Cartwright <josh.cartwright@ni.com>:
> 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>
> ---
>  arch/arm/Kconfig.debug                             |  1 +
>  .../mach/debug-macro.S => include/debug/zynq.S}    |  3 +--
>  arch/arm/mach-zynq/common.c                        | 25 ++++++----------------
>  3 files changed, 9 insertions(+), 20 deletions(-)
>  rename arch/arm/{mach-zynq/include/mach/debug-macro.S => include/debug/zynq.S} (94%)

Tested-by: Michal Simek <michal.simek@xilinx.com>

Applied to xilinx arm-next branch.

Thanks,
Michal

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 3/3] ARM: zynq: add support for ARCH_MULTIPLATFORM
  2012-11-19 17:38 ` [PATCH 3/3] ARM: zynq: add support for ARCH_MULTIPLATFORM Josh Cartwright
@ 2012-11-20 12:42   ` Michal Simek
  0 siblings, 0 replies; 9+ messages in thread
From: Michal Simek @ 2012-11-20 12:42 UTC (permalink / raw)
  To: Josh Cartwright; +Cc: arm, linux-arm-kernel, linux-kernel

2012/11/19 Josh Cartwright <josh.cartwright@ni.com>:
> The majority of changes are necessary to remove dependencies on header
> files within arch/arm/mach-zynq/include/mach:
>
>   uncompress.h
>     - Deleted. It is unused for ARCH_MULTIPLATFORM builds.
>
>   uart.h:
>     - Move uart definitions out of uart.h into debug/zynq.S, which is
>       now the only user
>
>   zynq_soc.h:
>     - Move SCU address definitions into common.c.
>     - Other #defines, such as PERIPHERAL_CLOCK_RATE, TTC0_BASE, etc, are
>       unused and can be dropped
>
> Signed-off-by: Josh Cartwright <josh.cartwright@ni.com>
> ---
>  arch/arm/Kconfig                             | 14 ++------
>  arch/arm/include/debug/zynq.S                | 20 +++++++++--
>  arch/arm/mach-zynq/Kconfig                   | 13 +++++++
>  arch/arm/mach-zynq/common.c                  |  8 ++---
>  arch/arm/mach-zynq/include/mach/uart.h       | 25 --------------
>  arch/arm/mach-zynq/include/mach/uncompress.h | 51 ----------------------------
>  arch/arm/mach-zynq/include/mach/zynq_soc.h   | 49 --------------------------
>  7 files changed, 37 insertions(+), 143 deletions(-)
>  create mode 100644 arch/arm/mach-zynq/Kconfig
>  delete mode 100644 arch/arm/mach-zynq/include/mach/uart.h
>  delete mode 100644 arch/arm/mach-zynq/include/mach/uncompress.h
>  delete mode 100644 arch/arm/mach-zynq/include/mach/zynq_soc.h

Tested-by: Michal Simek <michal.simek@xilinx.com>

Applied to xilinx arm-next branch.

Thanks,
Michal

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 0/3] ARM: zynq: ARCH_MULTIPLATFORM support
  2012-11-20 12:30 ` [PATCH 0/3] ARM: zynq: ARCH_MULTIPLATFORM support Michal Simek
@ 2012-11-21  7:23   ` Olof Johansson
  0 siblings, 0 replies; 9+ messages in thread
From: Olof Johansson @ 2012-11-21  7:23 UTC (permalink / raw)
  To: Michal Simek
  Cc: Josh Cartwright, arm, linux-arm-kernel, linux-kernel, Arnd Bergmann

On Tue, Nov 20, 2012 at 01:30:58PM +0100, Michal Simek wrote:
> Hi Josh, Arnd and Olof,
> 
> 2012/11/19 Josh Cartwright <josh.cartwright@ni.com>:
> > Michal-
> >
> > Here's an attempt at supporting ARCH_MULTIPLATFORM on Zynq.  I've gotten
> > a multiplatform kernel building and booting on the zc702, although I
> > haven't tried to boot the same image on another non-Zynq board, due to
> > lack of available hardware.
> >
> > It would be super awesome if this set could land in 3.8, but I know
> > we're running out of time there.  I wouldn't be too heartbroken if it
> > didn't make it.
> >
> > This patchset is on top of your arm-next branch and with the
> > debug_ll_init support patch @ arm-soc/devel/debug_ll_init.
> >
> > Patch 1 drops the early TTC mapping.  It is not necessary, since the TTC
> > driver now supports pulling mapping info from the device tree.
> >
> > Patch 2 converts zynq to use the debug_ll_init() infrastructure slated
> > to go into 3.8.
> >
> > Patch 3 is the bulk of the set, moving around logic around within
> > mach-zynq/include, and setting up the necessary build magic to get Zynq
> > building w/ CONFIG_ARCH_MULTIPLATFORM.
> >
> 
> I wanted to look at it too today. You were faster!
> I have tested your patches and all works for me.
> I have also added them to my arm-next branch.
> 
> I don't have others ARM boards to test but it shouldn't be big problem
> because others will test it.
> 
> We are out of merge window that's why we should wait to the next one.
> Anyway Arnd/Olof if there is any option to get this to v3.8, please let me know.

Feel free to post a pull request, if things look clean we can probably pick it up.


-Olof (playing good cop for once :-)

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2012-11-21  7:23 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-11-19 18:19 [PATCH 0/3] ARM: zynq: ARCH_MULTIPLATFORM support Josh Cartwright
2012-11-19 16:01 ` [PATCH 1/3] ARM: zynq: remove TTC early mapping Josh Cartwright
2012-11-20 12:41   ` Michal Simek
2012-11-19 16:16 ` [PATCH 2/3] ARM: zynq: make use of debug_ll_io_init() Josh Cartwright
2012-11-20 12:41   ` Michal Simek
2012-11-19 17:38 ` [PATCH 3/3] ARM: zynq: add support for ARCH_MULTIPLATFORM Josh Cartwright
2012-11-20 12:42   ` Michal Simek
2012-11-20 12:30 ` [PATCH 0/3] ARM: zynq: ARCH_MULTIPLATFORM support Michal Simek
2012-11-21  7:23   ` Olof Johansson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).