xref: /freebsd-12.1/usr.sbin/devctl/devctl.8 (revision f6feb11f)
164de8019SJohn Baldwin.\"
264de8019SJohn Baldwin.\" Copyright (c) 2015 John Baldwin <[email protected]>
364de8019SJohn Baldwin.\" All rights reserved.
464de8019SJohn Baldwin.\"
564de8019SJohn Baldwin.\" Redistribution and use in source and binary forms, with or without
664de8019SJohn Baldwin.\" modification, are permitted provided that the following conditions
764de8019SJohn Baldwin.\" are met:
864de8019SJohn Baldwin.\" 1. Redistributions of source code must retain the above copyright
964de8019SJohn Baldwin.\"    notice, this list of conditions and the following disclaimer.
1064de8019SJohn Baldwin.\" 2. Redistributions in binary form must reproduce the above copyright
1164de8019SJohn Baldwin.\"    notice, this list of conditions and the following disclaimer in the
1264de8019SJohn Baldwin.\"    documentation and/or other materials provided with the distribution.
1364de8019SJohn Baldwin.\"
1464de8019SJohn Baldwin.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
1564de8019SJohn Baldwin.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
1664de8019SJohn Baldwin.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
1764de8019SJohn Baldwin.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
1864de8019SJohn Baldwin.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
1964de8019SJohn Baldwin.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
2064de8019SJohn Baldwin.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
2164de8019SJohn Baldwin.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
2264de8019SJohn Baldwin.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
2364de8019SJohn Baldwin.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
2464de8019SJohn Baldwin.\" SUCH DAMAGE.
2564de8019SJohn Baldwin.\"
2664de8019SJohn Baldwin.\" $FreeBSD$
2764de8019SJohn Baldwin.\"
28*f6feb11fSKonstantin Belousov.Dd April 4, 2019
2964de8019SJohn Baldwin.Dt DEVCTL 8
3064de8019SJohn Baldwin.Os
3164de8019SJohn Baldwin.Sh NAME
3264de8019SJohn Baldwin.Nm devctl
3364de8019SJohn Baldwin.Nd device control utility
3464de8019SJohn Baldwin.Sh SYNOPSIS
3564de8019SJohn Baldwin.Nm
3664de8019SJohn Baldwin.Cm attach
3764de8019SJohn Baldwin.Ar device
3864de8019SJohn Baldwin.Nm
39e05ec081SJohn Baldwin.Cm clear driver
40e05ec081SJohn Baldwin.Op Fl f
41e05ec081SJohn Baldwin.Ar device
42e05ec081SJohn Baldwin.Nm
4364de8019SJohn Baldwin.Cm detach
4464de8019SJohn Baldwin.Op Fl f
4564de8019SJohn Baldwin.Ar device
4664de8019SJohn Baldwin.Nm
4764de8019SJohn Baldwin.Cm disable
4864de8019SJohn Baldwin.Op Fl f
4964de8019SJohn Baldwin.Ar device
5064de8019SJohn Baldwin.Nm
5164de8019SJohn Baldwin.Cm enable
5264de8019SJohn Baldwin.Ar device
5364de8019SJohn Baldwin.Nm
5464de8019SJohn Baldwin.Cm suspend
5564de8019SJohn Baldwin.Ar device
5664de8019SJohn Baldwin.Nm
5764de8019SJohn Baldwin.Cm resume
5864de8019SJohn Baldwin.Ar device
5964de8019SJohn Baldwin.Nm
6064de8019SJohn Baldwin.Cm set driver
6164de8019SJohn Baldwin.Op Fl f
6264de8019SJohn Baldwin.Ar device driver
63a907c691SJohn Baldwin.Nm
64a907c691SJohn Baldwin.Cm rescan
65a907c691SJohn Baldwin.Ar device
6688eb5c50SJohn Baldwin.Nm
6788eb5c50SJohn Baldwin.Cm delete
6888eb5c50SJohn Baldwin.Op Fl f
6988eb5c50SJohn Baldwin.Ar device
70*f6feb11fSKonstantin Belousov.Nm
71*f6feb11fSKonstantin Belousov.Cm reset
72*f6feb11fSKonstantin Belousov.Op Fl d
73*f6feb11fSKonstantin Belousov.Ar device
7464de8019SJohn Baldwin.Sh DESCRIPTION
7564de8019SJohn BaldwinThe
7664de8019SJohn Baldwin.Nm
7764de8019SJohn Baldwinutility adjusts the state of individual devices in the kernel's
7864de8019SJohn Baldwininternal device hierarchy.
7964de8019SJohn BaldwinEach invocation of
8064de8019SJohn Baldwin.Nm
8164de8019SJohn Baldwinconsists of a single command followed by command-specific arguments.
8264de8019SJohn BaldwinEach command operates on a single device specified via the
8364de8019SJohn Baldwin.Ar device
8464de8019SJohn Baldwinargument.
8564de8019SJohn BaldwinThe
8664de8019SJohn Baldwin.Ar device
8764de8019SJohn Baldwinmay be specified either as the name of an existing device or as a
8864de8019SJohn Baldwinbus-specific address.
8964de8019SJohn BaldwinMore details on supported address formats can be found in
9064de8019SJohn Baldwin.Xr devctl 3 .
9164de8019SJohn Baldwin.Pp
9264de8019SJohn BaldwinThe following commands are supported:
9364de8019SJohn Baldwin.Bl -tag -width indent
9464de8019SJohn Baldwin.It Cm attach Ar device
9564de8019SJohn BaldwinForce the kernel to re-probe the device.
9664de8019SJohn BaldwinIf a suitable driver is found,
9764de8019SJohn Baldwinit is attached to the device.
9864de8019SJohn Baldwin.It Xo Cm detach
9964de8019SJohn Baldwin.Op Fl f
10064de8019SJohn Baldwin.Ar device
10164de8019SJohn Baldwin.Xc
10264de8019SJohn BaldwinDetach the device from its current device driver.
10364de8019SJohn BaldwinIf the
10464de8019SJohn Baldwin.Fl f
10564de8019SJohn Baldwinflag is specified,
10664de8019SJohn Baldwinthe device driver will be detached even if the device is busy.
10764de8019SJohn Baldwin.It Xo Cm disable
10864de8019SJohn Baldwin.Op Fl f
10964de8019SJohn Baldwin.Ar device
11064de8019SJohn Baldwin.Xc
11164de8019SJohn BaldwinDisable a device.
11264de8019SJohn BaldwinIf the device is currently attached to a device driver,
11364de8019SJohn Baldwinthe device driver will be detached from the device,
11464de8019SJohn Baldwinbut the device will retain its current name.
11564de8019SJohn BaldwinIf the
11664de8019SJohn Baldwin.Fl f
11764de8019SJohn Baldwinflag is specified,
11864de8019SJohn Baldwinthe device driver will be detached even if the device is busy.
11964de8019SJohn Baldwin.It Cm enable Ar device
12064de8019SJohn BaldwinEnable a device.
12164de8019SJohn BaldwinThe device will probe and attach if a suitable device driver is found.
12264de8019SJohn BaldwinNote that this can re-enable a device disabled at boot time via a
12364de8019SJohn Baldwinloader tunable.
12464de8019SJohn Baldwin.It Cm suspend Ar device
12564de8019SJohn BaldwinSuspend a device.
12664de8019SJohn BaldwinThis may include placing the device in a reduced power state.
1278947c298SJustin Hibbits.It Cm resume Ar device
12864de8019SJohn BaldwinResume a suspended device to a fully working state.
12964de8019SJohn Baldwin.It Xo Cm set driver
13064de8019SJohn Baldwin.Op Fl f
13164de8019SJohn Baldwin.Ar device driver
13264de8019SJohn Baldwin.Xc
13364de8019SJohn BaldwinForce the device to use a device driver named
13464de8019SJohn Baldwin.Ar driver .
13564de8019SJohn BaldwinIf the device is already attached to a device driver and the
13664de8019SJohn Baldwin.Fl f
13764de8019SJohn Baldwinflag is specified,
13864de8019SJohn Baldwinthe device will be detached from its current device driver before it is
13964de8019SJohn Baldwinattached to the new device driver.
14064de8019SJohn BaldwinIf the device is already attached to a device driver and the
14164de8019SJohn Baldwin.Fl f
14264de8019SJohn Baldwinflag is not specified,
14364de8019SJohn Baldwinthe device will not be changed.
144e05ec081SJohn Baldwin.It Xo Cm clear driver
145e05ec081SJohn Baldwin.Op Fl f
146e05ec081SJohn Baldwin.Ar device
147e05ec081SJohn Baldwin.Xc
148e05ec081SJohn BaldwinClear a previously-forced driver name so that the device is able to use any
149e05ec081SJohn Baldwinvalid device driver.
150e05ec081SJohn BaldwinAfter the previous name has been cleared,
151e05ec081SJohn Baldwinthe device is reprobed so that other device drivers may attach to it.
152e05ec081SJohn BaldwinThis can be used to undo an earlier
153e05ec081SJohn Baldwin.Cm set driver
154e05ec081SJohn Baldwincommand.
155e05ec081SJohn BaldwinIf the device is currently attached to a device driver and the
156e05ec081SJohn Baldwin.Fl f
157e05ec081SJohn Baldwinflag is not specified,
158e05ec081SJohn Baldwinthe device will not be changed.
159a907c691SJohn Baldwin.It Cm rescan Ar device
160a907c691SJohn BaldwinRescan a bus device checking for devices that have been added or
161a907c691SJohn Baldwinremoved.
16288eb5c50SJohn Baldwin.It Xo Cm delete
1636dce7e99SMaxim Konovalov.Op Fl f
16488eb5c50SJohn Baldwin.Ar device
16588eb5c50SJohn Baldwin.Xc
16688eb5c50SJohn BaldwinDelete the device from the device tree.
16788eb5c50SJohn BaldwinIf the
16888eb5c50SJohn Baldwin.Fl f
16988eb5c50SJohn Baldwinflag is specified,
17088eb5c50SJohn Baldwinthe device will be deleted even if it is physically present.
17188eb5c50SJohn BaldwinThis command should be used with care as a device that is deleted but present
17288eb5c50SJohn Baldwincan no longer be used unless the parent bus device rediscovers the device via
17388eb5c50SJohn Baldwina rescan request.
174*f6feb11fSKonstantin Belousov.It Xo Cm reset
175*f6feb11fSKonstantin Belousov.Op Fl d
176*f6feb11fSKonstantin Belousov.Ar device
177*f6feb11fSKonstantin Belousov.Xc
178*f6feb11fSKonstantin BelousovReset the device, using bus-specific reset method.
179*f6feb11fSKonstantin BelousovDrivers for the devices being reset are suspended around the reset.
180*f6feb11fSKonstantin BelousovIf the
181*f6feb11fSKonstantin Belousov.Fl d
182*f6feb11fSKonstantin Belousovoption is specified, drivers are detached instead.
183*f6feb11fSKonstantin Belousov.Pp
184*f6feb11fSKonstantin BelousovCurrently, resets are implemented for PCIe buses and PCI devices.
185*f6feb11fSKonstantin BelousovFor PCIe bus, the link is disabled and then re-trained, causing all
186*f6feb11fSKonstantin Belousovchildren of the bus to reset.
187*f6feb11fSKonstantin BelousovUse
188*f6feb11fSKonstantin Belousov.Fl p
189*f6feb11fSKonstantin Belousovoption of
190*f6feb11fSKonstantin Belousov.Xr devinfo 8
191*f6feb11fSKonstantin Belousovtool to report parent bus for the device.
192*f6feb11fSKonstantin BelousovFor PCI device, if Function-Level Reset is implemented by it, FLR is
193*f6feb11fSKonstantin Belousovtried first; if failed or not implemented, power reset is tried.
194*f6feb11fSKonstantin Belousov.Pp
195*f6feb11fSKonstantin BelousovIf you have detached or suspended a child device explicitly and then
196*f6feb11fSKonstantin Belousovdo a reset, the child device will end up attached.
19764de8019SJohn Baldwin.El
198*f6feb11fSKonstantin Belousov.Sh BUGS
199*f6feb11fSKonstantin BelousovCurrently there is no administrative flag to prevent re-attach or resume
200*f6feb11fSKonstantin Belousovof the manually detached or suspended devices after reset.
201*f6feb11fSKonstantin BelousovSimilarly, there is no flag to prevent un-suspending of the the manually
202*f6feb11fSKonstantin Belousovsuspended devices after system resume.
20364de8019SJohn Baldwin.Sh SEE ALSO
20464de8019SJohn Baldwin.Xr devctl 3 ,
20564de8019SJohn Baldwin.Xr devinfo 8
20664de8019SJohn Baldwin.Sh HISTORY
20764de8019SJohn BaldwinThe
20864de8019SJohn Baldwin.Nm
20964de8019SJohn Baldwinutility first appeared in
2100fd00e0cSJohn Baldwin.Fx 10.3 .
211