Re: beagle hangs in uart3 disabling clocks

2010-10-05 Thread Paul Walmsley
Hello Lei,

On Tue, 5 Oct 2010, Ming Lei wrote:

 2010/10/5 Kevin Hilman khil...@deeprootsystems.com:
  Ming Lei tom.leim...@gmail.com writes:
 
  2010/10/4 Kevin Hilman khil...@deeprootsystems.com:
 
  Why?  What do you need from the PM branch that is not in l-o master?
 
  Seems master branch works fine for me, my beagle board doesn't hang
  uart3 disabling clocks.
 
  Master branch and PM branch have exactly the same functionality for
  UART hwmods.  The problem was that you manually enabled DEBUG in
  omap_hwmod.c.
 
 Yes, you are correct. If DEBUG in omap_hwmod.c is enabled manually,
 and pass the parameter of 'earlyprintk loglevel=8' to kernel from bootloader,
 this issue can be triggered even with master branch.

Does this experimental patch solve the problem, even if DEBUG is enabled 
in the hwmod code?


- Paul

From d928bd31c9c4ad16a044b244ef3d2ad3ed648f6f Mon Sep 17 00:00:00 2001
From: Paul Walmsley p...@pwsan.com
Date: Tue, 5 Oct 2010 00:11:27 -0600
Subject: [PATCH] RFC: omap serial: block console output while resetting 
earlyconsole UART

Currently, no attempt is made to block console output while the
earlyconsole UART is unavailable.  This can result in silent crashes
that are very difficult to debug due to the lack of console output.
This patch holds the console semaphore while resetting the active console
UART, which causes all console output during that time to be buffered and
then transmitted after the console semaphore is released.

Not-yet-signed-off-by: Paul Walmsley p...@pwsan.com
---
 arch/arm/mach-omap2/serial.c |  100 ++
 1 files changed, 100 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-omap2/serial.c b/arch/arm/mach-omap2/serial.c
index 338e46a..577f8f9 100644
--- a/arch/arm/mach-omap2/serial.c
+++ b/arch/arm/mach-omap2/serial.c
@@ -28,10 +28,13 @@
 #include linux/serial_8250.h
 #include linux/pm_runtime.h
 
+#include linux/console.h
+
 #ifdef CONFIG_SERIAL_OMAP
 #include plat/omap-serial.h
 #endif
 
+#include plat/serial.h
 #include plat/common.h
 #include plat/board.h
 #include plat/clock.h
@@ -39,6 +42,8 @@
 #include plat/omap_hwmod.h
 #include plat/omap_device.h
 
+#include asm/memory.h
+
 #include prm.h
 #include pm.h
 #include cm.h
@@ -51,6 +56,8 @@
 #define UART_ERRATA_FIFO_FULL_ABORT(0x1  0)
 #define UART_ERRATA_i202_MDR1_ACCESS   (0x1  1)
 
