kernel/4995: VIA VT6410 IDE controller not supported

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

kernel/4995: VIA VT6410 IDE controller not supported

Benoit Izac
>Number:         4995
>Category:       kernel
>Synopsis:       VIA VT6410 IDE controller not supported
>Confidential:   yes
>Severity:       non-critical
>Priority:       low
>Responsible:    bugs
>State:          open
>Quarter:        
>Keywords:      
>Date-Required:
>Class:          support
>Submitter-Id:   net
>Arrival-Date:   Sun Jan 29 11:50:01 GMT 2006
>Closed-Date:
>Last-Modified:
>Originator:     Benoit Izac
>Release:        OPENBSD_3_8
>Organization:
net
>Environment:
        System      : OpenBSD 3.8
        Architecture: OpenBSD.i386
        Machine     : i386
>Description:
        OpenBSD has no support for the VIA VT6410 IDE controller (ATA133
        simili RAID). This chipset is include in Motherboard ASUS P4P800
        Deluxe.

        dmesg:
OpenBSD 3.8-stable (GENERIC) #0: Sun Jan 29 01:05:07 CET 2006
    benoit@fig:/usr/src/sys/arch/i386/compile/GENERIC
cpu0: Intel(R) Pentium(R) 4 CPU 2.80GHz ("GenuineIntel" 686-class) 2.81 GHz
cpu0: FPU,V86,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,SBF,CNXT-ID
real mem  = 1609342976 (1571624K)
avail mem = 1461137408 (1426892K)
using 4278 buffers containing 80568320 bytes (78680K) of memory
mainbus0 (root)
bios0 at mainbus0: AT/286+(00) BIOS, date 06/23/04, BIOS32 rev. 0 @ 0xf0010
apm0 at bios0: Power Management spec V1.2
apm0: AC on, battery charge unknown
apm0: flags 30102 dobusy 0 doidle 1
pcibios0 at bios0: rev 2.1 @ 0xf0000/0x10000
pcibios0: PCI IRQ Routing Table rev 1.0 @ 0xf50c0/256 (14 entries)
pcibios0: PCI Interrupt Router at 000:31:0 ("Intel 82801EB/ER LPC" rev 0x00)
pcibios0: PCI bus #2 is the last bus
bios0: ROM list: 0xc0000/0xb000 0xcb000/0x3c00!
cpu0 at mainbus0
pci0 at mainbus0 bus 0: configuration mode 1 (no bios)
pchb0 at pci0 dev 0 function 0 "Intel 82865G/PE/P CPU-I/0-1" rev 0x02
ppb0 at pci0 dev 1 function 0 "Intel 82865G/PE/P CPU-AGP" rev 0x02
pci1 at ppb0 bus 1
vga1 at pci1 dev 0 function 0 "ATI Radeon VE QY" rev 0x00
wsdisplay0 at vga1 mux 1: console (80x25, vt100 emulation)
wsdisplay0: screen 1-5 added (80x25, vt100 emulation)
uhci0 at pci0 dev 29 function 0 "Intel 82801EB/ER USB" rev 0x02: irq 10
usb0 at uhci0: USB revision 1.0
uhub0 at usb0
uhub0: Intel UHCI root hub, 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" rev 0x02: irq 5
usb1 at uhci1: USB revision 1.0
uhub1 at usb1
uhub1: Intel UHCI root hub, 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" rev 0x02: irq 5
usb2 at uhci2: USB revision 1.0
uhub2 at usb2
uhub2: Intel UHCI root hub, 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" rev 0x02: irq 10
usb3 at uhci3: USB revision 1.0
uhub3 at usb3
uhub3: Intel UHCI root hub, rev 1.00/1.00, addr 1
uhub3: 2 ports with 2 removable, self powered
ehci0 at pci0 dev 29 function 7 "Intel 82801EB/ER USB" rev 0x02: irq 11
usb4 at ehci0: USB revision 2.0
uhub4 at usb4
uhub4: Intel EHCI root hub, rev 2.00/1.00, addr 1
uhub4: 8 ports with 8 removable, self powered
ppb1 at pci0 dev 30 function 0 "Intel 82801BA AGP" rev 0xc2
pci2 at ppb1 bus 2
"VIA VT6306 FireWire" rev 0x46 at pci2 dev 3 function 0 not configured
vendor "VIA", unknown product 0x3164 (class mass storage subclass RAID, rev 0x06) at pci2 dev 4 function 0 not configured
skc0 at pci2 dev 5 function 0 "3Com 3c940" rev 0x12: irq 5
skc0: Marvell Yukon (0x1)
sk0 at skc0 port A: address 00:0e:a6:48:25:b4
eephy0 at sk0 phy 0: Marvell 88E1011 Gigabit PHY, rev. 3
rl0 at pci2 dev 13 function 0 "Realtek 8139" rev 0x10: irq 10 address 00:50:fc:49:e8:a4
rlphy0 at rl0 phy 0: RTL internal phy
ichpcib0 at pci0 dev 31 function 0 "Intel 82801EB/ER LPC" rev 0x02
pciide0 at pci0 dev 31 function 1 "Intel 82801EB/ER IDE" rev 0x02: DMA, channel 0 configured to compatibility, channel 1 configured to compatibility
wd0 at pciide0 channel 0 drive 0: <ST360021A>
wd0: 16-sector PIO, LBA, 57241MB, 117231408 sectors
wd0(pciide0:0:0): using PIO mode 4, Ultra-DMA mode 5
atapiscsi0 at pciide0 channel 1 drive 0
scsibus0 at atapiscsi0: 2 targets
cd0 at scsibus0 targ 0 lun 0: <_NEC, DVD_RW ND-3500AG, 2.16> SCSI0 5/cdrom removable
cd0(pciide0:1:0): using PIO mode 4, Ultra-DMA mode 2
"Intel 82801EB/ER SMBus" rev 0x02 at pci0 dev 31 function 3 not configured
auich0 at pci0 dev 31 function 5 "Intel 82801EB/ER AC97" rev 0x02: irq 5, ICH5 AC97
ac97: codec id 0x41445375 (Analog Devices AD1985)
ac97: codec features headphone, 20 bit DAC, No 3D Stereo
audio0 at auich0
isa0 at ichpcib0
isadma0 at isa0
pckbc0 at isa0 port 0x60/5
pckbd0 at pckbc0 (kbd slot)
pckbc0: using irq 1 for kbd slot
wskbd0 at pckbd0: console keyboard, using wsdisplay0
pmsi0 at pckbc0 (aux slot)
pckbc0: using irq 12 for aux slot
wsmouse0 at pmsi0 mux 0
pcppi0 at isa0 port 0x61
midi0 at pcppi0: <PC speaker>
spkr0 at pcppi0
sysbeep0 at pcppi0
lpt0 at isa0 port 0x378/4 irq 7
lm0 at isa0 port 0x290/8: W83627THF
npx0 at isa0 port 0xf0/16: using exception 16
pccom0 at isa0 port 0x3f8/8 irq 4: ns16550a, 16 byte fifo
pccom1 at isa0 port 0x2f8/8 irq 3: ns16550a, 16 byte fifo
fdc0 at isa0 port 0x3f0/6 irq 6 drq 2
fd0 at fdc0 drive 0: 1.44MB 80 cyl, 2 head, 18 sec
biomask ef65 netmask ef65 ttymask ffe7
pctr: user-level cycle counter enabled
dkcsum: wd0 matches BIOS drive 0x80
root on wd0a
rootdev=0x0 rrootdev=0x300 rawdev=0x302


        pcitweak -l:
