xref: /freebsd-13.1/usr.sbin/devctl/devctl.8 (revision 90372d8e)
164de8019SJohn Baldwin.\"
264de8019SJohn Baldwin.\" Copyright (c) 2015 John Baldwin <[email protected]>
364de8019SJohn Baldwin.\"
464de8019SJohn Baldwin.\" Redistribution and use in source and binary forms, with or without
564de8019SJohn Baldwin.\" modification, are permitted provided that the following conditions
664de8019SJohn Baldwin.\" are met:
764de8019SJohn Baldwin.\" 1. Redistributions of source code must retain the above copyright
864de8019SJohn Baldwin.\"    notice, this list of conditions and the following disclaimer.
964de8019SJohn Baldwin.\" 2. Redistributions in binary form must reproduce the above copyright
1064de8019SJohn Baldwin.\"    notice, this list of conditions and the following disclaimer in the
1164de8019SJohn Baldwin.\"    documentation and/or other materials provided with the distribution.
1264de8019SJohn Baldwin.\"
1364de8019SJohn Baldwin.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
1464de8019SJohn Baldwin.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
1564de8019SJohn Baldwin.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
1664de8019SJohn Baldwin.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
1764de8019SJohn Baldwin.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
1864de8019SJohn Baldwin.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
1964de8019SJohn Baldwin.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
2064de8019SJohn Baldwin.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
2164de8019SJohn Baldwin.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
2264de8019SJohn Baldwin.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
2364de8019SJohn Baldwin.\" SUCH DAMAGE.
2464de8019SJohn Baldwin.\"
2564de8019SJohn Baldwin.\" $FreeBSD$
2664de8019SJohn Baldwin.\"
27*90372d8eSLi-Wen Hsu.Dd June 1, 2021
2864de8019SJohn Baldwin.Dt DEVCTL 8
2964de8019SJohn Baldwin.Os
3064de8019SJohn Baldwin.Sh NAME
3164de8019SJohn Baldwin.Nm devctl
3264de8019SJohn Baldwin.Nd device control utility
3364de8019SJohn Baldwin.Sh SYNOPSIS
3464de8019SJohn Baldwin.Nm
3564de8019SJohn Baldwin.Cm attach
3664de8019SJohn Baldwin.Ar device
3764de8019SJohn Baldwin.Nm
38e05ec081SJohn Baldwin.Cm clear driver
39e05ec081SJohn Baldwin.Op Fl f
40e05ec081SJohn Baldwin.Ar device
41e05ec081SJohn Baldwin.Nm
4264de8019SJohn Baldwin.Cm detach
4364de8019SJohn Baldwin.Op Fl f
4464de8019SJohn Baldwin.Ar device
4564de8019SJohn Baldwin.Nm
4664de8019SJohn Baldwin.Cm disable
4764de8019SJohn Baldwin.Op Fl f
4864de8019SJohn Baldwin.Ar device
4964de8019SJohn Baldwin.Nm
5064de8019SJohn Baldwin.Cm enable
5164de8019SJohn Baldwin.Ar device
5264de8019SJohn Baldwin.Nm
5364de8019SJohn Baldwin.Cm suspend
5464de8019SJohn Baldwin.Ar device
5564de8019SJohn Baldwin.Nm
5664de8019SJohn Baldwin.Cm resume
5764de8019SJohn Baldwin.Ar device
5864de8019SJohn Baldwin.Nm
5964de8019SJohn Baldwin.Cm set driver
6064de8019SJohn Baldwin.Op Fl f
6164de8019SJohn Baldwin.Ar device driver
62a907c691SJohn Baldwin.Nm
63a907c691SJohn Baldwin.Cm rescan
64a907c691SJohn Baldwin.Ar device
6588eb5c50SJohn Baldwin.Nm
6688eb5c50SJohn Baldwin.Cm delete
6788eb5c50SJohn Baldwin.Op Fl f
6888eb5c50SJohn Baldwin.Ar device
694fbf8e1cSKonstantin Belousov.Nm
70*90372d8eSLi-Wen Hsu.Cm freeze
71*90372d8eSLi-Wen Hsu.Nm
72*90372d8eSLi-Wen Hsu.Cm thaw
73*90372d8eSLi-Wen Hsu.Nm
744fbf8e1cSKonstantin Belousov.Cm reset
754fbf8e1cSKonstantin Belousov.Op Fl d
764fbf8e1cSKonstantin Belousov.Ar device
7764de8019SJohn Baldwin.Sh DESCRIPTION
7864de8019SJohn BaldwinThe
7964de8019SJohn Baldwin.Nm
8064de8019SJohn Baldwinutility adjusts the state of individual devices in the kernel's
8164de8019SJohn Baldwininternal device hierarchy.
8264de8019SJohn BaldwinEach invocation of
8364de8019SJohn Baldwin.Nm
8464de8019SJohn Baldwinconsists of a single command followed by command-specific arguments.
8564de8019SJohn BaldwinEach command operates on a single device specified via the
8664de8019SJohn Baldwin.Ar device
8764de8019SJohn Baldwinargument.
8864de8019SJohn BaldwinThe
8964de8019SJohn Baldwin.Ar device
9064de8019SJohn Baldwinmay be specified either as the name of an existing device or as a
9164de8019SJohn Baldwinbus-specific address.
9264de8019SJohn BaldwinMore details on supported address formats can be found in
9364de8019SJohn Baldwin.Xr devctl 3 .
9464de8019SJohn Baldwin.Pp
9564de8019SJohn BaldwinThe following commands are supported:
9664de8019SJohn Baldwin.Bl -tag -width indent
9764de8019SJohn Baldwin.It Cm attach Ar device
9864de8019SJohn BaldwinForce the kernel to re-probe the device.
9964de8019SJohn BaldwinIf a suitable driver is found,
10064de8019SJohn Baldwinit is attached to the device.
10164de8019SJohn Baldwin.It Xo Cm detach
10264de8019SJohn Baldwin.Op Fl f
10364de8019SJohn Baldwin.Ar device
10464de8019SJohn Baldwin.Xc
10564de8019SJohn BaldwinDetach the device from its current device driver.
10664de8019SJohn BaldwinIf the
10764de8019SJohn Baldwin.Fl f
10864de8019SJohn Baldwinflag is specified,
10964de8019SJohn Baldwinthe device driver will be detached even if the device is busy.
11064de8019SJohn Baldwin.It Xo Cm disable
11164de8019SJohn Baldwin.Op Fl f
11264de8019SJohn Baldwin.Ar device
11364de8019SJohn Baldwin.Xc
11464de8019SJohn BaldwinDisable a device.
11564de8019SJohn BaldwinIf the device is currently attached to a device driver,
11664de8019SJohn Baldwinthe device driver will be detached from the device,
11764de8019SJohn Baldwinbut the device will retain its current name.
11864de8019SJohn BaldwinIf the
11964de8019SJohn Baldwin.Fl f
12064de8019SJohn Baldwinflag is specified,
12164de8019SJohn Baldwinthe device driver will be detached even if the device is busy.
12264de8019SJohn Baldwin.It Cm enable Ar device
12364de8019SJohn BaldwinEnable a device.
12464de8019SJohn BaldwinThe device will probe and attach if a suitable device driver is found.
12564de8019SJohn BaldwinNote that this can re-enable a device disabled at boot time via a
12664de8019SJohn Baldwinloader tunable.
12764de8019SJohn Baldwin.It Cm suspend Ar device
12864de8019SJohn BaldwinSuspend a device.
12964de8019SJohn BaldwinThis may include placing the device in a reduced power state.
1308947c298SJustin Hibbits.It Cm resume Ar device
13164de8019SJohn BaldwinResume a suspended device to a fully working state.
13264de8019SJohn Baldwin.It Xo Cm set driver
13364de8019SJohn Baldwin.Op Fl f
13464de8019SJohn Baldwin.Ar device driver
13564de8019SJohn Baldwin.Xc
13664de8019SJohn BaldwinForce the device to use a device driver named
13764de8019SJohn Baldwin.Ar driver .
13864de8019SJohn BaldwinIf the device is already attached to a device driver and the
13964de8019SJohn Baldwin.Fl f
14064de8019SJohn Baldwinflag is specified,
14164de8019SJohn Baldwinthe device will be detached from its current device driver before it is
14264de8019SJohn Baldwinattached to the new device driver.
14364de8019SJohn BaldwinIf the device is already attached to a device driver and the
14464de8019SJohn Baldwin.Fl f
14564de8019SJohn Baldwinflag is not specified,
14664de8019SJohn Baldwinthe device will not be changed.
147e05ec081SJohn Baldwin.It Xo Cm clear driver
148e05ec081SJohn Baldwin.Op Fl f
149e05ec081SJohn Baldwin.Ar device
150e05ec081SJohn Baldwin.Xc
151e05ec081SJohn BaldwinClear a previously-forced driver name so that the device is able to use any
152e05ec081SJohn Baldwinvalid device driver.
153e05ec081SJohn BaldwinAfter the previous name has been cleared,
154e05ec081SJohn Baldwinthe device is reprobed so that other device drivers may attach to it.
155e05ec081SJohn BaldwinThis can be used to undo an earlier
156e05ec081SJohn Baldwin.Cm set driver
157e05ec081SJohn Baldwincommand.
158e05ec081SJohn BaldwinIf the device is currently attached to a device driver and the
159e05ec081SJohn Baldwin.Fl f
160e05ec081SJohn Baldwinflag is not specified,
161e05ec081SJohn Baldwinthe device will not be changed.
162a907c691SJohn Baldwin.It Cm rescan Ar device
163a907c691SJohn BaldwinRescan a bus device checking for devices that have been added or
164a907c691SJohn Baldwinremoved.
16588eb5c50SJohn Baldwin.It Xo Cm delete
1666dce7e99SMaxim Konovalov.Op Fl f
16788eb5c50SJohn Baldwin.Ar device
16888eb5c50SJohn Baldwin.Xc
16988eb5c50SJohn BaldwinDelete the device from the device tree.
17088eb5c50SJohn BaldwinIf the
17188eb5c50SJohn Baldwin.Fl f
17288eb5c50SJohn Baldwinflag is specified,
17388eb5c50SJohn Baldwinthe device will be deleted even if it is physically present.
17488eb5c50SJohn BaldwinThis command should be used with care as a device that is deleted but present
17588eb5c50SJohn Baldwincan no longer be used unless the parent bus device rediscovers the device via
17688eb5c50SJohn Baldwina rescan request.
177*90372d8eSLi-Wen Hsu.It Cm freeze
178*90372d8eSLi-Wen HsuFreeze probe and attach processing initiated in response to drivers being
179*90372d8eSLi-Wen Hsuloaded.
180*90372d8eSLi-Wen HsuDrivers are placed on a
181*90372d8eSLi-Wen Hsu.Do
182*90372d8eSLi-Wen Hsufrozen list
183*90372d8eSLi-Wen Hsu.Dc
184*90372d8eSLi-Wen Hsuand processed when a later
185*90372d8eSLi-Wen Hsu.Do
186*90372d8eSLi-Wen Hsuthaw
187*90372d8eSLi-Wen Hsu.Dc
188*90372d8eSLi-Wen Hsuoccurs.
189*90372d8eSLi-Wen Hsu.It Cm thaw
190*90372d8eSLi-Wen HsuResume (thaw the freeze) probe and attach initiated in response to drivers
191*90372d8eSLi-Wen Hsubeing loaded.
192*90372d8eSLi-Wen HsuIn addition to resuming, all pending actions that were frozen during the freeze
193*90372d8eSLi-Wen Hsuare performed.
1944fbf8e1cSKonstantin Belousov.It Xo Cm reset
1954fbf8e1cSKonstantin Belousov.Op Fl d
1964fbf8e1cSKonstantin Belousov.Ar device
1974fbf8e1cSKonstantin Belousov.Xc
1984fbf8e1cSKonstantin BelousovReset the device, using bus-specific reset method.
1994fbf8e1cSKonstantin BelousovDrivers for the devices being reset are suspended around the reset.
2004fbf8e1cSKonstantin BelousovIf the
2014fbf8e1cSKonstantin Belousov.Fl d
2024fbf8e1cSKonstantin Belousovoption is specified, drivers are detached instead.
2034fbf8e1cSKonstantin Belousov.Pp
2044fbf8e1cSKonstantin BelousovCurrently, resets are implemented for PCIe buses and PCI devices.
2054fbf8e1cSKonstantin BelousovFor PCIe bus, the link is disabled and then re-trained, causing all
2064fbf8e1cSKonstantin Belousovchildren of the bus to reset.
2074fbf8e1cSKonstantin BelousovUse
2084fbf8e1cSKonstantin Belousov.Fl p
2094fbf8e1cSKonstantin Belousovoption of
2104fbf8e1cSKonstantin Belousov.Xr devinfo 8
2114fbf8e1cSKonstantin Belousovtool to report parent bus for the device.
2124fbf8e1cSKonstantin BelousovFor PCI device, if Function-Level Reset is implemented by it, FLR is
2134fbf8e1cSKonstantin Belousovtried first; if failed or not implemented, power reset is tried.
2144fbf8e1cSKonstantin Belousov.Pp
2154fbf8e1cSKonstantin BelousovIf you have detached or suspended a child device explicitly and then
2164fbf8e1cSKonstantin Belousovdo a reset, the child device will end up attached.
21764de8019SJohn Baldwin.El
21864de8019SJohn Baldwin.Sh SEE ALSO
21964de8019SJohn Baldwin.Xr devctl 3 ,
22064de8019SJohn Baldwin.Xr devinfo 8
22164de8019SJohn Baldwin.Sh HISTORY
22264de8019SJohn BaldwinThe
22364de8019SJohn Baldwin.Nm
22464de8019SJohn Baldwinutility first appeared in
2250fd00e0cSJohn Baldwin.Fx 10.3 .
226267d86e1SGordon Bergling.Sh BUGS
227267d86e1SGordon BerglingCurrently there is no administrative flag to prevent re-attach or resume
228267d86e1SGordon Berglingof the manually detached or suspended devices after reset.
229267d86e1SGordon BerglingSimilarly, there is no flag to prevent un-suspending of the the manually
230267d86e1SGordon Berglingsuspended devices after system resume.
231