+#define uart_id_to_ttys_id(u)  (u - 1)
+
 /*
  * NOTE: By default the serial timeout is disabled as it causes lost characters
  * over the serial ports. This means that the UART clocks will stay on until
@@ -106,6 +113,83 @@ static LIST_HEAD(uart_list);
 static u8 num_uarts;
 
 /*
+ * early_console_uart: if earlyconsole is enabled and active, the UART
+ * ID (e.g., 1, 2, 3, 4) will be stored here.  '0' means earlyconsole
+ * is disabled or some problem occurred during earlyconsole handling.
+ */
+static int early_console_uart;
+
+#define for_each_console(con) \
+   for (con = console_drivers; con != NULL; con = con-next)
+
+/* XXX belongs in kernel/printk.c or some earlyconsole file */
+/* XXX The earlycon string is an ugly hack */
+int _is_early_console_enabled(void)
+{
+   int ret = 0;
+   struct console *c;
+
+   acquire_console_sem();
+   for_each_console(c)
+   if (!strcmp(earlycon, c-name))
+   ret = 1;
+   release_console_sem();
+
+   return ret;
+}
+
+/* XXX document */
+static int _get_early_console_uart(void)
+{
+   u32 v;
+   int u = -EINVAL;
+
+   v = __raw_readl(phys_to_virt(OMAP_UART_INFO));
+   /* XXX see the OMAP debug-macro.S for this table */
+   switch (v) {
+   case 0:
+   case OMAP2UART1:
+   u = 1;
+   break;
+   case OMAP2UART2:
+   u = 2;
+   break;
+   case OMAP2UART3:
+   case OMAP3UART3:
+   case OMAP4UART3:
+   u = 3;
+   break;
+   case OMAP3UART4:
+   case OMAP4UART4:
+   u = 4;
+   break;
+   case ZOOM_UART:
+   WARN(1, omap serial: ZOOM UART in use - does that go through 
+the OMAP serial code?\n);
+   break;
+   default:
+   WARN(1, omap serial: unknown serial port in use!\n);
+   }
+
+   return u;
+}
+
+/* XXX document */
+static void _store_early_console_uart_id(void)
+{
+   int uart_id;
+
+   if (_is_early_console_enabled()) {
+   uart_id = _get_early_console_uart();
+   if (uart_id  0) {
+   early_console_uart = uart_id;
+   pr_info(omap serial: early console active on UART%d 
(ttyS%d)\n,
+   uart_id, uart_id_to_ttys_id(uart_id));
+   }
+   }
+}
+
+/*
  * Since these idle/enable hooks are used in the idle path itself
  * which has interrupts disabled, use the non-locking versions of
  * the hwmod enable/disable functions.
@@ -801,6 +885,17 @@ 

Re: beagle hangs in uart3 disabling clocks

2010-10-05 Thread Pramod

On Tuesday 05 October 2010 11:44 AM, Paul Walmsley wrote:

Hello Lei,

On Tue, 5 Oct 2010, Ming Lei wrote:


2010/10/5 Kevin Hilmankhil...@deeprootsystems.com:

Ming Leitom.leim...@gmail.com  writes:


2010/10/4 Kevin Hilmankhil...@deeprootsystems.com:


Why?  What do you need from the PM branch that is not in l-o master?


Seems master branch works fine for me, my beagle board doesn't hang
uart3 disabling clocks.


Master branch and PM branch have exactly the same functionality for
UART hwmods.  The problem was that you manually enabled DEBUG in
omap_hwmod.c.


Yes, you are correct. If DEBUG in omap_hwmod.c is enabled manually,
and pass the parameter of 'earlyprintk loglevel=8' to kernel from bootloader,
this issue can be triggered even with master branch.


Does this experimental patch solve the problem, even if DEBUG is enabled
in the hwmod code?


- Paul


Hi Paul,

I applied this patch on my kernel which is based on android-2.6.32 
enabling dynamic printks. I still see the console hang after enabling 
the logs in hwmod.


I am using zoom3 board. Can you please let me know which defconfig from 
lo master branch can be used to test on zoom3? I would like to test this 
patch with lo master branch and zoom3.



Thanks,
Pramod



 From d928bd31c9c4ad16a044b244ef3d2ad3ed648f6f Mon Sep 17 00:00:00 2001
From: Paul Walmsleyp...@pwsan.com
Date: Tue, 5 Oct 2010 00:11:27 -0600
Subject: [PATCH] RFC: omap serial: block console output while resetting 
earlyconsole UART

Currently, no attempt is made to block console output while the
earlyconsole UART is unavailable.  This can result in silent crashes
that are very difficult to debug due to the lack of console output.
This patch holds the console semaphore while resetting the active console
UART, which causes all console output during that time to be buffered and
then transmitted after the console semaphore is released.

Not-yet-signed-off-by: Paul Walmsleyp...@pwsan.com
---
  arch/arm/mach-omap2/serial.c |  100 ++
  1 files changed, 100 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-omap2/serial.c b/arch/arm/mach-omap2/serial.c
index 338e46a..577f8f9 100644
--- a/arch/arm/mach-omap2/serial.c
+++ b/arch/arm/mach-omap2/serial.c
@@ -28,10 +28,13 @@
  #includelinux/serial_8250.h
  #includelinux/pm_runtime.h

+#includelinux/console.h
+
  #ifdef CONFIG_SERIAL_OMAP
  #includeplat/omap-serial.h
  #endif

+#includeplat/serial.h
  #includeplat/common.h
  #includeplat/board.h
  #includeplat/clock.h
@@ -39,6 +42,8 @@
  #includeplat/omap_hwmod.h
  #includeplat/omap_device.h

+#includeasm/memory.h
+
  #include prm.h
  #include pm.h
  #include cm.h
@@ -51,6 +56,8 @@
  #define UART_ERRATA_FIFO_FULL_ABORT   (0x1  0)
  #define UART_ERRATA_i202_MDR1_ACCESS  (0x1  1)

+#define uart_id_to_ttys_id(u)  (u - 1)
+
  /*
   * NOTE: By default the serial timeout is disabled as it causes lost 
characters
   * over the serial ports. This means that the UART clocks will stay on until
@@ -106,6 +113,83 @@ static LIST_HEAD(uart_list);
  static u8 num_uarts;

  /*
+ * early_console_uart: if earlyconsole is enabled and active, the UART
+ * ID (e.g., 1, 2, 3, 4) will be stored here.  '0' means earlyconsole
+ * is disabled or some problem occurred during earlyconsole handling.
+ */
+static int early_console_uart;
+
+#define for_each_console(con) \
+   for (con = console_drivers; con != NULL; con = con-next)
+
+/* XXX belongs in kernel/printk.c or some earlyconsole file */
+/* XXX The earlycon string is an ugly hack */
+int _is_early_console_enabled(void)
+{
+   int ret = 0;
+   struct console *c;
+
+   acquire_console_sem();
+   for_each_console(c)
+   if (!strcmp(earlycon, c-name))
+   ret = 1;
+   release_console_sem();
+
+   return ret;
+}
+
+/* XXX document */
+static int _get_early_console_uart(void)
+{
+   u32 v;
+   int u = -EINVAL;
+
+   v = __raw_readl(phys_to_virt(OMAP_UART_INFO));
+   /* XXX see the OMAP debug-macro.S for this table */
+   switch (v) {
+   case 0:
+   case OMAP2UART1:
+   u = 1;
+   break;
+   case OMAP2UART2:
+   u = 2;
+   break;
+   case OMAP2UART3:
+   case OMAP3UART3:
+   case OMAP4UART3:
+   u = 3;
+   break;
+   case OMAP3UART4:
+   case OMAP4UART4:
+   u = 4;
+   break;
+   case ZOOM_UART:
+   WARN(1, omap serial: ZOOM UART in use - does that go through 
+the OMAP serial code?\n);
+   break;
+   default:
+   WARN(1, omap serial: unknown serial port in use!\n);
+   }
+
+   return u;
+}
+
+/* XXX document */
+static void _store_early_console_uart_id(void)
+{
+   int uart_id;
+
+   if (_is_early_console_enabled()) {
+   uart_id = _get_early_console_uart();
+   if (uart_id  0) {
+   

Re: beagle hangs in uart3 disabling clocks

2010-10-05 Thread Paul Walmsley
On Tue, 5 Oct 2010, Pramod wrote:

 I applied this patch on my kernel which is based on android-2.6.32 enabling
 dynamic printks. I still see the console hang after enabling the logs in
 hwmod.
 
 I am using zoom3 board. Can you please let me know which defconfig from lo
 master branch can be used to test on zoom3? I would like to test this patch
 with lo master branch and zoom3.

Could you please paste your boot log messages here?


- Paul
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: beagle hangs in uart3 disabling clocks

2010-10-05 Thread Pramod

On Tuesday 05 October 2010 12:49 PM, Paul Walmsley wrote:

On Tue, 5 Oct 2010, Pramod wrote:


I applied this patch on my kernel which is based on android-2.6.32 enabling
dynamic printks. I still see the console hang after enabling the logs in
hwmod.

I am using zoom3 board. Can you please let me know which defconfig from lo
master branch can be used to test on zoom3? I would like to test this patch
with lo master branch and zoom3.


Could you please paste your boot log messages here?


- Paul


Hi paul,
These are the boot log messages.

Uncompressing 
Linux..
.. done, 
booting the kernel.

Initializing cgroup subsys cpu
Linux version 2.6.32.9-1-g8d10978-dirty (d...@dw-desktop) (gcc version 
4.4.1 (Sourcery G++ Lite 2009q3-67) ) #23 PREEMPT Tue Oct 5 12:25:20 IST 
2010

CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c53c7f
CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
Machine: OMAP Zoom3 board
Memory policy: ECC disabled, Data cache writeback
On node 0 totalpages: 131072
free_area_init_node: node 0, pgdat c06c1968, node_mem_map c07cb000
  Normal zone: 1024 pages used for memmap
  Normal zone: 0 pages reserved
  Normal zone: 130048 pages, LIFO batch:31
DIE ID: 5C320156087C06005013
OMAP3630 ES1.0 (l2cache iva sgx neon isp 192mhz_clk )
omap_sam_base (VA) == 0xfe40
omap_sram_start (PA) == 0x4020
omap_sram_size (SIZE) == 0x1
SRAM: Mapped pa 0x4020 to va 0xfe40 size: 0x10
Reserving 14745600 bytes SDRAM for VRAM
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 130048
Kernel command line: console=ttyO2,115200n8 root=/dev/nfs rw 
nfsroot=172.24.137.0:/home/dw/l25.x/25.INC3.1/myfs,nolock,wsize=1024,rsize=1024 
init=/init ip=dhcp videoout=omap24xx
vout omap_vout.video1_numbuffers=6 omap_vout.vid1_static_vrfb_alloc=y 
omapfb.vram=0:4M earlyprintk loglevel=8

PID hash table entries: 2048 (order: 1, 8192 bytes)
Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
Memory: 256MB 256MB = 512MB total
Memory: 491008KB available (6180K code, 1352K data, 224K init, 0K highmem)
Virtual kernel memory layout:
vector  : 0x - 0x1000   (   4 kB)
fixmap  : 0xfff0 - 0xfffe   ( 896 kB)
vmalloc : 0xe080 - 0xf800   ( 376 MB)
lowmem  : 0xc000 - 0xe000   ( 512 MB)
pkmap   : 0xbfe0 - 0xc000   (   2 MB)
modules : 0xbf00 - 0xbfe0   (  14 MB)
  .init : 0xc0008000 - 0xc004   ( 224 kB)
  .text : 0xc004 - 0xc0649000   (6180 kB)
  .data : 0xc0674000 - 0xc06ce3d0   ( 361 kB)
Hierarchical RCU implementation.
NR_IRQS:402
IRQ: Found an INTC at 0xfa20 (revision 4.0) with 96 interrupts
Total of 96 interrupts on 1 active controller
Clocking rate (Crystal/Core/MPU): 26.0/400/600 MHz
Reprogramming SDRC clock to 4 Hz
GPMC revision 5.0
OMAP GPIO hardware version 2.5
OMAP clockevent source: GPTIMER1 at 32768 Hz
Console: colour dummy device 80x30
Calibrating delay loop... 597.64 BogoMIPS (lpj=2334720)
Mount-cache hash table entries: 512
Initializing cgroup subsys debug
Initializing cgroup subsys cpuacct
Initializing cgroup subsys freezer
CPU: Testing write buffer coherency: ok
regulator: core version 0.5
NET: Registered protocol family 16
mux: Setting signal i2c2_scl.i2c2_scl 0x0118 - 0x0100
mux: Setting signal i2c2_sda.i2c2_sda 0x0118 - 0x0100
mux: Setting signal i2c3_scl.i2c3_scl 0x0118 - 0x0100
mux: Setting signal i2c3_sda.i2c3_sda 0x0118 - 0x0100
mux: Setting signal uart3_cts_rctx.gpio_163 0x0108 - 0x011c
mux: Setting signal cam_xclka.gpio_96 0x0004 - 0x0004
mux: Setting signal cam_wen.gpio_167 0x0004 - 0x0004
mux: Setting signal mcspi1_cs2.mcspi1_cs2 0x0108 - 0x0108
mux: Setting signal cam_hs.gpio_94 0x010c - 0x0104
mux: Setting signal cam_xclka.gpio_96 0x0004 - 0x0004
mux: Setting signal gpmc_ncs5.gpio_56 0x0004 - 0x0004
mux: Setting signal cam_vs.gpio_95 0x0114 - 0x0004
mux: Setting signal sys_nirq.sys_nirq 0x0118 - 0x4118
mux: Setting signal cam_pclk.gpio_97 0x0114 - 0x011c
mux: Setting signal cam_d2.gpio101 0x0104 - 0x0004
mux: Setting signal mcbsp1_clkx.gpio162 0x011c - 0x0104
mux: Setting signal etk_clk.etk_clk 0x001b - 0x011a
mux: Setting signal mcspi1_cs1.mcspi1_cs1 0x000b - 0x011b
mux: Setting signal etk_d4.etk_d4 0x0103 - 0x011a
mux: Setting signal etk_d5.etk_d5 0x0103 - 0x011a
mux: Setting signal etk_d6.etk_d6 0x0103 - 0x011a
mux: Setting signal etk_d3.etk_d3 0x0103 - 0x011a
(wl12xx):  Connectivity board init
(wl12xx):  Connectivity board init for OMAP3+WL127x
(wl12xx):  wl127x_vio_leakage_fix
(wl12xx):  Adding Connectivity platform device
(wl12xx):  Configuring Connectivity GPIOs
mux: Setting signal cam_d10.gpio109 0x0104 - 0x0004
mux: Setting signal 

Re: beagle hangs in uart3 disabling clocks

2010-10-05 Thread Paul Walmsley
On Tue, 5 Oct 2010, Pramod wrote:

 On Tuesday 05 October 2010 12:49 PM, Paul Walmsley wrote:
  On Tue, 5 Oct 2010, Pramod wrote:
  
   I applied this patch on my kernel which is based on android-2.6.32
   enabling
   dynamic printks. I still see the console hang after enabling the logs in
   hwmod.
   
   I am using zoom3 board. Can you please let me know which defconfig from lo
   master branch can be used to test on zoom3? I would like to test this
   patch
   with lo master branch and zoom3.
  
  Could you please paste your boot log messages here?
  
  
  - Paul
 
 Hi paul,
 These are the boot log messages.

Is that with the patch applied or without it?  If without, please post the 
log messages from a boot after you apply the patch.

- Paul
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: beagle hangs in uart3 disabling clocks

2010-10-05 Thread Pramod

On Tuesday 05 October 2010 03:17 PM, Paul Walmsley wrote:

On Tue, 5 Oct 2010, Pramod wrote:


On Tuesday 05 October 2010 12:49 PM, Paul Walmsley wrote:

On Tue, 5 Oct 2010, Pramod wrote:


I applied this patch on my kernel which is based on android-2.6.32
enabling
dynamic printks. I still see the console hang after enabling the logs in
hwmod.

I am using zoom3 board. Can you please let me know which defconfig from lo
master branch can be used to test on zoom3? I would like to test this
patch
with lo master branch and zoom3.


Could you please paste your boot log messages here?


- Paul


Hi paul,
These are the boot log messages.


Is that with the patch applied or without it?  If without, please post the
log messages from a boot after you apply the patch.

- Paul


These logs are with the patch shared by you.

Pramod

--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: beagle hangs in uart3 disabling clocks

2010-10-05 Thread Paul Walmsley
On Tue, 5 Oct 2010, Pramod wrote:

 On Tuesday 05 October 2010 03:17 PM, Paul Walmsley wrote:
  On Tue, 5 Oct 2010, Pramod wrote:
  
   On Tuesday 05 October 2010 12:49 PM, Paul Walmsley wrote:
On Tue, 5 Oct 2010, Pramod wrote:

 I applied this patch on my kernel which is based on android-2.6.32
 enabling
 dynamic printks. I still see the console hang after enabling the logs
 in
 hwmod.
 
 I am using zoom3 board. Can you please let me know which defconfig
 from lo
 master branch can be used to test on zoom3? I would like to test this
 patch
 with lo master branch and zoom3.

Could you please paste your boot log messages here?


- Paul
   
   Hi paul,
   These are the boot log messages.
  
  Is that with the patch applied or without it?  If without, please post the
  log messages from a boot after you apply the patch.
  
  - Paul
 
 These logs are with the patch shared by you.

Looks to me like it boots fine.  If you had hwmod debugging enabled, your 
kernel should have crashed after

omap-hsuart.0: ttyO0 at MMIO 0x4806a000 (irq = 72) is a OMAP UART0
omap-hsuart.1: ttyO1 at MMIO 0x4806c000 (irq = 73) is a OMAP UART1
omap-hsuart.2: ttyO2 at MMIO 0x4902 (irq = 74) is a OMAP UART2

... but it didn't crash there.  I'm not seeing any hwmod debug messages 
though, so you probably don't have DEBUG defined in omap_hwmod.c.

So, I suspect whatever problem you're seeing is unrelated to the problem 
that the patch was intended to solve.


- Paul
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: beagle hangs in uart3 disabling clocks

2010-10-05 Thread Pramod

On Tuesday 05 October 2010 03:33 PM, Paul Walmsley wrote:

On Tue, 5 Oct 2010, Pramod wrote:


On Tuesday 05 October 2010 03:17 PM, Paul Walmsley wrote:

On Tue, 5 Oct 2010, Pramod wrote:


On Tuesday 05 October 2010 12:49 PM, Paul Walmsley wrote:

On Tue, 5 Oct 2010, Pramod wrote:


I applied this patch on my kernel which is based on android-2.6.32
enabling
dynamic printks. I still see the console hang after enabling the logs
in
hwmod.

I am using zoom3 board. Can you please let me know which defconfig
from lo
master branch can be used to test on zoom3? I would like to test this
patch
with lo master branch and zoom3.


Could you please paste your boot log messages here?


- Paul


Hi paul,
These are the boot log messages.


Is that with the patch applied or without it?  If without, please post the
log messages from a boot after you apply the patch.

- Paul


These logs are with the patch shared by you.


Looks to me like it boots fine.  If you had hwmod debugging enabled, your
kernel should have crashed after

omap-hsuart.0: ttyO0 at MMIO 0x4806a000 (irq = 72) is a OMAP UART0
omap-hsuart.1: ttyO1 at MMIO 0x4806c000 (irq = 73) is a OMAP UART1
omap-hsuart.2: ttyO2 at MMIO 0x4902 (irq = 74) is a OMAP UART2

... but it didn't crash there.  I'm not seeing any hwmod debug messages
though, so you probably don't have DEBUG defined in omap_hwmod.c.

So, I suspect whatever problem you're seeing is unrelated to the problem
that the patch was intended to solve.


- Paul


The hwmod debug messages will be seen when I enable them on the go with:
echo -n 'file omap_hwmod.c +p'  /debug/dynamic_debug/control

This will show lots of logs as below ending with UART3 clock disabling 
and a hang.


omap_hwmod:omap_hwmod: uart1: idling
omap_hwmod:omap_hwmod: uart1: disabling clocks
omap_hwmod:omap_hwmod: uart2: idling
omap_hwmod:omap_hwmod: uart2: disabling clocks
omap_hwmod:omap_hwmod: uart1: enabling
omap_hwmod:omap_hwmod: uart1: enabling clocks
omap_hwmod:omap_hwmod: uart2: enabling
omap_hwmod:omap_hwmod: uart2: enabling clocks
omap_hwmod:omap_hwmod: uart3: idling
omap_hwmod:omap_hwmod: uart3: disabling clock



-
Pramod
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: beagle hangs in uart3 disabling clocks

2010-10-04 Thread Pramod

Hi Sanjeev,

I just tested pm branch of tony's linux-omap-2.6 tree, and found my
beagle will hang in uart3 disabling clocks, follows the log info:



[snip]..[snip]



Texas Instruments X-Loader 1.41
Starting OS Bootloader...


U-Boot 1.3.3 (Jul 10 2008 - 16:33:09)

OMAP3530-GP rev 2, CPU-OPP2 L3-165MHz
OMAP3 Beagle Board + LPDDR/NAND
DRAM:  128 MB
NAND:


Lei,

Couldn't help noticing the version information for x-loader and
u-boot. Both seem to be quite old...

Could you try update both? May be, there is a dependency...

I am seeing the same issue with console on UART3 on zoom3 board. The 
bootloaders are older. Can you please share a link to latest bootloader 
which will have zoom3 support.


I am using L25_INC3.x android kernel. The board hangs as soon as it 
boots the kernel. Enabling the logs shows us that the hang occurs when 
UART3 clocks are being disabled in omap_hwmod.c as mentioned by Lei 
Ming. Has anyone observed this issue on any of omap boards?



~sanjeev




--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: beagle hangs in uart3 disabling clocks

2010-10-04 Thread Ming Lei
2010/10/4 Premi, Sanjeev pr...@ti.com:

 -Original Message-
 From: linux-omap-ow...@vger.kernel.org
 [mailto:linux-omap-ow...@vger.kernel.org] On Behalf Of Ming Lei
 Sent: Sunday, October 03, 2010 2:34 PM
 To: Kevin Hilman; linux-omap@vger.kernel.org
 Subject: beagle hangs in uart3 disabling clocks

 Hi,

 I just tested pm branch of tony's linux-omap-2.6 tree, and found my
 beagle will hang in uart3 disabling clocks, follows the log info:


 [snip]..[snip]


 Texas Instruments X-Loader 1.41
 Starting OS Bootloader...


 U-Boot 1.3.3 (Jul 10 2008 - 16:33:09)

 OMAP3530-GP rev 2, CPU-OPP2 L3-165MHz
 OMAP3 Beagle Board + LPDDR/NAND
 DRAM:  128 MB
 NAND:

 Lei,

 Couldn't help noticing the version information for x-loader and
 u-boot. Both seem to be quite old...

 Could you try update both? May be, there is a dependency...

No difference even update x-load and u-boot with those in the link below:

http://code.google.com/p/beagleboard/wiki/BeagleboardRevC3Validation


thanks,
-- 
Lei Ming
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: beagle hangs in uart3 disabling clocks

2010-10-04 Thread Govindraj
I tried now on zoom3 with uart3[ttyO2] as console

It boots up fine for me

Logs:

http://pastebin.com/sXR5nYcD

I am using omap2plus_defconfig and lo-master

commit 0882b1455797b0a104978000a622c3f2412e7cf5
Author: Tony Lindgren t...@atomide.com
Date:   Fri Oct 1 17:23:48 2010 -0700

omap: READ CAREFULLY: Fix build after merging in hwmod support for testing


---
Regards,
Govindraj.R



On Mon, Oct 4, 2010 at 5:47 PM, Pramod pramod.gu...@ti.com wrote:
 Hi Sanjeev,

 I just tested pm branch of tony's linux-omap-2.6 tree, and found my
 beagle will hang in uart3 disabling clocks, follows the log info:


 [snip]..[snip]


 Texas Instruments X-Loader 1.41
 Starting OS Bootloader...


 U-Boot 1.3.3 (Jul 10 2008 - 16:33:09)

 OMAP3530-GP rev 2, CPU-OPP2 L3-165MHz
 OMAP3 Beagle Board + LPDDR/NAND
 DRAM:  128 MB
 NAND:

 Lei,

 Couldn't help noticing the version information for x-loader and
 u-boot. Both seem to be quite old...

 Could you try update both? May be, there is a dependency...

 I am seeing the same issue with console on UART3 on zoom3 board. The
 bootloaders are older. Can you please share a link to latest bootloader
 which will have zoom3 support.

 I am using L25_INC3.x android kernel. The board hangs as soon as it boots
 the kernel. Enabling the logs shows us that the hang occurs when UART3
 clocks are being disabled in omap_hwmod.c as mentioned by Lei Ming. Has
 anyone observed this issue on any of omap boards?

 ~sanjeev


 --
 To unsubscribe from this list: send the line unsubscribe linux-omap in
 the body of a message to majord...@vger.kernel.org
 More majordomo info at  http://vger.kernel.org/majordomo-info.html

--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: beagle hangs in uart3 disabling clocks

2010-10-04 Thread Ming Lei
2010/10/4 Govindraj govindraj...@gmail.com:
 I tried now on zoom3 with uart3[ttyO2] as console

 It boots up fine for me

 Logs:

 http://pastebin.com/sXR5nYcD

 I am using omap2plus_defconfig and lo-master

 commit 0882b1455797b0a104978000a622c3f2412e7cf5
 Author: Tony Lindgren t...@atomide.com
 Date:   Fri Oct 1 17:23:48 2010 -0700

    omap: READ CAREFULLY: Fix build after merging in hwmod support for testing

Seems you are trying the master branch of Tony's linux-omap-2.6 tree, could you
try the pm branch of the tree?


thanks,
-- 
Lei Ming
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: beagle hangs in uart3 disabling clocks

2010-10-04 Thread Kevin Hilman
Ming Lei tom.leim...@gmail.com writes:

 I just tested pm branch of tony's linux-omap-2.6 tree, and found my
 beagle will hang in uart3 disabling clocks, follows the log info:

It greatly helps when you also state what defconfig you're using, and
what you've changed from the default defconfig.

... more below...

 Starting kernel ...

 Uncompressing Linux... done, booting the kernel.
 Linux version 2.6.36-rc6+ (t...@tom-lei) (gcc version 4.3.3 (Sourcery
 G++ Lite 2009q1-203) ) #320 PREEM
 PT Sun Oct 3 16:46:04 CST 2010
 CPU: ARMv7 Processor [411fc082] revision 2 (ARMv7), cr=10c53c7f
 CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
 Machine: OMAP3 Beagle Board
 bootconsole [earlycon0] enabled
 Memory policy: ECC disabled, Data cache writeback
 OMAP3430/3530 ES2.1 (l2cache iva sgx neon isp )
 SRAM: Mapped pa 0x4020 to va 0xfe40 size: 0x1
 On node 0 totalpages: 32768
 free_area_init_node: node 0, pgdat c04a1a00, node_mem_map c06b8000
   Normal zone: 256 pages used for memmap
   Normal zone: 0 pages reserved
   Normal zone: 32512 pages, LIFO batch:7
 Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 32512
 Kernel command line: console=ttyO2,115200n8 root=/dev/mmcblk0p2 rw
 rootdelay=1 earlyprintk initcall_de
 bug=1 loglevel=8
 PID hash table entries: 512 (order: -1, 2048 bytes)
 Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
 Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
 Memory: 128MB = 128MB total
 Memory: 123068k/123068k available, 8004k reserved, 0K highmem
 Virtual kernel memory layout:
 vector  : 0x - 0x1000   (   4 kB)
 fixmap  : 0xfff0 - 0xfffe   ( 896 kB)
 DMA : 0xffc0 - 0xffe0   (   2 MB)
 vmalloc : 0xc880 - 0xf800   ( 760 MB)
 lowmem  : 0xc000 - 0xc800   ( 128 MB)
 modules : 0xbf00 - 0xc000   (  16 MB)
   .init : 0xc0008000 - 0xc0034000   ( 176 kB)
   .text : 0xc0034000 - 0xc046c000   (4320 kB)
   .data : 0xc046c000 - 0xc04a2000   ( 216 kB)
 Preemptable hierarchical RCU implementation.
 RCU-based detection of stalled CPUs is disabled.
 Verbose stalled-CPUs detection is disabled.
 NR_IRQS:402
 omap_hwmod: l3_main: registering

You've manually done a '#define DEBUG' in omap_hwmod.c.  This does not
work well with UART hwmods, especially when using a UART console and
using DEBUG_LL + earlyprintk.

[...]

 omap_hwmod: uart2: idling
 omap_hwmod: uart2: disabling clocks
 omap_device: omap-hsuart: activating
 omap_hwmod: uart2: enabling
 omap_hwmod: uart2: enabling clocks
 omap_device: omap-hsuart: pm_lat 0: activate: elapsed time 0 nsec
 omap_device: omap-hsuart: deactivating
 omap_hwmod: uart2: idling
 omap_hwmod: uart2: disabling clocks
 omap_device: omap-hsuart: pm_lat 0: deactivate: elapsed time 0 nsec
 omap_device: omap-hsuart: activating
 omap_hwmod: uart2: enabling
 omap_hwmod: uart2: enabling clocks
 omap_device: omap-hsuart: pm_lat 0: activate: elapsed time 0 nsec
 omap_device: omap-hsuart: building with 1 hwmods
 omap_device: omap-hsuart: counted 4 total resources across 1 hwmods
 omap_device: omap-hsuart: registering
 Registering platform device 'omap-hsuart.2'. Parent at omap
 device: 'omap-hsuart.2': device_add
 bus: 'platform': add device omap-hsuart.2
 PM: Adding info for platform:omap-hsuart.2
 omap_hwmod: uart3: idling
 omap_hwmod: uart3: disabling clocks

Remember UART3 is your serial console.  

Basically, what is happening is that the hwmod is trying to print debug
messages for all hwmod changes.  As soon as UART3 is disabled, the
printing will fail since that is your console, so as soon as uart3
clocks are disabled, there is a fault when the polling-mode serial
driver (used for earlyprintk) tries to access the UART, and you hang.

Kevin



--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: beagle hangs in uart3 disabling clocks

2010-10-04 Thread Kevin Hilman
Ming Lei tom.leim...@gmail.com writes:

 2010/10/4 Govindraj govindraj...@gmail.com:
 I tried now on zoom3 with uart3[ttyO2] as console

 It boots up fine for me

 Logs:

 http://pastebin.com/sXR5nYcD

 I am using omap2plus_defconfig and lo-master

 commit 0882b1455797b0a104978000a622c3f2412e7cf5
 Author: Tony Lindgren t...@atomide.com
 Date:   Fri Oct 1 17:23:48 2010 -0700

    omap: READ CAREFULLY: Fix build after merging in hwmod support for testing

 Seems you are trying the master branch of Tony's linux-omap-2.6 tree, could 
 you
 try the pm branch of the tree?

Why?  What do you need from the PM branch that is not in l-o master?

The PM branch is *experimental*, and is under significant change while
parts that are not yet ready for mainline are being reworked and in some
cases completely re-written.

IOW, the PM branch is unstable and should not be trusted.  (I can say
that, I am the maintainer.)  ;)

Kevin
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: beagle hangs in uart3 disabling clocks

2010-10-04 Thread Ming Lei
2010/10/4 Kevin Hilman khil...@deeprootsystems.com:

 Why?  What do you need from the PM branch that is not in l-o master?

Seems master branch works fine for me, my beagle board doesn't hang
uart3 disabling clocks.

I only want to have a try of the runtime pm feature of omap3, so use
PM branch to do the test.


 The PM branch is *experimental*, and is under significant change while
 parts that are not yet ready for mainline are being reworked and in some
 cases completely re-written.

 IOW, the PM branch is unstable and should not be trusted.  (I can say
 that, I am the maintainer.)  ;)

I see now, :-)

