VIA IDE controller not detected on RELENG_6

Erik Trulsson ertr1013 at student.uu.se
Sun Oct 15 22:00:26 UTC 2006


[Second attempt to send this, since my ISP's mailserver seems to have eaten
 the first attempt.  Apologies if it appears twice.]

Alright, that gives useful information.  The output from pciconf and dmesg
indicates strongly that what you have is an Asus motherboard with an VIA
vt8251 southbridge.  There are only a handful of such models and based on
what other devices you have on the motherboard and the specifications on the
motherboards in question I am almost certain that the motherboard in
question is an Asus A8V-VM.


That motherboard (as well as all other amd64-capable motherboards I am
aware of) does have a SATA-controller, but since it does not appear in
the output of either pciconf or dmesg it must have been disabled in the
BIOS.  (Not all motherboards allow you to disable the SATA-controller in
the BIOS, but the A8V-VM does according to its manual.)

As I said before the pci-id for the PATA-controller (0x05711106) is used
by several VIA chipsets for their PATA-controller.  In order to find
out which particular chipset it is the ata(4) driver has to look at the
other pci-ids in the system to find one which is unique to that chip. 

To identify a chip as an vt8251 ata(4) looks for the pci-id of the vt8251
SATA-controller -- the one which seems to have been disabled in BIOS
on your system.  

If you (or somebody else) were to enable the built-in SATA-controller on
your system then the PATA controller should be recognized correctly.



Since you don't seem to have physical access to the machine which means it
might be difficult for you to change BIOS settings, you might try the
following patch which makes ata(4) look for a different pci-id that you do
have in your system. 
(Note that since I do not have any motherboard with the VIA vt8251 chip, I
have not been able to actually test this patch - so be careful if you do
decide to try it.)


Index: sys/dev/ata/ata-chipset.c
===================================================================
RCS file: /ncvs/src/sys/dev/ata/ata-chipset.c,v
retrieving revision 1.126.2.15
diff -u -r1.126.2.15 ata-chipset.c
--- sys/dev/ata/ata-chipset.c	9 Oct 2006 16:01:35 -0000	1.126.2.15
+++ sys/dev/ata/ata-chipset.c	14 Oct 2006 13:02:29 -0000
@@ -4762,7 +4762,7 @@
      { ATA_VIA8235,   0x00, VIA133, 0x00,    ATA_UDMA6, "8235" },
      { ATA_VIA8237,   0x00, VIA133, 0x00,    ATA_UDMA6, "8237" },
      { ATA_VIA8237A,  0x00, VIA133, 0x00,    ATA_UDMA6, "8237A" },
