This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
Serial FIFO problem (i386 only)
- To: "Ecos-List (E-mail)" <ecos-discuss at sourceware dot cygnus dot com>
- Subject: [ECOS] Serial FIFO problem (i386 only)
- From: Fabrice Gautier <Fabrice_Gautier at sdesigns dot com>
- Date: Tue, 21 Nov 2000 21:13:20 -0800
Hi,
I think other people have experienced some problem with serial, but I don't
remember if anyone has reported something like that.
I've configured eCos with a serial driver for com1 (aka /dev/ser0). But i
didn't get any interrutps. When the serial port was used by RedBoot i get
the interrupt (ctrl-C worked).
The IO chip in the PC board seems to be a Winbond w83877F. This is detected
as a 16550a, which is what the doc at winbond.com says it is.
The faulty code is here (pc_serial.c:231):
if (port->deviceType == s16550a)
pc_outb(port->base + FCR, FCR_FE | FCR_RFR | FCR_TFR | FCR_RT14);
The bad thing is the FCR_RT14: this configure the UART to trigger an
interrupt only when 14 bytes are on. But I only want to read 1 byte.
changing the whole line to :
pc_outb(port->base + FCR, 0);
or simply replacing FCR_RT14 by FCR_RT1 seems to works but not very well.
The problem now is that it seems there is always one char keept in some
buffer. I don't get the actual char before sending another char.
Thanks
--
Fabrice Gautier
fabrice_gautier@sdesigns.com
--
Fabrice Gautier
fabrice_gautier@sdesigns.com