On Wed, Jan 12, 2011 at 08:32:12PM -0500, Brad wrote:
> The following diff is ported from NetBSD (the workaround originated from
> OpenSolaris) to workaround the issue of data corruption with the ALI M5229
> IDE chipset when using UltraDMA. Same workaround is also used by
> FreeBSD/Linux.
> This chipset is found in some sparc64 systems such as the Blade 100 and
> Netra X1.
>
> I don't have any such systems but I went digging for this being curious
> why the nasty hack was added to the kernel configs to disable UltraDMA
> to workaround this bug and thus penalizing other IDE/SATA controllers
> that could be in the same system. If you have one of the mentioned
> systems please test this.
Here is the alternate workaround for the time being.
Please test.
Index: dev/pci/pciide.c
===================================================================
RCS file: /home/cvs/src/sys/dev/pci/pciide.c,v
retrieving revision 1.323
diff -u -p -r1.323 pciide.c
--- dev/pci/pciide.c 18 Nov 2010 18:12:52 -0000 1.323
+++ dev/pci/pciide.c 21 Jan 2011 00:19:49 -0000
@@ -5639,6 +5639,10 @@ acer_chip_map(struct pciide_softc *sc, s
sc->sc_wdcdev.cap |= WDC_CAPABILITY_UDMA;
if (rev >= 0xC4)
sc->sc_wdcdev.UDMA_cap = 5;
+#ifdef __sparc64__
+ else if (rev == 0xC3)
+ sc->sc_wdcdev.UDMA_cap = 2;
+#endif
else if (rev >= 0xC2)
sc->sc_wdcdev.UDMA_cap = 4;
else
Index: arch/sparc64/conf/GENERIC
===================================================================
RCS file: /home/cvs/src/sys/arch/sparc64/conf/GENERIC,v
retrieving revision 1.262
diff -u -p -r1.262 GENERIC
--- arch/sparc64/conf/GENERIC 8 Jan 2011 11:56:30 -0000 1.262
+++ arch/sparc64/conf/GENERIC 15 Jan 2011 18:44:11 -0000
@@ -382,7 +382,7 @@ stty* at spif?
sbpp* at spif?
pciide* at pci? flags 0x0000
-wd* at pciide? flags 0x0a00
+wd* at pciide? flags 0x0000
atapiscsi* at pciide?
scsibus* at atapiscsi?
Index: arch/sparc64/conf/RAMDISK
===================================================================
RCS file: /home/cvs/src/sys/arch/sparc64/conf/RAMDISK,v
retrieving revision 1.98
diff -u -p -r1.98 RAMDISK
--- arch/sparc64/conf/RAMDISK 19 Apr 2010 10:44:33 -0000 1.98
+++ arch/sparc64/conf/RAMDISK 11 Jan 2011 23:41:13 -0000
@@ -151,7 +151,7 @@ ti* at sbus?
gem* at sbus?
pciide* at pci? flags 0x0000
-wd* at pciide? flags 0x0a00
+wd* at pciide? flags 0x0000
atapiscsi* at pciide?
scsibus* at atapiscsi?
Index: arch/sparc64/conf/RAMDISKU5
===================================================================
RCS file: /home/cvs/src/sys/arch/sparc64/conf/RAMDISKU5,v
retrieving revision 1.16
diff -u -p -r1.16 RAMDISKU5
--- arch/sparc64/conf/RAMDISKU5 24 Jun 2009 11:38:40 -0000 1.16
+++ arch/sparc64/conf/RAMDISKU5 11 Jan 2011 23:41:30 -0000
@@ -55,7 +55,7 @@ pcons0 at mainbus0 # PROM console
timer* at mainbus0 # Timer chip (some systems)
pciide* at pci? flags 0x0000
-wd* at pciide? flags 0x0a00
+wd* at pciide? flags 0x0000
atapiscsi* at pciide?
scsibus* at atapiscsi?
--
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.