.\" $NetBSD: pcictl.8,v 1.21 2026/01/25 00:59:36 uwe Exp $ .\" .\" Copyright 2001 Wasabi Systems, Inc. .\" All rights reserved. .\" .\" Written by Jason R. Thorpe for Wasabi Systems, Inc. .\" .\" 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. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed for the NetBSD Project by .\" Wasabi Systems, Inc. .\" 4. The name of Wasabi Systems, Inc. may not be used to endorse .\" or promote products derived from this software without specific prior .\" written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY WASABI SYSTEMS, INC. ``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 WASABI SYSTEMS, INC .\" 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 January 25, 2026 .Dt PCICTL 8 .Os . .Sh NAME .Nm pcictl .Nd a program to manipulate the PCI bus . .Sh SYNOPSIS .Nm .Ar pcibus .Ar command .Op Ar arg \&... . .Sh DESCRIPTION .Nm allows a user or system administrator to access various resources on a .Tn PCI bus. The .Ar pcibus argument names a special file for the .Tn PCI bus device. If the file name is relative, it's interpreted relative to the .Pa /dev directory, so e.g. plain .Ql pci0 refers to .Pa /dev/pci0 . . .Pp The following .Ar command\^ Ns s are available: . .Bl -tag -width Cm . .It Xo .Cm list .Op Fl Nn .Op Fl b Ar bus .Op Fl d Ar device .Op Fl f Ar function .Xc List the devices in the .Tn PCI domain, either as names or, if .Fl n is given, as numbers. .Pp If .Fl N is given, the driver name for this .Tn PCI device will be listed if any driver is attached. .Pp Any locator not specified defaults to a wildcard, or may be explicitly wildcarded by specifying .Sq Li all , or .Sq Li any . . .El .\" .Pp The remaining commands operate on a single .Tn PCI device, the .Fl d argument is mandatory. If the bus is not specified, it defaults to the bus number of the .Ar pcibus . If the function is not specified, it defaults to 0. . .Bl -tag -width Cm . .It Xo .Cm dump .Op Fl b Ar bus . Fl d Ar device .Op Fl f Ar function .Xc Dump the .Tn PCI configuration space for the specified device. . .It Xo .Cm read .Op Fl b Ar bus . Fl d Ar device .Op Fl f Ar function .Ar register .Xc Read the specified 32-bit aligned .Tn PCI configuration .Ar register and print it in hexadecimal to standard output. . .It Xo .Cm write .Op Fl b Ar bus . Fl d Ar device .Op Fl f Ar function .Ar register .Ar value .Xc Write the specified .Ar value to the specified 32-bit aligned .Tn PCI configuration .Ar register . . .El . .Sh FILES .Bl -tag -width Pa .It Pa /dev/pci* .Tn PCI bus device nodes .El . .Sh EXAMPLES This shows all .Tn PCI devices on the system: .Pp .Dl pcictl pci0 list .Pp This shows all .Tn PCI devices on the system, including attached drivers: .Pp .Dl pcictl pci0 list -N . .Sh SEE ALSO .Xr pci 3 , .Xr pci 4 , .Xr drvctl 8 . .Sh HISTORY The .Nm command first appeared in .Nx 1.6 . . .Sh CAVEATS .Nm .Cm read and .Cm write are dangerous commands that can damage hardware and panic the operating system. They are meant as a diagnostic tool for experiments or to debug device drivers. Do not use them as substitutes for a device driver!