PCI: Probing config type using method 1
PCI: Config type is 1
PCI: PCI scan (all values are in hex)
PCI: 00:00:0: chip 8086,2570 card 1043,80f2 rev 02 class 06,00,00 hdr 00
PCI: 00:01:0: chip 8086,2571 card 0000,0000 rev 02 class 06,04,00 hdr 01
PCI: 00:1d:0: chip 8086,24d2 card 1043,80a6 rev 02 class 0c,03,00 hdr 80
PCI: 00:1d:1: chip 8086,24d4 card 1043,80a6 rev 02 class 0c,03,00 hdr 00
PCI: 00:1d:2: chip 8086,24d7 card 1043,80a6 rev 02 class 0c,03,00 hdr 00
PCI: 00:1d:3: chip 8086,24de card 1043,80a6 rev 02 class 0c,03,00 hdr 00
PCI: 00:1d:7: chip 8086,24dd card 1043,80a6 rev 02 class 0c,03,20 hdr 00
PCI: 00:1e:0: chip 8086,244e card 0000,0000 rev c2 class 06,04,00 hdr 01
PCI: 00:1f:0: chip 8086,24d0 card 0000,0000 rev 02 class 06,01,00 hdr 80
PCI: 00:1f:1: chip 8086,24db card 1043,80a6 rev 02 class 01,01,8a hdr 00
PCI: 00:1f:3: chip 8086,24d3 card 1043,80a6 rev 02 class 0c,05,00 hdr 00
PCI: 00:1f:5: chip 8086,24d5 card 1043,80f3 rev 02 class 04,01,00 hdr 00
PCI: 01:00:0: chip 1002,5159 card 1569,5159 rev 00 class 03,00,00 hdr 00
PCI: 02:03:0: chip 1106,3044 card 1043,808a rev 46 class 0c,00,10 hdr 00
PCI: 02:04:0: chip 1106,3164 card 1043,80f4 rev 06 class 01,04,00 hdr 00
PCI: 02:05:0: chip 10b7,1700 card 1043,80eb rev 12 class 02,00,00 hdr 00
PCI: 02:0d:0: chip 10ec,8139 card 10ec,8139 rev 10 class 02,00,00 hdr 00
PCI: End of PCI scan

