[Wine] serial port problems: micro flashing

bioe007list at hotmail.com bioe007list at hotmail.com
Thu Oct 25 12:10:09 CDT 2007


I am new to this mailing list. I apologize if any needed information is 
missing.

I know this is a bit much to ask of wine's current serial port 
implementation, I am hoping someone has maybe figured this out already? 
Or can help me further the debugging process, I'd rather be part of the 
solution then simply another complaint about wine's serial port.

***** problem description *****
The app is supposed to compile, link and (via serial port)  upload  BIOS 
and firmware to a development board --> 
http://www.rabbit.com/products/rcm2200/index.shtml
The app fails to find a micro at during the uploading and therefore 
fails. The app does NOT crash but continues operating normally.

*****my debugging so far****
It seems data is getting out of wine, at least the bytes are ending up 
at ttyS0. Successive `cat /proc/tty/driver/serial` shows increasing Tx 
bytes, but only 1 Rx byte, also the app fails with 'No target processor 
found'. There is an option to ignore processor verification, but that 
doesn't help.

I have discussed with the company (Rabbit Semi) the problem and they are 
aware of it and consider it a limitation of WINE and are not interested 
in helping. I did glean from them that there is some creative use of 
modem control lines (DTR,CTS are clearly trying to do something).

I have tried some WINEDEBUG="+trace,+comm" and hope someone else sees 
something useful in it. I notice that it reports baud rate of 2400bps 
when setserial is 115200, and the windows app is at 115200. (also 
disabled baud rate negotiation in the app to no avail). I have tried 
adding the `low_latency` flag to ttyS0.

I removed a bunch of lines that were repeated from the wine debug 
channel output because the orginal file was 33M.  I removed them only 
where the same line appeared over and over...
grep -c '0009:trace:comm:io_control 0x54 IOCTL_SERIAL_GET_COMMSTATUS 
(nil)' ~/dync_ouput/rfu_wch_trace_comm2007_10_24_13\:49\:58.txt
405515

I have also noted an unimplemented stub (set_queue_size) which may be  a 
problem and I'm willing to try and work on the code, but my experience 
w/Wine is limited so any more pointers about debugging?

I have some basic EE tools and can hook up an oscilloscope (up to 4 
channels) to my dev boards uart if anyone thinks that would help...

Another concern of mine is if my wine com1 port is working at all... Can 
anyone tell me of a good working serial port app in wine? Bray++ 
terminal or anything else like that?

##### app setup #####

Wine 0.9.43-current (git as of 10/23/07) (compiled myself)
Linux 2.6.21.5, 2.6.22.1, 2.6.22.9
Distro(s): slackware 11-12 , now zenwalk 4.8 (was 4.6.1)
Application: Dynamic-C v9.21 (Full commercial license)  --> 
http://appdb.winehq.org/objectManager.php?sClass=version&iId=9356

##### port setup #####

root[drive_c]# dmesg | grep tty
00:0c: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
root[drive_c]# ls -l /dev/ttyS0
lrwxrwxrwx 1 root root 5 2007-10-05 08:39 /dev/ttyS0 -> tts/0
root[drive_c]# ls -l /dev/tts/0
crwxrwx-w- 1 root tty 4, 64 2007-10-05 10:04 /dev/tts/0
root[drive_c]# setserial -abGv /dev/ttyS0
/dev/ttyS0 uart 16550A port 0x03f8 irq 4 baud_base 115200 spd_vhi 
skip_test low_latency
------------------------------------
root[drive_c]# lsmod | grep ser
serial_cs              21252  0
8250                   23828  4 serial_cs,8250_pnp
serial_core            20032  1 8250
pcmcia                 37548  2 serial_cs,parport_cs
-----------------------------------
root[drive_c]# cat /proc/interrupts
           CPU0       CPU1      
  0:    1855508          0   IO-APIC-edge      timer
  1:       7494          0   IO-APIC-edge      i8042
  3:          0          0   IO-APIC-edge      parport0
  4:       1321          0   IO-APIC-edge      serial
-----------------------------------
root[drive_c]# cat /proc/ioports | grep -2 3f8
<snip>
03f6-03f6 : 0000:00:1f.2
  03f6-03f6 : libata
03f8-03ff : serial
04d0-04d1 : pnp 00:02
0910-091f : pnp 00:08
<snip>
##############

*Note: the attached debug info is for a helper application (RFU.EXE, 
included in Dynamic-C install, from Rabbit) that uses the same serial 
interface, but rather than the whole GUI-IDE is simply a micro flashing 
utility. I have verified with rabbit-semi that this uses the same COM 
interface and application libraries as the IDE. It seems to me to be 
more straightforward to debug smaller utility than the whole IDE.

**Note2: I have also attached my <git 10/24/07>/include/config.h to see 
if there are any problems with my build environment? I notice there are 
some things missing but I'm not sure where to get them. I don't have any 
experience with the distros listed on winehq.org's 'recommended packages 
page'

-------------- next part --------------
A non-text attachment was scrubbed...
Name: config.h
Type: text/x-chdr
Size: 32134 bytes
Desc: not available
Url : http://www.winehq.org/pipermail/wine-users/attachments/20071025/2ddc961e/attachment-0001.h 
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: rfu_wch_trace_comm2007_10_24_13:49:58_short.txt
Url: http://www.winehq.org/pipermail/wine-users/attachments/20071025/2ddc961e/attachment-0001.txt 


More information about the wine-users mailing list