18c2ecf20Sopenharmony_ci:orphan:
28c2ecf20Sopenharmony_ci
38c2ecf20Sopenharmony_ci=====================
48c2ecf20Sopenharmony_ciMSM Crash Dump Format
58c2ecf20Sopenharmony_ci=====================
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_ciFollowing a GPU hang the MSM driver outputs debugging information via
88c2ecf20Sopenharmony_ci/sys/kernel/dri/X/show or via devcoredump (/sys/class/devcoredump/dcdX/data).
98c2ecf20Sopenharmony_ciThis document describes how the output is formatted.
108c2ecf20Sopenharmony_ci
118c2ecf20Sopenharmony_ciEach entry is in the form key: value. Sections headers will not have a value
128c2ecf20Sopenharmony_ciand all the contents of a section will be indented two spaces from the header.
138c2ecf20Sopenharmony_ciEach section might have multiple array entries the start of which is designated
148c2ecf20Sopenharmony_ciby a (-).
158c2ecf20Sopenharmony_ci
168c2ecf20Sopenharmony_ciMappings
178c2ecf20Sopenharmony_ci--------
188c2ecf20Sopenharmony_ci
198c2ecf20Sopenharmony_cikernel
208c2ecf20Sopenharmony_ci	The kernel version that generated the dump (UTS_RELEASE).
218c2ecf20Sopenharmony_ci
228c2ecf20Sopenharmony_cimodule
238c2ecf20Sopenharmony_ci	The module that generated the crashdump.
248c2ecf20Sopenharmony_ci
258c2ecf20Sopenharmony_citime
268c2ecf20Sopenharmony_ci	The kernel time at crash formated as seconds.microseconds.
278c2ecf20Sopenharmony_ci
288c2ecf20Sopenharmony_cicomm
298c2ecf20Sopenharmony_ci	Comm string for the binary that generated the fault.
308c2ecf20Sopenharmony_ci
318c2ecf20Sopenharmony_cicmdline
328c2ecf20Sopenharmony_ci	Command line for the binary that generated the fault.
338c2ecf20Sopenharmony_ci
348c2ecf20Sopenharmony_cirevision
358c2ecf20Sopenharmony_ci	ID of the GPU that generated the crash formatted as
368c2ecf20Sopenharmony_ci	core.major.minor.patchlevel separated by dots.
378c2ecf20Sopenharmony_ci
388c2ecf20Sopenharmony_cirbbm-status
398c2ecf20Sopenharmony_ci	The current value of RBBM_STATUS which shows what top level GPU
408c2ecf20Sopenharmony_ci	components are in use at the time of crash.
418c2ecf20Sopenharmony_ci
428c2ecf20Sopenharmony_ciringbuffer
438c2ecf20Sopenharmony_ci	Section containing the contents of each ringbuffer. Each ringbuffer is
448c2ecf20Sopenharmony_ci	identified with an id number.
458c2ecf20Sopenharmony_ci
468c2ecf20Sopenharmony_ci	id
478c2ecf20Sopenharmony_ci		Ringbuffer ID (0 based index).  Each ringbuffer in the section
488c2ecf20Sopenharmony_ci		will have its own unique id.
498c2ecf20Sopenharmony_ci	iova
508c2ecf20Sopenharmony_ci		GPU address of the ringbuffer.
518c2ecf20Sopenharmony_ci
528c2ecf20Sopenharmony_ci	last-fence
538c2ecf20Sopenharmony_ci		The last fence that was issued on the ringbuffer
548c2ecf20Sopenharmony_ci
558c2ecf20Sopenharmony_ci	retired-fence
568c2ecf20Sopenharmony_ci		The last fence retired on the ringbuffer.
578c2ecf20Sopenharmony_ci
588c2ecf20Sopenharmony_ci	rptr
598c2ecf20Sopenharmony_ci		The current read pointer (rptr) for the ringbuffer.
608c2ecf20Sopenharmony_ci
618c2ecf20Sopenharmony_ci	wptr
628c2ecf20Sopenharmony_ci		The current write pointer (wptr) for the ringbuffer.
638c2ecf20Sopenharmony_ci
648c2ecf20Sopenharmony_ci	size
658c2ecf20Sopenharmony_ci		Maximum size of the ringbuffer programmed in the hardware.
668c2ecf20Sopenharmony_ci
678c2ecf20Sopenharmony_ci	data
688c2ecf20Sopenharmony_ci		The contents of the ring encoded as ascii85.  Only the used
698c2ecf20Sopenharmony_ci		portions of the ring will be printed.
708c2ecf20Sopenharmony_ci
718c2ecf20Sopenharmony_cibo
728c2ecf20Sopenharmony_ci	List of buffers from the hanging submission if available.
738c2ecf20Sopenharmony_ci	Each buffer object will have a uinque iova.
748c2ecf20Sopenharmony_ci
758c2ecf20Sopenharmony_ci	iova
768c2ecf20Sopenharmony_ci		GPU address of the buffer object.
778c2ecf20Sopenharmony_ci
788c2ecf20Sopenharmony_ci	size
798c2ecf20Sopenharmony_ci		Allocated size of the buffer object.
808c2ecf20Sopenharmony_ci
818c2ecf20Sopenharmony_ci	data
828c2ecf20Sopenharmony_ci		The contents of the buffer object encoded with ascii85.  Only
838c2ecf20Sopenharmony_ci		Trailing zeros at the end of the buffer will be skipped.
848c2ecf20Sopenharmony_ci
858c2ecf20Sopenharmony_ciregisters
868c2ecf20Sopenharmony_ci	Set of registers values. Each entry is on its own line enclosed
878c2ecf20Sopenharmony_ci	by brackets { }.
888c2ecf20Sopenharmony_ci
898c2ecf20Sopenharmony_ci	offset
908c2ecf20Sopenharmony_ci		Byte offset of the register from the start of the
918c2ecf20Sopenharmony_ci		GPU memory region.
928c2ecf20Sopenharmony_ci
938c2ecf20Sopenharmony_ci	value
948c2ecf20Sopenharmony_ci		Hexadecimal value of the register.
958c2ecf20Sopenharmony_ci
968c2ecf20Sopenharmony_ciregisters-hlsq
978c2ecf20Sopenharmony_ci		(5xx only) Register values from the HLSQ aperture.
988c2ecf20Sopenharmony_ci		Same format as the register section.
99