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
_______________________________________________
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