lima_dump.h 1.5 KB

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