NetBSD/sbin/drvctl/drvctl.8

191 lines
4.4 KiB
Groff

.\" $NetBSD: drvctl.8,v 1.20 2019/08/07 19:08:10 wiz Exp $
.\"
.\" Copyright (c) 2004
.\" Matthias Drochner. All rights reserved.
.\"
.\" 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 6, 2019
.Dt DRVCTL 8
.Os
.Sh NAME
.Nm drvctl
.Nd tool to rescan busses and detach devices on user request
.Sh SYNOPSIS
.Nm
.Fl r
.Op Fl a Ar attribute
.Ar busdevice
.Op locator ...
.Nm
.Fl d
.Ar device
.Nm
.Op Fl nt
.Fl l
.Op Ar device
.Nm
.Op Fl n
.Fl p
.Ar device
.Op Ar property ...
.Nm
.Fl Q
.Ar device
.Nm
.Fl R
.Ar device
.Nm
.Fl S
.Ar device
.Sh DESCRIPTION
The
.Nm
program works with the
.Xr drvctl 4
pseudo-driver to allow the rescan of busses and to detach
drivers from devices.
.Pp
The following options are available:
.Bl -tag -width 123456
.It Fl a
Give the interface attribute where children are to be
attached to (and which defines the interpretation of
the locator information).
This will only be needed in rare cases where the bus
has multiple attributes.
If there are multiple attributes, and one is not specified,
.Nm
will return an Invalid argument.
In such cases, the
.Fl p
option can be used to determine the available interface
attributes.
.It Fl d
Detach the device driver from the device given by the
.Ar device
argument.
.It Fl l
List the children of the device specified by the
.Ar device
argument.
If
.Ar device
is not specified, list roots of the device tree instead.
Output comes in two columns.
The first column is
.Ar device ,
or
.Dq root
if
.Ar device
is not specified.
The second column is the child.
.It Fl n
Suppress first column in
.Fl l
output.
Suppress non-XML headers in
.Fl p
output.
.It Fl p
Get properties for the device specified by the
.Ar device
argument.
If
.Ar property
is specified, the value of that property is printed, otherwise
the properties are displayed as an XML property list.
The property can be given as a path of dictionary keys and numeric
array indexes separated by slashes.
.It Fl Q
Resume the ancestors of
.Ar device ,
.Ar device
itself, and all of its descendants.
.It Fl R
Resume both the ancestors of
.Ar device
and
.Ar device
itself.
.It Fl r
Rescan the bus given by the
.Ar busdevice
argument.
The scan range can be restricted by an optional
.Ar locator
list.
.It Fl S
Suspend both the descendants of
.Ar device
and
.Ar device
itself.
.It Fl t
Print a tree of devices in
.Fl l
output.
.El
.Sh FILES
.Pa /dev/drvctl
.Sh EXAMPLES
To scan for IDE/SATA/eSATA disks on
.Pa atabus1 ,
which need to use the
.Qq ata_hl
attribute:
.Bd -literal -offset indent
# drvctl -r -a ata_hl atabus1
.Ed
.Pp
To scan for devices on a USB hub
.Pa uhub3 ,
that have not been discovered by normal methods (or were detached
with the
.Fl d
option for
.Nm ) ,
need to use the
.Qq usbifif
or
.Qq usbdevif
attributes, try one or both of these:
.Bd -literal -offset indent
# drvctl -r -a usbifif uhub3
# drvctl -r -a usbdevif uhub3
.Ed
.Sh SEE ALSO
.Xr proplib 3 ,
.Xr drvctl 4 ,
.Xr autoconf 9
.Sh HISTORY
A
.Nm
utility appeard in
.Nx 4.0 .
.Sh BUGS
Currently, there is no good way to get information about locator
lengths and default values (which is present at kernel configuration
time) out of a running kernel.
Thus the locator handling is less intelligent than it could be.