adding 16550 UART to RM9200
Marcel Moolenaar
xcllnt at mac.com
Wed Apr 4 16:36:50 UTC 2007
On Apr 4, 2007, at 7:00 AM, Bernd Walter wrote:
> Not shure about the sio(4) vs. uart(4) performance difference.
I ran some tests (up to 230400bps) and if there's a difference in
performance at all I found it to be in favor of uart(4). I don't
want to claim having done extensive testing and given how marginal
differences are, I also don't want to claim that uart(4) is better
performing. All I say is that claims that sio(4) performs better
than uart(4) are based on ... euh... who knows :-)
In short: I didn't find performance to be a concern.
I still have the following puc(4) & uart(4) results on a sticky
note (for hysterical raisins :-)
TEST 1: puc(4) performance testing after I rewrote puc(4):
o compares performance between uart0 & uart1 (determines
favoritism)
o compares performance between transmit (DTE) & receive (DCE)
CVS HEAD:
DTE0:
6.15 real 0.05 user 4.98 sys
6.14 real 0.05 user 4.96 sys
6.16 real 0.04 user 5.01 sys
DTE1:
6.14 real 0.02 user 4.99 sys
6.15 real 0.07 user 4.88 sys
6.14 real 0.04 user 4.87 sys
DCE0:
6.15 real 0.06 user 5.02 sys
6.15 real 0.05 user 5.00 sys
6.14 real 0.10 user 4.96 sys
DCE1:
6.16 real 0.08 user 5.00 sys
6.15 real 0.07 user 5.05 sys
6.14 real 0.07 user 4.96 sys
Perforce uart branch (puc(4) rewrite):
DTE0:
6.03 real 0.18 user 3.25 sys
6.09 real 0.22 user 4.95 sys
6.17 real 0.24 user 4.74 sys
DTE1:
6.02 real 0.16 user 3.33 sys
6.05 real 0.28 user 4.81 sys
6.07 real 0.29 user 4.75 sys
DCE0:
6.14 real 0.31 user 4.55 sys
6.22 real 0.36 user 4.62 sys
6.19 real 0.31 user 4.56 sys
DCE1:
6.10 real 0.40 user 4.41 sys
6.11 real 0.29 user 4.59 sys
6.14 real 0.33 user 4.52 sys
TEST2: uart(4) performance testing including sio(4) -- I
think it's the serdev I/F ...
o I can't recall what A and B means, but A was bad :-)
o HEAD represents CVS current at some time
o UART represents the Perforce uart branch
KERMIT:
HEAD:
cuau0=receive, cuau1=transmit:
A 00:02:42 - 11016 CPS
B 00:02:37 - 11361 CPS
B 00:02:37 - 11360 CPS (sio)
cuau0=transmit, cuau1=receive:
A 00:02:42 - 11020 CPS
B 00:02:37 - 11362 CPS
B 00:02:37 - 11362 CPS (sio)
UART:
cuau0=receive, cuau1=transmit:
A 00:02:43 - 10963 CPS
B 00:02:37 - 11363 CPS
cuau0=transmit, cuau1=receive:
A 00:02:42 - 11016 CPS
B 00:02:37 - 11364 CPS
CPS between sio(4) and uart(4) are on par with a small
win for uart(4) after my changes (those are in HEAD now).
I think uart(4) has a slightly bigger interrupt overhead,
so for higher speeds (>230400 or even >460800) this may
kick in.
In your case: uart(4) will do just fine :-)
--
Marcel Moolenaar
xcllnt at mac.com
More information about the freebsd-arm
mailing list