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

Wayne Whitney (whitney@math.berkeley.edu)
Thu, 29 Mar 2001 10:09:32 -0800 (PST)


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/