uwcms / IPMC

University of Wisconsin ZYNQ IPMC
8 stars 5 forks source link

Console output character drops / garbage #3

Closed jtikalsky closed 6 years ago

jtikalsky commented 6 years ago

The UART console service occasionally outputs control sequence garbage. This would occur because for some reason the \x1b (ESC) characters starting escape sequences are dropped (in either direction, depending on the code sequence observed).

I suspect this is a problem in our interactions with the Xilinx UART driver, but have not been able to confirm or trace it. Hopefully the introduction of telnet using the same service core will provide some insight.

mpv89 commented 6 years ago

The issue can be observed by keeping pressing ENTER:

> 
> 
> 99H
> 

> 
> 
> 
jtikalsky commented 6 years ago

This is confirmed via telnet, so it's at least not exclusively in the UART path.

[NOTI] Request resent on ipmb0:    0.72 -> 0.20: 21.01 (seq 01) [00 00 81 00 01 02 33 00 00 00 00 00 5e a7 d5 51]  (retry 5)
[NOTI] Request received on ipmb0:  0.20 -> 0.72: 06.01 (seq 01) []  (duplicate)
[NOTI] Request resent on ipmb0:    0.72 -> 0.20: 21.01 (seq 01) [00 00 81 00 01 02 33 00 00 00 00 00 5e a7 d5 51]  (retry 1)
> 4;191R191R1R54;191R;191R91RR[54;191R4;191R191R1R54;191R;191R91RR[54;191R4;191R191R1R54;191R;191R91RR

Given that it is the R escape code on this end, it is an incoming escape code that is being dropped, in this example.

The timeout in ConsoleSvc.cpp:256 may be related. I'll test increasing it.

jtikalsky commented 6 years ago

Initial testing is that this is fixed by #ifdef-ing away the timeout code. Even one second seemed too long, but I've not yet debugged the cause of my super laggy telnet sessions.