how to enable NCQ on Intel ESB2 AHCI SATA controller/ST31000340NS

Dan Nelson dnelson at allantgroup.com
Wed Mar 23 21:37:27 UTC 2011


In the last episode (Mar 22), Anton Yuzhaninov said:
> How to enable NCQ on this controller:
> ahci0 at pci0:0:31:2:      class=0x010601 card=0x808015d9 chip=0x26818086 rev=0x09 hdr=0x00
>     vendor     = 'Intel Corporation'
>     device     = 'LSI LOGIC, 62089A2, LSISAS1068 B0, T 0620, WE 119200.1 (62089A2)'
>     class      = mass storage
>     subclass   = SATA
>     bar   [10] = type I/O Port, range 32, base 0x18a0, size  8, enabled
>     bar   [14] = type I/O Port, range 32, base 0x1874, size  4, enabled
>     bar   [18] = type I/O Port, range 32, base 0x1878, size  8, enabled
>     bar   [1c] = type I/O Port, range 32, base 0x1870, size  4, enabled
>     bar   [20] = type I/O Port, range 32, base 0x1880, size 32, enabled
>     bar   [24] = type Memory, range 32, base 0xd8700400, size 1024, enabled
>     cap 01[70] = powerspec 2  supports D0 D3  current D0
>     cap 12[a8] = SATA Index-Data Pair
> 
> dmesg:
> ahci0: <Intel ESB2 AHCI SATA controller> port 0x18a0-0x18a7,0x1874-0x1877,0x1878-0x187f,0x1870-0x1873,0x1880-0x189f mem 0xd8700400-0xd87007ff irq 19 at device 31.2 on pci0
> ahci0: [ITHREAD]
> ahci0: AHCI v1.10 with 6 3Gbps ports, Port Multiplier supported

If you do a verbose boot, you should get a couple more lines printed:

ahci0: Caps: 64bit NCQ SNTF AL CLO 3Gbps PM PMD SSC PSC 32cmd CCC EM 6ports
ahci0: Caps2:
ahci0: EM Caps: ALHD XMT SMB LED

If you see NCQ in your Caps line, then queueing should be supported by the
controller.  Looking at the ahci.c source, there is a quirk "AHCI_Q_NONCQ"
that disables NCQ, but it it only used for VIA VT8251 chips.

-- 
	Dan Nelson
	dnelson at allantgroup.com


More information about the freebsd-questions mailing list