>How-To-Repeat:
        Boot OpenBSD with a Motherboard ASUS P4P800 Deluxe.

>Fix:
        Rebuild kernel after installing this patch:

diff -ur /sys/dev/pci/pcidevs ./sys/dev/pci/pcidevs
--- /sys/dev/pci/pcidevs Mon Aug 29 05:00:23 2005
+++ ./sys/dev/pci/pcidevs Sun Jan 29 01:19:28 2006
@@ -2848,6 +2848,7 @@
 product VIATECH UNICHROME 0x3108 S3 Unichrome PRO IGP
 product VIATECH VT8361_PCI 0x3112 VT8361 PCI
 product VIATECH VT8375 0x3116 VT8375 PCI
+product VIATECH VT6410 0x3164 VT6410 IDE
 product VIATECH PM800_AGP 0x0259 PM800 AGP
 product VIATECH PM800_ERRS 0x1259 PM800 Errors
 product VIATECH PM800 0x2259 PM800 Host
diff -ur /sys/dev/pci/pcidevs.h ./sys/dev/pci/pcidevs.h
--- /sys/dev/pci/pcidevs.h Mon Aug 29 05:00:49 2005
+++ ./sys/dev/pci/pcidevs.h Sun Jan 29 01:19:34 2006
@@ -2853,6 +2853,7 @@
 #define PCI_PRODUCT_VIATECH_UNICHROME 0x3108 /* S3 Unichrome PRO IGP */
 #define PCI_PRODUCT_VIATECH_VT8361_PCI 0x3112 /* VT8361 PCI */
 #define PCI_PRODUCT_VIATECH_VT8375 0x3116 /* VT8375 PCI */
+#define PCI_PRODUCT_VIATECH_VT6410 0x3164 /* VT6410 IDE */
 #define PCI_PRODUCT_VIATECH_PM800_AGP 0x0259 /* PM800 AGP */
 #define PCI_PRODUCT_VIATECH_PM800_ERRS 0x1259 /* PM800 Errors */
 #define PCI_PRODUCT_VIATECH_PM800 0x2259 /* PM800 Host */
diff -ur /sys/dev/pci/pcidevs_data.h ./sys/dev/pci/pcidevs_data.h
--- /sys/dev/pci/pcidevs_data.h Mon Aug 29 05:00:49 2005
+++ ./sys/dev/pci/pcidevs_data.h Sun Jan 29 01:19:34 2006
@@ -8563,6 +8563,10 @@
     "VT8375 PCI",
  },
  {
+    PCI_VENDOR_VIATECH, PCI_PRODUCT_VIATECH_VT6410,
+    "VT6410 IDE",
+ },
+ {
     PCI_VENDOR_VIATECH, PCI_PRODUCT_VIATECH_PM800_AGP,
     "PM800 AGP",
  },
diff -ur /sys/dev/pci/pciide.c ./sys/dev/pci/pciide.c
--- /sys/dev/pci/pciide.c Thu Aug 18 15:40:00 2005
+++ ./sys/dev/pci/pciide.c Sun Jan 29 01:27:11 2006
@@ -495,6 +495,10 @@
  { PCI_PRODUCT_VIATECH_VT8237_SATA, /* VIA VT8237 SATA */
   IDE_PCI_CLASS_OVERRIDE,
   sata_chip_map
+ },
+ { PCI_PRODUCT_VIATECH_VT6410, /* VIA VT6410 IDE */
+  IDE_PCI_CLASS_OVERRIDE,
+  apollo_chip_map
  }
 };
 
@@ -2599,6 +2603,12 @@
  pcitag_t pcib_tag;
  pcireg_t pcib_id, pcib_class;
 
