Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 30 Jun 2010 12:07:54 -0400
From:      Paul Mather <pmather@vt.edu>
To:        FreeBSD Stable <freebsd-stable@freebsd.org>
Subject:   Problems with ATA_CAM support in RELENG_8
Message-ID:  <D77A24D9-8F38-42D4-996D-769352EE1C54@vt.edu>

next in thread | raw e-mail | index | archive | help

--Apple-Mail-7--1040836416
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

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=20

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-con=
fig.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=3Dvalue', see kenv(1)
#
# env		"GENERIC.env"

#makeoptions	DEBUG=3D-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=3D5000		# 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=3D128	# 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=20
# 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 =3D "GenuineIntel"  Id =3D 0x6f6  Family =3D 6  Model =3D f  =
Stepping =3D 6
  =
Features=3D0xbfebfbff<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=3D0xe3bd<SSE3,DTES64,MON,DS_CPL,VMX,EST,TM2,SSSE3,CX16,xTPR,PDCM=
>
  AMD Features=3D0x20000800<SYSCALL,LM>
  AMD Features2=3D0x1<LAHF>
  TSC: P-state invariant
real memory  =3D 536870912 (512 MB)
avail memory =3D 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,0xec=
c0-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,0xec=
d0-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=3D0x300>
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=20
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 =3D 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=3D0
bge0: link state changed to UP






--Apple-Mail-7--1040836416--




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?D77A24D9-8F38-42D4-996D-769352EE1C54>