-- 
Lei Ming
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: beagle hangs in uart3 disabling clocks

2010-10-04 Thread Kevin Hilman
Ming Lei tom.leim...@gmail.com writes:

 2010/10/4 Kevin Hilman khil...@deeprootsystems.com:

 Why?  What do you need from the PM branch that is not in l-o master?

 Seems master branch works fine for me, my beagle board doesn't hang
 uart3 disabling clocks.

Master branch and PM branch have exactly the same functionality for
UART hwmods.  The problem was that you manually enabled DEBUG in
omap_hwmod.c.

 I only want to have a try of the runtime pm feature of omap3, so use
 PM branch to do the test.

master branch and PM branch have exactly the same functionality for
runtime PM

Kevin
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: beagle hangs in uart3 disabling clocks

2010-10-04 Thread Ming Lei
2010/10/5 Kevin Hilman khil...@deeprootsystems.com:
 Ming Lei tom.leim...@gmail.com writes:

 2010/10/4 Kevin Hilman khil...@deeprootsystems.com:

 Why?  What do you need from the PM branch that is not in l-o master?

 Seems master branch works fine for me, my beagle board doesn't hang
 uart3 disabling clocks.

 Master branch and PM branch have exactly the same functionality for
 UART hwmods.  The problem was that you manually enabled DEBUG in
 omap_hwmod.c.

