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