summaryrefslogtreecommitdiff
path: root/meta/recipes-kernel/linux/linux-omap3-pm-git/zoom2/0003-OMAP-Zoom2-Add-DEBUG_LL-interface-using-external-Qua.patch
diff options
context:
space:
mode:
authorRichard Purdie <rpurdie@linux.intel.com>2010-08-27 15:14:24 +0100
committerRichard Purdie <rpurdie@linux.intel.com>2010-08-27 15:29:45 +0100
commit29d6678fd546377459ef75cf54abeef5b969b5cf (patch)
tree8edd65790e37a00d01c3f203f773fe4b5012db18 /meta/recipes-kernel/linux/linux-omap3-pm-git/zoom2/0003-OMAP-Zoom2-Add-DEBUG_LL-interface-using-external-Qua.patch
parentda49de6885ee1bc424e70bc02f21f6ab920efb55 (diff)
downloadopenembedded-core-29d6678fd546377459ef75cf54abeef5b969b5cf.tar.gz
openembedded-core-29d6678fd546377459ef75cf54abeef5b969b5cf.tar.bz2
openembedded-core-29d6678fd546377459ef75cf54abeef5b969b5cf.tar.xz
openembedded-core-29d6678fd546377459ef75cf54abeef5b969b5cf.zip
Major layout change to the packages directory
Having one monolithic packages directory makes it hard to find things and is generally overwhelming. This commit splits it into several logical sections roughly based on function, recipes.txt gives more information about the classifications used. The opportunity is also used to switch from "packages" to "recipes" as used in OpenEmbedded as the term "packages" can be confusing to people and has many different meanings. Not all recipes have been classified yet, this is just a first pass at separating things out. Some packages are moved to meta-extras as they're no longer actively used or maintained. Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
Diffstat (limited to 'meta/recipes-kernel/linux/linux-omap3-pm-git/zoom2/0003-OMAP-Zoom2-Add-DEBUG_LL-interface-using-external-Qua.patch')
-rw-r--r--meta/recipes-kernel/linux/linux-omap3-pm-git/zoom2/0003-OMAP-Zoom2-Add-DEBUG_LL-interface-using-external-Qua.patch171
1 files changed, 171 insertions, 0 deletions
diff --git a/meta/recipes-kernel/linux/linux-omap3-pm-git/zoom2/0003-OMAP-Zoom2-Add-DEBUG_LL-interface-using-external-Qua.patch b/meta/recipes-kernel/linux/linux-omap3-pm-git/zoom2/0003-OMAP-Zoom2-Add-DEBUG_LL-interface-using-external-Qua.patch
new file mode 100644
index 000000000..e39090f6c
--- /dev/null
+++ b/meta/recipes-kernel/linux/linux-omap3-pm-git/zoom2/0003-OMAP-Zoom2-Add-DEBUG_LL-interface-using-external-Qua.patch
@@ -0,0 +1,171 @@
+From 98d46e88ffe23a9adcf6ae1acf19b210d5ac3737 Mon Sep 17 00:00:00 2001
+From: Vikram Pandita <vikram.pandita@ti.com>
+Date: Thu, 20 Aug 2009 17:16:24 -0500
+Subject: [PATCH 3/5] OMAP: Zoom2: Add DEBUG_LL interface using external Quart
+
+This patch adds DEBUG_LL interface for Zoom2 board.
+The low level debug uart now points corrctly to External Quad uart
+controller on detachable debug board.
+
+The Quad uart is available over GPMC chip select with physical address
+0x10000000.
+
+This physical address has been mapped to virtual address 0xFB000000
+as per static mapping.
+
+Also the register accesses to Quad uart have a requirement of shift=1
+based on the h/w mapping of the registers
+
+This patch is adapted from a version by Erik Gilling:
+http://android.git.kernel.org/?p=kernel/omap.git;
+a=commit;h=e9d72efdd88877d2d6ea74a08983ace0dcc771d3
+
+Signed-off-by: Vikram Pandita <vikram.pandita@ti.com>
+Cc: Erik Gilling <konkers@android.com>
+---
+ arch/arm/mach-omap2/board-zoom-debugboard.c | 5 +++--
+ arch/arm/mach-omap2/board-zoom2.c | 15 +++++++++++++++
+ arch/arm/plat-omap/include/mach/debug-macro.S | 14 ++++++++++++--
+ arch/arm/plat-omap/include/mach/io.h | 6 ++++++
+ arch/arm/plat-omap/include/mach/uncompress.h | 7 +++++++
+ 5 files changed, 43 insertions(+), 4 deletions(-)
+
+diff --git a/arch/arm/mach-omap2/board-zoom-debugboard.c b/arch/arm/mach-omap2/board-zoom-debugboard.c
+index f546063..f8b0726 100644
+--- a/arch/arm/mach-omap2/board-zoom-debugboard.c
++++ b/arch/arm/mach-omap2/board-zoom-debugboard.c
+@@ -82,9 +82,10 @@ static inline void __init zoom2_init_smsc911x(void)
+
+ static struct plat_serial8250_port serial_platform_data[] = {
+ {
+- .mapbase = 0x10000000,
++ .membase = IOMEM(ZOOM2_EXT_QUART_VIRT),
++ .mapbase = ZOOM2_EXT_QUART_PHYS,
+ .irq = OMAP_GPIO_IRQ(102),
+- .flags = UPF_BOOT_AUTOCONF|UPF_IOREMAP|UPF_SHARE_IRQ,
++ .flags = UPF_BOOT_AUTOCONF|UPF_SHARE_IRQ,
+ .irqflags = IRQF_SHARED | IRQF_TRIGGER_RISING,
+ .iotype = UPIO_MEM,
+ .regshift = 1,
+diff --git a/arch/arm/mach-omap2/board-zoom2.c b/arch/arm/mach-omap2/board-zoom2.c
+index 58baee3..fc27b07 100644
+--- a/arch/arm/mach-omap2/board-zoom2.c
++++ b/arch/arm/mach-omap2/board-zoom2.c
+@@ -16,9 +16,11 @@
+ #include <linux/gpio.h>
+ #include <linux/i2c/twl4030.h>
+ #include <linux/regulator/machine.h>
++#include <linux/io.h>
+
+ #include <asm/mach-types.h>
+ #include <asm/mach/arch.h>
++#include <asm/mach/map.h>
+
+ #include <mach/common.h>
+ #include <mach/usb.h>
+@@ -273,9 +275,22 @@ static void __init omap_zoom2_init(void)
+ usb_musb_init();
+ }
+
++static struct map_desc zoom2_io_desc[] __initdata = {
++ {
++ .virtual = ZOOM2_EXT_QUART_VIRT,
++ .pfn = __phys_to_pfn(ZOOM2_EXT_QUART_PHYS),
++ .length = ZOOM2_EXT_QUART_SIZE,
++ .type = MT_DEVICE
++ }
++};
++
+ static void __init omap_zoom2_map_io(void)
+ {
+ omap2_set_globals_343x();
++
++ /* Map external quad UART virt to phy mapping */
++ iotable_init(zoom2_io_desc, ARRAY_SIZE(zoom2_io_desc));
++
+ omap2_map_common_io();
+ }
+
+diff --git a/arch/arm/plat-omap/include/mach/debug-macro.S b/arch/arm/plat-omap/include/mach/debug-macro.S
+index f546d6c..a97f2fb 100644
+--- a/arch/arm/plat-omap/include/mach/debug-macro.S
++++ b/arch/arm/plat-omap/include/mach/debug-macro.S
+@@ -12,6 +12,14 @@
+ */
+ #include "io.h"
+
++#if (CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR == 0x10000000)
++#define REGSHIFT 1
++#define UART_VIRT_TO_PHY_OFFSET ZOOM2_EXT_QUART_PHY_TO_VIRT_OFF
++#else
++#define REGSHIFT 2
++#define UART_VIRT_TO_PHY_OFFSET OMAP2_IO_OFFSET
++#endif
++
+ .macro addruart,rx
+ mrc p15, 0, \rx, c1, c0
+ tst \rx, #1 @ MMU enabled?
+@@ -22,7 +30,7 @@
+ #else
+ /* omap2/omap3/omap4 */
+ ldr \rx, =CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR @ physical base address
+- orrne \rx, \rx, #OMAP2_IO_OFFSET @ virtual base
++ orrne \rx, \rx, #UART_VIRT_TO_PHY_OFFSET @ virtual base
+ #endif
+ .endm
+
+@@ -31,13 +39,15 @@
+ .endm
+
+ .macro busyuart,rd,rx
+-1001: ldrb \rd, [\rx, #(0x5 << 2)] @ OMAP-1510 and friends
++1001: ldrb \rd, [\rx, #(0x5 << REGSHIFT)] @ OMAP-1510 and friends
+ and \rd, \rd, #0x60
+ teq \rd, #0x60
++#if (CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR != 0x10000000)
+ beq 1002f
+ ldrb \rd, [\rx, #(0x5 << 0)] @ OMAP-730 only
+ and \rd, \rd, #0x60
+ teq \rd, #0x60
++#endif
+ bne 1001b
+ 1002:
+ .endm
+diff --git a/arch/arm/plat-omap/include/mach/io.h b/arch/arm/plat-omap/include/mach/io.h
+index 8d32df3..97702e6 100644
+--- a/arch/arm/plat-omap/include/mach/io.h
++++ b/arch/arm/plat-omap/include/mach/io.h
+@@ -169,6 +169,12 @@
+ #define DSP_MMU_34XX_VIRT 0xe2000000
+ #define DSP_MMU_34XX_SIZE SZ_4K
+
++/* Map External Quad UART for Zoom2 board */
++#define ZOOM2_EXT_QUART_PHYS 0x10000000 /* PHY address if fixed */
++#define ZOOM2_EXT_QUART_PHY_TO_VIRT_OFF 0xeb000000
++#define ZOOM2_EXT_QUART_VIRT 0xfb000000
++#define ZOOM2_EXT_QUART_SIZE SZ_16
++
+ /*
+ * ----------------------------------------------------------------------------
+ * Omap4 specific IO mapping
+diff --git a/arch/arm/plat-omap/include/mach/uncompress.h b/arch/arm/plat-omap/include/mach/uncompress.h
+index 0e21eb3..959195a 100644
+--- a/arch/arm/plat-omap/include/mach/uncompress.h
++++ b/arch/arm/plat-omap/include/mach/uncompress.h
+@@ -41,6 +41,13 @@ static void putc(int c)
+ #if defined(CONFIG_DEBUG_LL)
+ uart = (volatile u8 *)(CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR);
+
++#if (CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR == 0x10000000)
++ /* External UART has a shift=1 requirement
++ * Internal OMAP UARTs have shift=2 requirement
++ */
++ shift = 1;
++#endif
++
+ #ifdef CONFIG_ARCH_OMAP1
+ /* Determine which serial port to use */
+ do {
+--
+1.6.3.2
+