xref: /aosp_15_r20/external/igt-gpu-tools/man/intel_reg.rst (revision d83cc019efdc2edc6c4b16e9034a3ceb8d35d77c)
1*d83cc019SAndroid Build Coastguard Worker=========
2*d83cc019SAndroid Build Coastguard Workerintel_reg
3*d83cc019SAndroid Build Coastguard Worker=========
4*d83cc019SAndroid Build Coastguard Worker
5*d83cc019SAndroid Build Coastguard Worker---------------------------------
6*d83cc019SAndroid Build Coastguard WorkerIntel graphics register multitool
7*d83cc019SAndroid Build Coastguard Worker---------------------------------
8*d83cc019SAndroid Build Coastguard Worker.. include:: defs.rst
9*d83cc019SAndroid Build Coastguard Worker:Author: Jani Nikula <[email protected]>
10*d83cc019SAndroid Build Coastguard Worker:Date: 2016-03-01
11*d83cc019SAndroid Build Coastguard Worker:Version: |PACKAGE_STRING|
12*d83cc019SAndroid Build Coastguard Worker:Copyright: 2015-2016 Intel Corporation
13*d83cc019SAndroid Build Coastguard Worker:Manual section: |MANUAL_SECTION|
14*d83cc019SAndroid Build Coastguard Worker:Manual group: |MANUAL_GROUP|
15*d83cc019SAndroid Build Coastguard Worker
16*d83cc019SAndroid Build Coastguard WorkerSYNOPSIS
17*d83cc019SAndroid Build Coastguard Worker========
18*d83cc019SAndroid Build Coastguard Worker
19*d83cc019SAndroid Build Coastguard Worker**intel_reg** [*OPTIONS*] *COMMAND*
20*d83cc019SAndroid Build Coastguard Worker
21*d83cc019SAndroid Build Coastguard WorkerDESCRIPTION
22*d83cc019SAndroid Build Coastguard Worker===========
23*d83cc019SAndroid Build Coastguard Worker
24*d83cc019SAndroid Build Coastguard WorkerIntel graphics register multitool. Read, write, dump, and decode Intel graphics
25*d83cc019SAndroid Build Coastguard WorkerMMIO and sideband registers, and more.
26*d83cc019SAndroid Build Coastguard Worker
27*d83cc019SAndroid Build Coastguard WorkerOPTIONS
28*d83cc019SAndroid Build Coastguard Worker=======
29*d83cc019SAndroid Build Coastguard Worker
30*d83cc019SAndroid Build Coastguard WorkerSome options are global, and some specific to commands.
31*d83cc019SAndroid Build Coastguard Worker
32*d83cc019SAndroid Build Coastguard Worker--verbose
33*d83cc019SAndroid Build Coastguard Worker    Increase verbosity.
34*d83cc019SAndroid Build Coastguard Worker
35*d83cc019SAndroid Build Coastguard Worker--quiet
36*d83cc019SAndroid Build Coastguard Worker    Decrease verbosity.
37*d83cc019SAndroid Build Coastguard Worker
38*d83cc019SAndroid Build Coastguard Worker--count=N
39*d83cc019SAndroid Build Coastguard Worker    Read N registers.
40*d83cc019SAndroid Build Coastguard Worker
41*d83cc019SAndroid Build Coastguard Worker--binary
42*d83cc019SAndroid Build Coastguard Worker    Output binary values.
43*d83cc019SAndroid Build Coastguard Worker
44*d83cc019SAndroid Build Coastguard Worker--all
45*d83cc019SAndroid Build Coastguard Worker    Decode registers for all known platforms.
46*d83cc019SAndroid Build Coastguard Worker
47*d83cc019SAndroid Build Coastguard Worker--mmio=FILE
48*d83cc019SAndroid Build Coastguard Worker    Use MMIO bar from FILE.
49*d83cc019SAndroid Build Coastguard Worker
50*d83cc019SAndroid Build Coastguard Worker--devid=DEVID
51*d83cc019SAndroid Build Coastguard Worker    Pretend to be PCI ID DEVID. Useful with MMIO bar snapshots from other
52*d83cc019SAndroid Build Coastguard Worker    machines.
53*d83cc019SAndroid Build Coastguard Worker
54*d83cc019SAndroid Build Coastguard Worker--spec=PATH
55*d83cc019SAndroid Build Coastguard Worker    Read register spec from directory or file specified by PATH; see REGISTER
56*d83cc019SAndroid Build Coastguard Worker    SPEC DEFINITIONS below for details.
57*d83cc019SAndroid Build Coastguard Worker
58*d83cc019SAndroid Build Coastguard Worker--help
59*d83cc019SAndroid Build Coastguard Worker    Show brief help.
60*d83cc019SAndroid Build Coastguard Worker
61*d83cc019SAndroid Build Coastguard WorkerCOMMANDS
62*d83cc019SAndroid Build Coastguard Worker========
63*d83cc019SAndroid Build Coastguard Worker
64*d83cc019SAndroid Build Coastguard WorkerSee REGISTER REFERENCES below on how to describe registers for the commands.
65*d83cc019SAndroid Build Coastguard Worker
66*d83cc019SAndroid Build Coastguard Workerread [--count=N] REGISTER [...]
67*d83cc019SAndroid Build Coastguard Worker-------------------------------
68*d83cc019SAndroid Build Coastguard Worker
69*d83cc019SAndroid Build Coastguard WorkerDump each specified REGISTER, or N registers starting from each REGISTER.
70*d83cc019SAndroid Build Coastguard Worker
71*d83cc019SAndroid Build Coastguard Workerwrite REGISTER VALUE [REGISTER VALUE ...]
72*d83cc019SAndroid Build Coastguard Worker-----------------------------------------
73*d83cc019SAndroid Build Coastguard Worker
74*d83cc019SAndroid Build Coastguard WorkerWrite each VALUE to corresponding REGISTER.
75*d83cc019SAndroid Build Coastguard Worker
76*d83cc019SAndroid Build Coastguard Workerdump [--mmio=FILE --devid=DEVID]
77*d83cc019SAndroid Build Coastguard Worker--------------------------------
78*d83cc019SAndroid Build Coastguard Worker
79*d83cc019SAndroid Build Coastguard WorkerDump all registers specified in the register spec.
80*d83cc019SAndroid Build Coastguard Worker
81*d83cc019SAndroid Build Coastguard Workerdecode REGISTER VALUE
82*d83cc019SAndroid Build Coastguard Worker---------------------
83*d83cc019SAndroid Build Coastguard Worker
84*d83cc019SAndroid Build Coastguard WorkerDecode REGISTER VALUE.
85*d83cc019SAndroid Build Coastguard Worker
86*d83cc019SAndroid Build Coastguard Workersnapshot
87*d83cc019SAndroid Build Coastguard Worker--------
88*d83cc019SAndroid Build Coastguard Worker
89*d83cc019SAndroid Build Coastguard WorkerOutput the MMIO bar to stdout. The output can be used for a later invocation of
90*d83cc019SAndroid Build Coastguard Workerdump or read with the --mmio=FILE and --devid=DEVID parameters.
91*d83cc019SAndroid Build Coastguard Worker
92*d83cc019SAndroid Build Coastguard Workerlist
93*d83cc019SAndroid Build Coastguard Worker----
94*d83cc019SAndroid Build Coastguard Worker
95*d83cc019SAndroid Build Coastguard WorkerList the known registers.
96*d83cc019SAndroid Build Coastguard Worker
97*d83cc019SAndroid Build Coastguard Workerhelp
98*d83cc019SAndroid Build Coastguard Worker----
99*d83cc019SAndroid Build Coastguard Worker
100*d83cc019SAndroid Build Coastguard WorkerDisplay brief help.
101*d83cc019SAndroid Build Coastguard Worker
102*d83cc019SAndroid Build Coastguard Worker
103*d83cc019SAndroid Build Coastguard WorkerREGISTER REFERENCES
104*d83cc019SAndroid Build Coastguard Worker===================
105*d83cc019SAndroid Build Coastguard Worker
106*d83cc019SAndroid Build Coastguard WorkerRegisters are defined as [(PORTNAME|PORTNUM|ENGINE|MMIO-OFFSET):](REGNAME|REGADDR).
107*d83cc019SAndroid Build Coastguard Worker
108*d83cc019SAndroid Build Coastguard WorkerPORTNAME
109*d83cc019SAndroid Build Coastguard Worker    The register access method, most often MMIO, which is the default. The
110*d83cc019SAndroid Build Coastguard Worker    methods supported on all platforms are "mmio", "portio-vga", and "mmio-vga".
111*d83cc019SAndroid Build Coastguard Worker
112*d83cc019SAndroid Build Coastguard Worker    On BYT and CHV, the sideband ports "bunit", "punit", "nc", "dpio",
113*d83cc019SAndroid Build Coastguard Worker    "gpio-nc", "cck", "ccu", "dpio2", and "flisdsi" are also supported.
114*d83cc019SAndroid Build Coastguard Worker
115*d83cc019SAndroid Build Coastguard WorkerPORTNUM
116*d83cc019SAndroid Build Coastguard Worker    Port number for the sideband ports supported on BYT and CHV. Only numbers
117*d83cc019SAndroid Build Coastguard Worker    mapped to the supported ports are allowed, arbitrary numbers are not
118*d83cc019SAndroid Build Coastguard Worker    accepted.
119*d83cc019SAndroid Build Coastguard Worker
120*d83cc019SAndroid Build Coastguard Worker    Numbers above 0xff are automatically interpreted as MMIO offsets, not port
121*d83cc019SAndroid Build Coastguard Worker    numbers.
122*d83cc019SAndroid Build Coastguard Worker
123*d83cc019SAndroid Build Coastguard WorkerENGINE
124*d83cc019SAndroid Build Coastguard Worker    Instead of cpu based MMIO, specified engine can be used for access method.
125*d83cc019SAndroid Build Coastguard Worker    Batchbuffer will be targeted for the engine to do read/write. The list of
126*d83cc019SAndroid Build Coastguard Worker    available engines is architecture specific and can be found with
127*d83cc019SAndroid Build Coastguard Worker    "intel_reg help". Prefixing engine name with '-' uses non-privileged
128*d83cc019SAndroid Build Coastguard Worker    batchbuffer for access.
129*d83cc019SAndroid Build Coastguard Worker
130*d83cc019SAndroid Build Coastguard WorkerMMIO-OFFSET
131*d83cc019SAndroid Build Coastguard Worker    Use MMIO, and add this offset to the register address.
132*d83cc019SAndroid Build Coastguard Worker
133*d83cc019SAndroid Build Coastguard Worker    Numbers equal to or below 0xff are automatically interpreted as port
134*d83cc019SAndroid Build Coastguard Worker    numbers, not MMIO offsets.
135*d83cc019SAndroid Build Coastguard Worker
136*d83cc019SAndroid Build Coastguard WorkerREGNAME
137*d83cc019SAndroid Build Coastguard Worker    Name of the register as defined in the register spec.
138*d83cc019SAndroid Build Coastguard Worker
139*d83cc019SAndroid Build Coastguard Worker    If MMIO offset is not specified, it is picked up from the register
140*d83cc019SAndroid Build Coastguard Worker    spec. However, ports are not; the port is a namespace for the register
141*d83cc019SAndroid Build Coastguard Worker    names.
142*d83cc019SAndroid Build Coastguard Worker
143*d83cc019SAndroid Build Coastguard WorkerREGADDR
144*d83cc019SAndroid Build Coastguard Worker    Register address. The corresponding register name need not be specified in
145*d83cc019SAndroid Build Coastguard Worker    the register spec.
146*d83cc019SAndroid Build Coastguard Worker
147*d83cc019SAndroid Build Coastguard WorkerENVIRONMENT
148*d83cc019SAndroid Build Coastguard Worker===========
149*d83cc019SAndroid Build Coastguard Worker
150*d83cc019SAndroid Build Coastguard WorkerINTEL_REG_SPEC
151*d83cc019SAndroid Build Coastguard Worker    Path to a directory or a file containing register spec definitions.
152*d83cc019SAndroid Build Coastguard Worker
153*d83cc019SAndroid Build Coastguard WorkerREGISTER SPEC DEFINITIONS
154*d83cc019SAndroid Build Coastguard Worker=========================
155*d83cc019SAndroid Build Coastguard Worker
156*d83cc019SAndroid Build Coastguard WorkerA register spec associates register names with addresses. The spec is searched
157*d83cc019SAndroid Build Coastguard Workerfor in this order:
158*d83cc019SAndroid Build Coastguard Worker
159*d83cc019SAndroid Build Coastguard Worker#. Directory or file specified by the --spec option.
160*d83cc019SAndroid Build Coastguard Worker
161*d83cc019SAndroid Build Coastguard Worker#. Directory or file specified by the INTEL_REG_SPEC environment variable.
162*d83cc019SAndroid Build Coastguard Worker
163*d83cc019SAndroid Build Coastguard Worker#. Builtin register spec. Also used as fallback with a warning if the above are
164*d83cc019SAndroid Build Coastguard Worker   used but fail.
165*d83cc019SAndroid Build Coastguard Worker
166*d83cc019SAndroid Build Coastguard WorkerIf a directory is specified using --spec option or INTEL_REG_SPEC environment
167*d83cc019SAndroid Build Coastguard Workervariable, the directory is scanned for a spec file in this order:
168*d83cc019SAndroid Build Coastguard Worker
169*d83cc019SAndroid Build Coastguard Worker#. File named after the PCI device id. For example, "0412".
170*d83cc019SAndroid Build Coastguard Worker
171*d83cc019SAndroid Build Coastguard Worker#. File named after the code name in lowercase, without punctuation. For
172*d83cc019SAndroid Build Coastguard Worker   example, "valleyview".
173*d83cc019SAndroid Build Coastguard Worker
174*d83cc019SAndroid Build Coastguard Worker#. File named after generation. For example, "gen7" (note that this matches
175*d83cc019SAndroid Build Coastguard Worker   valleyview, ivybridge and haswell!).
176*d83cc019SAndroid Build Coastguard Worker
177*d83cc019SAndroid Build Coastguard WorkerRegister Spec File Format
178*d83cc019SAndroid Build Coastguard Worker-------------------------
179*d83cc019SAndroid Build Coastguard Worker
180*d83cc019SAndroid Build Coastguard WorkerThe register spec format is briefly described below:
181*d83cc019SAndroid Build Coastguard Worker
182*d83cc019SAndroid Build Coastguard Worker* Empty lines and lines beginning with "#", ";", or "//" are ignored.
183*d83cc019SAndroid Build Coastguard Worker
184*d83cc019SAndroid Build Coastguard Worker* Lines *not* beginning with "(" are interpreted as file names, absolute or
185*d83cc019SAndroid Build Coastguard Worker  relative, to be included.
186*d83cc019SAndroid Build Coastguard Worker
187*d83cc019SAndroid Build Coastguard Worker* Lines beginning with "(" are interpreted as register definitions.
188*d83cc019SAndroid Build Coastguard Worker
189*d83cc019SAndroid Build Coastguard WorkerRegisters are defined as tuples ('REGNAME', 'REGADDR',
190*d83cc019SAndroid Build Coastguard Worker'PORTNAME|PORTNUM|MMIO-OFFSET'), as in REGISTER REFERENCES above. The port
191*d83cc019SAndroid Build Coastguard Workerdescription may also be an empty string to denote MMIO.
192*d83cc019SAndroid Build Coastguard Worker
193*d83cc019SAndroid Build Coastguard WorkerExamples:
194*d83cc019SAndroid Build Coastguard Worker
195*d83cc019SAndroid Build Coastguard Worker* # this is a comment, below is an include
196*d83cc019SAndroid Build Coastguard Worker
197*d83cc019SAndroid Build Coastguard Worker* vlv_pipe_a.txt
198*d83cc019SAndroid Build Coastguard Worker
199*d83cc019SAndroid Build Coastguard Worker* ('GEN6_PMINTRMSK', '0x0000a168', '')
200*d83cc019SAndroid Build Coastguard Worker
201*d83cc019SAndroid Build Coastguard Worker* ('MIPIA_PORT_CTRL', '0x61190', '0x180000')
202*d83cc019SAndroid Build Coastguard Worker
203*d83cc019SAndroid Build Coastguard Worker* ('PLL1_DW0', '0x8000', 'DPIO')
204*d83cc019SAndroid Build Coastguard Worker
205*d83cc019SAndroid Build Coastguard WorkerBUGS
206*d83cc019SAndroid Build Coastguard Worker====
207*d83cc019SAndroid Build Coastguard Worker
208*d83cc019SAndroid Build Coastguard WorkerReading some registers may hang the GPU or the machine.
209*d83cc019SAndroid Build Coastguard Worker
210*d83cc019SAndroid Build Coastguard WorkerREPORTING BUGS
211*d83cc019SAndroid Build Coastguard Worker==============
212*d83cc019SAndroid Build Coastguard Worker
213*d83cc019SAndroid Build Coastguard WorkerReport bugs to https://bugs.freedesktop.org.
214