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