+ /*
+ * Fake interface since VT6410 is claimed to be a ``RAID'' device.
+ */
+ interface = PCIIDE_INTERFACE_BUS_MASTER_DMA |
+    PCIIDE_INTERFACE_PCI(0) | PCIIDE_INTERFACE_PCI(1);
+
  if (pciide_chipen(sc, pa) == 0)
  return;
  pcib_tag = pci_make_tag(pa->pa_pc, pa->pa_bus, pa->pa_device, 0);
@@ -2644,14 +2654,9 @@
  sc->sc_wdcdev.UDMA_cap = 5;
  break;
  case PCI_PRODUCT_VIATECH_VT8233_ISA:
- printf(": ATA133");
- sc->sc_wdcdev.UDMA_cap = 6;
- break;
  case PCI_PRODUCT_VIATECH_VT8235_ISA:
- printf(": ATA133");
- sc->sc_wdcdev.UDMA_cap = 6;
- break;
  case PCI_PRODUCT_VIATECH_VT8237_SATA:
+ case PCI_PRODUCT_VIATECH_VT6410:
  printf(": ATA133");
  sc->sc_wdcdev.UDMA_cap = 6;
  break;


        Here is a patch for the documentation of pciide(4):

--- /usr/src/share/man/man4/pciide.4.orig Tue Jan 24 16:38:25 2006
+++ /usr/src/share/man/man4/pciide.4 Sun Jan 29 08:55:17 2006
@@ -107,7 +107,7 @@
 730, 733, 735, 740, 745, 746, 748, 750, 751, 752, 755, 760, 962, 963
 .It
 VIA Technologies VT82C586/A/B, VT82C596A/B, VT82C686A/B, VT8231, VT8366,
-VT8233, VT8235, VT8237
+VT8233, VT8235, VT8237, VT6410
 .El
 .Pp
 Some of these controllers are only available in multifunction PCI chips.


        dmesg after patch applied:
OpenBSD 3.8-stable (GENERIC) #0: Sun Jan 29 01:35:32 CET 2006
    benoit@fig:/home/benoit/sys/arch/i386/compile/GENERIC
