Tajemnica ET6000 wyjasniona

Autor: Romuald Zylla, T.Uni. of Lodz, PL (zylla_at_lodz1.p.lodz.pl)
Data: Sat 25 Jan 1997 - 16:44:35 MET


Przesylam kolegom male co nieco nt. tajemniczego
buga w chipie ET6000.
W skrocie jest to bug w oprogramowaniu a konkretnie
w driverze grafiki do Windows 95.

  http://www.globalserve.net/~baraka/et6000_probs.html
This is an interesting article which
 I found on comp.sys.ibm.pc.hardware.video about the problems relating
 to the ET6000 chipset and certain types of motherboards.

Here is a little something that I found on Usenet about the recent problems
 with the ET6000 chipset. The two cards that exhibit these strange symptoms
(random crashes, reboots and squeeling coming from the monitor) are the STB
Lightspeed 128 and the Hercules Dynamite 128/Video. Anyway, read on:

It has been reported that the ET6000 Win 95 driver exhibits Audio
break-up from WAV files when scrolling through Web browsers or other
text heavy Windows Applications. This problem might possibly be
observed in other types of software applications that are DMA or IRQ
based, (i.e.. Floppy Disk or Tape Backups and Modem/Serial port
transfers). It has been traced to a driver optimization practice
within the Windows 95 mini driver.

The optimization practice in question is the removing of status reads
for the WRST bit in the ACL Status Register (36h) before a write to an
accelerator register for the start of an accelerated operation. This
is a common practice among Tseng and it's OEM's as well as other
graphics controllers manufacturers and driver developers.

This method of driver optimization relies on the ET6000 to hold the
PCI-bus write to the accelerator register when the following conditions
occur:

The ET6000 accelerator is currently performing an operation.
  AND
The ET6000 has one operation in the immediate queue.

Normally during this time, with a PCI write to the ET6000's accelerator
when these two conditions are true, the ET6000's PCI bus interface will
HOLD the PCI-bus, (thus holding the CPU), until the ET6000 finishes it's
current operation and loads the operation in the immediate queue. When
this occurs, the ET6000's PCI-bus interface will release HOLD and let
the CPU continue on.

The problem with this practice is that the PCI-bus HOLD (on some PCI
chipsets) will prevent DMA and IRQ requests from being processed in
a timely manner and may result in delays and or time-outs for the
applications that use them.

This DMA and IRQ problem can be fixed by polling the WRST-bit in the
ACL Status Register before writing to a series of ACL registers for
an accelerator operation. (i.e. Don't rely on the ET6000's PCI-bus
interface to HOLD the PCI-bus). This polling practice is the safest
way to prevent DMA and IRQ problems in the Win 95 driver.

To minimize the amount of performance impact on the benchmarks, polling
of the WRST status bit may be tried on selective accelerator operations
(such as text painting and/or text opaque rectangles).

     http://www.globalserve.net/~baraka/video.html

--
Romek
-_-_-_-_-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _-_-_-_-_-
  ------   PeCetologia jest nauką eksperymentalną !  ------
     """""""" a wszystkiemu WINne są komputery """""""""


To archiwum zostało wygenerowane przez hypermail 2.1.7 : Tue 18 May 2004 - 15:53:10 MET DST