162306a36Sopenharmony_ci:orphan: 262306a36Sopenharmony_ci 362306a36Sopenharmony_ci===================== 462306a36Sopenharmony_ciMSM Crash Dump Format 562306a36Sopenharmony_ci===================== 662306a36Sopenharmony_ci 762306a36Sopenharmony_ciFollowing a GPU hang the MSM driver outputs debugging information via 862306a36Sopenharmony_ci/sys/kernel/dri/X/show or via devcoredump (/sys/class/devcoredump/dcdX/data). 962306a36Sopenharmony_ciThis document describes how the output is formatted. 1062306a36Sopenharmony_ci 1162306a36Sopenharmony_ciEach entry is in the form key: value. Sections headers will not have a value 1262306a36Sopenharmony_ciand all the contents of a section will be indented two spaces from the header. 1362306a36Sopenharmony_ciEach section might have multiple array entries the start of which is designated 1462306a36Sopenharmony_ciby a (-). 1562306a36Sopenharmony_ci 1662306a36Sopenharmony_ciMappings 1762306a36Sopenharmony_ci-------- 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_cikernel 2062306a36Sopenharmony_ci The kernel version that generated the dump (UTS_RELEASE). 2162306a36Sopenharmony_ci 2262306a36Sopenharmony_cimodule 2362306a36Sopenharmony_ci The module that generated the crashdump. 2462306a36Sopenharmony_ci 2562306a36Sopenharmony_citime 2662306a36Sopenharmony_ci The kernel time at crash formatted as seconds.microseconds. 2762306a36Sopenharmony_ci 2862306a36Sopenharmony_cicomm 2962306a36Sopenharmony_ci Comm string for the binary that generated the fault. 3062306a36Sopenharmony_ci 3162306a36Sopenharmony_cicmdline 3262306a36Sopenharmony_ci Command line for the binary that generated the fault. 3362306a36Sopenharmony_ci 3462306a36Sopenharmony_cirevision 3562306a36Sopenharmony_ci ID of the GPU that generated the crash formatted as 3662306a36Sopenharmony_ci core.major.minor.patchlevel separated by dots. 3762306a36Sopenharmony_ci 3862306a36Sopenharmony_cirbbm-status 3962306a36Sopenharmony_ci The current value of RBBM_STATUS which shows what top level GPU 4062306a36Sopenharmony_ci components are in use at the time of crash. 4162306a36Sopenharmony_ci 4262306a36Sopenharmony_ciringbuffer 4362306a36Sopenharmony_ci Section containing the contents of each ringbuffer. Each ringbuffer is 4462306a36Sopenharmony_ci identified with an id number. 4562306a36Sopenharmony_ci 4662306a36Sopenharmony_ci id 4762306a36Sopenharmony_ci Ringbuffer ID (0 based index). Each ringbuffer in the section 4862306a36Sopenharmony_ci will have its own unique id. 4962306a36Sopenharmony_ci iova 5062306a36Sopenharmony_ci GPU address of the ringbuffer. 5162306a36Sopenharmony_ci 5262306a36Sopenharmony_ci last-fence 5362306a36Sopenharmony_ci The last fence that was issued on the ringbuffer 5462306a36Sopenharmony_ci 5562306a36Sopenharmony_ci retired-fence 5662306a36Sopenharmony_ci The last fence retired on the ringbuffer. 5762306a36Sopenharmony_ci 5862306a36Sopenharmony_ci rptr 5962306a36Sopenharmony_ci The current read pointer (rptr) for the ringbuffer. 6062306a36Sopenharmony_ci 6162306a36Sopenharmony_ci wptr 6262306a36Sopenharmony_ci The current write pointer (wptr) for the ringbuffer. 6362306a36Sopenharmony_ci 6462306a36Sopenharmony_ci size 6562306a36Sopenharmony_ci Maximum size of the ringbuffer programmed in the hardware. 6662306a36Sopenharmony_ci 6762306a36Sopenharmony_ci data 6862306a36Sopenharmony_ci The contents of the ring encoded as ascii85. Only the used 6962306a36Sopenharmony_ci portions of the ring will be printed. 7062306a36Sopenharmony_ci 7162306a36Sopenharmony_cibo 7262306a36Sopenharmony_ci List of buffers from the hanging submission if available. 7362306a36Sopenharmony_ci Each buffer object will have a uinque iova. 7462306a36Sopenharmony_ci 7562306a36Sopenharmony_ci iova 7662306a36Sopenharmony_ci GPU address of the buffer object. 7762306a36Sopenharmony_ci 7862306a36Sopenharmony_ci size 7962306a36Sopenharmony_ci Allocated size of the buffer object. 8062306a36Sopenharmony_ci 8162306a36Sopenharmony_ci data 8262306a36Sopenharmony_ci The contents of the buffer object encoded with ascii85. Only 8362306a36Sopenharmony_ci Trailing zeros at the end of the buffer will be skipped. 8462306a36Sopenharmony_ci 8562306a36Sopenharmony_ciregisters 8662306a36Sopenharmony_ci Set of registers values. Each entry is on its own line enclosed 8762306a36Sopenharmony_ci by brackets { }. 8862306a36Sopenharmony_ci 8962306a36Sopenharmony_ci offset 9062306a36Sopenharmony_ci Byte offset of the register from the start of the 9162306a36Sopenharmony_ci GPU memory region. 9262306a36Sopenharmony_ci 9362306a36Sopenharmony_ci value 9462306a36Sopenharmony_ci Hexadecimal value of the register. 9562306a36Sopenharmony_ci 9662306a36Sopenharmony_ciregisters-hlsq 9762306a36Sopenharmony_ci (5xx only) Register values from the HLSQ aperture. 9862306a36Sopenharmony_ci Same format as the register section. 99