Josh Carroll
2008-Aug-18  16:13 UTC
ICH9 Controller on Asus P5K-E showing up as "Intel AHCI controller"
It's not really a problem, as the device and the SATA hard drives and
DVD+RW attached to the bus operate properly, but I'm wondering why the
ICH9 controller (in AHCI mode) on the Asus P5K-E motherboard shows up
as:
atapci1: <Intel AHCI controller> port
0xac00-0xac07,0xa880-0xa883,0xa800-0xa807,0xa480-0xa483,0xa400-0xa41f
mem 0xfbffe800-0xfbffefff irq 22 at device 31.2 on pci0
The chip ID (0x29228086) from pciconf:
atapci1@pci0:0:31:2:    class=0x010601 card=0x82771043 chip=0x29228086
rev=0x02 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = '82801IB/IR/IH (ICH9 Family) 6 port SATA AHCI
Controller'
    class      = mass storage
Matches in ata-pci.h:
/usr/src/sys/dev/ata/ata-pci.h:#define ATA_I82801IB_AH6        0x29228086
And has an accompanying entry in ata-chipset.h:
/usr/src/sys/dev/ata/ata-chipset.c:     { ATA_I82801IB_AH6, 0, AHCI,
0x00, ATA_SA300, "ICH9" },
Which correctly indicates it is AHCI compliant.
However, ata_ahci_ident() still falls back on a "generic" identifier,
which I guess means:
    /* is this PCI device flagged as an AHCI compliant chip ? */
    if (pci_read_config(dev, PCIR_PROGIF, 1) != PCIP_STORAGE_SATA_AHCI_1_0)
    return ENXIO;
Is returning 0 and falling through to:
    sprintf(buffer, "%s AHCI controller", ata_pcivendor2str(dev));
Just wondering why it is not properly detecting this as ICH9. Again,
just something cosmetic that I'm curious about. I'm going to double
check the BIOS settings now, but I am confident I have them set as
AHCI in the BIOS. I suppose this could be a BIOS bug of some sort. I
can also try upgrading to the latest BIOS.
The system is 7.0-STABLE/amd64 as of August 16, 2008.
Below is the full dmesg output, just in case it's pertinent.
Thanks much!
Josh
Copyright (c) 1992-2008 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 7.0-STABLE #0: Sat Aug 16 09:06:23 EDT 2008
    root@pflog.net:/usr/jails/folsom/usr/obj/usr/src/sys/PFLOG
Timecounter "i8254" frequency 1193182 Hz quality 0
CPU: Intel(R) Core(TM)2 Quad CPU    Q6600  @ 2.40GHz (3204.03-MHz K8-class CPU)
  Origin = "GenuineIntel"  Id = 0x6fb  Stepping = 11
 
Features=0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE>
  Features2=0xe3bd<SSE3,RSVD2,MON,DS_CPL,VMX,EST,TM2,SSSE3,CX16,xTPR,PDCM>
  AMD Features=0x20100800<SYSCALL,NX,LM>
  AMD Features2=0x1<LAHF>
  Cores per package: 4
usable memory = 4286234624 (4087 MB)
avail memory  = 4124958720 (3933 MB)
ACPI APIC Table: <A_M_I_ OEMAPIC >
FreeBSD/SMP: Multiprocessor System Detected: 4 CPUs
 cpu0 (BSP): APIC ID:  0
 cpu1 (AP): APIC ID:  1
 cpu2 (AP): APIC ID:  2
 cpu3 (AP): APIC ID:  3
