Re: VIA IDE controller not detected on RELENG_6



[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@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@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@xxxxxxxxxxxxxxxxxx:/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@xxxxxxxxxxxxx



As suggested here is the complete pciconf -l output:

hostb0@pci0:0:0: class=0x060000 card=0x00000000 chip=0x03361106 rev=0x00
hdr=0x00
hostb1@pci0:0:1: class=0x060000 card=0x00000000 chip=0x13361106 rev=0x00
hdr=0x00
hostb2@pci0:0:2: class=0x060000 card=0x00000000 chip=0x23361106 rev=0x00
hdr=0x00
hostb3@pci0:0:3: class=0x060000 card=0x00000000 chip=0x33361106 rev=0x00
hdr=0x00
hostb4@pci0:0:4: class=0x060000 card=0x00000000 chip=0x43361106 rev=0x00
hdr=0x00
none0@pci0:0:5: class=0x080020 card=0x00000000 chip=0x53361106 rev=0x00
hdr=0x00
hostb5@pci0:0:6: class=0x060000 card=0x00000008 chip=0x62901106 rev=0x00
hdr=0x00
hostb6@pci0:0:7: class=0x060000 card=0x00000000 chip=0x73361106 rev=0x00
hdr=0x00
pcib1@pci0:1:0: class=0x060400 card=0x00000070 chip=0xb1881106 rev=0x00
hdr=0x01
atapci0@pci0:15:0: class=0x01018a card=0x81b51043 chip=0x05711106 rev=0x07
hdr=0x00
uhci0@pci0:16:0: class=0x0c0300 card=0x81b51043 chip=0x30381106 rev=0x90
hdr=0x00
uhci1@pci0:16:1: class=0x0c0300 card=0x81b51043 chip=0x30381106 rev=0x90
hdr=0x00
uhci2@pci0:16:2: class=0x0c0300 card=0x81b51043 chip=0x30381106 rev=0x90
hdr=0x00
uhci3@pci0:16:3: class=0x0c0300 card=0x81b51043 chip=0x30381106 rev=0x90
hdr=0x00
ehci0@pci0:16:4: class=0x0c0320 card=0x81b51043 chip=0x31041106 rev=0x90
hdr=0x00
isab0@pci0:17:0: class=0x060100 card=0x81b51043 chip=0x32871106 rev=0x00
hdr=0x00
hostb7@pci0:17:7: class=0x060000 card=0x287e1106 chip=0x287e1106 rev=0x00
hdr=0x00
pcib2@pci0:19:0: class=0x060400 card=0x00000000 chip=0x287b1106 rev=0x00
hdr=0x01
pcib3@pci0:19:1: class=0x060401 card=0x00000000 chip=0x287a1106 rev=0x00
hdr=0x01
hostb8@pci0:24:0: class=0x060000 card=0x00000000 chip=0x11001022 rev=0x00
hdr=0x00
hostb9@pci0:24:1: class=0x060000 card=0x00000000 chip=0x11011022 rev=0x00
hdr=0x00
hostb10@pci0:24:2: class=0x060000 card=0x00000000 chip=0x11021022 rev=0x00
hdr=0x00
hostb11@pci0:24:3: class=0x060000 card=0x00000000 chip=0x11031022 rev=0x00
hdr=0x00
none1@pci1:0:0: class=0x030000 card=0x81b51043 chip=0x32301106 rev=0x01
hdr=0x00
none2@pci4:1:0: class=0x040300 card=0x81b51043 chip=0x32881106 rev=0x00
hdr=0x00
fxp0@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@xxxxxxxxxxxx:/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@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@xxxxxxxxxxxxx

_______________________________________________
freebsd-stable@xxxxxxxxxxx mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "freebsd-stable-unsubscribe@xxxxxxxxxxx"