xref: /freebsd/usr.sbin/pciconf/pciconf.8 (revision fa9896e082a1046ff4fbc75fcba4d18d1f2efc19)
1da4e0010SStefan Eßer.\" Copyright (c) 1997
2c5e7e03aSRuslan Ermilov.\"	Stefan Esser <se@FreeBSD.org>. All rights reserved.
3da4e0010SStefan Eßer.\"
4da4e0010SStefan Eßer.\" Redistribution and use in source and binary forms, with or without
5da4e0010SStefan Eßer.\" modification, are permitted provided that the following conditions
6da4e0010SStefan Eßer.\" are met:
7da4e0010SStefan Eßer.\" 1. Redistributions of source code must retain the above copyright
8da4e0010SStefan Eßer.\"    notice, this list of conditions and the following disclaimer.
9da4e0010SStefan Eßer.\"
10da4e0010SStefan Eßer.\" 2. Redistributions in binary form must reproduce the above copyright
11da4e0010SStefan Eßer.\"    notice, this list of conditions and the following disclaimer in the
12da4e0010SStefan Eßer.\"    documentation and/or other materials provided with the distribution.
13da4e0010SStefan Eßer.\"
14da4e0010SStefan Eßer.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
15da4e0010SStefan Eßer.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16da4e0010SStefan Eßer.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17da4e0010SStefan Eßer.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
18da4e0010SStefan Eßer.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19da4e0010SStefan Eßer.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20da4e0010SStefan Eßer.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21da4e0010SStefan Eßer.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22da4e0010SStefan Eßer.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23da4e0010SStefan Eßer.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24da4e0010SStefan Eßer.\" SUCH DAMAGE.
25da4e0010SStefan Eßer.\"
26109de20bSKonstantin Belousov.Dd June 14, 2018
27da4e0010SStefan Eßer.Dt PCICONF 8
28a4c37c81SRuslan Ermilov.Os
29da4e0010SStefan Eßer.Sh NAME
30da4e0010SStefan Eßer.Nm pciconf
31da4e0010SStefan Eßer.Nd diagnostic utility for the PCI bus
32da4e0010SStefan Eßer.Sh SYNOPSIS
33e97407b4SRuslan Ermilov.Nm
3415d10730SJohn Baldwin.Fl l Oo Fl BbceVv Oc Op Ar device
35e97407b4SRuslan Ermilov.Nm
36c9341dd3SJohn Baldwin.Fl a Ar device
37e97407b4SRuslan Ermilov.Nm
38c9341dd3SJohn Baldwin.Fl r Oo Fl b | h Oc Ar device addr Ns Op : Ns Ar addr2
39e97407b4SRuslan Ermilov.Nm
40c9341dd3SJohn Baldwin.Fl w Oo Fl b | h Oc Ar device addr value
41109de20bSKonstantin Belousov.Nm
42109de20bSKonstantin Belousov.Fl D Oo Fl b | h | x Oc Ar device addr Op start Ns Op : Ns Ar count
43da4e0010SStefan Eßer.Sh DESCRIPTION
44da4e0010SStefan EßerThe
45fbe2a70dSPhilippe Charnier.Nm
4650c4e962STom Rhodesutility provides a command line interface to functionality provided by the
47e7760604STom Rhodes.Xr pci 4
48da4e0010SStefan Eßer.Xr ioctl 2
49da4e0010SStefan Eßerinterface.
509abf1c6aSRobert WatsonAs such, some of the functions are only available to users with write
519abf1c6aSRobert Watsonaccess to
52e7760604STom Rhodes.Pa /dev/pci ,
5350c4e962STom Rhodesnormally only the super-user.
54e7760604STom Rhodes.Pp
55da4e0010SStefan EßerWith the
56da4e0010SStefan Eßer.Fl l
57c9341dd3SJohn Baldwinoption,
58c9341dd3SJohn Baldwin.Nm
59c9341dd3SJohn Baldwinlists PCI devices in the following format:
60da4e0010SStefan Eßer.Bd -literal
61fe1c3596SScott Longfoo0@pci0:0:4:0: class=0x010000 rev=0x01 hdr=0x00 vendor=0x1000 device=0x000f \
62fe1c3596SScott Longsubvendor=0x0000 subdevice=0x0000
63fe1c3596SScott Longbar0@pci0:0:5:0: class=0x000100 rev=0x00 hdr=0x00 vendor=0x88c1 device=0x5333 \
64fe1c3596SScott Longsubvendor=0x0000 subdevice=0x0000
65fe1c3596SScott Longnone0@pci0:0:6:0: class=0x020000 rev=0x00 hdr=0x00 vendor=0x10ec device=0x8029 \
66fe1c3596SScott Longsubvendor=0x0000 subdevice=0x0000
67da4e0010SStefan Eßer.Ed
68da4e0010SStefan Eßer.Pp
69da4e0010SStefan EßerThe first column gives the
70c9341dd3SJohn Baldwindriver name, unit number, and selector.
71c9341dd3SJohn BaldwinIf there is no driver attached to the
727f054c59SKenneth D. Merry.Tn PCI
73c9341dd3SJohn Baldwindevice in question, the driver name will be
747f054c59SKenneth D. Merry.Dq none .
75c9341dd3SJohn BaldwinUnit numbers for detached devices start at zero and are incremented for
76c9341dd3SJohn Baldwineach detached device that is encountered.
77c9341dd3SJohn BaldwinThe selector
787f054c59SKenneth D. Merryis in a form which may directly be used for the other forms of the command.
79da4e0010SStefan EßerThe second column is the class code, with the class byte printed as two
80da4e0010SStefan Eßerhex digits, followed by the sub-class and the interface bytes.
81fe1c3596SScott LongThe third column prints the device's revision.
82fe1c3596SScott LongThe fourth column describes the header type.
83da4e0010SStefan Eßer.Pp
84fe1c3596SScott LongCurrently assigned header types include 0 for standard devices,
858866f04eSJohn Baldwin1 for
86da4e0010SStefan Eßer.Tn PCI
87da4e0010SStefan Eßerto
88da4e0010SStefan Eßer.Tn PCI
898866f04eSJohn Baldwinbridges, and 2 for
908866f04eSJohn Baldwin.Tn PCI
918866f04eSJohn Baldwinto
928866f04eSJohn Baldwin.Tn CardBus
938866f04eSJohn Baldwinbridges.
94f2e366a1SSheldon HearnIf the most significant bit
95da4e0010SStefan Eßerof the header type register is set for
96da4e0010SStefan Eßerfunction 0 of a
97da4e0010SStefan Eßer.Tn PCI
98da4e0010SStefan Eßerdevice, it is a
99da4e0010SStefan Eßer.Em multi-function
100da4e0010SStefan Eßerdevice, which contains several (similar or independent) functions on
101da4e0010SStefan Eßerone chip.
102da4e0010SStefan Eßer.Pp
103fe1c3596SScott LongThe sixth and seventh columns contain the vendor ID and the device ID of the
104fe1c3596SScott Longdevice.
105fe1c3596SScott LongThe eigth and ninth columns contain subvendor and subdevice IDs, introduced
106fe1c3596SScott Longin revision 2.1 of the
107fe1c3596SScott Long.Tn PCI
108fe1c3596SScott Longstandard.
109fe1c3596SScott LongNote that they will be 0 for older cards.
110fe1c3596SScott Long.Pp
111*eb51967bSScott LongAdding a second
112*eb51967bSScott Long.Fl l
113*eb51967bSScott Longoption causes output to be in a compact columnar format, suitable for
114*eb51967bSScott Long80 column output:
115*eb51967bSScott Long.Bd -literal
116*eb51967bSScott Longdrv     selector        class   rev hdr vendor device subven subdev
117*eb51967bSScott Longfoo0@pci0:0:4:0:        010000  01  00  1000   000f   0000   0000
118*eb51967bSScott Longbar0@pci0:0:5:0:        000100  00  00  88c1   5333   0000   0000
119*eb51967bSScott Longnone0@pci0:0:6:0:       020000  00  00  10ec   8029   0000   0000
120*eb51967bSScott Long.Ed
121*eb51967bSScott Long.Pp
122*eb51967bSScott LongAll fields retain the same definition as with the non-compact form.
123*eb51967bSScott Long.Pp
1248866f04eSJohn BaldwinIf the
12515d10730SJohn Baldwin.Fl B
12615d10730SJohn Baldwinoption is supplied,
12715d10730SJohn Baldwin.Nm
12815d10730SJohn Baldwinwill list additional information for
12915d10730SJohn Baldwin.Tn PCI
13015d10730SJohn Baldwinto
13115d10730SJohn Baldwin.Tn PCI
13215d10730SJohn Baldwinand
13315d10730SJohn Baldwin.Tn PCI
13415d10730SJohn Baldwinto
13515d10730SJohn Baldwin.Tn CardBus
13615d10730SJohn Baldwinbridges,
13715d10730SJohn Baldwinspecifically the resource ranges decoded by the bridge for use by devices
13815d10730SJohn Baldwinbehind the bridge.
13915d10730SJohn BaldwinEach bridge lists a range of bus numbers handled by the bridge and its
14015d10730SJohn Baldwindownstream devices.
14115d10730SJohn BaldwinMemory and I/O port decoding windows are enumerated via a line in the
14215d10730SJohn Baldwinfollowing format:
14315d10730SJohn Baldwin.Bd -literal
14415d10730SJohn Baldwin    window[1c] = type I/O Port, range 16, addr 0x5000-0x8fff, enabled
14515d10730SJohn Baldwin.Ed
14615d10730SJohn Baldwin.Pp
14715d10730SJohn BaldwinThe first value after the
14815d10730SJohn Baldwin.Dq Li window
14915d10730SJohn Baldwinprefix in the square brackets is the offset of the decoding window in
15015d10730SJohn Baldwinconfig space in hexadecimal.
15115d10730SJohn BaldwinThe type of a window is one of
15215d10730SJohn Baldwin.Dq Memory ,
15315d10730SJohn Baldwin.Dq Prefetchable Memory ,
15415d10730SJohn Baldwinor
15515d10730SJohn Baldwin.Dq I/O Port .
15615d10730SJohn BaldwinThe range indicates the binary log of the maximum address the window decodes.
15715d10730SJohn BaldwinThe address field indicates the start and end addresses of the decoded range.
15815d10730SJohn BaldwinFinally, the last flag indicates if the window is enabled or disabled.
15915d10730SJohn Baldwin.Pp
16015d10730SJohn BaldwinIf the
161da1e0915SJohn Baldwin.Fl b
162da1e0915SJohn Baldwinoption is supplied,
163da1e0915SJohn Baldwin.Nm
164da1e0915SJohn Baldwinwill list any base address registers
165da1e0915SJohn Baldwin.Pq BARs
166da1e0915SJohn Baldwinthat are assigned resources for each device.
167da1e0915SJohn BaldwinEach BAR will be enumerated via a line in the following format:
168da1e0915SJohn Baldwin.Bd -literal
169da1e0915SJohn Baldwin    bar   [10] = type Memory, range 32, base 0xda060000, size 131072, enabled
170da1e0915SJohn Baldwin.Ed
171da1e0915SJohn Baldwin.Pp
172da1e0915SJohn BaldwinThe first value after the
173da1e0915SJohn Baldwin.Dq Li bar
174da1e0915SJohn Baldwinprefix in the square brackets is the offset of the BAR in config space in
175da1e0915SJohn Baldwinhexadecimal.
176da1e0915SJohn BaldwinThe type of a BAR is one of
177da1e0915SJohn Baldwin.Dq Memory ,
178da1e0915SJohn Baldwin.Dq Prefetchable Memory ,
179da1e0915SJohn Baldwinor
180da1e0915SJohn Baldwin.Dq I/O Port .
18115d10730SJohn BaldwinThe range indicates the binary log of the maximum address the BAR decodes.
182da1e0915SJohn BaldwinThe base and size indicate the start and length of the BAR's address window,
183da1e0915SJohn Baldwinrespectively.
184da1e0915SJohn BaldwinFinally, the last flag indicates if the BAR is enabled or disabled.
185da1e0915SJohn Baldwin.Pp
186da1e0915SJohn BaldwinIf the
1878866f04eSJohn Baldwin.Fl c
1888866f04eSJohn Baldwinoption is supplied,
1898866f04eSJohn Baldwin.Nm
1908866f04eSJohn Baldwinwill list any capabilities supported by each device.
19197faa4c4SScott LongA second invocation of
19297faa4c4SScott Long.Fl c
19397faa4c4SScott Longwill print additional data for certain capabilities.
194b4fb1ba0SJohn BaldwinEach capability is enumerated via a line in the following format:
1958866f04eSJohn Baldwin.Bd -literal
1968866f04eSJohn Baldwin    cap 10[40] = PCI-Express 1 root port
1978866f04eSJohn Baldwin.Ed
1988866f04eSJohn Baldwin.Pp
1998866f04eSJohn BaldwinThe first value after the
2006a290a48SRuslan Ermilov.Dq Li cap
2018866f04eSJohn Baldwinprefix is the capability ID in hexadecimal.
2028866f04eSJohn BaldwinThe second value in the square brackets is the offset of the capability
2038866f04eSJohn Baldwinin config space in hexadecimal.
2048866f04eSJohn BaldwinThe format of the text after the equals sign is capability-specific.
2058866f04eSJohn Baldwin.Pp
206b4fb1ba0SJohn BaldwinEach extended capability is enumerated via a line in a similar format:
207b4fb1ba0SJohn Baldwin.Bd -literal
208b4fb1ba0SJohn Baldwinecap 0002[100] = VC 1 max VC0
209b4fb1ba0SJohn Baldwin.Ed
210b4fb1ba0SJohn Baldwin.Pp
211b4fb1ba0SJohn BaldwinThe first value after the
212b4fb1ba0SJohn Baldwin.Dq Li ecap
213b4fb1ba0SJohn Baldwinprefix is the extended capability ID in hexadecimal.
214b4fb1ba0SJohn BaldwinThe second value in the square brackets is the offset of the extended
215b4fb1ba0SJohn Baldwincapability in config space in hexadecimal.
216b4fb1ba0SJohn BaldwinThe format of the text after the equals sign is capability-specific.
217b4fb1ba0SJohn Baldwin.Pp
2188866f04eSJohn BaldwinIf the
219b6de0055SJohn Baldwin.Fl e
220b6de0055SJohn Baldwinoption is supplied,
221b6de0055SJohn Baldwin.Nm
222b6de0055SJohn Baldwinwill list any errors reported for this device in standard PCI error registers.
223b6de0055SJohn BaldwinErrors are checked for in the PCI status register,
224b6de0055SJohn Baldwinthe PCI-express device status register,
225b6de0055SJohn Baldwinand the Advanced Error Reporting status registers.
226b6de0055SJohn Baldwin.Pp
227b6de0055SJohn BaldwinIf the
2288866f04eSJohn Baldwin.Fl v
2298866f04eSJohn Baldwinoption is supplied,
2308866f04eSJohn Baldwin.Nm
2318866f04eSJohn Baldwinwill attempt to load the vendor/device information database, and print
2328866f04eSJohn Baldwinvendor, device, class and subclass identification strings for each device.
2338866f04eSJohn Baldwin.Pp
23484b755dfSJohn BaldwinIf the
23584b755dfSJohn Baldwin.Fl V
23684b755dfSJohn Baldwinoption is supplied,
23784b755dfSJohn Baldwin.Nm
23884b755dfSJohn Baldwinwill list any vital product data
23984b755dfSJohn Baldwin.Pq VPD
24084b755dfSJohn Baldwinprovided by each device.
24184b755dfSJohn BaldwinEach VPD keyword is enumerated via a line in the following format:
24284b755dfSJohn Baldwin.Bd -literal
24384b755dfSJohn Baldwin    VPD ro PN  = '110114640C0     '
24484b755dfSJohn Baldwin.Ed
24584b755dfSJohn Baldwin.Pp
24684b755dfSJohn BaldwinThe first string after the
24784b755dfSJohn Baldwin.Dq Li VPD
24884b755dfSJohn Baldwinprefix indicates if the keyword is read-only
24984b755dfSJohn Baldwin.Dq ro
25084b755dfSJohn Baldwinor read-write
25184b755dfSJohn Baldwin.Dq rw .
25284b755dfSJohn BaldwinThe second string provides the keyword name.
253cef367e6SEitan AdlerThe text after the equals sign lists the value of the keyword which is
25484b755dfSJohn Baldwinusually an ASCII string.
25584b755dfSJohn Baldwin.Pp
256c9341dd3SJohn BaldwinIf the optional
257c9341dd3SJohn Baldwin.Ar device
258c9341dd3SJohn Baldwinargument is given with the
259c9341dd3SJohn Baldwin.Fl l
260c9341dd3SJohn Baldwinflag,
261c9341dd3SJohn Baldwin.Nm
262c9341dd3SJohn Baldwinwill only list details about a single device instead of all devices.
263c9341dd3SJohn Baldwin.Pp
264e7760604STom RhodesAll invocations of
265fbe2a70dSPhilippe Charnier.Nm
266e7760604STom Rhodesexcept for
267e7760604STom Rhodes.Fl l
268da4e0010SStefan Eßerrequire a
269c9341dd3SJohn Baldwin.Ar device .
270c9341dd3SJohn BaldwinThe device can be identified either by a device name if the device is
271c9341dd3SJohn Baldwinattached to a driver or by a selector.
272c9341dd3SJohn BaldwinSelectors identify a PCI device by its address in PCI config space and
273c9341dd3SJohn Baldwincan take one of the following forms:
274c9341dd3SJohn Baldwin.Pp
275c9341dd3SJohn Baldwin.Bl -bullet -offset indent -compact
276c9341dd3SJohn Baldwin.It
277d23a84a0SStefan Eßer.Li pci Ns Va domain Ns \&: Ns Va bus Ns \&: Ns Va device Ns \&: \
278c9341dd3SJohn BaldwinNs Va function Ns
279c9341dd3SJohn Baldwin.It
280c9341dd3SJohn Baldwin.Li pci Ns Va bus Ns \&: Ns Va device Ns \&: Ns Va function Ns
281c9341dd3SJohn Baldwin.It
282c9341dd3SJohn Baldwin.Li pci Ns Va bus Ns \&: Ns Va device Ns
283c9341dd3SJohn Baldwin.El
284c9341dd3SJohn Baldwin.Pp
285c9341dd3SJohn BaldwinIn the case of an abridged form, omitted selector components are assumed to be 0.
286d23a84a0SStefan EßerAn optional leading device name followed by @ and an optional final colon
287da4e0010SStefan Eßerwill be ignored; this is so that the first column in the output of
288fbe2a70dSPhilippe Charnier.Nm
289da4e0010SStefan Eßer.Fl l
290e7760604STom Rhodescan be used without modification.
291e7760604STom RhodesAll numbers are base 10.
292da4e0010SStefan Eßer.Pp
293da4e0010SStefan EßerWith the
294da4e0010SStefan Eßer.Fl a
295da4e0010SStefan Eßerflag,
296fbe2a70dSPhilippe Charnier.Nm
297da4e0010SStefan Eßerdetermines whether any driver has been assigned to the device
298da4e0010SStefan Eßeridentified by
299da4e0010SStefan Eßer.Ar selector .
300da4e0010SStefan EßerAn exit status of zero indicates that the device has a driver;
301da4e0010SStefan Eßernon-zero indicates that it does not.
302da4e0010SStefan Eßer.Pp
303da4e0010SStefan EßerThe
304da4e0010SStefan Eßer.Fl r
305da4e0010SStefan Eßeroption reads a configuration space register at byte offset
3063915eeb5SJohn Polstra.Ar addr
307da4e0010SStefan Eßerof device
308da4e0010SStefan Eßer.Ar selector
309da4e0010SStefan Eßerand prints out its value in hexadecimal.
3103915eeb5SJohn PolstraThe optional second address
3113915eeb5SJohn Polstra.Ar addr2
3128d042147SWarner Loshspecifies a range to read.
313da4e0010SStefan EßerThe
314da4e0010SStefan Eßer.Fl w
315da4e0010SStefan Eßeroption writes the
316da4e0010SStefan Eßer.Ar value
317da4e0010SStefan Eßerinto a configuration space register at byte offset
3183915eeb5SJohn Polstra.Ar addr
319da4e0010SStefan Eßerof device
320da4e0010SStefan Eßer.Ar selector .
321109de20bSKonstantin Belousov.Pp
322109de20bSKonstantin BelousovThe
323109de20bSKonstantin Belousov.Fl D
324109de20bSKonstantin Belousovoption request a dump of the specified BAR.
325109de20bSKonstantin BelousovDump is performed to the standard output, raw register values
326109de20bSKonstantin Belousovare written.
327109de20bSKonstantin BelousovUse
328109de20bSKonstantin Belousov.Xr hexdump 1
329109de20bSKonstantin Belousovto convert them to human-readable dump,
330109de20bSKonstantin Belousovor redirect into a file to save the snapshot of the device state.
331109de20bSKonstantin BelousovOptionally, the
332109de20bSKonstantin Belousov.Ar start
333da4e0010SStefan Eßerand
334109de20bSKonstantin Belousov.Ar count
335109de20bSKonstantin Belousovof the registers dumped can be specified, in multiple of the operation width,
336109de20bSKonstantin Belousovsee next paragraph.
337109de20bSKonstantin Belousov.Pp
338109de20bSKonstantin BelousovFor read, write, and dump operations, the flags
339109de20bSKonstantin Belousov.Fl b ,
340109de20bSKonstantin Belousov.Fl h ,
341109de20bSKonstantin Belousovand
342109de20bSKonstantin Belousov.Fl x
343da4e0010SStefan Eßerselect the width of the operation;
344da4e0010SStefan Eßer.Fl b
345da4e0010SStefan Eßerindicates a byte operation, and
346da4e0010SStefan Eßer.Fl h
347e7760604STom Rhodesindicates a halfword (two-byte) operation.
348109de20bSKonstantin Belousov.Fl x
349109de20bSKonstantin Belousovindicates a quadword (four-byte) operation.
350e7760604STom RhodesThe default is to read or
351da4e0010SStefan Eßerwrite a longword (four bytes).
352109de20bSKonstantin BelousovThe quadword mode is only valid for BAR dump.
353a54bc9d0SMike Smith.Sh ENVIRONMENT
3541ed20020SBaptiste DaroussinPCI vendor and device information is read from
3551ed20020SBaptiste Daroussin.Pa /usr/local/share/pciids/pci.ids .
3561ed20020SBaptiste DaroussinIf that file is not present, it is read from
357a54bc9d0SMike Smith.Pa /usr/share/misc/pci_vendors .
358a54bc9d0SMike SmithThis path can be overridden by setting the environment variable
359a54bc9d0SMike Smith.Ev PCICONF_VENDOR_DATABASE .
360da4e0010SStefan Eßer.Sh SEE ALSO
361da4e0010SStefan Eßer.Xr ioctl 2 ,
362da4e0010SStefan Eßer.\" .Xr pci 4 ,
3636429fb50SDmitry Morozovsky.Xr devinfo 8 ,
364589228bdSGuy Helmer.Xr kldload 8
365da4e0010SStefan Eßer.Sh HISTORY
366da4e0010SStefan EßerThe
367fbe2a70dSPhilippe Charnier.Nm
368490d5836SPhilippe Charnierutility appeared first in
369da4e0010SStefan Eßer.Fx 2.2 .
370da4e0010SStefan EßerThe
371da4e0010SStefan Eßer.Fl a
372da4e0010SStefan Eßeroption was added for
373da4e0010SStefan Eßer.Tn PCI
374589228bdSGuy HelmerKLD support in
375da4e0010SStefan Eßer.Fx 3.0 .
376da4e0010SStefan Eßer.Sh AUTHORS
377f4d874a1SRuslan Ermilov.An -nosplit
378da4e0010SStefan EßerThe
379da4e0010SStefan Eßer.Nm
380490d5836SPhilippe Charnierutility was written by
381fbe2a70dSPhilippe Charnier.An Stefan Esser
382fbe2a70dSPhilippe Charnierand
383fbe2a70dSPhilippe Charnier.An Garrett Wollman .
384da4e0010SStefan Eßer.Sh BUGS
385da4e0010SStefan EßerThe
386da4e0010SStefan Eßer.Fl b
387da4e0010SStefan Eßerand
388da4e0010SStefan Eßer.Fl h
389da4e0010SStefan Eßeroptions are implemented in
390a654c53eSRuslan Ermilov.Nm ,
391da4e0010SStefan Eßerbut not in the underlying
392541c4ca0SPhilippe Charnier.Xr ioctl 2 .
393da4e0010SStefan Eßer.Pp
394da4e0010SStefan EßerIt might be useful to give non-root users access to the
395da4e0010SStefan Eßer.Fl a
396da4e0010SStefan Eßerand
397da4e0010SStefan Eßer.Fl r
398f2e366a1SSheldon Hearnoptions.
399f2e366a1SSheldon HearnBut only root will be able to execute a
400589228bdSGuy Helmer.Nm kldload
401589228bdSGuy Helmerto provide the device with a driver KLD, and reading of configuration space
402da4e0010SStefan Eßerregisters may cause a failure in badly designed
403da4e0010SStefan Eßer.Tn PCI
404da4e0010SStefan Eßerchips.
405109de20bSKonstantin Belousov.Pp
406109de20bSKonstantin BelousovThere is currently no way to specify the caching mode for the mapping
407109de20bSKonstantin Belousovestablished by the
408109de20bSKonstantin Belousov.Fl D
409109de20bSKonstantin Belousovoption,
410109de20bSKonstantin Belousov.Nm
411109de20bSKonstantin Belousovalways uses uncached access.
412109de20bSKonstantin BelousovThis is fine for control register BARs.
413