Subject: port-i386/25035: Intel 82801EB Serial ATA Controller and Seagate ST3120026AS disk problem
To: None <gnats-bugs@gnats.NetBSD.org>
From: None <pyrasis@mogua.com>
List: netbsd-bugs
Date: 04/03/2004 08:09:55
>Number:         25035
>Category:       port-i386
>Synopsis:       Intel 82801EB Serial ATA Controller and Seagate ST3120026AS disk problem
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    port-i386-maintainer
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Apr 03 08:10:00 UTC 2004
>Closed-Date:
>Last-Modified:
>Originator:     Lee Jae-Hong
>Release:        2.0B
>Organization:
>Environment:
NetBSD pyrasis 2.0B NetBSD 2.0B (PYRASIS) #0: Fri Apr  2 02:12:05 KST 2004  root@pyrasis:/usr/src/sys/arch/i386/compile/PYRASIS i386
>Description:
I have Seagate "ST3120026AS" S-ATA drive.

and use Intel 82801EB Serial ATA Controller.


sys/dev/ata/wd.c

static const struct wd_quirk {
        const char *wdq_match;          /* inquiry pattern to match */
        int wdq_quirks;                 /* drive quirks */
} wd_quirk_table[] = {
        /*
         * Some Seagate S-ATA drives have a PHY which can get confused
         * with the way data is packetized by some S-ATA controllers.
         *
         * The work-around is to split in two any write transfer whose
         * sector count % 15 == 1 (assuming 512 byte sectors).
         *
         * XXX This is an incomplete list.  There are at least a couple
         * XXX more model numbers.  If you have trouble with such transfers
         * XXX (8K is the most common) on Seagate S-ATA drives, please
         * XXX notify thorpej@NetBSD.org.
         */
        { "ST3120023AS",
          WD_QUIRK_SPLIT_MOD15_WRITE },
        { "ST380023AS",
          WD_QUIRK_SPLIT_MOD15_WRITE },

        { NULL,
          0 }
};

I added "ST3120026AS"

{ "ST3120026AS",
  WD_QUIRK_SPLIT_MOD15_WRITE },

but, boot failure, 


NetBSD 2.0B (PYRASIS) #0: Fri Apr  2 02:12:05 KST 2004
	root@pyrasis:/usr/src/sys/arch/i386/compile/PYRASIS