ioapic0 <Version 2.0> irqs 0-23 on motherboard
netsmb_dev: loaded
acpi0: <A_M_I_ OEMXSDT> on motherboard
acpi0: [ITHREAD]
acpi0: Power Button (fixed)
acpi0: reservation of 0, a0000 (3) failed
acpi0: reservation of 100000, cff00000 (3) failed
Timecounter "ACPI-fast" frequency 3579545 Hz quality 1000
acpi_timer0: <24-bit timer at 3.579545MHz> port 0x808-0x80b on acpi0
pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0
pci0: <ACPI PCI bus> on pcib0
pcib1: <ACPI PCI-PCI bridge> irq 16 at device 1.0 on pci0
pci1: <ACPI PCI bus> on pcib1
vgapci0: <VGA-compatible display> mem
0xfd000000-0xfdffffff,0xd0000000-0xdfffffff,0xfc000000-0xfcffffff irq
16 at device 0.0 on pci1
uhci0: <UHCI (generic) USB controller> port 0xb800-0xb81f irq 16 at
device 26.0 on pci0
uhci0: [GIANT-LOCKED]
uhci0: [ITHREAD]
usb0: <UHCI (generic) USB controller> on uhci0
usb0: USB revision 1.0
uhub0: <Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1> on usb0
uhub0: 2 ports with 2 removable, self powered
uhci1: <UHCI (generic) USB controller> port 0xb880-0xb89f irq 21 at
device 26.1 on pci0
uhci1: [GIANT-LOCKED]
uhci1: [ITHREAD]
usb1: <UHCI (generic) USB controller> on uhci1
usb1: USB revision 1.0
uhub1: <Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1> on usb1
uhub1: 2 ports with 2 removable, self powered
uhci2: <UHCI (generic) USB controller> port 0xbc00-0xbc1f irq 18 at
device 26.2 on pci0
uhci2: [GIANT-LOCKED]
uhci2: [ITHREAD]
usb2: <UHCI (generic) USB controller> on uhci2
usb2: USB revision 1.0
uhub2: <Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1> on usb2
uhub2: 2 ports with 2 removable, self powered
ehci0: <EHCI (generic) USB 2.0 controller> mem 0xfbfffc00-0xfbffffff
irq 18 at device 26.7 on pci0
ehci0: [GIANT-LOCKED]
ehci0: [ITHREAD]
usb3: EHCI version 1.0
usb3: companion controllers, 2 ports each: usb0 usb1 usb2
usb3: <EHCI (generic) USB 2.0 controller> on ehci0
usb3: USB revision 2.0
uhub3: <Intel EHCI root hub, class 9/0, rev 2.00/1.00, addr 1> on usb3
uhub3: 6 ports with 6 removable, self powered
pcib2: <ACPI PCI-PCI bridge> irq 17 at device 28.0 on pci0
pci4: <ACPI PCI bus> on pcib2
pcib3: <ACPI PCI-PCI bridge> irq 17 at device 28.4 on pci0
pci3: <ACPI PCI bus> on pcib3
atapci0: <JMicron JMB363 SATA300 controller> port
0xdc00-0xdc07,0xd880-0xd883,0xd800-0xd807,0xd480-0xd483,0xd400-0xd40f
mem 0xfeafe000-0xfeafffff irq 16 at device 0.0 on pci3
atapci0: [ITHREAD]
atapci0: AHCI called from vendor specific driver
atapci0: AHCI Version 01.00 controller with 2 ports detected
ata2: <ATA channel 0> on atapci0
ata2: [ITHREAD]
ata3: <ATA channel 1> on atapci0
ata3: [ITHREAD]
ata4: <ATA channel 2> on atapci0
ata4: [ITHREAD]
pcib4: <ACPI PCI-PCI bridge> irq 16 at device 28.5 on pci0
pci2: <ACPI PCI bus> on pcib4
mskc0: <Marvell Yukon 88E8056 Gigabit Ethernet> port 0xc800-0xc8ff mem
0xfe9fc000-0xfe9fffff irq 17 at device 0.0 on pci2
msk0: <Marvell Technology Group Ltd. Yukon EC Ultra Id 0xb4 Rev 0x03> on
mskc0
msk0: Ethernet address: 00:1d:60:bc:cc:39
miibus0: <MII bus> on msk0
e1000phy0: <Marvell 88E1149 Gigabit PHY> PHY 0 on miibus0
e1000phy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseTX-FDX, auto
mskc0: [FILTER]
uhci3: <UHCI (generic) USB controller> port 0xb080-0xb09f irq 23 at
device 29.0 on pci0
uhci3: [GIANT-LOCKED]
uhci3: [ITHREAD]
usb4: <UHCI (generic) USB controller> on uhci3
usb4: USB revision 1.0
uhub4: <Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1> on usb4
uhub4: 2 ports with 2 removable, self powered
uhci4: <UHCI (generic) USB controller> port 0xb400-0xb41f irq 19 at
device 29.1 on pci0
uhci4: [GIANT-LOCKED]
uhci4: [ITHREAD]
usb5: <UHCI (generic) USB controller> on uhci4
usb5: USB revision 1.0
uhub5: <Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1> on usb5
uhub5: 2 ports with 2 removable, self powered
uhci5: <UHCI (generic) USB controller> port 0xb480-0xb49f irq 18 at
device 29.2 on pci0
uhci5: [GIANT-LOCKED]
uhci5: [ITHREAD]
usb6: <UHCI (generic) USB controller> on uhci5
usb6: USB revision 1.0
uhub6: <Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1> on usb6
uhub6: 2 ports with 2 removable, self powered
ehci1: <EHCI (generic) USB 2.0 controller> mem 0xfbfff800-0xfbfffbff
irq 23 at device 29.7 on pci0
ehci1: [GIANT-LOCKED]
ehci1: [ITHREAD]
usb7: EHCI version 1.0
usb7: companion controllers, 2 ports each: usb4 usb5 usb6
usb7: <EHCI (generic) USB 2.0 controller> on ehci1
usb7: USB revision 2.0
uhub7: <Intel EHCI root hub, class 9/0, rev 2.00/1.00, addr 1> on usb7
uhub7: 6 ports with 6 removable, self powered
pcib5: <ACPI PCI-PCI bridge> at device 30.0 on pci0
pci5: <ACPI PCI bus> on pcib5
em0: <Intel(R) PRO/1000 Network Connection 6.9.5> port 0xec00-0xec3f
mem 0xfebe0000-0xfebfffff,0xfebc0000-0xfebdffff irq 17 at device 1.0
on pci5
em0: [FILTER]
em0: Ethernet address: 00:0e:0c:6c:b9:16
fwohci0: <Lucent FW322/323> mem 0xfeb9f000-0xfeb9ffff irq 19 at device
3.0 on pci5
fwohci0: [FILTER]
fwohci0: OHCI version 1.0 (ROM=1)
fwohci0: No. of Isochronous channels is 8.
fwohci0: EUI64 00:11:d8:00:01:87:6f:c6
fwohci0: Phy 1394a available S400, 2 ports.
fwohci0: Link S400, max_rec 2048 bytes.
firewire0: <IEEE1394(FireWire) bus> on fwohci0
sbp0: <SBP-2/SCSI over FireWire> on firewire0
fwohci0: Initiate bus reset
fwohci0: BUS reset
fwohci0: node_id=0xc800ffc0, gen=1, CYCLEMASTER mode
isab0: <PCI-ISA bridge> at device 31.0 on pci0
isa0: <ISA bus> on isab0
atapci1: <Intel AHCI controller> port
0xac00-0xac07,0xa880-0xa883,0xa800-0xa807,0xa480-0xa483,0xa400-0xa41f
mem 0xfbffe800-0xfbffefff irq 22 at device 31.2 on pci0
atapci1: [ITHREAD]
atapci1: AHCI Version 01.20 controller with 6 ports detected
ata5: <ATA channel 0> on atapci1
ata5: [ITHREAD]
ata6: <ATA channel 1> on atapci1
ata6: [ITHREAD]
ata7: <ATA channel 2> on atapci1
ata7: [ITHREAD]
ata8: <ATA channel 3> on atapci1
ata8: [ITHREAD]
ata9: <ATA channel 4> on atapci1
ata9: [ITHREAD]
ata10: <ATA channel 5> on atapci1
ata10: [ITHREAD]
pci0: <serial bus, SMBus> at device 31.3 (no driver attached)
acpi_hpet0: <High Precision Event Timer> iomem 0xfed00000-0xfed003ff on
acpi0
Timecounter "HPET" frequency 14318180 Hz quality 900
cpu0: <ACPI CPU> on acpi0
ACPI Warning (tbutils-0243): Incorrect checksum in table [OEMB] -  8C,
should be 84 [20070320]
coretemp0: <CPU On-Die Thermal Sensors> on cpu0
cpu1: <ACPI CPU> on acpi0
coretemp1: <CPU On-Die Thermal Sensors> on cpu1
cpu2: <ACPI CPU> on acpi0
coretemp2: <CPU On-Die Thermal Sensors> on cpu2
cpu3: <ACPI CPU> on acpi0
coretemp3: <CPU On-Die Thermal Sensors> on cpu3
acpi_button0: <Power Button> on acpi0
fdc0: <floppy drive controller (FDE)> port 0x3f0-0x3f5,0x3f7 irq 6 drq
2 on acpi0
fdc0: [FILTER]
fd0: <1440-KB 3.5" drive> on fdc0 drive 0
atkbdc0: <Keyboard controller (i8042)> port 0x60,0x64 irq 1 on acpi0
atkbd0: <AT Keyboard> irq 1 on atkbdc0
kbd0 at atkbd0
atkbd0: [GIANT-LOCKED]
atkbd0: [ITHREAD]
orm0: <ISA Option ROMs> at iomem 0xcf000-0xcffff,0xd0000-0xd2fff 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
ugen0: <APC Back-UPS ES 550 FW:840.B2.D USB FW:B2, class 0/0, rev
1.10/1.06, addr 2> on uhub5
ums0: <Microsoft Microsoft 5-Button Mouse with IntelliEye(TM), class
0/0, rev 1.10/3.00, addr 2> on uhub6
ums0: 5 buttons and Z dir.
Timecounters tick every 1.000 msec
firewire0: 1 nodes, maxhop <= 0, cable IRM = 0 (me)
firewire0: bus manager 0 (me)
ad10: 476940MB <WDC WD5000AAKS-07TMA0 12.01C01> at ata5-master SATA300
ad12: 476940MB <WDC WD5000AAKS-00YGA0 12.01C02> at ata6-master SATA300
ad14: 381553MB <Seagate ST3400633AS 3.AAH> at ata7-master SATA150
acd0: DVDR <TSSTcorp CDDVDW SH-S203B/SB02> at ata9-master SATA150
ad20: 381554MB <WDC WD4000AAKS-00A7B0 01.03B01> at ata10-master SATA300
GEOM_MIRROR: Device mirror/gm0 launched (2/2).
GEOM_LABEL: Label for provider ad12s1 is label/video.
GEOM_LABEL: Label for provider ad10s1a is label/slash.
GEOM_LABEL: Label for provider ad10s1b is label/swap.
GEOM_LABEL: Label for provider ad10s1d is label/tmp.
GEOM_LABEL: Label for provider ad10s1e is label/var.
GEOM_LABEL: Label for provider mirror/gm0s1 is label/backup.
acd0: FAILURE - INQUIRY ILLEGAL REQUEST asc=0x24 ascq=0x00
SMP: AP CPU #1 Launched!
SMP: AP CPU #3 Launched!
SMP: AP CPU #2 Launched!
cd0 at ata7 bus 0 target 0 lun 0
cd0: <TSSTcorp CDDVDW SH-S203B SB02> Removable CD-ROM SCSI-0 device
cd0: 3.300MB/s transfers
cd0: Attempt to query device size failed: NOT READY, Medium not
present - tray closed
Trying to mount root from ufs:/dev/label/slash
GEOM_LABE
<118L>/dev/label/var: FILE SYSTEM CLEAN; SKIPPING CHECKS
: L
el label/backup removed.
GEOM_LABEL: Label for provider mirror/gm0s1 is label/backup.
WARNING: TMPFS is considered to be a highly experimental feature in FreeBSD.
GEOM_LABEL: Label label/backup removed.
em0: link state changed to UP
Jeremy Chadwick
2008-Aug-18  16:16 UTC
ICH9 Controller on Asus P5K-E showing up as "Intel AHCI controller"
On Mon, Aug 18, 2008 at 11:47:25AM -0400, Josh Carroll wrote:> It's not really a problem, as the device and the SATA hard drives and > DVD+RW attached to the bus operate properly, but I'm wondering why the > ICH9 controller (in AHCI mode) on the Asus P5K-E motherboard shows up > as: > > atapci1: <Intel AHCI controller> port > 0xac00-0xac07,0xa880-0xa883,0xa800-0xa807,0xa480-0xa483,0xa400-0xa41f > mem 0xfbffe800-0xfbffefff irq 22 at device 31.2 on pci0Because your motherboard allows for the enabling of AHCI on the ICH9. This is often a BIOS feature you can turn on/off.> Just wondering why it is not properly detecting this as ICH9. Again, > just something cosmetic that I'm curious about. I'm going to double > check the BIOS settings now, but I am confident I have them set as > AHCI in the BIOS. I suppose this could be a BIOS bug of some sort. I > can also try upgrading to the latest BIOS.I don't believe it's a bug. FreeBSD has a form of "generic AHCI" support, where for systems which indicate AHCI is available but has no direct AHCI chipset driver, will fall back to using a generic AHCI implementation that should work with most all AHCI implementations. I would say what you're seeing is good. AHCI == good. -- | Jeremy Chadwick jdc at parodius.com | | Parodius Networking http://www.parodius.com/ | | UNIX Systems Administrator Mountain View, CA, USA | | Making life hard for others since 1977. PGP: 4BD6C0CB |
Andrey V. Elsukov
2008-Aug-19  04:01 UTC
ICH9 Controller on Asus P5K-E showing up as "Intel AHCI controller"
Josh Carroll wrote:> atapci1: <Intel AHCI controller> port > 0xac00-0xac07,0xa880-0xa883,0xa800-0xa807,0xa480-0xa483,0xa400-0xa41f > mem 0xfbffe800-0xfbffefff irq 22 at device 31.2 on pci0 > > The chip ID (0x29228086) from pciconf: > > atapci1@pci0:0:31:2: class=0x010601 card=0x82771043 chip=0x29228086 > rev=0x02 hdr=0x00 > vendor = 'Intel Corporation' > device = '82801IB/IR/IH (ICH9 Family) 6 port SATA AHCI Controller' > class = mass storageAs Jeremy said it is ok. In pciconf output you can see "class=0x010601". Your ICH9 controller has PCI subclass 0x06 (SATA) and PCI programming interface 0x01 (AHCI). Driver identified it as AHCI-compatible and used AHCI facilities. Some of PCI ids in ata_intel_ident can be removed today (generic AHCI support will be used for controllers which are identified as AHCI). Some controllers don't identified as AHCI, but can work as AHCI. And they will be handled by ata_xxx_ident. -- WBR, Andrey V. Elsukov