Re: 2.4.3-p8 pci_fixup_vt8363 + ASUS A7V "Optimal" = IDE disk corruption

From: Wayne Whitney (whitney@math.berkeley.edu)
Date: Thu Mar 29 2001 - 13:09:32 EST


On 29 Mar 2001, Juan Quintela wrote:

> Hi I have the same motherboard and BIOS version. I was having
> filesystem corruption. There is a bugfix (from Arjan van der Ven) in
> the ac tree (around ac20 I think), could you test the last ac patch
> and test if the filesystem corruption persist??

I took a look at 2.4.2-ac28; rather than test the kernel itself, I used
setpci to duplicate what the fixup function does. The upshot is that
2.4.2-ac28 does not cause any corruption with the ASUS A7V 1007 "Optimal".
Its pci_fixup_vt8363 function has a subset of the tests from 2.4.3-pre8,
namely it omits:

        pci_read_config_byte(d, 0x54, &tmp);
        if(tmp & (1)) {
                printk("PCI: Fast Write to Read turnaround disabled\n");
                pci_write_config_byte(d, 0x54, tmp & ~(1));
        }
        pci_read_config_byte(d, 0x70, &tmp);
        if(tmp & (1<<2)) {
                printk("PCI: Disabled Master Read Caching\n");
                pci_write_config_byte(d, 0x70, tmp & ~(1<<2));
        }

This second test was part of the 2.4.3-pre8 pci_fixup_vt8363 subset from
my previous email which causes corruption on the ASUS A7V 1007 for both
Optimal and Normal settings. I verified that if I add it back in, I do
get corruption with ASUS A7V 1007 "Optimal". By omitting it, I guess
2.4.2-ac28 avoids the corruption of 2.4.3-pre8.

Perhaps 2.4.3-pre9 should adopt the pci_fixup_vt8363 from 2.4.2-ac28?
Below is a patch.

Cheers,
Wayne

--- linux-2.4.3-pre8/arch/i386/kernel/pci-pc.c Wed Mar 28 22:56:04 2001
+++ linux-2.4.2-ac28/arch/i386/kernel/pci-pc.c Wed Mar 28 22:51:00 2001
@@ -968,23 +971,13 @@
                 printk("PCI: Bus master Pipeline request disabled\n");
                 pci_write_config_byte(d, 0x54, tmp & ~(1<<2));
         }
- pci_read_config_byte(d, 0x54, &tmp);
- if(tmp & (1)) {
- printk("PCI: Fast Write to Read turnaround disabled\n");
- pci_write_config_byte(d, 0x54, tmp & ~(1));
- }
         pci_read_config_byte(d, 0x70, &tmp);
         if(tmp & (1<<3)) {
                 printk("PCI: Disabled enhanced CPU to PCI writes\n");
                 pci_write_config_byte(d, 0x70, tmp & ~(1<<3));
         }
- pci_read_config_byte(d, 0x70, &tmp);
- if(tmp & (1<<2)) {
- printk("PCI: Disabled Master Read Caching\n");
- pci_write_config_byte(d, 0x70, tmp & ~(1<<2));
- }
         pci_read_config_byte(d, 0x71, &tmp);
- if ((tmp & (1<<3))==0) {
+ if((tmp & (1<<3)) == 0) {
                 printk("PCI: Bursting cornercase bug worked around\n");
                 pci_write_config_byte(d, 0x71, tmp | (1<<3));
         }

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sat Mar 31 2001 - 21:00:21 EST