Yes, you are correct. If DEBUG in omap_hwmod.c is enabled manually,
and pass the parameter of 'earlyprintk loglevel=8' to kernel from bootloader,
this issue can be triggered even with master branch.


 I only want to have a try of the runtime pm feature of omap3, so use
 PM branch to do the test.

 master branch and PM branch have exactly the same functionality for
 runtime PM

Thanks for letting me know it.

thanks,
-- 
Lei Ming
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


beagle hangs in uart3 disabling clocks

2010-10-03 Thread Ming Lei
Hi,

I just tested pm branch of tony's linux-omap-2.6 tree, and found my
beagle will hang in uart3 disabling clocks, follows the log info:


Starting kernel ...

Uncompressing Linux... done, booting the kernel.
Linux version 2.6.36-rc6+ (t...@tom-lei) (gcc version 4.3.3 (Sourcery
G++ Lite 2009q1-203) ) #320 PREEM
PT Sun Oct 3 16:46:04 CST 2010
CPU: ARMv7 Processor [411fc082] revision 2 (ARMv7), cr=10c53c7f
CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
Machine: OMAP3 Beagle Board
bootconsole [earlycon0] enabled
Memory policy: ECC disabled, Data cache writeback
OMAP3430/3530 ES2.1 (l2cache iva sgx neon isp )
SRAM: Mapped pa 0x4020 to va 0xfe40 size: 0x1
On node 0 totalpages: 32768
free_area_init_node: node 0, pgdat c04a1a00, node_mem_map c06b8000
  Normal zone: 256 pages used for memmap
  Normal zone: 0 pages reserved
  Normal zone: 32512 pages, LIFO batch:7
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 32512
Kernel command line: console=ttyO2,115200n8 root=/dev/mmcblk0p2 rw
rootdelay=1 earlyprintk initcall_de
bug=1 loglevel=8
PID hash table entries: 512 (order: -1, 2048 bytes)
Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
Memory: 128MB = 128MB total
Memory: 123068k/123068k available, 8004k reserved, 0K highmem
Virtual kernel memory layout:
vector  : 0x - 0x1000   (   4 kB)
fixmap  : 0xfff0 - 0xfffe   ( 896 kB)
DMA : 0xffc0 - 0xffe0   (   2 MB)
vmalloc : 0xc880 - 0xf800   ( 760 MB)
lowmem  : 0xc000 - 0xc800   ( 128 MB)
modules : 0xbf00 - 0xc000   (  16 MB)
  .init : 0xc0008000 - 0xc0034000   ( 176 kB)
  .text : 0xc0034000 - 0xc046c000   (4320 kB)
  .data : 0xc046c000 - 0xc04a2000   ( 216 kB)
