linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/5] cns3xxx multiplatform support
@ 2013-03-14 22:14 Arnd Bergmann
  2013-03-14 22:14 ` [PATCH 1/5] ARM: cns3xxx: make mach header files local Arnd Bergmann
                   ` (6 more replies)
  0 siblings, 7 replies; 11+ messages in thread
From: Arnd Bergmann @ 2013-03-14 22:14 UTC (permalink / raw)
  To: linux-arm-kernel

I've looked at all the platforms recently to see what their
state is. cns3xxx seems quite clean but not very actively
maintained. Since it is really easy to convert to multiplatform,
that's what I did here. I'd like to apply this for linux-3.9
unless there are objections or other comments.

Arnd Bergmann (5):
  ARM: cns3xxx: make mach header files local
  ARM: cns3xxx: enable sparse IRQ support
  ARM: cns3xxx: move debug_ll code to include/debug/
  ARM: cns3xxx: enable multiplatform support
  ARM: cns3xxx: initial DT support

 arch/arm/Kconfig                                   |  11 --
 arch/arm/Kconfig.debug                             |   8 ++
 arch/arm/configs/cns3420vb_defconfig               |   3 +
 .../mach/debug-macro.S => include/debug/cns3xxx.S} |   0
 arch/arm/mach-cns3xxx/Kconfig                      |  12 ++
 arch/arm/mach-cns3xxx/Makefile                     |   8 +-
 arch/arm/mach-cns3xxx/cns3420vb.c                  |   6 +-
 arch/arm/mach-cns3xxx/{include/mach => }/cns3xxx.h |   7 +-
 arch/arm/mach-cns3xxx/core.c                       | 121 ++++++++++++++++++++-
 arch/arm/mach-cns3xxx/devices.c                    |   5 +-
 arch/arm/mach-cns3xxx/include/mach/irqs.h          |  24 ----
 arch/arm/mach-cns3xxx/include/mach/timex.h         |  12 --
 arch/arm/mach-cns3xxx/include/mach/uncompress.h    |  53 ---------
 arch/arm/mach-cns3xxx/pcie.c                       |   2 +-
 arch/arm/mach-cns3xxx/pm.c                         |   4 +-
 arch/arm/mach-cns3xxx/{include/mach => }/pm.h      |   0
 drivers/mmc/host/sdhci-cns3xxx.c                   |   1 -
 17 files changed, 158 insertions(+), 119 deletions(-)
 rename arch/arm/{mach-cns3xxx/include/mach/debug-macro.S => include/debug/cns3xxx.S} (100%)
 rename arch/arm/mach-cns3xxx/{include/mach => }/cns3xxx.h (99%)
 delete mode 100644 arch/arm/mach-cns3xxx/include/mach/irqs.h
 delete mode 100644 arch/arm/mach-cns3xxx/include/mach/timex.h
 delete mode 100644 arch/arm/mach-cns3xxx/include/mach/uncompress.h
 rename arch/arm/mach-cns3xxx/{include/mach => }/pm.h (100%)

-- 
1.8.1.2

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

* [PATCH 1/5] ARM: cns3xxx: make mach header files local
  2013-03-14 22:14 [PATCH 0/5] cns3xxx multiplatform support Arnd Bergmann
@ 2013-03-14 22:14 ` Arnd Bergmann
  2013-03-14 22:14 ` [PATCH 2/5] ARM: cns3xxx: enable sparse IRQ support Arnd Bergmann
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 11+ messages in thread
From: Arnd Bergmann @ 2013-03-14 22:14 UTC (permalink / raw)
  To: linux-arm-kernel

The mach/cns3xxx.h and mach/pm.h header files are used only
in the platform code itself, so there is no need to make
them globally visible. This gets us closer to multiplatform
configuration for cns3xxx.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 arch/arm/mach-cns3xxx/cns3420vb.c                  | 5 ++---
 arch/arm/mach-cns3xxx/{include/mach => }/cns3xxx.h | 7 ++-----
 arch/arm/mach-cns3xxx/core.c                       | 2 +-
 arch/arm/mach-cns3xxx/devices.c                    | 5 ++---
 arch/arm/mach-cns3xxx/include/mach/uncompress.h    | 2 +-
 arch/arm/mach-cns3xxx/pcie.c                       | 2 +-
 arch/arm/mach-cns3xxx/pm.c                         | 4 ++--
 arch/arm/mach-cns3xxx/{include/mach => }/pm.h      | 0
 drivers/mmc/host/sdhci-cns3xxx.c                   | 1 -
 9 files changed, 11 insertions(+), 17 deletions(-)
 rename arch/arm/mach-cns3xxx/{include/mach => }/cns3xxx.h (99%)
 rename arch/arm/mach-cns3xxx/{include/mach => }/pm.h (100%)

diff --git a/arch/arm/mach-cns3xxx/cns3420vb.c b/arch/arm/mach-cns3xxx/cns3420vb.c
index a71867e..d863d87 100644
--- a/arch/arm/mach-cns3xxx/cns3420vb.c
+++ b/arch/arm/mach-cns3xxx/cns3420vb.c
@@ -31,9 +31,8 @@
 #include <asm/mach/arch.h>
 #include <asm/mach/map.h>
 #include <asm/mach/time.h>
-#include <mach/cns3xxx.h>
-#include <mach/irqs.h>
-#include <mach/pm.h>
+#include "cns3xxx.h"
+#include "pm.h"
 #include "core.h"
 #include "devices.h"
 
diff --git a/arch/arm/mach-cns3xxx/include/mach/cns3xxx.h b/arch/arm/mach-cns3xxx/cns3xxx.h
similarity index 99%
rename from arch/arm/mach-cns3xxx/include/mach/cns3xxx.h
rename to arch/arm/mach-cns3xxx/cns3xxx.h
index 191c8e5..d7d3a8d 100644
--- a/arch/arm/mach-cns3xxx/include/mach/cns3xxx.h
+++ b/arch/arm/mach-cns3xxx/cns3xxx.h
@@ -553,6 +553,8 @@ int cns3xxx_cpu_clock(void);
 /*
  * ARM11 MPCore interrupt sources (primary GIC)
  */
+#define IRQ_TC11MP_GIC_START	32
+
 #define IRQ_CNS3XXX_PMU			(IRQ_TC11MP_GIC_START + 0)
 #define IRQ_CNS3XXX_SDIO		(IRQ_TC11MP_GIC_START + 1)
 #define IRQ_CNS3XXX_L2CC		(IRQ_TC11MP_GIC_START + 2)
