1/* SPDX-License-Identifier: GPL-2.0 OR MIT */
2/* Copyright 2020 Qiang Yu <yuq825@gmail.com> */
3
4#ifndef __LIMA_DUMP_H__
5#define __LIMA_DUMP_H__
6
7#include <linux/types.h>
8
9/**
10 * dump file format for all the information to start a lima task
11 *
12 * top level format
13 * | magic code "LIMA" | format version | num tasks | data size |
14 * | reserved | reserved | reserved | reserved |
15 * | task 1 ID | task 1 size | num chunks | reserved | task 1 data |
16 * | task 2 ID | task 2 size | num chunks | reserved | task 2 data |
17 * ...
18 *
19 * task data format
20 * | chunk 1 ID | chunk 1 size | reserved | reserved | chunk 1 data |
21 * | chunk 2 ID | chunk 2 size | reserved | reserved | chunk 2 data |
22 * ...
23 *
24 */
25
26#define LIMA_DUMP_MAJOR 1
27#define LIMA_DUMP_MINOR 0
28
29#define LIMA_DUMP_MAGIC 0x414d494c
30
31struct lima_dump_head {
32	__u32 magic;
33	__u16 version_major;
34	__u16 version_minor;
35	__u32 num_tasks;
36	__u32 size;
37	__u32 reserved[4];
38};
39
40#define LIMA_DUMP_TASK_GP   0
41#define LIMA_DUMP_TASK_PP   1
42#define LIMA_DUMP_TASK_NUM  2
43
44struct lima_dump_task {
45	__u32 id;
46	__u32 size;
47	__u32 num_chunks;
48	__u32 reserved;
49};
50
51#define LIMA_DUMP_CHUNK_FRAME         0
52#define LIMA_DUMP_CHUNK_BUFFER        1
53#define LIMA_DUMP_CHUNK_PROCESS_NAME  2
54#define LIMA_DUMP_CHUNK_PROCESS_ID    3
55#define LIMA_DUMP_CHUNK_NUM           4
56
57struct lima_dump_chunk {
58	__u32 id;
59	__u32 size;
60	__u32 reserved[2];
61};
62
63struct lima_dump_chunk_buffer {
64	__u32 id;
65	__u32 size;
66	__u32 va;
67	__u32 reserved;
68};
69
70struct lima_dump_chunk_pid {
71	__u32 id;
72	__u32 size;
73	__u32 pid;
74	__u32 reserved;
75};
76
77#endif
78