PCITOOL(8) | Maintenance Commands and Procedures | PCITOOL(8) |
pcitool
—
interrupt routing tool
pcitool |
pci@ unit-address|niu@ unit-address
-i
cpu#,ino#|all
[-qv ] [-r
[-c ]|-w
cpu# [-g ]] |
pcitool |
pci@ unit-address|niu@ unit-address
-i
ino#|all
[-qv ] [-r
[-c ]|-w
cpu# [-g ]] |
pcitool |
pci@ unit-address
-m
msi#|all
[-qv ] [-r
[-c ]|-w
cpu# [-g ]] |
pcitool
is a low-level tool which provides
a facility for getting and setting interrupt routing information.
On x86 platforms, both INOs and MSI/Xs are mapped to the same
interrupt vectors. Use pcitool
-i
option to retrieve and reroute any interrupt
vectors (both INO and MSI/Xs).
On SPARC platforms, the INO is mapped to an interrupt mondo, where
as one or more MSI/Xs are mapped to an INO. So, INO and MSI/Xs are
individually retargetable. Use pcitool
-i
option to retrieve or reroute a given INO, where
as use pcitool
-m
option for
MSI/Xs.
The following options are supported by
pcitool
for interrupt routing:
-c
-r
). Dump interrupt controller
information.-g
-w
). On some platforms (such as x86)
multiple MSI interrupts of a single function need to be rerouted together.
Use -g
to do this. -g
works only on supported platforms and only for groups of MSI interrupts.
(A "group" of 1 is accepted). When -g
is
used, the vector provided must be the lowest-numbered vector of the group.
The size of the group is determined internally.-i
-m
-q
-r
(Internal)
’ appended
to their pathname. Default if neither -r
nor
-w
are specified.-v
-w
The following error statuses are returned to the shell:
0
EINVAL
ETIME
EIO
# pcitool /pci@0,0 -i all
The command for showing ino <0x0,0x21> on the same root nexus, along with sample output, is:
On x86 platform:
# pcitool /pci@0,0 -i 0,21 0x0,0x21: mpt 0 /pci@7b,0/pci1022,7458@11/pci1000,3060@2
On SPARC platform:
# pcitool /pci@0,0 -i 21 0x0,0x21: mpt 0 /pci@7b,0/pci1022,7458@11/pci1000,3060@2
The command for showing MSI 0x1 on the same root nexus, along with sample output, is:
# pcitool /pci@0,0 -m 0x1 0x0,0x1: pcieb 0 /pci@7b,0/pci10de,5d@e
On x86 platform:
# pcitool /pci@0,0 -i 0,21 -w 1 0x0,0x21 -> 0x1,0x20
On SPARC platform:
# pcitool /pci@0,0 -i 21 -w 1 0x0,0x21 -> 0x1,0x21
Successful rerouting msi 1 above from cpu 1 to cpu 0 gives the following output:
# pcitool /pci@0,0 -m 1 -w 0 0x1,0x1 -> 0x0,0x1
Successful rerouting a group of INOs starting at 24 from cpu 0 to cpu 1 gives the following output:
On x86 platform:
# pcitool /pci@0,0 -i 3,24 -w 1 -g 0x3,0x24 => 0x1,0x22
On SPARC platform:
# pcitool /pci@0,0 -i 24 -w 1 -g 0x3,0x24 => 0x1,0x22
pci(5), user_attr(5), rbac(7), su(8)
PCI specification (available from https://pcisig.com)
All values are entered in hex.
Not all commands are applicable to all platforms.
The user must have all privileges in order to access interrupt information. A regular user can access interrupt information when su(8) to root or granted the "Maintenance and Repair" rights profile in the user_attr file. See user_attr(5) and rbac(7).
February 12, 2018 | OmniOS |