QUERY: Via chipset data corruption bug

QUERY: Via chipset data corruption bug

Post by Tom Robert » Tue, 23 Apr 2002 07:44:31

Does anybody know how to get Linux working RELIABLY on an Athlon
system which uses the Via chipset? I believe that a fix has been
included in the Kernel, but I still have problems -- is there a special
configuration parameter needed?

I have a year-old Asus A7V133 motherboard with 256 MB RAM and an 800
MHz Athlon. It has (potentially) 2 hard drives, a CDROM and a CD-RW;
for this article I only discuss using a single HD and the CD-RW on the
first IDE cable, with the other drives unmounted. Its BIOS is the
latest version 1008a. This motherboard uses the Via chipset, and it has
the dreaded data corruption bug:

        data errors when copying large files between IDE drives on
        different cables, and for CD-R/W drives.

Until recently I never saw it, because my drives were on a single IDE
cable. I am trying to upgrade my CD-R/W drive and cannot get it working,
even when it and a single hard drive are on the same IDE cable. Note
I had an old 4x CD writer which occasionally saw errors (~1 per 20 CDs).
The new CD writer is a Philips 24x12x40 which gets 1-3 errors every CD. I
have been through 4 CD writers without success (various manufacturers).

I have upraded everything I know how to do easily:
        RedHat 7.2 (includes cdrecord 1.10)
        BIOS 1008a (latest from the manufacturer)
        Kernel 2.4.18 (configured and built it myself (:-)) -- system
                boots just fine using this or the RH kernel (2.4.7-10).
                CD-R problems are the same for both kernels. I had to
                config it for PentiumIII, because the Athlon config has
                unsatisfied external _mmx_memcopy() in some modules. I
                used PCI access = BIOS (see below).

When I burn a CD in this Linux (using GToaster), I get no error messages,
but when I compare it to the original, a few files have permanent compare
errors. When I copy the files to a Win98 partition and boot the machine
into Win98se, I can burn CDs just fine, which compare correctly when
I reboot into Linux and do the compare (why-oh-why don't they include
a program to compare CD to disk in Windows???). I did NOT install Via's
updated "4-in-1" driver into Win98se.

        In desperation I tried several Windows packages which claim
        to use ext2 filesystems in Windows. Not one could use my
        drives -- probably because they are too large; at least one
        could handle /boot (45 MB; the partition of interest is 39 GB).
        I have burned 12 CD-Rs in Win98se, but it is tedious as the
        Win98 partiton has space for only 1.4 GB and I had to reboot
        back and forth for every 2 CDs.

From the success in Windows, I believe that the BIOS is configuring the
PCI and IDE systems correctly (that is Via's way to fix the bug). This
implies that Linux is re-configuring them incorrectly. I did configure
the Kernel to use "BIOS" access mode for PCI, hoping that would preserve
the BIOS settings which work in Windows. I still get errors.

Does anyone have a clue? Do I need to discard this motherboard and
start over?

A Google search on "via data corruption bug" returns volumes of
information, but I cannot separate the wheat from the chaff....