Skip to contentSkip to conversation

Problem using UART3 on Logic Torpedo w/2.6.32

DISCUSSION Peter Barada 2 participants 2 messages Nov 18, 2010 – Nov 19, 2010

lore
Share & tools
lore
#0 lore raw

All,

I have a 2.6.32 kernel based on the L23.i3.3 kernel (2.6.32) from TI, and I've run into an interesting problem with UART3 (maps to /dev/ttyS1 on the Torpedo board).

On the host I have it hooked up to /dev/ttyS1, so I turn on CTS/RTS and set the baudrate by:

host$ stty 115200 crtscts < /dev/ttyS1

And the same on the target:

OMAP-35x$ stty 115200 crtscts < /dev/ttyS1

To force the board to throttle the serial I slowed down the console to 19200:

OMAP-35x$ stty 19200 < /dev/ttyS0

On the target console I capture the data from the host (and show it on the serial port):

OMAP-35x$ cat < /dev/ttyS1 | tee /tmp/x

and on the host send the data:

host$ dd if=/dev/urandom count=100 bs=1024 | hexdump -C > /tmp/x host$ cat /tmp/x > /dev/ttyS1

I'd expect to see something like the following on the target:

00000000  35 2c a6 97 23 35 95 9a  fb 91 6d 6e ce f8 32 d7  |5,..#5....mn..2.|
00000010  6b 0b cf 66 e6 3a b4 55  91 5f 86 8f 41 c9 49 76  |k..f.:.U._..A.Iv|
00000020  e6 cf fa 0a 0e db 69 0c  db 14 6b 76 62 4c 5b 9e  |......i...kvbL[.|
00000030  98 1b 5f 30 16 d6 ed 96  dc d7 f1 3b 59 a0 ec ac  |.._0.......;Y...|
00000040  86 8c 9b 28 21 b8 a0 98  ed cf 96 39 15 a4 7b 9e  |...(!......9..{.|
00000050  bf 01 aa 09 1a 12 1f c3  49 b3 92 73 00 84 52 de  |........I..s..R.|
00000060  c0 d3 4b 1d ca 84 04 ea  60 ef 7f b2 63 36 eb 5e  |..K.....`...c6.^|
00000070  28 0c 20 2a 86 a2 36 bb  c7 c0 27 da 87 c8 8b 1e  |(. *..6...'.....|
00000080  5d b7 04 b3 2c 0b 29 f4  8d 4f 5f fe 90 b0 1b 96  |]...,.)..O_.....|
00000090  b8 82 94 ae 92 37 31 03  dc 1b c3 c0 38 b1 16 77  |.....71.....8..w|

Instead I see:

OMAP-35x# head /tmp/x
00000000 35 2c a6 97 23 6b 0b ca fb 91 6d 6e ce f8 32 d6 8f 41.#5....mn..2.| 00000010 .Iv|
00f 66 e6 3a b4 55 91 5f 8669 0c c9 49 76 |k..f.:.U._..A.|.....000020 e6 cf fa 0a 0e db 1b 5f db 14 6b 76 62 4c 5b 9e b 59 a.i...kvbL[.| 00000030 98.|
000030 16 d6 ed 96 dc d7 f1 3b 59 e0 ec ac |.._0.......;Y.....(!..0040 86 8c 9b 28 21 b8 a0 98 09d cf 96 39 15 a4 7b 9e |.00 84 ....9..{.|

00000050  bf 01000000 1a 12 1f c3  49 b3 92 73 a  60 52 de  |........I..s..R.|
.....`60  c0 d3 4b 1d ca 84 04 e0 2a 8ef 7f b2 63 36 eb 5e  |..7 c8 8b...c6.^|
00000070  28 0c 20000806 a2 36 bb  c7 c0 27 da 87 8d 4f 1e  |(. *..6...'.....|
00.)..O_  5d b7 04 b3 2c 0b 29 f4 ae 92  5f fe 90 b0 1b 96  |]...,.).6 7.....|
00000090  b8 82 94 00a0  37 31 03  dc 1b c3 c0 38 b1 7c 77  |.....71.....8..w|

Looking deeper:

OMAP-35x# hexdump -C /tmp/x | head

00000000  30 30 30 30 30 30 30 30  20 20 33 35 20 32 63 20  |00000000  35 2c |
00000010  61 36 20 39 37 20 32 33  20 36 62 20 30 62 20 63  |a6 97 23 6b 0b c|
00000020  61 20 20 66 62 20 39 31  20 36 64 20 36 65 20 63  |a  fb 91 6d 6e c|
00000030  65 20 66 38 20 33 32 20  64 36 20 38 66 20 34 31  |e f8 32 d6 8f 41|
00000040  2e 23 35 2e 2e 2e 2e 6d  6e 2e 2e 32 2e 7c 0a 30  |.#5....mn..2.|.0|
00000050  30 30 30 30 30 31 30 20  20 2e 49 76 7c 0a 30 30  |0000010  .Iv|.00|
00000060  66 20 36 36 20 65 36 20  33 61 20 62 34 20 35 35  |f 66 e6 3a b4 55|
00000070  20 20 39 31 20 35 66 20  38 36 36 39 20 30 63 20  |  91 5f 8669 0c |
00000080  20 63 39 20 34 39 20 37  36 20 20 7c 6b 2e 2e 66  | c9 49 76  |k..f|
00000090  2e 3a 2e 55 2e 5f 2e 2e  41 2e 7c 2e 2e 2e 2e 2e  |.:.U._..A.|.....|

However if I instead use UART2 and replicate the above steps, all is well. I've looked at the serial signals and CTS/RTS are responding as expected. I tried switching drivers from the 8250 to the OMAP_SERIAL, and the results look the same.

Any ideas what is happening?

Signature · 2 lines
Peter Barada
[email protected]
#1 lore raw
Quoted 101 lines · Peter Barada

All,

I have a 2.6.32 kernel based on the L23.i3.3 kernel (2.6.32) from TI, and I've run into an interesting problem with UART3 (maps to /dev/ttyS1 on the Torpedo board).

On the host I have it hooked up to /dev/ttyS1, so I turn on CTS/RTS and set the baudrate by:

host$ stty 115200 crtscts < /dev/ttyS1

And the same on the target:

OMAP-35x$ stty 115200 crtscts < /dev/ttyS1

To force the board to throttle the serial I slowed down the console to 19200:

OMAP-35x$ stty 19200 < /dev/ttyS0

On the target console I capture the data from the host (and show it on the serial port):

OMAP-35x$ cat < /dev/ttyS1 | tee /tmp/x

and on the host send the data:

host$ dd if=/dev/urandom count=100 bs=1024 | hexdump -C > /tmp/x host$ cat /tmp/x > /dev/ttyS1

I'd expect to see something like the following on the target:

00000000  35 2c a6 97 23 35 95 9a  fb 91 6d 6e ce f8 32 d7 |5,..#5....mn..2.|
00000010  6b 0b cf 66 e6 3a b4 55  91 5f 86 8f 41 c9 49 76 |k..f.:.U._..A.Iv|
00000020  e6 cf fa 0a 0e db 69 0c  db 14 6b 76 62 4c 5b 9e |......i...kvbL[.|
00000030  98 1b 5f 30 16 d6 ed 96  dc d7 f1 3b 59 a0 ec ac |.._0.......;Y...|
00000040  86 8c 9b 28 21 b8 a0 98  ed cf 96 39 15 a4 7b 9e |...(!......9..{.|
00000050  bf 01 aa 09 1a 12 1f c3  49 b3 92 73 00 84 52 de |........I..s..R.|
00000060  c0 d3 4b 1d ca 84 04 ea  60 ef 7f b2 63 36 eb 5e

 |..K.....`...c6.^|
00000070  28 0c 20 2a 86 a2 36 bb  c7 c0 27 da 87 c8 8b 1e  |(.
*..6...'.....|

00000080  5d b7 04 b3 2c 0b 29 f4  8d 4f 5f fe 90 b0 1b 96 |]...,.)..O_.....|
00000090  b8 82 94 ae 92 37 31 03  dc 1b c3 c0 38 b1 16 77 |.....71.....8..w|

Instead I see:

OMAP-35x# head /tmp/x
00000000  35 2c a6 97 23 6b 0b ca  fb 91 6d 6e ce f8 32 d6 8f 41.#5....mn..2.|
00000010  .Iv|
00f 66 e6 3a b4 55  91 5f 8669 0c  c9 49 76  |k..f.:.U._..A.|.....000020  e6 cf
fa 0a 0e db 1b 5f  db 14 6b 76 62 4c 5b 9e  b 59 a.i...kvbL[.| 00000030  98.|
000030 16 d6 ed 96  dc d7 f1 3b 59 e0 ec ac  |.._0.......;Y.....(!..0040  86 8c
9b 28 21 b8 a0 98 09d cf 96 39 15 a4 7b 9e  |.00 84 ....9..{.| 00000050  bf 01000000 1a 12 1f c3  49 b3 92 73 a  60 52 de

 |........I..s..R.|
.....`60  c0 d3 4b 1d ca 84 04 e0 2a 8ef 7f b2 63 36 eb 5e  |..7 c8
8b...c6.^|
00000070  28 0c 20000806 a2 36 bb  c7 c0 27 da 87 8d 4f 1e  |(.
*..6...'.....|
00.)..O_  5d b7 04 b3 2c 0b 29 f4 ae 92  5f fe 90 b0 1b 96  |]...,.).6
7.....|

00000090  b8 82 94 00a0  37 31 03  dc 1b c3 c0 38 b1 7c 77 |.....71.....8..w|

Looking deeper:

OMAP-35x# hexdump -C /tmp/x | head
00000000  30 30 30 30 30 30 30 30  20 20 33 35 20 32 63 20  |00000000  35 2c |
00000010  61 36 20 39 37 20 32 33  20 36 62 20 30 62 20 63  |a6 97 23 6b 0b c|
00000020  61 20 20 66 62 20 39 31  20 36 64 20 36 65 20 63  |a  fb 91 6d 6e c|
00000030  65 20 66 38 20 33 32 20  64 36 20 38 66 20 34 31  |e f8 32 d6 8f 41|
00000040  2e 23 35 2e 2e 2e 2e 6d  6e 2e 2e 32 2e 7c 0a 30

 |.#5....mn..2.|.0|
00000050  30 30 30 30 30 31 30 20  20 2e 49 76 7c 0a 30 30  |0000010
 .Iv|.00|
00000060  66 20 36 36 20 65 36 20  33 61 20 62 34 20 35 35  |f 66 e6 3a b4
55|
00000070  20 20 39 31 20 35 66 20  38 36 36 39 20 30 63 20  |  91 5f 8669 0c
|
00000080  20 63 39 20 34 39 20 37  36 20 20 7c 6b 2e 2e 66  | c9 49 76
 |k..f|

00000090  2e 3a 2e 55 2e 5f 2e 2e  41 2e 7c 2e 2e 2e 2e 2e |.:.U._..A.|.....|

Quoted 6 lines

However if I instead use UART2 and replicate the above steps, all is well. I've looked at the serial signals and CTS/RTS are responding as expected. I tried switching drivers from the 8250 to the OMAP_SERIAL, and the results look the same.

Any ideas what is happening?

Can be a problem in UART+ PM path
UART1,2 --> core domain
UART3 --> Per domain

I3.3 you might be missing some PM fixes added later Can you check with I3.8 ? [If its feasible at your end]

Probably missing these solutions for per domain issues:

http://dev.omapzoom.org/?p=integration/kernel-omap3.git;a=commit;h=54cd24dccf740fa2ad8ff129f81502f796801a71

http://dev.omapzoom.org/?p=integration/kernel-omap3.git;a=commit;h=b8251b24f7e72bb58bb542cefa301d37b63c3e93

Some hints:
Uart commits to look out for between i3.3 and i3.8

http://dev.omapzoom.org/?p=integration/kernel-omap3.git&a=search&h=refs/heads/L23.i3.8&st=commit&s=uart

http://dev.omapzoom.org/?p=integration/kernel-omap3.git&a=search&h=refs/heads/L23.I3.3&st=commit&s=uart

--
Regards,
Govindraj.R

Quoted 10 lines

--
Peter Barada
[email protected]

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html