Thanks Greg/Matt/Cris' reply. I know it's not the issue now :)

> Most of the ColdFire UART blocks have no transmit FIFO, so you
> are going to get 1 interrupt per character. The above block  has
> at least 500 characters in it (including white space).  Then include
> the extra command prompt and you typing (receive interrupts) and I
> would figure that is going to come to around 600 interrupts.
> So, yes, that seems about right.
>
> Check the actual character count using:
>
>   cat /proc/tty/driver/mcf 
Indeed it is. The UART transmit Buffer in my board is 1 character size
(no FIFO), only receiver has FIFO.

I test command "cat /proc/tty/driver/mcf", the result is as follows:

[r...@freescale /]# cat /proc/tty/driver/mcf
serinfo:1.0 driver revision:
0: uart:ColdFire UART mmio:0xFC060000 irq:90 tx:54821 rx:91 RTS|DTR|CD
[r...@freescale /]# cat /proc/interrupts
M5445X    90:      55042 UART
M5445X    96:       9962 timer
M5445X    99:          2 timer
M5445X   100:       3761 fec(TXF)
M5445X   101:          0 fec(TXB)
M5445X   102:          0 fec(TXFIFO)
M5445X   103:          0 fec(TXCR)
M5445X   104:       8169 fec(RXF)
M5445X   105:          0 fec(RXB)
M5445X   106:        110 fec(MII)
M5445X   107:          0 fec(LC)
M5445X   108:          0 fec(HBERR)
M5445X   109:          0 fec(GRA)
M5445X   110:          0 fec(EBERR)
M5445X   111:          0 fec(BABT)
M5445X   112:          0 fec(BABR)
[r...@freescale /]# cat /proc/tty/driver/mcf
serinfo:1.0 driver revision:
0: uart:ColdFire UART mmio:0xFC060000 irq:90 tx:55603 rx:115 RTS|DTR|CD

Thanks!

Regards,
Lanttor




------------------------------------------------------------------------
*From:* Greg Ungerer <g...@snapgear.com>
*Sent:* 07/02/2009 8:40:49 AM +0800
*To:* uClinux development list <uclinux-dev@uclinux.org>
*CC:* linux-m...@vger.kernel.org
*Subject:* [uClinux-dev] uart issues on coldfire platform

> Hi Lanttor,
>
> Lanttor wrote:
>>> Hi,
>>>
>>> I find one issue of UART on my coldfire platforms (mcf54451evb board).
>>> I use the linux-2.6.29, and use drivers/serial/mcf.c and
>>> drivers/serial/serial_core.c as my uart driver source.
>>>
>>> Following is my test steps -- run command: cat /proc/interrupts two
>>> times contiguously.
>>>
>>> [r...@freescale /]# cat /proc/interrupts
>>> M5445X    *90:       5099 UART*
>>> M5445X    96:       3130 timer0
>>> M5445X    99:          0 timer3
>>> M5445X   100:       1569 fec(TXF)
>>> M5445X   101:          0 fec(TXB)
>>> M5445X   102:          0 fec(TXFIFO)
>>> M5445X   103:          0 fec(TXCR)
>>> M5445X   104:       3098 fec(RXF)
>>> M5445X   105:          0 fec(RXB)
>>> M5445X   106:         41 fec(MII)
>>> M5445X   107:          0 fec(LC)
>>> M5445X   108:          0 fec(HBERR)
>>> M5445X   109:          0 fec(GRA)
>>> M5445X   110:          0 fec(EBERR)
>>> M5445X   111:          0 fec(BABT)
>>> M5445X   112:          0 fec(BABR)
>>> [r...@freescale /]# cat /proc/interrupts
>>> M5445X    *90:       5714 UART*
>>> M5445X    96:       3700 timer0
>>> M5445X    99:          1 timer3
>>> M5445X   100:       1574 fec(TXF)
>>> M5445X   101:          0 fec(TXB)
>>> M5445X   102:          0 fec(TXFIFO)
>>> M5445X   103:          0 fec(TXCR)
>>> M5445X   104:       3108 fec(RXF)
>>> M5445X   105:          0 fec(RXB)
>>> M5445X   106:         47 fec(MII)
>>> M5445X   107:          0 fec(LC)
>>> M5445X   108:          0 fec(HBERR)
>>> M5445X   109:          0 fec(GRA)
>>> M5445X   110:          0 fec(EBERR)
>>> M5445X   111:          0 fec(BABT)
>>> M5445X   112:          0 fec(BABR)
>>>
>>> I find that the interrupts for above operation is 5714 - 5099 = 605
>                                                      ^^^^^^^^^^^^^ 615 ?
>
>>> Is it normal? (my opinion it's too much)
>
> Most of the ColdFire UART blocks have no transmit FIFO, so you
> are going to get 1 interrupt per character. The above block  has
> at least 500 characters in it (including white space).  Then include
> the extra command prompt and you typing (receive interrupts) and I
> would figure that is going to come to around 600 interrupts.
> So, yes, that seems about right.
>
> Check the actual character count using:
>
>   cat /proc/tty/driver/mcf
>
>
>>> I test it on the mcf5329 board, it has the same-like result (even
>>> more 605).
>>> Actually I don't modify any code of mcf.c and serial_core.c, but I
>>> don't
>>> know why so much interrupts are occurred through one operation?
>
> That is the price you pay with no data FIFO's in these UART cores.
> (Some of the ColdFire parts support DMA with the UART - the mcf
> driver doesn't currently use this though).
>
> Regards
> Greg
>
>
>
> ------------------------------------------------------------------------
> Greg Ungerer  --  Principal Engineer        EMAIL:     g...@snapgear.com
> SnapGear Group, McAfee                      PHONE:       +61 7 3435 2888
> 825 Stanley St,                             FAX:         +61 7 3891 3630
> Woolloongabba, QLD, 4102, Australia         WEB: http://www.SnapGear.com
> -- 
> To unsubscribe from this list: send the line "unsubscribe linux-m68k" in
> the body of a message to majord...@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>
_______________________________________________
uClinux-dev mailing list
uClinux-dev@uclinux.org
http://mailman.uclinux.org/mailman/listinfo/uclinux-dev
This message was resent by uclinux-dev@uclinux.org
To unsubscribe see:
http://mailman.uclinux.org/mailman/options/uclinux-dev

Reply via email to