linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* MPC8343 - serial8250: too much work
@ 2009-05-29 20:07 Alemao
  2009-06-01  0:47 ` Michael Ellerman
  0 siblings, 1 reply; 3+ messages in thread
From: Alemao @ 2009-05-29 20:07 UTC (permalink / raw)
  To: linuxppc-dev, linux-kernel

Im facing some problems with serial, linux-2.6.23, getting flooded
with this message in logs:

---
serial8250: too much work for irq16
---

Something I notice, in my .dts I have the following lines:

serial0: serial@4500,  interrupts   =  <9  0x8>
serial1: serial@4600,  interrupts   =  <10 0x8>
spi:       spi@7000,     interrupts   =  <16 0x8>


But when kernel starts:

---
Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
serial8250.0: ttyS0 at MMIO 0xe0004500 (irq = 16) is a 16550A
---

Why IRQ 16? Shouldn't it be IRQ 9?

I traced functions calls in 8250.c driver:

---
serial8250_interrup() -> serial8250_handle_port() -> transmit_chars()
---

"too much work" is for transmiting, but there's nothing to transmit.

In my MPC8343 board I have only serial0 connected to a MAX3232, serial1
is floating.

I found this comments in linux/drivers/serial/8250.h, and tried to use
same defines that they used, but no success:

/*
 * Digital did something really horribly wrong with the OUT1 and OUT2
 * lines on at least some ALPHA's.  The failure mode is that if either
 * is cleared, the machine locks up with endless interrupts.
 */

/*
 * WindRiver did something similarly broken on their SBC8560 board. The
 * UART tristates its IRQ output while OUT2 is clear, but they pulled
 * the interrupt line _up_ instead of down, so if we register the IRQ
 * while the UART is in that state, we die in an IRQ storm.
 */


I also tried removing serial1 and spi from .dts, but didn't work.

Any sugestions?

Cheers,

--
Alemao

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

* Re: MPC8343 - serial8250: too much work
  2009-05-29 20:07 MPC8343 - serial8250: too much work Alemao
@ 2009-06-01  0:47 ` Michael Ellerman
  2009-06-02 13:24   ` Alemao
  0 siblings, 1 reply; 3+ messages in thread
From: Michael Ellerman @ 2009-06-01  0:47 UTC (permalink / raw)
  To: Alemao; +Cc: linuxppc-dev, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 838 bytes --]

On Fri, 2009-05-29 at 17:07 -0300, Alemao wrote:
> Im facing some problems with serial, linux-2.6.23, getting flooded
> with this message in logs:
> 
> ---
> serial8250: too much work for irq16
> ---
> 
> Something I notice, in my .dts I have the following lines:
> 
> serial0: serial@4500,  interrupts   =  <9  0x8>
> serial1: serial@4600,  interrupts   =  <10 0x8>
> spi:       spi@7000,     interrupts   =  <16 0x8>
> 
> 
> But when kernel starts:
> 
> ---
> Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
> serial8250.0: ttyS0 at MMIO 0xe0004500 (irq = 16) is a 16550A
> ---
> 
> Why IRQ 16? Shouldn't it be IRQ 9?

No. Interrupt numbers are remapped on powerpc. If you were running a
mainline kernel you'd see a message something like:

irq: irq 9 on host ?? mapped to virtual irq 16

cheers


[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 197 bytes --]

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

* Re: MPC8343 - serial8250: too much work
  2009-06-01  0:47 ` Michael Ellerman
@ 2009-06-02 13:24   ` Alemao
  0 siblings, 0 replies; 3+ messages in thread
From: Alemao @ 2009-06-02 13:24 UTC (permalink / raw)
  To: linuxppc-dev, linux-kernel

Hi all,

In a normal situation, I have something like this:

serial8250_interrupt()
serial8250_handle_port()
transmit_chars()
pass_counter: 0
serial8250_handle_port()
pass_counter: 1
serial8250_handle_port()
pass_counter: 2
pass_counter: 3


But when the problem happends:

serial8250_interrupt(16)
serial8250_handle_port()
transmit_chars()
uart_circ_empty()
pass_counter: 0
.
.
.
serial8250_handle_port()
transmit_chars()
uart_circ_empty()
pass_counter: 257
serial8250: too much work for irq16

If the circ buffer is empty, why iterate 256 times?

How can I trace the application that is calling serial routines?

Its difficult to debug cause I use serial console to communicate with the board.

Thanks in advance,

--
Alemao

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

end of thread, other threads:[~2009-06-02 13:24 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-05-29 20:07 MPC8343 - serial8250: too much work Alemao
2009-06-01  0:47 ` Michael Ellerman
2009-06-02 13:24   ` Alemao

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