cpu0: Intel(R) Pentium(R) 4 CPU 2.80GHz ("GenuineIntel" 686-class) 2.81 GHz
cpu0: FPU,V86,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,SBF,CNXT-ID
real mem  = 1609342976 (1571624K)
avail mem = 1461137408 (1426892K)
using 4278 buffers containing 80568320 bytes (78680K) of memory
mainbus0 (root)
bios0 at mainbus0: AT/286+(00) BIOS, date 06/23/04, BIOS32 rev. 0 @ 0xf0010
apm0 at bios0: Power Management spec V1.2
apm0: AC on, battery charge unknown
apm0: flags 30102 dobusy 0 doidle 1
pcibios0 at bios0: rev 2.1 @ 0xf0000/0x10000
pcibios0: PCI IRQ Routing Table rev 1.0 @ 0xf50c0/256 (14 entries)
pcibios0: PCI Interrupt Router at 000:31:0 ("Intel 82801EB/ER LPC" rev 0x00)
pcibios0: PCI bus #2 is the last bus
bios0: ROM list: 0xc0000/0xb000 0xcb000/0x3c00!
cpu0 at mainbus0
pci0 at mainbus0 bus 0: configuration mode 1 (no bios)
pchb0 at pci0 dev 0 function 0 "Intel 82865G/PE/P CPU-I/0-1" rev 0x02
ppb0 at pci0 dev 1 function 0 "Intel 82865G/PE/P CPU-AGP" rev 0x02
pci1 at ppb0 bus 1
vga1 at pci1 dev 0 function 0 "ATI Radeon VE QY" rev 0x00
wsdisplay0 at vga1 mux 1: console (80x25, vt100 emulation)
wsdisplay0: screen 1-5 added (80x25, vt100 emulation)
uhci0 at pci0 dev 29 function 0 "Intel 82801EB/ER USB" rev 0x02: irq 10
usb0 at uhci0: USB revision 1.0
uhub0 at usb0
uhub0: Intel UHCI root hub, 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" rev 0x02: irq 5
usb1 at uhci1: USB revision 1.0
uhub1 at usb1
uhub1: Intel UHCI root hub, 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" rev 0x02: irq 5
usb2 at uhci2: USB revision 1.0
uhub2 at usb2
uhub2: Intel UHCI root hub, 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" rev 0x02: irq 10
usb3 at uhci3: USB revision 1.0
uhub3 at usb3
uhub3: Intel UHCI root hub, rev 1.00/1.00, addr 1
uhub3: 2 ports with 2 removable, self powered
ehci0 at pci0 dev 29 function 7 "Intel 82801EB/ER USB" rev 0x02: irq 11
usb4 at ehci0: USB revision 2.0
uhub4 at usb4
uhub4: Intel EHCI root hub, rev 2.00/1.00, addr 1
uhub4: 8 ports with 8 removable, self powered
ppb1 at pci0 dev 30 function 0 "Intel 82801BA AGP" rev 0xc2
pci2 at ppb1 bus 2
"VIA VT6306 FireWire" rev 0x46 at pci2 dev 3 function 0 not configured
pciide0 at pci2 dev 4 function 0 "VIA VT6410 IDE" rev 0x06: ATA133, channel 0 wired to native-PCI, channel 1 wired to native-PCI
pciide0: using irq 11 for native-PCI interrupt
wd0 at pciide0 channel 0 drive 0: <HDS722580VLAT20>
wd0: 16-sector PIO, LBA48, 78533MB, 160836480 sectors
wd1 at pciide0 channel 0 drive 1: <HDS722580VLAT20>
wd1: 16-sector PIO, LBA48, 78533MB, 160836480 sectors
wd0(pciide0:0:0): using PIO mode 4, Ultra-DMA mode 5
wd1(pciide0:0:1): using PIO mode 4, Ultra-DMA mode 5
pciide0: channel 1 disabled (no drives)
skc0 at pci2 dev 5 function 0 "3Com 3c940" rev 0x12: irq 5
skc0: Marvell Yukon (0x1)
sk0 at skc0 port A: address 00:0e:a6:48:25:b4
eephy0 at sk0 phy 0: Marvell 88E1011 Gigabit PHY, rev. 3
rl0 at pci2 dev 13 function 0 "Realtek 8139" rev 0x10: irq 10 address 00:50:fc:49:e8:a4
rlphy0 at rl0 phy 0: RTL internal phy
ichpcib0 at pci0 dev 31 function 0 "Intel 82801EB/ER LPC" rev 0x02
pciide1 at pci0 dev 31 function 1 "Intel 82801EB/ER IDE" rev 0x02: DMA, channel 0 configured to compatibility, channel 1 configured to compatibility
wd2 at pciide1 channel 0 drive 0: <ST360021A>
wd2: 16-sector PIO, LBA, 57241MB, 117231408 sectors
wd2(pciide1:0:0): using PIO mode 4, Ultra-DMA mode 5
atapiscsi0 at pciide1 channel 1 drive 0
scsibus0 at atapiscsi0: 2 targets
cd0 at scsibus0 targ 0 lun 0: <_NEC, DVD_RW ND-3500AG, 2.16> SCSI0 5/cdrom removable
cd0(pciide1:1:0): using PIO mode 4, Ultra-DMA mode 2
"Intel 82801EB/ER SMBus" rev 0x02 at pci0 dev 31 function 3 not configured
auich0 at pci0 dev 31 function 5 "Intel 82801EB/ER AC97" rev 0x02: irq 5, ICH5 AC97
ac97: codec id 0x41445375 (Analog Devices AD1985)
ac97: codec features headphone, 20 bit DAC, No 3D Stereo
audio0 at auich0
isa0 at ichpcib0
isadma0 at isa0
pckbc0 at isa0 port 0x60/5
pckbd0 at pckbc0 (kbd slot)
pckbc0: using irq 1 for kbd slot
wskbd0 at pckbd0: console keyboard, using wsdisplay0
pmsi0 at pckbc0 (aux slot)
pckbc0: using irq 12 for aux slot
wsmouse0 at pmsi0 mux 0
pcppi0 at isa0 port 0x61
midi0 at pcppi0: <PC speaker>
spkr0 at pcppi0
sysbeep0 at pcppi0
lpt0 at isa0 port 0x378/4 irq 7
lm0 at isa0 port 0x290/8: W83627THF
npx0 at isa0 port 0xf0/16: using exception 16
pccom0 at isa0 port 0x3f8/8 irq 4: ns16550a, 16 byte fifo
pccom1 at isa0 port 0x2f8/8 irq 3: ns16550a, 16 byte fifo
fdc0 at isa0 port 0x3f0/6 irq 6 drq 2
fd0 at fdc0 drive 0: 1.44MB 80 cyl, 2 head, 18 sec
biomask ef65 netmask ef65 ttymask ffe7
pctr: user-level cycle counter enabled
dkcsum: wd0 matches BIOS drive 0x81
dkcsum: wd1 matches BIOS drive 0x82
dkcsum: wd2 matches BIOS drive 0x80
root on wd2a
rootdev=0x20 rrootdev=0x320 rawdev=0x322

--
Benoit Izac


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