I am running FreeBSD/amd64 RELENG_8 on a Dell Optiplex 745. The hard drive in
the system is SATA and I have "Normal", not "Legacy" SATA
support enabled in the BIOS. (BIOS is V2.6.4.) I am assuming this will enable
native AHCI mode for the drive.
I built a kernel with ATA_CAM support, but for some reason the SATA drive is
probing at slow, UDMA2, speeds:
ada0 at ata2 bus 0 scbus0 target 0 lun 0
ada0: <ST3160812AS 3.ADJ> ATA-7 SATA 2.x device
ada0: 33.300MB/s transfers (UDMA2, PIO 8192bytes)
ada0: 152587MB (312500000 512 byte sectors: 16H 63S/T 16383C)
When I run "camcontrol identify" on the drive, it states the drive is
capable of UDMA6 speeds:
backup# camcontrol identify ada0
pass0: <ST3160812AS 3.ADJ> ATA-7 SATA 2.x device
pass0: 33.300MB/s transfers (UDMA2, PIO 8192bytes)
protocol ATA/ATAPI-7 SATA 2.x
device model ST3160812AS
firmware revision 3.ADJ
serial number 5LS8PPDD
cylinders 16383
heads 16
sectors/track 63
sector size logical 512, physical 512, offset 0
LBA supported 268435455 sectors
LBA48 supported 312500000 sectors
PIO supported PIO4
DMA supported WDMA2 UDMA6
Feature Support Enable Value Vendor
read ahead yes yes
write cache yes yes
flush cache yes yes
overlap no
Tagged Command Queuing (TCQ) no no
Native Command Queuing (NCQ) yes 32 tags
SMART yes yes
microcode download yes yes
security yes no
power management yes yes
advanced power management no no 65278/0xFEFE
automatic acoustic management yes yes 254/0xFE 208/0xD0
media status notification no no
power-up in Standby no no
write-read-verify no no 0/0x0
unload no no
free-fall no no
data set management (TRIM) no
So, why the slower speed? Also, "camcontrol identify" states the
drive supports NCQ with up to 32 tags supported, yet "camcontrol tags
ada0" reports only 1 device opening, not 32 as I would expect:
backup# camcontrol tags ada0
(pass0:ata2:0:0:0): device openings: 1
To enable ATA_CAM AHCI support, I included this in my kernel config file:
# ATA and ATAPI devices
options ATA_CAM
device ahci
device atacore
device atapci
options ATA_STATIC_ID # Static device numbering
Is this the correct way to enable ATA_CAM AHCI support? I tried initially
including just "options ATA_CAM" and "device ahci" but the
resultant kernel would not probe my disk drive as ada0.
Does my problem lie with my kernel config or is the Dell Optiplex 745 BIOS brain
dead when it comes to AHCI native support? The only option it appears to have
in the BIOS is "Normal" and "Legacy" when it comes to the
SATA controller mode.
I've attached my full kernel config and dmesg at the end of this e-mail.
Cheers,
Paul.
Kernel config:
#
# GENERIC -- Generic kernel configuration file for FreeBSD/amd64
#
# For more information on this file, please read the config(5) manual page,
# and/or the handbook section on Kernel Configuration Files:
#
#
http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig-config.html
#
# The handbook is also available locally in /usr/share/doc/handbook
# if you've installed the doc distribution, otherwise always see the
# FreeBSD World Wide Web server (http://www.FreeBSD.org/) for the
# latest information.
#
# An exhaustive list of options and more detailed explanations of the
# device lines is also present in the ../../conf/NOTES and NOTES files.
# If you are in doubt as to the purpose or necessity of a line, check first
# in NOTES.
#
# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.531.2.13 2010/05/02 06:24:17 imp Exp
$
cpu HAMMER
ident VPN
# To statically compile in device wiring instead of /boot/device.hints
#hints "GENERIC.hints" # Default places to look for devices.
# Use the following to compile in values accessible to the kernel
# through getenv() (or kenv(1) in userland). The format of the file
# is 'variable=value', see kenv(1)
#
# env "GENERIC.env"
#makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols
options SCHED_ULE # ULE scheduler
options PREEMPTION # Enable kernel thread preemption
options INET # InterNETworking
options INET6 # IPv6 communications protocols
options SCTP # Stream Control Transmission Protocol
options FFS # Berkeley Fast Filesystem
options SOFTUPDATES # Enable FFS soft updates support
options UFS_ACL # Support for access control lists
options UFS_DIRHASH # Improve performance on big directories
options UFS_GJOURNAL # Enable gjournal-based UFS journaling
options MD_ROOT # MD is a potential root device
#options NFSCLIENT # Network Filesystem Client
#options NFSSERVER # Network Filesystem Server
#options NFSLOCKD # Network Lock Manager
#options NFS_ROOT # NFS usable as /, requires NFSCLIENT
#options MSDOSFS # MSDOS Filesystem
#options CD9660 # ISO 9660 Filesystem
options PROCFS # Process filesystem (requires PSEUDOFS)
options PSEUDOFS # Pseudo-filesystem framework
options GEOM_PART_GPT # GUID Partition Tables.
options GEOM_LABEL # Provides labelization
options COMPAT_43TTY # BSD 4.3 TTY compat (sgtty)
options COMPAT_FREEBSD32 # Compatible with i386 binaries
#options COMPAT_FREEBSD4 # Compatible with FreeBSD4
#options COMPAT_FREEBSD5 # Compatible with FreeBSD5
#options COMPAT_FREEBSD6 # Compatible with FreeBSD6
#options COMPAT_FREEBSD7 # Compatible with FreeBSD7
options SCSI_DELAY=5000 # Delay (in ms) before probing SCSI
options KTRACE # ktrace(1) support
options STACK # stack(9) support
options SYSVSHM # SYSV-style shared memory
options SYSVMSG # SYSV-style message queues
options SYSVSEM # SYSV-style semaphores
options P1003_1B_SEMAPHORES # POSIX-style semaphores
options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions
options PRINTF_BUFR_SIZE=128 # Prevent printf output being interspersed.
options KBD_INSTALL_CDEV # install a CDEV entry in /dev
options HWPMC_HOOKS # Necessary kernel hooks for hwpmc(4)
options AUDIT # Security event auditing
options MAC # TrustedBSD MAC Framework
options FLOWTABLE # per-cpu routing cache
#options KDTRACE_FRAME # Ensure frames are compiled in
#options KDTRACE_HOOKS # Kernel DTrace hooks
options INCLUDE_CONFIG_FILE # Include this file in kernel
# Make an SMP-capable kernel by default
options SMP # Symmetric MultiProcessor Kernel
# CPU frequency control
device cpufreq
# Bus support.
device acpi
device pci
# Floppy drives
device fdc
# ATA and ATAPI devices
options ATA_CAM
device ahci
device atacore
device atapci
options ATA_STATIC_ID # Static device numbering
# SCSI peripherals
device scbus # SCSI bus (required for SCSI)
device ch # SCSI media changers
device da # Direct Access (disks)
device sa # Sequential Access (tape etc)
device cd # CD
device pass # Passthrough device (direct SCSI access)
device ses # SCSI Environmental Services (and SAF-TE)
# atkbdc0 controls both the keyboard and the PS/2 mouse
device atkbdc # AT keyboard controller
device atkbd # AT keyboard
device psm # PS/2 mouse
device kbdmux # keyboard multiplexer
device vga # VGA video card driver
device splash # Splash screen and screen saver support
# syscons is the default console driver, resembling an SCO console
device sc
device agp # support several AGP chipsets
# Serial (COM) ports
device uart # Generic UART driver
# Parallel port
device ppc
device ppbus # Parallel port bus (required)
# PCI Ethernet NICs that use the common MII bus controller code.
# NOTE: Be sure to keep the 'device miibus' line in order to use these
NICs!
device miibus # MII bus support
device bge # Broadcom BCM570xx Gigabit Ethernet
# Pseudo devices.
device loop # Network loopback
device random # Entropy device
device ether # Ethernet support
device vlan # 802.1Q VLAN support
device tun # Packet tunnel.
device pty # BSD-style compatibility pseudo ttys
device md # Memory "disks"
device gif # IPv6 and IPv4 tunneling
#device faith # IPv6-to-IPv4 relaying (translation)
device firmware # firmware assist module
# The `bpf' device enables the Berkeley Packet Filter.
# Be aware of the administrative consequences of enabling this!
# Note that 'bpf' is required for DHCP.
device bpf # Berkeley packet filter
# USB support
options USB_DEBUG # enable debug msgs
device uhci # UHCI PCI->USB interface
device ehci # EHCI PCI->USB interface (USB 2.0)
device usb # USB Bus (required)
#device udbp # USB Double Bulk Pipe devices
device ukbd # Keyboard
device umass # Disks/Mass storage - Requires scbus and da
device ums # Mouse
# pf firewall with ALTQ support
device pf
device pflog
device pfsync
options ALTQ
options ALTQ_CBQ # Class Bases Queuing (CBQ)
options ALTQ_RED # Random Early Detection (RED)
options ALTQ_RIO # RED In/Out
options ALTQ_HFSC # Hierarchical Packet Scheduler (HFSC)
options ALTQ_PRIQ # Priority Queuing (PRIQ)
options ALTQ_NOPCC # Required for SMP build
# In order to enable IPSEC you MUST also add device crypto to
# your kernel configuration
options IPSEC # IP security (requires device crypto)
options IPSEC_NAT_T # NAT-T support, UDP encap of ESP
device crypto # core crypto support
Dmesg:
Copyright (c) 1992-2010 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 8.1-PRERELEASE #7: Mon Jun 28 13:02:30 EDT 2010
paul@backup.tower.lib.vt.edu:/usr/obj/usr/src/sys/VPN amd64
Timecounter "i8254" frequency 1193182 Hz quality 0
CPU: Intel(R) Core(TM)2 CPU 6300 @ 1.86GHz (1862.01-MHz K8-class CPU)
Origin = "GenuineIntel" Id = 0x6f6 Family = 6 Model = f Stepping
= 6
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,DTES64,MON,DS_CPL,VMX,EST,TM2,SSSE3,CX16,xTPR,PDCM>
AMD Features=0x20000800<SYSCALL,LM>
AMD Features2=0x1<LAHF>
TSC: P-state invariant
real memory = 536870912 (512 MB)
avail memory = 504094720 (480 MB)
ACPI APIC Table: <DELL B8K >
FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs
FreeBSD/SMP: 1 package(s) x 2 core(s)
cpu0 (BSP): APIC ID: 0
cpu1 (AP): APIC ID: 1
ioapic0: Changing APIC ID to 8
ioapic0 <Version 2.0> irqs 0-23 on motherboard
lapic0: Forcing LINT1 to edge trigger
kbd1 at kbdmux0
cryptosoft0: <software crypto> on motherboard
acpi0: <DELL B8K > on motherboard
acpi0: [ITHREAD]
acpi0: Power Button (fixed)
acpi0: reservation of 0, a0000 (3) failed
acpi0: reservation of 100000, f00000 (3) failed
acpi0: reservation of 1000000, 1edffc00 (3) failed
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
cpu1: <ACPI CPU> on acpi0
acpi_hpet0: <High Precision Event Timer> iomem 0xfed00000-0xfed003ff on
acpi0
Timecounter "HPET" frequency 14318180 Hz quality 900
acpi_button0: <Power Button> on acpi0
acpi_button0: enable wake failed
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
0xfc000000-0xfcffffff,0xd0000000-0xdfffffff,0xfd000000-0xfdffffff irq 16 at
device 0.0 on pci1
uhci0: <Intel 82801H (ICH8) USB controller USB-D> port 0xff20-0xff3f irq
16 at device 26.0 on pci0
uhci0: [ITHREAD]
usbus0: <Intel 82801H (ICH8) USB controller USB-D> on uhci0
uhci1: <Intel 82801H (ICH8) USB controller USB-E> port 0xff00-0xff1f irq
17 at device 26.1 on pci0
uhci1: [ITHREAD]
usbus1: <Intel 82801H (ICH8) USB controller USB-E> on uhci1
ehci0: <Intel 82801H (ICH8) USB 2.0 controller USB2-B> mem
0xfebfbc00-0xfebfbfff irq 22 at device 26.7 on pci0
ehci0: [ITHREAD]
usbus2: EHCI version 1.0
usbus2: <Intel 82801H (ICH8) USB 2.0 controller USB2-B> on ehci0
hdac0: <Intel 82801H High Definition Audio Controller> mem
0xfebfc000-0xfebfffff irq 16 at device 27.0 on pci0
hdac0: HDA Driver Revision: 20100226_0142
hdac0: [ITHREAD]
pcib2: <ACPI PCI-PCI bridge> irq 16 at device 28.0 on pci0
pci2: <ACPI PCI bus> on pcib2
pcib3: <ACPI PCI-PCI bridge> irq 16 at device 28.4 on pci0
pci3: <ACPI PCI bus> on pcib3
bge0: <Broadcom NetXtreme Gigabit Ethernet Controller, ASIC rev. 0x00b002>
mem 0xfbef0000-0xfbefffff irq 16 at device 0.0 on pci3
miibus0: <MII bus> on bge0
brgphy0: <BCM5787 10/100/1000baseTX PHY> PHY 1 on miibus0
brgphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT,
1000baseT-FDX, auto
bge0: Ethernet address: 00:19:b9:17:ba:4f
bge0: [FILTER]
uhci2: <Intel 82801H (ICH8) USB controller USB-A> port 0xff80-0xff9f irq
23 at device 29.0 on pci0
uhci2: [ITHREAD]
usbus3: <Intel 82801H (ICH8) USB controller USB-A> on uhci2
uhci3: <Intel 82801H (ICH8) USB controller USB-B> port 0xff60-0xff7f irq
17 at device 29.1 on pci0
uhci3: [ITHREAD]
usbus4: <Intel 82801H (ICH8) USB controller USB-B> on uhci3
uhci4: <Intel 82801H (ICH8) USB controller USB-C> port 0xff40-0xff5f irq
18 at device 29.2 on pci0
uhci4: [ITHREAD]
usbus5: <Intel 82801H (ICH8) USB controller USB-C> on uhci4
ehci1: <Intel 82801H (ICH8) USB 2.0 controller USB2-A> mem
0xff980800-0xff980bff irq 23 at device 29.7 on pci0
ehci1: [ITHREAD]
usbus6: EHCI version 1.0
usbus6: <Intel 82801H (ICH8) USB 2.0 controller USB2-A> on ehci1
pcib4: <ACPI PCI-PCI bridge> at device 30.0 on pci0
pci4: <ACPI PCI bus> on pcib4
isab0: <PCI-ISA bridge> at device 31.0 on pci0
isa0: <ISA bus> on isab0
atapci0: <Intel ATA controller> port
0xfe00-0xfe07,0xfe10-0xfe13,0xfe20-0xfe27,0xfe30-0xfe33,0xfec0-0xfecf,0xecc0-0xeccf
irq 20 at device 31.2 on pci0
atapci0: [ITHREAD]
ata2: <ATA channel 0> on atapci0
ata2: [ITHREAD]
ata3: <ATA channel 1> on atapci0
ata3: [ITHREAD]
ichsmb0: <Intel 82801H (ICH8) SMBus controller> port 0xece0-0xecff mem
0xfebfbb00-0xfebfbbff irq 20 at device 31.3 on pci0
ichsmb0: [ITHREAD]
smbus0: <System Management Bus> on ichsmb0
atapci1: <Intel ATA controller> port
0xfe40-0xfe47,0xfe50-0xfe53,0xfe60-0xfe67,0xfe70-0xfe73,0xfed0-0xfedf,0xecd0-0xecdf
irq 20 at device 31.5 on pci0
atapci1: [ITHREAD]
ata4: <ATA channel 0> on atapci1
ata4: [ITHREAD]
ata5: <ATA channel 1> on atapci1
ata5: [ITHREAD]
atrtc0: <AT realtime clock> port 0x70-0x7f irq 8 on acpi0
ppc0: <Parallel port> port 0x378-0x37f,0x778-0x77f irq 7 on acpi0
ppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode
ppc0: FIFO with 16/16/8 bytes threshold
ppc0: [ITHREAD]
ppbus0: <Parallel port bus> on ppc0
uart0: <16550 or compatible> port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0
uart0: [FILTER]
orm0: <ISA Option ROMs> at iomem
0xc0000-0xce7ff,0xce800-0xd07ff,0xd0800-0xd3fff 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
atkbdc0: <Keyboard controller (i8042)> at port 0x60,0x64 on isa0
atkbd0: <AT Keyboard> irq 1 on atkbdc0
kbd0 at atkbd0
atkbd0: [GIANT-LOCKED]
atkbd0: [ITHREAD]
est0: <Enhanced SpeedStep Frequency Control> on cpu0
p4tcc0: <CPU Frequency Thermal Control> on cpu0
est1: <Enhanced SpeedStep Frequency Control> on cpu1
p4tcc1: <CPU Frequency Thermal Control> on cpu1
Timecounters tick every 1.000 msec
IPsec: Initialized Security Association Processing.
hdac0: HDA Codec #0: Analog Devices AD1983
usbus0: 12Mbps Full Speed USB v1.0
usbus1: 12Mbps Full Speed USB v1.0
usbus2: 480Mbps High Speed USB v2.0
usbus3: 12Mbps Full Speed USB v1.0
usbus4: 12Mbps Full Speed USB v1.0
usbus5: 12Mbps Full Speed USB v1.0
usbus6: 480Mbps High Speed USB v2.0
pcm0: <HDA Analog Devices AD1983 PCM #0 Analog> at cad 0 nid 1 on hdac0
ugen0.1: <Intel> at usbus0
uhub0: <Intel UHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus0
ugen1.1: <Intel> at usbus1
uhub1: <Intel UHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus1
ugen2.1: <Intel> at usbus2
uhub2: <Intel EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus2
ugen3.1: <Intel> at usbus3
uhub3: <Intel UHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus3
ugen4.1: <Intel> at usbus4
uhub4: <Intel UHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus4
ugen5.1: <Intel> at usbus5
uhub5: <Intel UHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus5
ugen6.1: <Intel> at usbus6
uhub6: <Intel EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus6
ata4: timeout waiting for read DRQ
ata4: timeout waiting for read DRQ
ada0 at ata2 bus 0 scbus0 target 0 lun 0
ada0: <ST3160812AS 3.ADJ> ATA-7 SATA 2.x device
ada0: 33.300MB/s transfers (UDMA2, PIO 8192bytes)
ada0: 152587MB (312500000 512 byte sectors: 16H 63S/T 16383C)
lapic1: Forcing LINT1 to edge trigger
SMP: AP CPU #1 Launched!
cd0 at ata4 bus 0 scbus2 target 0 lun 0
cd0: <Optiarc DVD+-RW AD-7200S 102A> Removable CD-ROM SCSI-0 device
cd0: 33.300MB/s transfers (UDMA2, ATAPI 12bytes, PIO 8192bytes)
cd0: Attempt to query device size failed: NOT READY, Medium not present - tray
closed
uhub0: 2 ports with 2 removable, self powered
uhub1: 2 ports with 2 removable, self powered
uhub3: 2 ports with 2 removable, self powered
uhub4: 2 ports with 2 removable, self powered
uhub5: 2 ports with 2 removable, self powered
Root mount waiting for: usbus6 usbus2
Root mount waiting for: usbus6 usbus2
uhub2: 4 ports with 4 removable, self powered
uhub6: 6 ports with 6 removable, self powered
Root mount waiting for: usbus6
ugen6.2: <vendor 0x3538> at usbus6
umass0: <vendor 0x3538 product 0x0059, class 0/0, rev 2.00/1.00, addr 2>
on usbus6
umass0: SCSI over Bulk-Only; quirks = 0x0000
ugen1.2: <Dell> at usbus1
ukbd0: <EP1 Interrupt> on usbus1
kbd2 at ukbd0
Root mount waiting for: usbus6
Trying to mount root from ufs:/dev/ada0s1a
ugen1.3: <Dell> at usbus1
ums0: <Dell Dell USB Optical Mouse, class 0/0, rev 2.00/43.01, addr 3> on
usbus1
ums0: 3 buttons and [XYZ] coordinates ID=0
bge0: link state changed to UP