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 | |
31 | struct 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 | |
44 | struct 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 | |
57 | struct lima_dump_chunk { |
58 | __u32 id; |
59 | __u32 size; |
60 | __u32 reserved[2]; |
61 | }; |
62 | |
63 | struct lima_dump_chunk_buffer { |
64 | __u32 id; |
65 | __u32 size; |
66 | __u32 va; |
67 | __u32 reserved; |
68 | }; |
69 | |
70 | struct lima_dump_chunk_pid { |
71 | __u32 id; |
72 | __u32 size; |
73 | __u32 pid; |
74 | __u32 reserved; |
75 | }; |
76 | |
77 | #endif |
78 | |