1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
|
.\" Copyright (C) 2019-2025, Microchip Technology Inc. and its subsidiaries
.\" Copyright (C) 2016-2018, Microsemi Corporation
.\" Copyright (C) 2016, PMC-Sierra, Inc.
.\" Written by John Hall <john.hall@microchip.com>
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\" notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice, this list of conditions and the following disclaimer in the
.\" documentation and/or other materials provided with the distribution.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.Dd August 28, 2025
.Dt SMARTPQI 4 amd64
.Os
.Sh NAME
.Nm smartpqi
.Nd "Microchip Smart Storage SCSI driver"
.Sh SYNOPSIS
To compile this driver into the kernel, place these lines in the kernel
configuration file:
.Bd -ragged -offset indent
.Cd device pci
.Cd device scbus
.Cd device smartpqi
.Ed
.Pp
The driver can be loaded as a module at boot time by placing this line in
.Xr loader.conf 5 :
.Bd -literal -offset indent
smartpqi_load="YES"
.Ed
.Sh DESCRIPTION
The
.Nm
driver provides support for Microchip Technology Inc. / Adaptec SmartRaid and
SmartHBA SATA/SAS/NVMe PCIe controllers
.Sh HARDWARE
Controllers supported by the
.Nm
driver include, but not limited to:
.Pp
.Bl -bullet -compact
.It
HPE Gen10 Smart Array Controller Family
.It
Adaptec SmartRaid and SmartHBA Controllers
.It
OEM Controllers based on the Microchip Technology Inc. SmartROC
and SmartIOC Chipsets
.El
.Sh DEBUGGING
Driver diagnostic printing is controlled in
.Xr loader.conf 5
by using the global
.Va hw.smartpqi.debug_level
tunable.
.Pp
The
.Va debug_level
variable is set with an integer value.
The default value is 0x0060 (warn && error).
.Pp
The following levels are available:
.Bl -column "FlagXX" "NameXXXX" "Description" -offset indent
.It Em Flag Ta Em Name Ta Em Description
.It 0x0001 Ta init Ta System initialization operations
.It 0x0002 Ta info Ta Basic information
.It 0x0004 Ta function Ta Used to show function entry and exit
.It 0x0008 Ta io Ta Logging data from controller
.It 0x0010 Ta discovery Ta Device discovery
.It 0x0020 Ta warning Ta Operational warnings
.It 0x0040 Ta error Ta Parameter errors and programming bugs
.It 0x0080 Ta note Ta More detailed information
.El
.Sh DEVICE HINTS
The following tunable values can be set in
.Pa /boot/device.hints
to control the behavior of the
.Nm
driver.
These hints are specified as:
.Bd -literal -offset indent
hint.smartpqi.<unit>.<variable>=<value>
.Ed
.Pp
The supported variables are:
.Bl -tag -width ".Va aio_raid1_write_disable"
.It Va stream_disable
If set to 0, disables Stream Detection.
.Pp
Default is (enabled).
.It Va sata_unique_wwn_disable
If set to 0, disables SATA Unique World Wide Number.
.Pp
Default is (enabled).
.It Va aio_raid1_write_disable
If set to 0, disables acceleration of RAID1 writes
.Pp
Default is (enabled).
.It Va aio_raid5_write_disable
If set to 0, disables acceleration of RAID5 writes
.Pp
Default is (enabled).
.It Va aio_raid6_write_disable
If set to 0, disables acceleration of RAID6 writes
.Pp
Default is (enabled).
.It Va queue_depth
Sets queue depth for the controller. If the queue depth value
is greater than the maximum supported queue size of the driver or
controller, it will be set to the lowest size. If the queue
depth value is lower than the minimum queue depth then this will
be set to the minimum queue depth.
.Pp
Default is driver-determined.
.It Va sg_count
Sets the scatter gather (sg) count. If this sg count is greater
than maximum sg count it will be set to the maximum sg count.
If this sg count is less than minimum sg count it will be set to
the minimum sg count.
.Pp
Default is driver-determined.
.El
.Pp
For example, to disable Stream Detection on the first controller, add
the following line to
.Pa /boot/device.hints :
.Bd -literal -offset indent
hint.smartpqi.0.stream_disable="0"
.Ed
.Sh FILES
.Bl -tag -width /boot/kernel/smartpqi.ko -compact
.It Pa /dev/smartpqi?
smartpqi management interface
.El
.Sh NOTES
.Ss Configuration
To configure a Microchip Smart Storage controller,
refer to the User Guide for the controller,
which can be found by searching for the specific controller at
https://www.microchip.com/design-centers/storage
.Sh SEE ALSO
.Xr kld 4 ,
.Xr linux 4 ,
.Xr pass 4 ,
.Xr scsi 4 ,
.Xr xpt 4 ,
.Xr loader.conf 5 ,
.Xr camcontrol 8 ,
.Xr kldload 8
.Sh HISTORY
The
.Nm
driver first appeared in
.Fx 11.1 .
.Sh AUTHORS
.An John Hall
.Aq john.hall@microchip.com
.Sh BUGS
The controller is not actually paused on suspend/resume.
|