Sign in with
Sign up | Sign in
Your question

PCI/AGP bridge latency causes serial port CE_OVERRUN error..

Last response: in Laptops & Notebooks
Share
Anonymous
a b D Laptop
March 10, 2005 8:01:14 PM

Archived from groups: comp.sys.laptops,comp.sys.ibm.pc.hardware.chips (More info?)

Hi Gurus,

I have an IBM ThinkPad T21 Laptop (Pentium III-750Mhz) running Windows
2000. Using serial port COM1 at 115kbaud, it experiences CE_OVERRUN
errors from ClearCommError in the Win32 API. This indicates that the
serial port is losing bytes due to a FIFO overrun in the
16550-compatible UART. It happens even with "Use FIFO buffers" and the
lowest Receive Buffer threshold setting in the Advanced Settings
control panel for COM1.

Minimising/maximising Internet Explorer, resising the window or
dragging it around is enough to cause the occasional CE_OVERRUN error.
By running SiSoft SANDRA (http://www.sisoftware.net/) I found that the
PCI Latency Timer for the PCI/AGP bridge appears to be set too high
(128), which would cause servicing of the UART to be blocked for too
long when performing video accesses. I can't find a BIOS setting to
reduce this latency timer value, and none of the PCI Latency Timer
setting utilities I've found on the 'net so far seem to run on Windows
2000. Does anyone know any way to adjust the Latency Timer setting, or
another fix to this problem?

Thanks,
Graham
Computer Systems Engineer
Anonymous
a b D Laptop
March 10, 2005 8:20:58 PM

Archived from groups: comp.sys.laptops (More info?)

Do it HAVE to sustain this data rate? Can you not just enable hardware
flow control?
Anonymous
a b D Laptop
March 10, 2005 10:19:23 PM

Archived from groups: comp.sys.laptops (More info?)

bobb wrote:
> Do it HAVE to sustain this data rate? Can you not just enable
hardware
> flow control?

Tragically, the device I'm communicating with doesn't support hardware
(or software) flow control; so I'm stuck with finding out why an
only-moderately-old laptop can't sustain a lousy 115kbps without
dropping the occasional byte or two.

Thanks,
Graham
Anonymous
a b D Laptop
March 10, 2005 10:34:50 PM

Archived from groups: comp.sys.laptops (More info?)

On 10 Mar 2005 19:19:23 -0800, "Graham Stoney"
<t21problem@hotmail.com> wrote:

>Tragically, the device I'm communicating with doesn't support hardware
>(or software) flow control; so I'm stuck with finding out why an
>only-moderately-old laptop can't sustain a lousy 115kbps without
>dropping the occasional byte or two.


@750mhz, it has more than enough HP to do so of course.

Unfortunately, the days of DOS, one-user-at-a-time on PCs is gone and
not coming back. Anything that interact with a modern laptop has got
to "play nice" with the OS, but am sure u already know that.

I would play with the execution priorities built into W2K see if that
helps you. For engineering, I would also look into Linux.
Anonymous
a b D Laptop
March 11, 2005 7:47:26 AM

Archived from groups: comp.sys.laptops (More info?)

> Tragically, the device I'm communicating with doesn't support
hardware
> (or software) flow control; so I'm stuck with finding out why an
> only-moderately-old laptop can't sustain a lousy 115kbps without
> dropping the occasional byte or two.

Windows is not intended for realtime applications. This is not a bridge
issue, it's an OS issue.

By the way, if your HDDs are not currently using DMA, this can
exacerbate the problem.
Anonymous
a b D Laptop
March 14, 2005 12:45:27 AM

Archived from groups: comp.sys.laptops (More info?)

Windows may not be intended for realtime applications, but the UART
still gets serviced in kernel mode by the COM port driver. The problem
is that in this machine, the UART is on an emulated ISA bus, connected
to the CPU via a PCI/ISA bridge. An excessive latency value on the
PCI/AGP bridge can prevent the CPU accessing the UART before the FIFO
overflows.

The most helpful response so far has been Johnnie Leung's suggestion to
use "PCI Latency Tool", which works under Win 2k and XP from:
http://www.audiotrack.co.kr/spboard/board.cgi?id=FAQ&ac...


Thanks,
Graham
Anonymous
a b D Laptop
March 17, 2005 6:17:51 PM

Archived from groups: comp.sys.laptops (More info?)

Well, my theory about excessive PCI bus latency settings sounded good
at the time. But I set all the latency timers in the system to 0 with
the PCI Latency Tool; and I can still cause CE_OVERRUN errors in the
UART by scrolling windows on the screen. I've already upgraded the BIOS
and the video drivers. I'm clean out of ideas; anyone got any other
suggestions?

Thanks,
Graham
Anonymous
a b D Laptop
March 18, 2005 6:46:04 AM

Archived from groups: comp.sys.laptops (More info?)

> at the time. But I set all the latency timers in the system to 0 with
> the PCI Latency Tool; and I can still cause CE_OVERRUN errors in the
> UART by scrolling windows on the screen. I've already upgraded the
BIOS

The video driver probably disables interrupts or keeps the CPU off the
main memory bus while it's doing large blits. Tried turning off "show
window contents while dragging"?
!