total memory = 1015 MB
avail memory = 988 MB
BIOS32 rev. 0 found at 0xfb4c0
mainbus0 (root)
cpu0 at mainbus0: (uniprocessor)
cpu0: Intel Pentium 4 (686-class), 2405.58 MHz, id 0xf29
cpu0: features bfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR>
cpu0: features bfebfbff<PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX>
cpu0: features bfebfbff<FXSR,SSE,SSE2,SS,HTT,TM,SBF>
cpu0: I-cache 12K uOp cache 8-way, D-cache 8 KB 64b/line 4-way
cpu0: L2 cache 512 KB 64b/line 8-way
cpu0: ITLB 4K/4M: 64 entries
cpu0: DTLB 4K/4M: 64 entries
cpu0: 16 page colors
pci0 at mainbus0 bus 0: configuration mode 1
pci0: i/o space, memory space enabled, rd/line, rd/mult, wr/inv ok
pchb0 at pci0 dev 0 function 0
pchb0: Intel 82865 Host (rev. 0x02)
agp0 at pchb0: detected 8060k stolen memory
agp0: aperture at 0xe8000000, size 0x8000000
vga1 at pci0 dev 2 function 0: Intel 82865G Integrated Graphics Device (rev. 0x02)
wsdisplay0 at vga1 kbdmux 1: console (80x25, vt100 emulation)
wsmux1: connecting to wsdisplay0
uhci0 at pci0 dev 29 function 0: Intel 82801EB/ER USB UHCI Controller #0 (rev. 0x02)
uhci0: interrupting at irq 10
usb0 at uhci0: USB revision 1.0
uhub0 at usb0
uhub0: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub0: 2 ports with 2 removable, self powered
uhci1 at pci0 dev 29 function 1: Intel 82801EB/ER USB UHCI Controller #1 (rev. 0x02)
uhci1: interrupting at irq 5
usb1 at uhci1: USB revision 1.0
uhub1 at usb1
uhub1: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub1: 2 ports with 2 removable, self powered
uhci2 at pci0 dev 29 function 2: Intel 82801EB/ER USB UHCI Controller #2 (rev. 0x02)
uhci2: interrupting at irq 11
usb2 at uhci2: USB revision 1.0
uhub2 at usb2
uhub2: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub2: 2 ports with 2 removable, self powered
uhci3 at pci0 dev 29 function 3: Intel 82801EB/ER USB UHCI Controller #3 (rev. 0x02)
uhci3: interrupting at irq 10
usb3 at uhci3: USB revision 1.0
uhub3 at usb3
uhub3: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub3: 2 ports with 2 removable, self powered
Intel 82801EB/ER USB EHCI Controller (USB serial bus, interface 0x20, revision 0x02) at pci0 dev 29 function 7 not configured
ppb0 at pci0 dev 30 function 0: Intel 82801BA Hub-to-PCI Bridge (rev. 0xc2)
pci1 at ppb0 bus 1
pci1: i/o space, memory space enabled
rtk0 at pci1 dev 6 function 0: Realtek 8139 10/100BaseTX
rtk0: interrupting at irq 11
rtk0: Ethernet address 00:30:1b:af:2c:75
OUI 0x000000 model 0x0000 rev 0 at rtk0 phy 7 not configured
eap0 at pci1 dev 7 function 0: Ensoniq CT5880 CT5880-C (rev. 0x02)
eap0: interrupting at irq 5
eap0: ac97: SigmaTel STAC9708 codec; 18 bit DAC, 18 bit ADC, SigmaTel 3D
eap0: ac97: ext id 80<SDAC>
audio0 at eap0: full duplex, mmap, independent
midi0 at eap0: AudioPCI MIDI UART
VIA Technologies VT3606 OHCI IEEE 1394 Controller (Firewire serial bus, interface 0x10, revision 0x80) at pci1 dev 8 function 0 not configured
ichlpcib0 at pci0 dev 31 function 0
ichlpcib0: Intel 82801EB LPC Interface Bridge (rev. 0x02)
ichlpcib0: TCO (watchdog) timer configured.
piixide0 at pci0 dev 31 function 1
piixide0: Intel 82801EB IDE Controller (ICH5) (rev. 0x02)
piixide0: bus-master DMA support present
piixide0: primary channel wired to compatibility mode
piixide0: primary channel interrupting at irq 14
atabus0 at piixide0 channel 0
piixide0: secondary channel wired to compatibility mode
piixide0: secondary channel interrupting at irq 15
atabus1 at piixide0 channel 1
piixide1 at pci0 dev 31 function 2
piixide1: Intel 82801EB Serial ATA Controller (rev. 0x02)
piixide1: bus-master DMA support present
piixide1: primary channel configured to native-PCI mode
piixide1: using irq 11 for native-PCI interrupt
atabus2 at piixide1 channel 0
piixide1: secondary channel configured to native-PCI mode
atabus3 at piixide1 channel 1
Intel 82801EB/ER SMBus Controller (SMBus serial bus, revision 0x02) at pci0 
dev 31 function 3 not configured
isa0 at ichlpcib0
lpt0 at isa0 port 0x378-0x37b irq 7
com0 at isa0 port 0x3f8-0x3ff irq 4: ns16550a, working fifo
pckbc0 at isa0 port 0x60-0x64
pckbd0 at pckbc0 (kbd slot)
pckbc0: using irq 1 for kbd slot
wskbd0 at pckbd0: console keyboard, using wsdisplay0
pms0 at pckbc0 (aux slot)
pckbc0: using irq 12 for aux slot
wsmouse0 at pms0 mux 0
pcppi0 at isa0 port 0x61
midi1 at pcppi0: PC speaker
sysbeep0 at pcppi0
isapnp0 at isa0 port 0x279: ISA Plug 'n Play device support
npx0 at isa0 port 0xf0-0xff: using exception 16
fdc0 at isa0 port 0x3f0-0x3f7 irq 6 drq 2
isapnp0: no ISA Plug 'n Play devices found
!!!! STOP KERNEL HERE !!!!
>How-To-Repeat:

>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted: