/* SPDX-License-Identifier: GPL-2.0 OR MIT */ /* Copyright 2020 Qiang Yu <yuq825@gmail.com> */ #ifndef __LIMA_DUMP_H__ #define __LIMA_DUMP_H__ #include <linux/types.h> /** * dump file format for all the information to start a lima task * * top level format * | magic code "LIMA" | format version | num tasks | data size | * | reserved | reserved | reserved | reserved | * | task 1 ID | task 1 size | num chunks | reserved | task 1 data | * | task 2 ID | task 2 size | num chunks | reserved | task 2 data | * ... * * task data format * | chunk 1 ID | chunk 1 size | reserved | reserved | chunk 1 data | * | chunk 2 ID | chunk 2 size | reserved | reserved | chunk 2 data | * ... * */ #define LIMA_DUMP_MAJOR 1 #define LIMA_DUMP_MINOR 0 #define LIMA_DUMP_MAGIC 0x414d494c struct lima_dump_head { __u32 magic; __u16 version_major; __u16 version_minor; __u32 num_tasks; __u32 size; __u32 reserved[4]; }; #define LIMA_DUMP_TASK_GP 0 #define LIMA_DUMP_TASK_PP 1 #define LIMA_DUMP_TASK_NUM 2 struct lima_dump_task { __u32 id; __u32 size; __u32 num_chunks; __u32 reserved; }; #define LIMA_DUMP_CHUNK_FRAME 0 #define LIMA_DUMP_CHUNK_BUFFER 1 #define LIMA_DUMP_CHUNK_PROCESS_NAME 2 #define LIMA_DUMP_CHUNK_PROCESS_ID 3 #define LIMA_DUMP_CHUNK_NUM 4 struct lima_dump_chunk { __u32 id; __u32 size; __u32 reserved[2]; }; struct lima_dump_chunk_buffer { __u32 id; __u32 size; __u32 va; __u32 reserved; }; struct lima_dump_chunk_pid { __u32 id; __u32 size; __u32 pid; __u32 reserved; }; #endif