Preemptable hierarchical RCU implementation.
RCU-based detection of stalled CPUs is disabled.
Verbose stalled-CPUs detection is disabled.
NR_IRQS:402
omap_hwmod: l3_main: registering
omap_hwmod: l3_main: MPU OCP slave port ID  0
omap_hwmod: l3_main: no MPU register target found
omap_hwmod: l4_core: registering
omap_hwmod: l4_core: MPU OCP slave port ID  0
omap_hwmod: l4_core: no MPU register target found
omap_hwmod: l4_per: registering
omap_hwmod: l4_per: MPU OCP slave port ID  0
omap_hwmod: l4_per: no MPU register target found
omap_hwmod: l4_wkup: registering
omap_hwmod: l4_wkup: MPU OCP slave port ID  0
omap_hwmod: l4_wkup: no MPU register target found
omap_hwmod: mpu: registering
omap_hwmod: iva: registering
omap_hwmod: wd_timer2: registering
omap_hwmod: wd_timer2: MPU OCP slave port ID  0
omap_hwmod: wd_timer2: MPU register target at va fa314000
omap_hwmod: uart1: registering
omap_hwmod: uart1: MPU OCP slave port ID  0
omap_hwmod: uart1: MPU register target at va fa06a000
omap_hwmod: uart2: registering
omap_hwmod: uart2: MPU OCP slave port ID  0
omap_hwmod: uart2: MPU register target at va fa06c000
omap_hwmod: uart3: registering
omap_hwmod: uart3: MPU OCP slave port ID  0
omap_hwmod: uart3: MPU register target at va fb02
omap_hwmod: i2c1: registering
omap_hwmod: i2c1: MPU OCP slave port ID  0
omap_hwmod: i2c1: MPU register target at va fa07
omap_hwmod: i2c2: registering
omap_hwmod: i2c2: MPU OCP slave port ID  0
omap_hwmod: i2c2: MPU register target at va fa072000
omap_hwmod: i2c3: registering
omap_hwmod: i2c3: MPU OCP slave port ID  0
omap_hwmod: i2c3: MPU register target at va fa06
omap_hwmod: sr1_hwmod: registering
omap_hwmod: sr1_hwmod: MPU OCP slave port ID  0
omap_hwmod: sr1_hwmod: MPU register target at va fa0c9000
omap_hwmod: sr2_hwmod: registering
omap_hwmod: sr2_hwmod: MPU OCP slave port ID  0
omap_hwmod: sr2_hwmod: MPU register target at va fa0cb000
Clocking rate (Crystal/Core/MPU): 26.0/332/500 MHz
omap_hwmod: l3_main: looking up clocks
omap_hwmod: l4_core: looking up clocks
omap_hwmod: l4_per: looking up clocks
omap_hwmod: l4_wkup: looking up clocks
omap_hwmod: mpu: looking up clocks
omap_hwmod: iva: looking up clocks
omap_hwmod: wd_timer2: looking up clocks
omap_hwmod: uart1: looking up clocks
omap_hwmod: uart2: looking up clocks
omap_hwmod: uart3: looking up clocks
omap_hwmod: i2c1: looking up clocks
omap_hwmod: i2c2: looking up clocks
omap_hwmod: i2c3: looking up clocks
omap_hwmod: sr1_hwmod: looking up clocks
omap_hwmod: sr1_fck: missing clockdomain for sr1_fck.
omap_hwmod: sr2_hwmod: looking up clocks
omap_hwmod: sr2_fck: missing clockdomain for sr2_fck.
omap_hwmod: l3_main: enabling
omap_hwmod: l3_main: enabling clocks
omap_hwmod: l3_main: idling
omap_hwmod: l3_main: disabling clocks
omap_hwmod: l4_core: enabling
omap_hwmod: l4_core: enabling clocks
omap_hwmod: l4_core: idling
omap_hwmod: l4_core: disabling clocks
omap_hwmod: l4_per: enabling
omap_hwmod: l4_per: enabling clocks
omap_hwmod: l4_per: idling
omap_hwmod: l4_per: disabling clocks
omap_hwmod: l4_wkup: enabling
omap_hwmod: l4_wkup: enabling clocks
omap_hwmod: l4_wkup: idling
omap_hwmod: 

