Hi @leo-yan, @guodong, Thank you for your inputs.
The CTS/RTS lines are connected to our h/w. But it should not come to play for small payload. This issue appear to exist for any payload since it is related to how 2 bytes are sent out in timeline. Couple of observations:
[1] Added some logs at the start and end of pl011_tx_chars() function and got the below timing. UART3 throughput is very low for same baud rate.
//UART 6 - write 65 bytes in 0.000031 secs (i.e 31 us)
[ 15.033673] uart-pl011 fdf01000.serial: pl011_tx_chars begin
[ 15.033704] uart-pl011 fdf01000.serial: pl011_tx_chars bytes:65
// UART3 - write 73 bytes in 0.172648 secs (i.e 172648 us) i.e about 5000 times slower.
[ 497.576983] uart-pl011 ffd74000.serial: pl011_tx_chars begin
[ 497.749631] uart-pl011 ffd74000.serial: pl011_tx_chars bytes:73
[2] UART 3 write pattern looks strange with 1 byte after every n byte:
[ 496.616515] uart-pl011 ffd74000.serial: pl011_tx_chars bytes:1
[ 496.649172] uart-pl011 ffd74000.serial: pl011_tx_chars bytes:3
[ 496.699532] uart-pl011 ffd74000.serial: pl011_tx_chars bytes:1
[ 496.745374] uart-pl011 ffd74000.serial: pl011_tx_chars bytes:9
[ 496.801104] uart-pl011 ffd74000.serial: pl011_tx_chars bytes:1
[ 496.833762] uart-pl011 ffd74000.serial: pl011_tx_chars bytes:3
[ 497.428857] uart-pl011 ffd74000.serial: pl011_tx_chars bytes:1
[ 497.461514] uart-pl011 ffd74000.serial: pl011_tx_chars bytes:3
[ 497.563149] uart-pl011 ffd74000.serial: pl011_tx_chars bytes:1
[ 497.749631] uart-pl011 ffd74000.serial: pl011_tx_chars bytes:73
[ 497.798891] uart-pl011 ffd74000.serial: pl011_tx_chars bytes:1
[ 498.279839] uart-pl011 ffd74000.serial: pl011_tx_chars bytes:207
[ 498.329160] uart-pl011 ffd74000.serial: pl011_tx_chars bytes:1
[ 498.810108] uart-pl011 ffd74000.serial: pl011_tx_chars bytes:207
[ 499.141016] uart-pl011 ffd74000.serial: pl011_tx_chars bytes:1
[ 499.622023] uart-pl011 ffd74000.serial: pl011_tx_chars bytes:207
[ 499.671344] uart-pl011 ffd74000.serial: pl011_tx_chars bytes:1
[ 500.152291] uart-pl011 ffd74000.serial: pl011_tx_chars bytes:207
[ 500.201614] uart-pl011 ffd74000.serial: pl011_tx_chars bytes:1
[ 500.682561] uart-pl011 ffd74000.serial: pl011_tx_chars bytes:207
[ 500.731948] uart-pl011 ffd74000.serial: pl011_tx_chars bytes:1
[3] Between end of one write to the start of another, there is random delay of 10-50ms. This is also quite high.
[ 500.187186] uart-pl011 ffd74000.serial: pl011_tx_chars begin
[ 500.201614] uart-pl011 ffd74000.serial: pl011_tx_chars bytes:1
[ 500.215448] uart-pl011 ffd74000.serial: pl011_tx_chars begin
I am not too familiar with AMA driver implementation so any pointers will be very helpful. Thank you.