-     { ATA_VIA8251,   0x00, VIA133, 0x00,    ATA_UDMA6, "8251" },
+     { 0x32871106,    0x00, VIA133, 0x00,    ATA_UDMA6, "8251" },
      { 0, 0, 0, 0, 0, 0 }};
     static struct ata_chip_id new_ids[] =
     {{ ATA_VIA6410,   0x00, 0,      0x00,    ATA_UDMA6, "6410" },





On Sat, Oct 14, 2006 at 12:15:56PM +0100, Dominic Bishop wrote:
> > On Fri, Oct 13, 2006 at 07:51:41AM +0200, Roland Smith wrote:
> >> On Thu, Oct 12, 2006 at 11:59:00PM +0100, Dominic Bishop wrote:
> >> > I am running a RELENG_6 from yesterday on amd64 and the VIA PATA
> >> > controller is being detected as GENERIC ATA, from dmesg:
> >> >
> >> > atapci0: <GENERIC ATA controller> port
> >> > 0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0xfc00-0xfc0f at device 15.0 on
> >> pci0
> >> >
> >> > uname -a:
> >> > FreeBSD 6.2-PRERELEASE FreeBSD 6.2-PRERELEASE #0: Wed Oct 11 22:10:03
> >> UTC
> >> > 2006 :/usr/obj/usr/src/sys/PPV1  amd64
> >> >
> >> > The kernel config is simply a generic kernel with SMP, device polling
> >> and
> >> > geli/crypto added to it.
> >> >
> >> > The device in question from pciconf -lv:
> >> >
> >> > atapci0 at pci0:15:0:      class=0x01018a card=0x81b51043 chip=0x05711106
> >> > rev=0x07 hdr=0x00
> >> >     vendor   = 'VIA Technologies Inc'
> >> >     device   = 'VT82xxxx EIDE Controller (All VIA Chipsets)'
> >> >     class    = mass storage
> >> >     subclass = ATA
> >> >
> >> > Unfortunately I cannot say what motherboard is in the machine as it is
> >> a
> >> > leased dedicated server.
> >>
> >> My system shows the same PATA controller;
> >>
> >> atapci1 at pci0:15:1:      class=0x01018a card=0x80ed1043 chip=0x05711106
> >> rev=0x06
> >> hdr=0x00
> >>     vendor   = 'VIA Technologies Inc'
> >>     device   = 'VT82xxxx EIDE Controller (All VIA Chipsets)'
> >>     class    = mass storage
> >>     subclass = ATA
> >>
> >> The only difference is that your chipset has a higher revision number.
> >>
> >> But it is recognized without problems:
> >>
> >> atapci1: <VIA 8237 UDMA133 controller> port
> >> 0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0xfc00-0xfc0f at device 15.1 on pci0
> >>
> >> This is on STABLE:
> >>
> >> FreeBSD slackbox.xs4all.nl 6.1-STABLE FreeBSD 6.1-STABLE #0: Sat Sep  9
> >> 14:46:57 CEST 2006
> >> rsmith at slackbox.xs4all.nl:/usr/obj/usr/src/sys/RFS  amd64
> >>
> >
> >
> > That pci-id is used by several different VIA chips for the PATA
> > controller.
> > The FreeBSD ata(4) driver searches among the other PCI-ids in the box to
> > find out which chips it actually is.
> >
> > It may be that the first one is some recent chip that is not yet
> > recognized
> > by ata(4).  The complete output out of 'pciconf -l' might be useful. (And
> > possibly that of 'dmesg' as well.)
> > It is also possible that the driver is looking for some device that has
> > been
> > disabled in the BIOS and therefore is not found.
> >
> >
> > As for which motherboard it is the 'card=' part of the pciconf outputs
> > indicates that both of you have motherboards from ASUS.
> >
> >
> >
> > --
> > <Insert your favourite quote here.>
> > Erik Trulsson
> > ertr1013 at student.uu.se
> >
> 
> 
> As suggested here is the complete pciconf -l output:
> 
> hostb0 at pci0:0:0:	class=0x060000 card=0x00000000 chip=0x03361106 rev=0x00
> hdr=0x00
> hostb1 at pci0:0:1:	class=0x060000 card=0x00000000 chip=0x13361106 rev=0x00
> hdr=0x00
> hostb2 at pci0:0:2:	class=0x060000 card=0x00000000 chip=0x23361106 rev=0x00
> hdr=0x00
> hostb3 at pci0:0:3:	class=0x060000 card=0x00000000 chip=0x33361106 rev=0x00
> hdr=0x00
> hostb4 at pci0:0:4:	class=0x060000 card=0x00000000 chip=0x43361106 rev=0x00
> hdr=0x00
> none0 at pci0:0:5:	class=0x080020 card=0x00000000 chip=0x53361106 rev=0x00
> hdr=0x00
> hostb5 at pci0:0:6:	class=0x060000 card=0x00000008 chip=0x62901106 rev=0x00
> hdr=0x00
> hostb6 at pci0:0:7:	class=0x060000 card=0x00000000 chip=0x73361106 rev=0x00
> hdr=0x00
> pcib1 at pci0:1:0:	class=0x060400 card=0x00000070 chip=0xb1881106 rev=0x00
> hdr=0x01
> atapci0 at pci0:15:0:	class=0x01018a card=0x81b51043 chip=0x05711106 rev=0x07
> hdr=0x00
> uhci0 at pci0:16:0:	class=0x0c0300 card=0x81b51043 chip=0x30381106 rev=0x90
> hdr=0x00
> uhci1 at pci0:16:1:	class=0x0c0300 card=0x81b51043 chip=0x30381106 rev=0x90
> hdr=0x00
> uhci2 at pci0:16:2:	class=0x0c0300 card=0x81b51043 chip=0x30381106 rev=0x90
> hdr=0x00
> uhci3 at pci0:16:3:	class=0x0c0300 card=0x81b51043 chip=0x30381106 rev=0x90
> hdr=0x00
> ehci0 at pci0:16:4:	class=0x0c0320 card=0x81b51043 chip=0x31041106 rev=0x90
> hdr=0x00
> isab0 at pci0:17:0:	class=0x060100 card=0x81b51043 chip=0x32871106 rev=0x00
> hdr=0x00
> hostb7 at pci0:17:7:	class=0x060000 card=0x287e1106 chip=0x287e1106 rev=0x00
> hdr=0x00
> pcib2 at pci0:19:0:	class=0x060400 card=0x00000000 chip=0x287b1106 rev=0x00
> hdr=0x01
> pcib3 at pci0:19:1:	class=0x060401 card=0x00000000 chip=0x287a1106 rev=0x00
> hdr=0x01
> hostb8 at pci0:24:0:	class=0x060000 card=0x00000000 chip=0x11001022 rev=0x00
> hdr=0x00
> hostb9 at pci0:24:1:	class=0x060000 card=0x00000000 chip=0x11011022 rev=0x00
> hdr=0x00
> hostb10 at pci0:24:2:	class=0x060000 card=0x00000000 chip=0x11021022 rev=0x00
> hdr=0x00
> hostb11 at pci0:24:3:	class=0x060000 card=0x00000000 chip=0x11031022 rev=0x00
> hdr=0x00
> none1 at pci1:0:0:	class=0x030000 card=0x81b51043 chip=0x32301106 rev=0x01
> hdr=0x00
> none2 at pci4:1:0:	class=0x040300 card=0x81b51043 chip=0x32881106 rev=0x00
> hdr=0x00
> fxp0 at pci5:8:0:	class=0x020000 card=0x000c8086 chip=0x12298086 rev=0x08
> hdr=0x00
> 
> And here is a complete dmesg from the machine:
> 
> Copyright (c) 1992-2006 The FreeBSD Project.
> Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
> 	The Regents of the University of California. All rights reserved.
> FreeBSD is a registered trademark of The FreeBSD Foundation.
> FreeBSD 6.2-PRERELEASE #0: Wed Oct 11 22:10:03 UTC 2006
>     anh at fast.box.net:/usr/obj/usr/src/sys/PPV1
> Timecounter "i8254" frequency 1193182 Hz quality 0
> CPU: AMD Athlon(tm) 64 X2 Dual Core Processor 3800+ (2000.09-MHz K8-class
> CPU)
>   Origin = "AuthenticAMD"  Id = 0x20fb1  Stepping = 1
>   Features=0x178bfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,MMX,FXSR,SSE,SSE2,HTT>
>   Features2=0x1<SSE3>
>   AMD Features=0xe2500800<SYSCALL,NX,MMX+,FFXSR,LM,3DNow+,3DNow>
>   AMD Features2=0x3<LAHF,CMP>
>   Cores per package: 2
> real memory  = 1006305280 (959 MB)
> avail memory = 962621440 (918 MB)
> ACPI APIC Table: <A M I  OEMAPIC >
> FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs
>  cpu0 (BSP): APIC ID:  0
>  cpu1 (AP): APIC ID:  1
> ioapic0 <Version 0.3> irqs 0-23 on motherboard
> ioapic1 <Version 0.3> irqs 24-47 on motherboard
> kbd0 at kbdmux0
> acpi0: <A M I OEMRSDT> on motherboard
> acpi0: Power Button (fixed)
> Timecounter "ACPI-fast" frequency 3579545 Hz quality 1000
> acpi_timer0: <24-bit timer at 3.579545MHz> port 0x808-0x80b on acpi0
> cpu0: <ACPI CPU> on acpi0
> acpi_throttle0: <ACPI CPU Throttling> on cpu0
> cpu1: <ACPI CPU> on acpi0
> pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0
> pci0: <ACPI PCI bus> on pcib0
> pci0: <base peripheral, interrupt controller> at device 0.5 (no driver
> attached)
> pcib1: <ACPI PCI-PCI bridge> at device 1.0 on pci0
> pci1: <ACPI PCI bus> on pcib1
> pci1: <display, VGA> at device 0.0 (no driver attached)
> atapci0: <GENERIC ATA controller> port
> 0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0xfc00-0xfc0f at device 15.0 on pci0
> ata0: <ATA channel 0> on atapci0
> ata1: <ATA channel 1> on atapci0
> uhci0: <VIA 83C572 USB controller> port 0xd800-0xd81f irq 20 at device
> 16.0 on pci0
> uhci0: [GIANT-LOCKED]
> usb0: <VIA 83C572 USB controller> on uhci0
> usb0: USB revision 1.0
> uhub0: VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
> uhub0: 2 ports with 2 removable, self powered
> uhci1: <VIA 83C572 USB controller> port 0xd400-0xd41f irq 22 at device
> 16.1 on pci0
> uhci1: [GIANT-LOCKED]
> usb1: <VIA 83C572 USB controller> on uhci1
> usb1: USB revision 1.0
> uhub1: VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
> uhub1: 2 ports with 2 removable, self powered
> uhci2: <VIA 83C572 USB controller> port 0xd000-0xd01f irq 21 at device
> 16.2 on pci0
> uhci2: [GIANT-LOCKED]
> usb2: <VIA 83C572 USB controller> on uhci2
> usb2: USB revision 1.0
> uhub2: VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
> uhub2: 2 ports with 2 removable, self powered
> uhci3: <VIA 83C572 USB controller> port 0xc800-0xc81f irq 23 at device
> 16.3 on pci0
> uhci3: [GIANT-LOCKED]
> usb3: <VIA 83C572 USB controller> on uhci3
> usb3: USB revision 1.0
> uhub3: VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
> uhub3: 2 ports with 2 removable, self powered
> ehci0: <VIA VT6202 USB 2.0 controller> mem 0xf9fffc00-0xf9fffcff irq 22 at
> device 16.4 on pci0
> ehci0: [GIANT-LOCKED]
> usb4: EHCI version 1.0
> usb4: companion controllers, 2 ports each: usb0 usb1 usb2 usb3
> usb4: <VIA VT6202 USB 2.0 controller> on ehci0
> usb4: USB revision 2.0
> uhub4: VIA EHCI root hub, class 9/0, rev 2.00/1.00, addr 1
> uhub4: 8 ports with 8 removable, self powered
> isab0: <PCI-ISA bridge> at device 17.0 on pci0
> isa0: <ISA bus> on isab0
> pcib2: <ACPI PCI-PCI bridge> at device 19.0 on pci0
> pci4: <ACPI PCI bus> on pcib2
> pci4: <multimedia> at device 1.0 (no driver attached)
> pcib3: <ACPI PCI-PCI bridge> at device 19.1 on pci0
> pci5: <ACPI PCI bus> on pcib3
> fxp0: <Intel 82559 Pro/100 Ethernet> port 0xe800-0xe83f mem
> 0xfbfff000-0xfbffffff,0xfbe00000-0xfbefffff irq 16 at device 8.0 on pci5
> miibus0: <MII bus> on fxp0
> inphy0: <i82555 10/100 media interface> on miibus0
> inphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
> fxp0: Ethernet address: 00:02:b3:09:4f:d8
> acpi_button0: <Sleep Button> on acpi0
> acpi_button1: <Power Button> on acpi0
> ppc0: <ECP parallel printer port> port 0x378-0x37f,0x778-0x77b irq 7 drq 3
> on acpi0
> ppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode
> ppc0: FIFO with 16/16/9 bytes threshold
> ppbus0: <Parallel port bus> on ppc0
> lpt0: <Printer> on ppbus0
> lpt0: Interrupt-driven port
> ppi0: <Parallel I/O> on ppbus0
> sio0: configured irq 3 not in bitmap of probed irqs 0
> sio0: port may not be enabled
> sio0: <16550A-compatible COM port> port 0x2f8-0x2ff irq 3 flags 0x10 on acpi0
> sio0: type 16550A
> orm0: <ISA Option ROM> at iomem 0xc8800-0xc97ff on isa0
> atkbdc0: <Keyboard controller (i8042)> at port 0x60,0x64 on isa0
> sc0: <System console> at flags 0x100 on isa0
> sc0: VGA <16 virtual consoles, flags=0x300>
> vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
> Timecounters tick every 1.000 msec
> ad0: 286188MB <Maxtor 6L300R0 BAH41G10> at ata0-master UDMA33
> ad1: 286168MB <SAMSUNG HD300LD WK100-12> at ata0-slave UDMA33
> ad2: 286188MB <Maxtor 6L300R0 BAJ41G20> at ata1-master UDMA33
> ad3: 715404MB <Seagate ST3750640A 3.AAD> at ata1-slave UDMA33
> SMP: AP CPU #1 Launched!
> Trying to mount root from ufs:/dev/ad0s1a
> 
> As I mentioned in my original mail I don't think it is the specific ATA
> chip causing the issue as another machine with this exact same chip works
> fine (but a different motherboard I believe)
> 
> From this other machine:
> 
> atapci1 at pci0:15:1:      class=0x01018a card=0x81b51043 chip=0x05711106
> rev=0x07 hdr=0x00
> atapci1: <VIA 8251 UDMA133 controller> port
> 0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0xfc00-0xfc0f at device 15.1 on pci0
> 
> The difference with that machine is it has a SATA controller at atapci0 ,
> which is what leads me to believe it is a different motherboard. Unless
> the other one has SATA disabled in BIOS, as I don't have physical access
> to the machines it is hard to say.
> 

-- 
<Insert your favourite quote here.>
Erik Trulsson
ertr1013 at student.uu.se



More information about the freebsd-stable mailing list