@@ -624,9 +626,4 @@ int cns3xxx_cpu_clock(void);
 
 #define NR_IRQS_CNS3XXX			(IRQ_TC11MP_GIC_START + 64)
 
-#if !defined(NR_IRQS) || (NR_IRQS < NR_IRQS_CNS3XXX)
-#undef NR_IRQS
-#define NR_IRQS				NR_IRQS_CNS3XXX
-#endif
-
 #endif	/* __MACH_BOARD_CNS3XXX_H */
diff --git a/arch/arm/mach-cns3xxx/core.c b/arch/arm/mach-cns3xxx/core.c
index e698f26..012ffdb 100644
--- a/arch/arm/mach-cns3xxx/core.c
+++ b/arch/arm/mach-cns3xxx/core.c
@@ -17,7 +17,7 @@
 #include <asm/mach/time.h>
 #include <asm/mach/irq.h>
 #include <asm/hardware/cache-l2x0.h>
-#include <mach/cns3xxx.h>
+#include "cns3xxx.h"
 #include "core.h"
 
 static struct map_desc cns3xxx_io_desc[] __initdata = {
diff --git a/arch/arm/mach-cns3xxx/devices.c b/arch/arm/mach-cns3xxx/devices.c
index 1e40c99..7da78a2 100644
--- a/arch/arm/mach-cns3xxx/devices.c
+++ b/arch/arm/mach-cns3xxx/devices.c
@@ -16,9 +16,8 @@
 #include <linux/compiler.h>
 #include <linux/dma-mapping.h>
 #include <linux/platform_device.h>
-#include <mach/cns3xxx.h>
-#include <mach/irqs.h>
-#include <mach/pm.h>
+#include "cns3xxx.h"
+#include "pm.h"
 #include "core.h"
 #include "devices.h"
 
diff --git a/arch/arm/mach-cns3xxx/include/mach/uncompress.h b/arch/arm/mach-cns3xxx/include/mach/uncompress.h
index 7a030b9..e2c642c 100644
--- a/arch/arm/mach-cns3xxx/include/mach/uncompress.h
+++ b/arch/arm/mach-cns3xxx/include/mach/uncompress.h
@@ -8,7 +8,7 @@
  */
 
 #include <asm/mach-types.h>
-#include <mach/cns3xxx.h>
+#include "cns3xxx.h"
 
 #define AMBA_UART_DR(base)	(*(volatile unsigned char *)((base) + 0x00))
 #define AMBA_UART_LCRH(base)	(*(volatile unsigned char *)((base) + 0x2c))
diff --git a/arch/arm/mach-cns3xxx/pcie.c b/arch/arm/mach-cns3xxx/pcie.c
index 3113283..c7b204b 100644
--- a/arch/arm/mach-cns3xxx/pcie.c
+++ b/arch/arm/mach-cns3xxx/pcie.c
@@ -20,7 +20,7 @@
 #include <linux/interrupt.h>
 #include <linux/ptrace.h>
 #include <asm/mach/map.h>
-#include <mach/cns3xxx.h>
+#include "cns3xxx.h"
 #include "core.h"
 
 enum cns3xxx_access_type {
diff --git a/arch/arm/mach-cns3xxx/pm.c b/arch/arm/mach-cns3xxx/pm.c
index 3645808..79e3d47 100644
--- a/arch/arm/mach-cns3xxx/pm.c
+++ b/arch/arm/mach-cns3xxx/pm.c
@@ -11,8 +11,8 @@
 #include <linux/io.h>
 #include <linux/delay.h>
 #include <linux/atomic.h>
-#include <mach/cns3xxx.h>
-#include <mach/pm.h>
+#include "cns3xxx.h"
+#include "pm.h"
 #include "core.h"
 
 void cns3xxx_pwr_clk_en(unsigned int block)
diff --git a/arch/arm/mach-cns3xxx/include/mach/pm.h b/arch/arm/mach-cns3xxx/pm.h
similarity index 100%
rename from arch/arm/mach-cns3xxx/include/mach/pm.h
rename to arch/arm/mach-cns3xxx/pm.h
diff --git a/drivers/mmc/host/sdhci-cns3xxx.c b/drivers/mmc/host/sdhci-cns3xxx.c
index 30bfdc4..6ba8502 100644
--- a/drivers/mmc/host/sdhci-cns3xxx.c
+++ b/drivers/mmc/host/sdhci-cns3xxx.c
@@ -16,7 +16,6 @@
 #include <linux/device.h>
 #include <linux/mmc/host.h>
 #include <linux/module.h>
-#include <mach/cns3xxx.h>
 #include "sdhci-pltfm.h"
 
 static unsigned int sdhci_cns3xxx_get_max_clk(struct sdhci_host *host)
-- 
1.8.1.2

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

* [PATCH 2/5] ARM: cns3xxx: enable sparse IRQ support
  2013-03-14 22:14 [PATCH 0/5] cns3xxx multiplatform support Arnd Bergmann
  2013-03-14 22:14 ` [PATCH 1/5] ARM: cns3xxx: make mach header files local Arnd Bergmann
@ 2013-03-14 22:14 ` Arnd Bergmann
  2013-03-14 22:14 ` [PATCH 3/5] ARM: cns3xxx: move debug_ll code to include/debug/ Arnd Bergmann
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 11+ messages in thread
From: Arnd Bergmann @ 2013-03-14 22:14 UTC (permalink / raw)
  To: linux-arm-kernel

This trivially enables sparse IRQ on cns3xxx by moving the
nr_irqs definition from mach/irqs.h into the machine
descriptor. These interrupts will still get statically
assigned, so nothing changes here.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 arch/arm/Kconfig                          |  1 +
 arch/arm/mach-cns3xxx/cns3420vb.c         |  1 +
 arch/arm/mach-cns3xxx/include/mach/irqs.h | 24 ------------------------
 3 files changed, 2 insertions(+), 24 deletions(-)
 delete mode 100644 arch/arm/mach-cns3xxx/include/mach/irqs.h

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 5b71469..8bad33e 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -390,6 +390,7 @@ config ARCH_CNS3XXX
 	select MIGHT_HAVE_CACHE_L2X0
 	select MIGHT_HAVE_PCI
 	select PCI_DOMAINS if PCI
+	select SPARSE_IRQ
 	help
 	  Support for Cavium Networks CNS3XXX platform.
 
diff --git a/arch/arm/mach-cns3xxx/cns3420vb.c b/arch/arm/mach-cns3xxx/cns3420vb.c
index d863d87..ce096d6 100644
--- a/arch/arm/mach-cns3xxx/cns3420vb.c
+++ b/arch/arm/mach-cns3xxx/cns3420vb.c
@@ -246,6 +246,7 @@ static void __init cns3420_map_io(void)
 
 MACHINE_START(CNS3420VB, "Cavium Networks CNS3420 Validation Board")
 	.atag_offset	= 0x100,
+	.nr_irqs	= NR_IRQS_CNS3XXX,
 	.map_io		= cns3420_map_io,
 	.init_irq	= cns3xxx_init_irq,
 	.init_time	= cns3xxx_timer_init,
diff --git a/arch/arm/mach-cns3xxx/include/mach/irqs.h b/arch/arm/mach-cns3xxx/include/mach/irqs.h
deleted file mode 100644
index 2ab96f8..0000000
--- a/arch/arm/mach-cns3xxx/include/mach/irqs.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Copyright 2000 Deep Blue Solutions Ltd.
- * Copyright 2003 ARM Limited
- * Copyright 2008 Cavium Networks
- *
- * This file is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License, Version 2, as
- * published by the Free Software Foundation.
- */
-
-#ifndef __MACH_IRQS_H
-#define __MACH_IRQS_H
-
-#define IRQ_LOCALTIMER		29
-#define IRQ_LOCALWDOG		30
-#define IRQ_TC11MP_GIC_START	32
-
-#include <mach/cns3xxx.h>
-
-#ifndef NR_IRQS
-#error "NR_IRQS not defined by the board-specific files"
-#endif
-
-#endif
-- 
1.8.1.2

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

* [PATCH 3/5] ARM: cns3xxx: move debug_ll code to include/debug/
  2013-03-14 22:14 [PATCH 0/5] cns3xxx multiplatform support Arnd Bergmann
  2013-03-14 22:14 ` [PATCH 1/5] ARM: cns3xxx: make mach header files local Arnd Bergmann
  2013-03-14 22:14 ` [PATCH 2/5] ARM: cns3xxx: enable sparse IRQ support Arnd Bergmann
@ 2013-03-14 22:14 ` Arnd Bergmann
  2013-03-14 22:14 ` [PATCH 4/5] ARM: cns3xxx: enable multiplatform support Arnd Bergmann
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 11+ messages in thread
From: Arnd Bergmann @ 2013-03-14 22:14 UTC (permalink / raw)
  To: linux-arm-kernel

This is needed in order to keep debug_ll functionality on
cns3xxx working when we enable ARCH_MULTIPLATFORM.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 arch/arm/Kconfig.debug                                            | 8 ++++++++
 arch/arm/configs/cns3420vb_defconfig                              | 1 +
 .../include/mach/debug-macro.S => include/debug/cns3xxx.S}        | 0
 3 files changed, 9 insertions(+)
 rename arch/arm/{mach-cns3xxx/include/mach/debug-macro.S => include/debug/cns3xxx.S} (100%)

diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug
index acdddda..52f410d 100644
--- a/arch/arm/Kconfig.debug
+++ b/arch/arm/Kconfig.debug
@@ -103,6 +103,13 @@ choice
 		  Say Y here if you want the debug print routines to direct
 		  their output to the second serial port on these devices.
 
+	config DEBUG_CNS3XXX
+		bool "Kernel Kernel low-level debugging on Cavium Networks CNS3xxx"
+		depends on ARCH_CNS3XXX
+		help
+		  Say Y here if you want the debug print routines to direct
+                  their output to the CNS3xxx UART0.
+
 	config DEBUG_DAVINCI_DA8XX_UART1
 		bool "Kernel low-level debugging on DaVinci DA8XX using UART1"
 		depends on ARCH_DAVINCI_DA8XX
@@ -579,6 +586,7 @@ endchoice
 
 config DEBUG_LL_INCLUDE
 	string
+	default "debug/cns3xxx.S" if DEBUG_CNS3XXX
 	default "debug/icedcc.S" if DEBUG_ICEDCC
 	default "debug/imx.S" if DEBUG_IMX1_UART || \
 				 DEBUG_IMX25_UART || \
diff --git a/arch/arm/configs/cns3420vb_defconfig b/arch/arm/configs/cns3420vb_defconfig
index 313627a..b79e984 100644
--- a/arch/arm/configs/cns3420vb_defconfig
+++ b/arch/arm/configs/cns3420vb_defconfig
@@ -21,6 +21,7 @@ CONFIG_MODVERSIONS=y
 CONFIG_IOSCHED_CFQ=m
 CONFIG_ARCH_CNS3XXX=y
 CONFIG_MACH_CNS3420VB=y
+CONFIG_DEBUG_CNS3XXX=y
 CONFIG_AEABI=y
 CONFIG_ZBOOT_ROM_TEXT=0x0
 CONFIG_ZBOOT_ROM_BSS=0x0
diff --git a/arch/arm/mach-cns3xxx/include/mach/debug-macro.S b/arch/arm/include/debug/cns3xxx.S
similarity index 100%
rename from arch/arm/mach-cns3xxx/include/mach/debug-macro.S
rename to arch/arm/include/debug/cns3xxx.S
-- 
1.8.1.2

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

* [PATCH 4/5] ARM: cns3xxx: enable multiplatform support
  2013-03-14 22:14 [PATCH 0/5] cns3xxx multiplatform support Arnd Bergmann
                   ` (2 preceding siblings ...)
  2013-03-14 22:14 ` [PATCH 3/5] ARM: cns3xxx: move debug_ll code to include/debug/ Arnd Bergmann
@ 2013-03-14 22:14 ` Arnd Bergmann
  2013-03-14 22:14 ` [PATCH 5/5] ARM: cns3xxx: initial DT support Arnd Bergmann
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 11+ messages in thread
From: Arnd Bergmann @ 2013-03-14 22:14 UTC (permalink / raw)
  To: linux-arm-kernel

This moves the cns3xxx configuration option inside of ARCH_MULTIPLATFORM,
since there is no reason for not doing it now. We can then also remove
the three header files that become obsolete.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 arch/arm/Kconfig                                | 12 ------
 arch/arm/configs/cns3420vb_defconfig            |  2 +
 arch/arm/mach-cns3xxx/Kconfig                   | 11 +++++
 arch/arm/mach-cns3xxx/include/mach/timex.h      | 12 ------
 arch/arm/mach-cns3xxx/include/mach/uncompress.h | 53 -------------------------
 5 files changed, 13 insertions(+), 77 deletions(-)
 delete mode 100644 arch/arm/mach-cns3xxx/include/mach/timex.h
 delete mode 100644 arch/arm/mach-cns3xxx/include/mach/uncompress.h

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 8bad33e..78ffcc6 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -382,18 +382,6 @@ config ARCH_BCM2835
 	  This enables support for the Broadcom BCM2835 SoC. This SoC is
 	  use in the Raspberry Pi, and Roku 2 devices.
 
-config ARCH_CNS3XXX
-	bool "Cavium Networks CNS3XXX family"
-	select ARM_GIC
-	select CPU_V6K
-	select GENERIC_CLOCKEVENTS
-	select MIGHT_HAVE_CACHE_L2X0
-	select MIGHT_HAVE_PCI
-	select PCI_DOMAINS if PCI
-	select SPARSE_IRQ
-	help
-	  Support for Cavium Networks CNS3XXX platform.
-
 config ARCH_CLPS711X
 	bool "Cirrus Logic CLPS711x/EP721x/EP731x-based"
 	select ARCH_REQUIRE_GPIOLIB
diff --git a/arch/arm/configs/cns3420vb_defconfig b/arch/arm/configs/cns3420vb_defconfig
index b79e984..b1ff5cd 100644
--- a/arch/arm/configs/cns3420vb_defconfig
+++ b/arch/arm/configs/cns3420vb_defconfig
@@ -19,6 +19,8 @@ CONFIG_MODULE_FORCE_UNLOAD=y
 CONFIG_MODVERSIONS=y
 # CONFIG_BLK_DEV_BSG is not set
 CONFIG_IOSCHED_CFQ=m
+CONFIG_ARCH_MULTI_V6=y
+#CONFIG_ARCH_MULTI_V7 is not set
 CONFIG_ARCH_CNS3XXX=y
 CONFIG_MACH_CNS3420VB=y
 CONFIG_DEBUG_CNS3XXX=y
diff --git a/arch/arm/mach-cns3xxx/Kconfig b/arch/arm/mach-cns3xxx/Kconfig
index 9ebfcc4..5720f3d 100644
--- a/arch/arm/mach-cns3xxx/Kconfig
+++ b/arch/arm/mach-cns3xxx/Kconfig
@@ -1,3 +1,14 @@
+config ARCH_CNS3XXX
+	bool "Cavium Networks CNS3XXX family" if ARCH_MULTI_V6
+	select ARM_GIC
+	select CPU_V6K
+	select GENERIC_CLOCKEVENTS
+	select MIGHT_HAVE_CACHE_L2X0
+	select MIGHT_HAVE_PCI
+	select PCI_DOMAINS if PCI
+	help
+	  Support for Cavium Networks CNS3XXX platform.
+
 menu "CNS3XXX platform type"
 	depends on ARCH_CNS3XXX
 
diff --git a/arch/arm/mach-cns3xxx/include/mach/timex.h b/arch/arm/mach-cns3xxx/include/mach/timex.h
deleted file mode 100644
index 1fd0421..0000000
--- a/arch/arm/mach-cns3xxx/include/mach/timex.h
+++ /dev/null
@@ -1,12 +0,0 @@
-/*
- * Cavium Networks architecture timex specifications
- *
- * Copyright 2003 ARM Limited
- * Copyright 2008 Cavium Networks
- *
- * This file is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License, Version 2, as
- * published by the Free Software Foundation.
- */
-
-#define CLOCK_TICK_RATE		(50000000 / 16)
diff --git a/arch/arm/mach-cns3xxx/include/mach/uncompress.h b/arch/arm/mach-cns3xxx/include/mach/uncompress.h
deleted file mode 100644
index e2c642c..0000000
--- a/arch/arm/mach-cns3xxx/include/mach/uncompress.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright 2003 ARM Limited
- * Copyright 2008 Cavium Networks
- *
- * This file is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License, Version 2, as
- * published by the Free Software Foundation.
- */
-
-#include <asm/mach-types.h>
-#include "cns3xxx.h"
-
-#define AMBA_UART_DR(base)	(*(volatile unsigned char *)((base) + 0x00))
-#define AMBA_UART_LCRH(base)	(*(volatile unsigned char *)((base) + 0x2c))
-#define AMBA_UART_CR(base)	(*(volatile unsigned char *)((base) + 0x30))
-#define AMBA_UART_FR(base)	(*(volatile unsigned char *)((base) + 0x18))
-
-/*
- * Return the UART base address
- */
-static inline unsigned long get_uart_base(void)
-{
-	if (machine_is_cns3420vb())
-		return CNS3XXX_UART0_BASE;
-	else
-		return 0;
-}
-
-/*
- * This does not append a newline
- */
-static inline void putc(int c)
-{
-	unsigned long base = get_uart_base();
-
-	while (AMBA_UART_FR(base) & (1 << 5))
-		barrier();
-
-	AMBA_UART_DR(base) = c;
-}
-
-static inline void flush(void)
-{
-	unsigned long base = get_uart_base();
-
-	while (AMBA_UART_FR(base) & (1 << 3))
-		barrier();
-}
-
-/*
- * nothing to do
- */
-#define arch_decomp_setup()
-- 
1.8.1.2

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

* [PATCH 5/5] ARM: cns3xxx: initial DT support
  2013-03-14 22:14 [PATCH 0/5] cns3xxx multiplatform support Arnd Bergmann
                   ` (3 preceding siblings ...)
  2013-03-14 22:14 ` [PATCH 4/5] ARM: cns3xxx: enable multiplatform support Arnd Bergmann
@ 2013-03-14 22:14 ` Arnd Bergmann
  2013-03-15 10:58 ` [PATCH 0/5] cns3xxx multiplatform support Florian Fainelli
  2013-03-16 16:50 ` Anton Vorontsov
  6 siblings, 0 replies; 11+ messages in thread
From: Arnd Bergmann @ 2013-03-14 22:14 UTC (permalink / raw)
  To: linux-arm-kernel

This adds very minimal support for booting cns3xxx using a device
tree. It should support the same devices that cns3420vb provides
but gets them from the DT. All devices that don't have their own
binding are probed through auxdata. This is completely untested
and likely incomplete.

Booting through ATAGS is made optional, so it can be turned off
by anybody who has a DTB file.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 arch/arm/mach-cns3xxx/Kconfig  |   1 +
 arch/arm/mach-cns3xxx/Makefile |   8 +--
 arch/arm/mach-cns3xxx/core.c   | 119 +++++++++++++++++++++++++++++++++++++++++
 3 files changed, 125 insertions(+), 3 deletions(-)

diff --git a/arch/arm/mach-cns3xxx/Kconfig b/arch/arm/mach-cns3xxx/Kconfig
index 5720f3d..dbf0df8 100644
--- a/arch/arm/mach-cns3xxx/Kconfig
+++ b/arch/arm/mach-cns3xxx/Kconfig
@@ -14,6 +14,7 @@ menu "CNS3XXX platform type"
 
 config MACH_CNS3420VB
 	bool "Support for CNS3420 Validation Board"
+	depends on ATAGS
 	help
 	  Include support for the Cavium Networks CNS3420 MPCore Platform
 	  Baseboard.
diff --git a/arch/arm/mach-cns3xxx/Makefile b/arch/arm/mach-cns3xxx/Makefile
index 11033f1..a1ff108 100644
--- a/arch/arm/mach-cns3xxx/Makefile
+++ b/arch/arm/mach-cns3xxx/Makefile
@@ -1,3 +1,5 @@
-obj-$(CONFIG_ARCH_CNS3XXX)		+= core.o pm.o devices.o
-obj-$(CONFIG_PCI)			+= pcie.o
-obj-$(CONFIG_MACH_CNS3420VB)		+= cns3420vb.o
+obj-$(CONFIG_ARCH_CNS3XXX)		+= cns3xxx.o
+cns3xxx-y				+= core.o pm.o
+cns3xxx-$(CONFIG_ATAGS)			+= devices.o
+cns3xxx-$(CONFIG_PCI)			+= pcie.o
+cns3xxx-$(CONFIG_MACH_CNS3420VB)	+= cns3420vb.o
diff --git a/arch/arm/mach-cns3xxx/core.c b/arch/arm/mach-cns3xxx/core.c
index 012ffdb..49e657c 100644
--- a/arch/arm/mach-cns3xxx/core.c
+++ b/arch/arm/mach-cns3xxx/core.c
@@ -13,12 +13,18 @@
 #include <linux/clockchips.h>
 #include <linux/io.h>
 #include <linux/irqchip/arm-gic.h>
+#include <linux/of_platform.h>
+#include <linux/platform_device.h>
+#include <linux/usb/ehci_pdriver.h>
+#include <linux/usb/ohci_pdriver.h>
+#include <asm/mach/arch.h>
 #include <asm/mach/map.h>
 #include <asm/mach/time.h>
 #include <asm/mach/irq.h>
 #include <asm/hardware/cache-l2x0.h>
 #include "cns3xxx.h"
 #include "core.h"
+#include "pm.h"
 
 static struct map_desc cns3xxx_io_desc[] __initdata = {
 	{
@@ -276,3 +282,116 @@ void __init cns3xxx_l2x0_init(void)
 }
 
 #endif /* CONFIG_CACHE_L2X0 */
+
+static int csn3xxx_usb_power_on(struct platform_device *pdev)
+{
+	/*
+	 * EHCI and OHCI share the same clock and power,
+	 * resetting twice would cause the 1st controller been reset.
+	 * Therefore only do power up  at the first up device, and
+	 * power down at the last down device.
+	 *
+	 * Set USB AHB INCR length to 16
+	 */
+	if (atomic_inc_return(&usb_pwr_ref) == 1) {
+		cns3xxx_pwr_power_up(1 << PM_PLL_HM_PD_CTRL_REG_OFFSET_PLL_USB);
+		cns3xxx_pwr_clk_en(1 << PM_CLK_GATE_REG_OFFSET_USB_HOST);
+		cns3xxx_pwr_soft_rst(1 << PM_SOFT_RST_REG_OFFST_USB_HOST);
+		__raw_writel((__raw_readl(MISC_CHIP_CONFIG_REG) | (0X2 << 24)),
+			MISC_CHIP_CONFIG_REG);
+	}
+
+	return 0;
+}
+
+static void csn3xxx_usb_power_off(struct platform_device *pdev)
+{
+	/*
+	 * EHCI and OHCI share the same clock and power,
+	 * resetting twice would cause the 1st controller been reset.
+	 * Therefore only do power up  at the first up device, and
+	 * power down@the last down device.
+	 */
+	if (atomic_dec_return(&usb_pwr_ref) == 0)
+		cns3xxx_pwr_clk_dis(1 << PM_CLK_GATE_REG_OFFSET_USB_HOST);
+}
+
+static struct usb_ehci_pdata cns3xxx_usb_ehci_pdata = {
+	.power_on	= csn3xxx_usb_power_on,
+	.power_off	= csn3xxx_usb_power_off,
+};
+
+static struct usb_ohci_pdata cns3xxx_usb_ohci_pdata = {
+	.num_ports	= 1,
+	.power_on	= csn3xxx_usb_power_on,
+	.power_off	= csn3xxx_usb_power_off,
+};
+
+static struct of_dev_auxdata cns3xxx_auxdata[] __initconst = {
+	{ "intel,usb-ehci", CNS3XXX_USB_BASE, "ehci-platform", &cns3xxx_usb_ehci_pdata },
+	{ "intel,usb-ohci", CNS3XXX_USB_OHCI_BASE, "ohci-platform", &cns3xxx_usb_ohci_pdata },
+	{ "cavium,cns3420-ahci", CNS3XXX_SATA2_BASE, "ahci", NULL },
+	{ "cavium,cns3420-sdhci", CNS3XXX_SDIO_BASE, "ahci", NULL },
+	{},
+};
+
+static void __init cns3xxx_init(void)
+{
+	struct device_node *dn;
+
+	cns3xxx_l2x0_init();
+
+	dn = of_find_compatible_node(NULL, NULL, "cavium,cns3420-ahci");
+	if (of_device_is_available(dn)) {
+		u32 tmp;
+	
+		tmp = __raw_readl(MISC_SATA_POWER_MODE);
+		tmp |= 0x1 << 16; /* Disable SATA PHY 0 from SLUMBER Mode */
+		tmp |= 0x1 << 17; /* Disable SATA PHY 1 from SLUMBER Mode */
+		__raw_writel(tmp, MISC_SATA_POWER_MODE);
+	
+		/* Enable SATA PHY */
+		cns3xxx_pwr_power_up(0x1 << PM_PLL_HM_PD_CTRL_REG_OFFSET_SATA_PHY0);
+		cns3xxx_pwr_power_up(0x1 << PM_PLL_HM_PD_CTRL_REG_OFFSET_SATA_PHY1);
+	
+		/* Enable SATA Clock */
+		cns3xxx_pwr_clk_en(0x1 << PM_CLK_GATE_REG_OFFSET_SATA);
+	
+		/* De-Asscer SATA Reset */
+		cns3xxx_pwr_soft_rst(CNS3XXX_PWR_SOFTWARE_RST(SATA));
+	}
+
+	dn = of_find_compatible_node(NULL, NULL, "cavium,cns3420-sdhci");
+	if (of_device_is_available(dn)) {
+		u32 __iomem *gpioa = IOMEM(CNS3XXX_MISC_BASE_VIRT + 0x0014);
+		u32 gpioa_pins = __raw_readl(gpioa);
+	
+		/* MMC/SD pins share with GPIOA */
+		gpioa_pins |= 0x1fff0004;
+		__raw_writel(gpioa_pins, gpioa);
+	
+		cns3xxx_pwr_clk_en(CNS3XXX_PWR_CLK_EN(SDIO));
+		cns3xxx_pwr_soft_rst(CNS3XXX_PWR_SOFTWARE_RST(SDIO));
+	}
+
+	pm_power_off = cns3xxx_power_off;
+
+	of_platform_populate(NULL, of_default_bus_match_table,
+                        cns3xxx_auxdata, NULL);
+}
+
+static const char *cns3xxx_dt_compat[] __initdata = {
+	"cavium,cns3410",
+	"cavium,cns3420",
+	NULL,
+};
+
+DT_MACHINE_START(CNS3XXX_DT, "Cavium Networks CNS3xxx")
+	.dt_compat	= cns3xxx_dt_compat,
+	.nr_irqs	= NR_IRQS_CNS3XXX,
+	.map_io		= cns3xxx_map_io,
+	.init_irq	= cns3xxx_init_irq,
+	.init_time	= cns3xxx_timer_init,
+	.init_machine	= cns3xxx_init,
+	.restart	= cns3xxx_restart,
+MACHINE_END
-- 
1.8.1.2

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

* [PATCH 0/5] cns3xxx multiplatform support
  2013-03-14 22:14 [PATCH 0/5] cns3xxx multiplatform support Arnd Bergmann
                   ` (4 preceding siblings ...)
  2013-03-14 22:14 ` [PATCH 5/5] ARM: cns3xxx: initial DT support Arnd Bergmann
@ 2013-03-15 10:58 ` Florian Fainelli
  2013-03-15 11:27   ` Gabor Juhos
  2013-03-16 16:50 ` Anton Vorontsov
  6 siblings, 1 reply; 11+ messages in thread
From: Florian Fainelli @ 2013-03-15 10:58 UTC (permalink / raw)
  To: linux-arm-kernel

Hello Arnd,

Le 03/14/13 23:14, Arnd Bergmann a ?crit :
> I've looked at all the platforms recently to see what their
> state is. cns3xxx seems quite clean but not very actively
> maintained. Since it is really easy to convert to multiplatform,
> that's what I did here. I'd like to apply this for linux-3.9
> unless there are objections or other comments.

I do not have any cns3xxx device myself, but I added Felix and Gabor in 
CC who actually have one.

>
> Arnd Bergmann (5):
>    ARM: cns3xxx: make mach header files local
>    ARM: cns3xxx: enable sparse IRQ support
>    ARM: cns3xxx: move debug_ll code to include/debug/
>    ARM: cns3xxx: enable multiplatform support
>    ARM: cns3xxx: initial DT support
>
>   arch/arm/Kconfig                                   |  11 --
>   arch/arm/Kconfig.debug                             |   8 ++
>   arch/arm/configs/cns3420vb_defconfig               |   3 +
>   .../mach/debug-macro.S => include/debug/cns3xxx.S} |   0
>   arch/arm/mach-cns3xxx/Kconfig                      |  12 ++
>   arch/arm/mach-cns3xxx/Makefile                     |   8 +-
>   arch/arm/mach-cns3xxx/cns3420vb.c                  |   6 +-
>   arch/arm/mach-cns3xxx/{include/mach => }/cns3xxx.h |   7 +-
>   arch/arm/mach-cns3xxx/core.c                       | 121 ++++++++++++++++++++-
>   arch/arm/mach-cns3xxx/devices.c                    |   5 +-
>   arch/arm/mach-cns3xxx/include/mach/irqs.h          |  24 ----
>   arch/arm/mach-cns3xxx/include/mach/timex.h         |  12 --
>   arch/arm/mach-cns3xxx/include/mach/uncompress.h    |  53 ---------
>   arch/arm/mach-cns3xxx/pcie.c                       |   2 +-
>   arch/arm/mach-cns3xxx/pm.c                         |   4 +-
>   arch/arm/mach-cns3xxx/{include/mach => }/pm.h      |   0
>   drivers/mmc/host/sdhci-cns3xxx.c                   |   1 -
>   17 files changed, 158 insertions(+), 119 deletions(-)
>   rename arch/arm/{mach-cns3xxx/include/mach/debug-macro.S => include/debug/cns3xxx.S} (100%)
>   rename arch/arm/mach-cns3xxx/{include/mach => }/cns3xxx.h (99%)
>   delete mode 100644 arch/arm/mach-cns3xxx/include/mach/irqs.h
>   delete mode 100644 arch/arm/mach-cns3xxx/include/mach/timex.h
>   delete mode 100644 arch/arm/mach-cns3xxx/include/mach/uncompress.h
>   rename arch/arm/mach-cns3xxx/{include/mach => }/pm.h (100%)
>

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

* [PATCH 0/5] cns3xxx multiplatform support
  2013-03-15 10:58 ` [PATCH 0/5] cns3xxx multiplatform support Florian Fainelli
@ 2013-03-15 11:27   ` Gabor Juhos
  0 siblings, 0 replies; 11+ messages in thread
From: Gabor Juhos @ 2013-03-15 11:27 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Florian,

2013.03.15. 11:58 keltez?ssel, Florian Fainelli ?rta:
> Hello Arnd,
> 
> Le 03/14/13 23:14, Arnd Bergmann a ?crit :
>> I've looked at all the platforms recently to see what their
>> state is. cns3xxx seems quite clean but not very actively
>> maintained. Since it is really easy to convert to multiplatform,
>> that's what I did here. I'd like to apply this for linux-3.9
>> unless there are objections or other comments.
> 
> I do not have any cns3xxx device myself, but I added Felix and Gabor in CC who
> actually have one.

FYI, I don't have any cns3xxx based board.

-Gabor

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

* [PATCH 0/5] cns3xxx multiplatform support
  2013-03-14 22:14 [PATCH 0/5] cns3xxx multiplatform support Arnd Bergmann
                   ` (5 preceding siblings ...)
  2013-03-15 10:58 ` [PATCH 0/5] cns3xxx multiplatform support Florian Fainelli
@ 2013-03-16 16:50 ` Anton Vorontsov
  2013-03-29  8:11   ` Mac Lin
  6 siblings, 1 reply; 11+ messages in thread
From: Anton Vorontsov @ 2013-03-16 16:50 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Arnd,

On Thu, Mar 14, 2013 at 11:14:26PM +0100, Arnd Bergmann wrote:
> I've looked at all the platforms recently to see what their
> state is. cns3xxx seems quite clean but not very actively
> maintained. Since it is really easy to convert to multiplatform,
> that's what I did here. I'd like to apply this for linux-3.9
> unless there are objections or other comments.

I might have some old self-made QEMU emulator for CNS3xxx boards, but I am
not sure if I could revive it quickly. Maybe Cavium folks could test it
faster than me though (some Cc'ed, some Bcc'ed).

But the patches themselves look great, so:

Acked-by: Anton Vorontsov <anton@enomsg.org>

Thanks a lot!

Anton

> Arnd Bergmann (5):
>   ARM: cns3xxx: make mach header files local
>   ARM: cns3xxx: enable sparse IRQ support
>   ARM: cns3xxx: move debug_ll code to include/debug/
>   ARM: cns3xxx: enable multiplatform support
>   ARM: cns3xxx: initial DT support
> 
>  arch/arm/Kconfig                                   |  11 --
>  arch/arm/Kconfig.debug                             |   8 ++
>  arch/arm/configs/cns3420vb_defconfig               |   3 +
>  .../mach/debug-macro.S => include/debug/cns3xxx.S} |   0
>  arch/arm/mach-cns3xxx/Kconfig                      |  12 ++
>  arch/arm/mach-cns3xxx/Makefile                     |   8 +-
>  arch/arm/mach-cns3xxx/cns3420vb.c                  |   6 +-
>  arch/arm/mach-cns3xxx/{include/mach => }/cns3xxx.h |   7 +-
>  arch/arm/mach-cns3xxx/core.c                       | 121 ++++++++++++++++++++-
>  arch/arm/mach-cns3xxx/devices.c                    |   5 +-
>  arch/arm/mach-cns3xxx/include/mach/irqs.h          |  24 ----
>  arch/arm/mach-cns3xxx/include/mach/timex.h         |  12 --
>  arch/arm/mach-cns3xxx/include/mach/uncompress.h    |  53 ---------
>  arch/arm/mach-cns3xxx/pcie.c                       |   2 +-
>  arch/arm/mach-cns3xxx/pm.c                         |   4 +-
>  arch/arm/mach-cns3xxx/{include/mach => }/pm.h      |   0
>  drivers/mmc/host/sdhci-cns3xxx.c                   |   1 -
>  17 files changed, 158 insertions(+), 119 deletions(-)
>  rename arch/arm/{mach-cns3xxx/include/mach/debug-macro.S => include/debug/cns3xxx.S} (100%)
>  rename arch/arm/mach-cns3xxx/{include/mach => }/cns3xxx.h (99%)
>  delete mode 100644 arch/arm/mach-cns3xxx/include/mach/irqs.h
>  delete mode 100644 arch/arm/mach-cns3xxx/include/mach/timex.h
>  delete mode 100644 arch/arm/mach-cns3xxx/include/mach/uncompress.h
>  rename arch/arm/mach-cns3xxx/{include/mach => }/pm.h (100%)

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

* [PATCH 0/5] cns3xxx multiplatform support
  2013-03-16 16:50 ` Anton Vorontsov
@ 2013-03-29  8:11   ` Mac Lin
  2013-03-29  8:58     ` Imre Kaloz
  0 siblings, 1 reply; 11+ messages in thread
From: Mac Lin @ 2013-03-29  8:11 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Arnd, Anton,
2013/3/17 Anton Vorontsov <anton@enomsg.org>:
> Hi Arnd,
>
> On Thu, Mar 14, 2013 at 11:14:26PM +0100, Arnd Bergmann wrote:
>> I've looked at all the platforms recently to see what their
>> state is. cns3xxx seems quite clean but not very actively
>> maintained. Since it is really easy to convert to multiplatform,
>> that's what I did here. I'd like to apply this for linux-3.9
>> unless there are objections or other comments.
>
> I might have some old self-made QEMU emulator for CNS3xxx boards, but I am
> not sure if I could revive it quickly. Maybe Cavium folks could test it
> faster than me though (some Cc'ed, some Bcc'ed).
>
> But the patches themselves look great, so:
>
> Acked-by: Anton Vorontsov <anton@enomsg.org>
Sorry for the late response. I have not tested since 3.2, and it fail
booting almost right after 3.2....
It take me some time to be able to boot 3.9-rc1. I'll send the patch
in another mail.

The image of 3.9-rc1+the patches boots fine but with one warning which
is not seen without the patches:
NR_IRQS:16 nr_irqs:96 96
------------[ cut here ]------------
WARNING: at drivers/irqchip/irq-gic.c:782 gic_init_bases+0x284/0x2e8()
Cannot allocate irq_descs @ IRQ16, assuming pre-allocated
Modules linked in:
Backtrace:
[<c000c6f0>] (dump_backtrace+0x0/0x10c) from [<c01cf158>] (dump_stack+0x18/0x1c)
 r7:c028df40 r6:c027d39c r5:c023d888 r4:0000030e
[<c01cf140>] (dump_stack+0x0/0x1c) from [<c0016be0>] (warn_slowpath_common+0x54)
[<c0016b8c>] (warn_slowpath_common+0x0/0x70) from [<c0016ca0>] (warn_slowpath_f)
 r9:410fb024 r8:c02943b4 r7:00000050 r6:00000010 r5:00000010
r4:00000000
[<c0016c68>] (warn_slowpath_fmt+0x0/0x40) from [<c027d39c>] (gic_init_bases+0x2)
 r3:00000010 r2:c023d8d8
[<c027d118>] (gic_init_bases+0x0/0x2e8) from [<c0271aa8>] (cns3xxx_init_irq+0x3)
 r8:c0294000 r7:c02a4300 r6:ffffffff r5:c02849e8 r4:3fffffff
[<c0271a78>] (cns3xxx_init_irq+0x0/0x40) from [<c026d1bc>] (init_IRQ+0x1c/0x24)
[<c026d1a0>] (init_IRQ+0x0/0x24) from [<c026a800>] (start_kernel+0x164/0x2e4)
[<c026a69c>] (start_kernel+0x0/0x2e4) from [<00008070>] (0x8070)
 r8:00004008 r7:c02955ec r6:c02849e4 r5:c029408c r4:00c5387d
---[ end trace 1b75b31a2719ed1c ]---

I have my code pushed to https://github.com/mkl0301/linux.git, branch
cns3v20vb-3.9-multiplatform-test, in case you need them.

Best Regards,
Mac Lin

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

* [PATCH 0/5] cns3xxx multiplatform support
  2013-03-29  8:11   ` Mac Lin
@ 2013-03-29  8:58     ` Imre Kaloz
  0 siblings, 0 replies; 11+ messages in thread
From: Imre Kaloz @ 2013-03-29  8:58 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Mac Lin,

On Fri, 29 Mar 2013 09:11:28 +0100, Mac Lin <mkl0301@gmail.com> wrote:

> Hi Arnd, Anton,
> 2013/3/17 Anton Vorontsov <anton@enomsg.org>:
>> Hi Arnd,
>>
>> On Thu, Mar 14, 2013 at 11:14:26PM +0100, Arnd Bergmann wrote:
>>> I've looked at all the platforms recently to see what their
>>> state is. cns3xxx seems quite clean but not very actively
>>> maintained. Since it is really easy to convert to multiplatform,
>>> that's what I did here. I'd like to apply this for linux-3.9
>>> unless there are objections or other comments.
>>
>> I might have some old self-made QEMU emulator for CNS3xxx boards, but I am
>> not sure if I could revive it quickly. Maybe Cavium folks could test it
>> faster than me though (some Cc'ed, some Bcc'ed).
>>
>> But the patches themselves look great, so:
>>
>> Acked-by: Anton Vorontsov <anton@enomsg.org>
> Sorry for the late response. I have not tested since 3.2, and it fail
> booting almost right after 3.2....
> It take me some time to be able to boot 3.9-rc1. I'll send the patch
> in another mail.
>
> The image of 3.9-rc1+the patches boots fine but with one warning which
> is not seen without the patches:
> NR_IRQS:16 nr_irqs:96 96
> ------------[ cut here ]------------
> WARNING: at drivers/irqchip/irq-gic.c:782 gic_init_bases+0x284/0x2e8()
> Cannot allocate irq_descs @ IRQ16, assuming pre-allocated
> Modules linked in:
> Backtrace:
> [<c000c6f0>] (dump_backtrace+0x0/0x10c) from [<c01cf158>] (dump_stack+0x18/0x1c)
>  r7:c028df40 r6:c027d39c r5:c023d888 r4:0000030e
> [<c01cf140>] (dump_stack+0x0/0x1c) from [<c0016be0>] (warn_slowpath_common+0x54)
> [<c0016b8c>] (warn_slowpath_common+0x0/0x70) from [<c0016ca0>] (warn_slowpath_f)
>  r9:410fb024 r8:c02943b4 r7:00000050 r6:00000010 r5:00000010
> r4:00000000
> [<c0016c68>] (warn_slowpath_fmt+0x0/0x40) from [<c027d39c>] (gic_init_bases+0x2)
>  r3:00000010 r2:c023d8d8
> [<c027d118>] (gic_init_bases+0x0/0x2e8) from [<c0271aa8>] (cns3xxx_init_irq+0x3)
>  r8:c0294000 r7:c02a4300 r6:ffffffff r5:c02849e8 r4:3fffffff
> [<c0271a78>] (cns3xxx_init_irq+0x0/0x40) from [<c026d1bc>] (init_IRQ+0x1c/0x24)
> [<c026d1a0>] (init_IRQ+0x0/0x24) from [<c026a800>] (start_kernel+0x164/0x2e4)
> [<c026a69c>] (start_kernel+0x0/0x2e4) from [<00008070>] (0x8070)
>  r8:00004008 r7:c02955ec r6:c02849e4 r5:c029408c r4:00c5387d
> ---[ end trace 1b75b31a2719ed1c ]---
>
> I have my code pushed to https://github.com/mkl0301/linux.git, branch
> cns3v20vb-3.9-multiplatform-test, in case you need them.

Please try applying the patches we have in OpenWrt [1], especially the first few. Most of them should apply fine, but I'll try to update them for 3.9 this weekend. When that's done, we should migrate the additional hw support to DT and merge whatever we can into mainline.


Imre

[1] https://dev.openwrt.org/browser/trunk/target/linux/cns3xxx/patches-3.8

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

end of thread, other threads:[~2013-03-29  8:58 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-03-14 22:14 [PATCH 0/5] cns3xxx multiplatform support Arnd Bergmann
2013-03-14 22:14 ` [PATCH 1/5] ARM: cns3xxx: make mach header files local Arnd Bergmann
2013-03-14 22:14 ` [PATCH 2/5] ARM: cns3xxx: enable sparse IRQ support Arnd Bergmann
2013-03-14 22:14 ` [PATCH 3/5] ARM: cns3xxx: move debug_ll code to include/debug/ Arnd Bergmann
2013-03-14 22:14 ` [PATCH 4/5] ARM: cns3xxx: enable multiplatform support Arnd Bergmann
2013-03-14 22:14 ` [PATCH 5/5] ARM: cns3xxx: initial DT support Arnd Bergmann
2013-03-15 10:58 ` [PATCH 0/5] cns3xxx multiplatform support Florian Fainelli
2013-03-15 11:27   ` Gabor Juhos
2013-03-16 16:50 ` Anton Vorontsov
2013-03-29  8:11   ` Mac Lin
2013-03-29  8:58     ` Imre Kaloz

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).