RE: beagle hangs in uart3 disabling clocks

2010-10-03 Thread Premi, Sanjeev

 -Original Message-
 From: linux-omap-ow...@vger.kernel.org 
 [mailto:linux-omap-ow...@vger.kernel.org] On Behalf Of Ming Lei
 Sent: Sunday, October 03, 2010 2:34 PM
 To: Kevin Hilman; linux-omap@vger.kernel.org
 Subject: beagle hangs in uart3 disabling clocks
 
 Hi,
 
 I just tested pm branch of tony's linux-omap-2.6 tree, and found my
 beagle will hang in uart3 disabling clocks, follows the log info:
 
 
[snip]..[snip]

 
 Texas Instruments X-Loader 1.41
 Starting OS Bootloader...
 
 
 U-Boot 1.3.3 (Jul 10 2008 - 16:33:09)
 
 OMAP3530-GP rev 2, CPU-OPP2 L3-165MHz
 OMAP3 Beagle Board + LPDDR/NAND
 DRAM:  128 MB
 NAND:

Lei,

Couldn't help noticing the version information for x-loader and
u-boot. Both seem to be quite old...

Could you try update both? May be, there is a dependency...

~sanjeev

 
 
 -- 
 Lei Ming
 --
 To unsubscribe from this list: send the line unsubscribe 
 linux-omap in
 the body of a message to majord...@vger.kernel.org
 More majordomo info at  http://vger.kernel.org/majordomo-info.html
 --
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html