xref: /aosp_15_r20/bionic/libc/kernel/uapi/drm/panfrost_drm.h (revision 8d67ca893c1523eb926b9080dbe4e2ffd2a27ba1)
1*8d67ca89SAndroid Build Coastguard Worker /*
2*8d67ca89SAndroid Build Coastguard Worker  * This file is auto-generated. Modifications will be lost.
3*8d67ca89SAndroid Build Coastguard Worker  *
4*8d67ca89SAndroid Build Coastguard Worker  * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
5*8d67ca89SAndroid Build Coastguard Worker  * for more information.
6*8d67ca89SAndroid Build Coastguard Worker  */
7*8d67ca89SAndroid Build Coastguard Worker #ifndef _PANFROST_DRM_H_
8*8d67ca89SAndroid Build Coastguard Worker #define _PANFROST_DRM_H_
9*8d67ca89SAndroid Build Coastguard Worker #include "drm.h"
10*8d67ca89SAndroid Build Coastguard Worker #ifdef __cplusplus
11*8d67ca89SAndroid Build Coastguard Worker extern "C" {
12*8d67ca89SAndroid Build Coastguard Worker #endif
13*8d67ca89SAndroid Build Coastguard Worker #define DRM_PANFROST_SUBMIT 0x00
14*8d67ca89SAndroid Build Coastguard Worker #define DRM_PANFROST_WAIT_BO 0x01
15*8d67ca89SAndroid Build Coastguard Worker #define DRM_PANFROST_CREATE_BO 0x02
16*8d67ca89SAndroid Build Coastguard Worker #define DRM_PANFROST_MMAP_BO 0x03
17*8d67ca89SAndroid Build Coastguard Worker #define DRM_PANFROST_GET_PARAM 0x04
18*8d67ca89SAndroid Build Coastguard Worker #define DRM_PANFROST_GET_BO_OFFSET 0x05
19*8d67ca89SAndroid Build Coastguard Worker #define DRM_PANFROST_PERFCNT_ENABLE 0x06
20*8d67ca89SAndroid Build Coastguard Worker #define DRM_PANFROST_PERFCNT_DUMP 0x07
21*8d67ca89SAndroid Build Coastguard Worker #define DRM_PANFROST_MADVISE 0x08
22*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_PANFROST_SUBMIT DRM_IOW(DRM_COMMAND_BASE + DRM_PANFROST_SUBMIT, struct drm_panfrost_submit)
23*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_PANFROST_WAIT_BO DRM_IOW(DRM_COMMAND_BASE + DRM_PANFROST_WAIT_BO, struct drm_panfrost_wait_bo)
24*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_PANFROST_CREATE_BO DRM_IOWR(DRM_COMMAND_BASE + DRM_PANFROST_CREATE_BO, struct drm_panfrost_create_bo)
25*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_PANFROST_MMAP_BO DRM_IOWR(DRM_COMMAND_BASE + DRM_PANFROST_MMAP_BO, struct drm_panfrost_mmap_bo)
26*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_PANFROST_GET_PARAM DRM_IOWR(DRM_COMMAND_BASE + DRM_PANFROST_GET_PARAM, struct drm_panfrost_get_param)
27*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_PANFROST_GET_BO_OFFSET DRM_IOWR(DRM_COMMAND_BASE + DRM_PANFROST_GET_BO_OFFSET, struct drm_panfrost_get_bo_offset)
28*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_PANFROST_MADVISE DRM_IOWR(DRM_COMMAND_BASE + DRM_PANFROST_MADVISE, struct drm_panfrost_madvise)
29*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_PANFROST_PERFCNT_ENABLE DRM_IOW(DRM_COMMAND_BASE + DRM_PANFROST_PERFCNT_ENABLE, struct drm_panfrost_perfcnt_enable)
30*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_PANFROST_PERFCNT_DUMP DRM_IOW(DRM_COMMAND_BASE + DRM_PANFROST_PERFCNT_DUMP, struct drm_panfrost_perfcnt_dump)
31*8d67ca89SAndroid Build Coastguard Worker #define PANFROST_JD_REQ_FS (1 << 0)
32*8d67ca89SAndroid Build Coastguard Worker struct drm_panfrost_submit {
33*8d67ca89SAndroid Build Coastguard Worker   __u64 jc;
34*8d67ca89SAndroid Build Coastguard Worker   __u64 in_syncs;
35*8d67ca89SAndroid Build Coastguard Worker   __u32 in_sync_count;
36*8d67ca89SAndroid Build Coastguard Worker   __u32 out_sync;
37*8d67ca89SAndroid Build Coastguard Worker   __u64 bo_handles;
38*8d67ca89SAndroid Build Coastguard Worker   __u32 bo_handle_count;
39*8d67ca89SAndroid Build Coastguard Worker   __u32 requirements;
40*8d67ca89SAndroid Build Coastguard Worker };
41*8d67ca89SAndroid Build Coastguard Worker struct drm_panfrost_wait_bo {
42*8d67ca89SAndroid Build Coastguard Worker   __u32 handle;
43*8d67ca89SAndroid Build Coastguard Worker   __u32 pad;
44*8d67ca89SAndroid Build Coastguard Worker   __s64 timeout_ns;
45*8d67ca89SAndroid Build Coastguard Worker };
46*8d67ca89SAndroid Build Coastguard Worker #define PANFROST_BO_NOEXEC 1
47*8d67ca89SAndroid Build Coastguard Worker #define PANFROST_BO_HEAP 2
48*8d67ca89SAndroid Build Coastguard Worker struct drm_panfrost_create_bo {
49*8d67ca89SAndroid Build Coastguard Worker   __u32 size;
50*8d67ca89SAndroid Build Coastguard Worker   __u32 flags;
51*8d67ca89SAndroid Build Coastguard Worker   __u32 handle;
52*8d67ca89SAndroid Build Coastguard Worker   __u32 pad;
53*8d67ca89SAndroid Build Coastguard Worker   __u64 offset;
54*8d67ca89SAndroid Build Coastguard Worker };
55*8d67ca89SAndroid Build Coastguard Worker struct drm_panfrost_mmap_bo {
56*8d67ca89SAndroid Build Coastguard Worker   __u32 handle;
57*8d67ca89SAndroid Build Coastguard Worker   __u32 flags;
58*8d67ca89SAndroid Build Coastguard Worker   __u64 offset;
59*8d67ca89SAndroid Build Coastguard Worker };
60*8d67ca89SAndroid Build Coastguard Worker enum drm_panfrost_param {
61*8d67ca89SAndroid Build Coastguard Worker   DRM_PANFROST_PARAM_GPU_PROD_ID,
62*8d67ca89SAndroid Build Coastguard Worker   DRM_PANFROST_PARAM_GPU_REVISION,
63*8d67ca89SAndroid Build Coastguard Worker   DRM_PANFROST_PARAM_SHADER_PRESENT,
64*8d67ca89SAndroid Build Coastguard Worker   DRM_PANFROST_PARAM_TILER_PRESENT,
65*8d67ca89SAndroid Build Coastguard Worker   DRM_PANFROST_PARAM_L2_PRESENT,
66*8d67ca89SAndroid Build Coastguard Worker   DRM_PANFROST_PARAM_STACK_PRESENT,
67*8d67ca89SAndroid Build Coastguard Worker   DRM_PANFROST_PARAM_AS_PRESENT,
68*8d67ca89SAndroid Build Coastguard Worker   DRM_PANFROST_PARAM_JS_PRESENT,
69*8d67ca89SAndroid Build Coastguard Worker   DRM_PANFROST_PARAM_L2_FEATURES,
70*8d67ca89SAndroid Build Coastguard Worker   DRM_PANFROST_PARAM_CORE_FEATURES,
71*8d67ca89SAndroid Build Coastguard Worker   DRM_PANFROST_PARAM_TILER_FEATURES,
72*8d67ca89SAndroid Build Coastguard Worker   DRM_PANFROST_PARAM_MEM_FEATURES,
73*8d67ca89SAndroid Build Coastguard Worker   DRM_PANFROST_PARAM_MMU_FEATURES,
74*8d67ca89SAndroid Build Coastguard Worker   DRM_PANFROST_PARAM_THREAD_FEATURES,
75*8d67ca89SAndroid Build Coastguard Worker   DRM_PANFROST_PARAM_MAX_THREADS,
76*8d67ca89SAndroid Build Coastguard Worker   DRM_PANFROST_PARAM_THREAD_MAX_WORKGROUP_SZ,
77*8d67ca89SAndroid Build Coastguard Worker   DRM_PANFROST_PARAM_THREAD_MAX_BARRIER_SZ,
78*8d67ca89SAndroid Build Coastguard Worker   DRM_PANFROST_PARAM_COHERENCY_FEATURES,
79*8d67ca89SAndroid Build Coastguard Worker   DRM_PANFROST_PARAM_TEXTURE_FEATURES0,
80*8d67ca89SAndroid Build Coastguard Worker   DRM_PANFROST_PARAM_TEXTURE_FEATURES1,
81*8d67ca89SAndroid Build Coastguard Worker   DRM_PANFROST_PARAM_TEXTURE_FEATURES2,
82*8d67ca89SAndroid Build Coastguard Worker   DRM_PANFROST_PARAM_TEXTURE_FEATURES3,
83*8d67ca89SAndroid Build Coastguard Worker   DRM_PANFROST_PARAM_JS_FEATURES0,
84*8d67ca89SAndroid Build Coastguard Worker   DRM_PANFROST_PARAM_JS_FEATURES1,
85*8d67ca89SAndroid Build Coastguard Worker   DRM_PANFROST_PARAM_JS_FEATURES2,
86*8d67ca89SAndroid Build Coastguard Worker   DRM_PANFROST_PARAM_JS_FEATURES3,
87*8d67ca89SAndroid Build Coastguard Worker   DRM_PANFROST_PARAM_JS_FEATURES4,
88*8d67ca89SAndroid Build Coastguard Worker   DRM_PANFROST_PARAM_JS_FEATURES5,
89*8d67ca89SAndroid Build Coastguard Worker   DRM_PANFROST_PARAM_JS_FEATURES6,
90*8d67ca89SAndroid Build Coastguard Worker   DRM_PANFROST_PARAM_JS_FEATURES7,
91*8d67ca89SAndroid Build Coastguard Worker   DRM_PANFROST_PARAM_JS_FEATURES8,
92*8d67ca89SAndroid Build Coastguard Worker   DRM_PANFROST_PARAM_JS_FEATURES9,
93*8d67ca89SAndroid Build Coastguard Worker   DRM_PANFROST_PARAM_JS_FEATURES10,
94*8d67ca89SAndroid Build Coastguard Worker   DRM_PANFROST_PARAM_JS_FEATURES11,
95*8d67ca89SAndroid Build Coastguard Worker   DRM_PANFROST_PARAM_JS_FEATURES12,
96*8d67ca89SAndroid Build Coastguard Worker   DRM_PANFROST_PARAM_JS_FEATURES13,
97*8d67ca89SAndroid Build Coastguard Worker   DRM_PANFROST_PARAM_JS_FEATURES14,
98*8d67ca89SAndroid Build Coastguard Worker   DRM_PANFROST_PARAM_JS_FEATURES15,
99*8d67ca89SAndroid Build Coastguard Worker   DRM_PANFROST_PARAM_NR_CORE_GROUPS,
100*8d67ca89SAndroid Build Coastguard Worker   DRM_PANFROST_PARAM_THREAD_TLS_ALLOC,
101*8d67ca89SAndroid Build Coastguard Worker   DRM_PANFROST_PARAM_AFBC_FEATURES,
102*8d67ca89SAndroid Build Coastguard Worker };
103*8d67ca89SAndroid Build Coastguard Worker struct drm_panfrost_get_param {
104*8d67ca89SAndroid Build Coastguard Worker   __u32 param;
105*8d67ca89SAndroid Build Coastguard Worker   __u32 pad;
106*8d67ca89SAndroid Build Coastguard Worker   __u64 value;
107*8d67ca89SAndroid Build Coastguard Worker };
108*8d67ca89SAndroid Build Coastguard Worker struct drm_panfrost_get_bo_offset {
109*8d67ca89SAndroid Build Coastguard Worker   __u32 handle;
110*8d67ca89SAndroid Build Coastguard Worker   __u32 pad;
111*8d67ca89SAndroid Build Coastguard Worker   __u64 offset;
112*8d67ca89SAndroid Build Coastguard Worker };
113*8d67ca89SAndroid Build Coastguard Worker struct drm_panfrost_perfcnt_enable {
114*8d67ca89SAndroid Build Coastguard Worker   __u32 enable;
115*8d67ca89SAndroid Build Coastguard Worker   __u32 counterset;
116*8d67ca89SAndroid Build Coastguard Worker };
117*8d67ca89SAndroid Build Coastguard Worker struct drm_panfrost_perfcnt_dump {
118*8d67ca89SAndroid Build Coastguard Worker   __u64 buf_ptr;
119*8d67ca89SAndroid Build Coastguard Worker };
120*8d67ca89SAndroid Build Coastguard Worker #define PANFROST_MADV_WILLNEED 0
121*8d67ca89SAndroid Build Coastguard Worker #define PANFROST_MADV_DONTNEED 1
122*8d67ca89SAndroid Build Coastguard Worker struct drm_panfrost_madvise {
123*8d67ca89SAndroid Build Coastguard Worker   __u32 handle;
124*8d67ca89SAndroid Build Coastguard Worker   __u32 madv;
125*8d67ca89SAndroid Build Coastguard Worker   __u32 retained;
126*8d67ca89SAndroid Build Coastguard Worker };
127*8d67ca89SAndroid Build Coastguard Worker #define PANFROSTDUMP_MAJOR 1
128*8d67ca89SAndroid Build Coastguard Worker #define PANFROSTDUMP_MINOR 0
129*8d67ca89SAndroid Build Coastguard Worker #define PANFROSTDUMP_MAGIC 0x464E4150
130*8d67ca89SAndroid Build Coastguard Worker #define PANFROSTDUMP_BUF_REG 0
131*8d67ca89SAndroid Build Coastguard Worker #define PANFROSTDUMP_BUF_BOMAP (PANFROSTDUMP_BUF_REG + 1)
132*8d67ca89SAndroid Build Coastguard Worker #define PANFROSTDUMP_BUF_BO (PANFROSTDUMP_BUF_BOMAP + 1)
133*8d67ca89SAndroid Build Coastguard Worker #define PANFROSTDUMP_BUF_TRAILER (PANFROSTDUMP_BUF_BO + 1)
134*8d67ca89SAndroid Build Coastguard Worker struct panfrost_dump_object_header {
135*8d67ca89SAndroid Build Coastguard Worker   __u32 magic;
136*8d67ca89SAndroid Build Coastguard Worker   __u32 type;
137*8d67ca89SAndroid Build Coastguard Worker   __u32 file_size;
138*8d67ca89SAndroid Build Coastguard Worker   __u32 file_offset;
139*8d67ca89SAndroid Build Coastguard Worker   union {
140*8d67ca89SAndroid Build Coastguard Worker     struct {
141*8d67ca89SAndroid Build Coastguard Worker       __u64 jc;
142*8d67ca89SAndroid Build Coastguard Worker       __u32 gpu_id;
143*8d67ca89SAndroid Build Coastguard Worker       __u32 major;
144*8d67ca89SAndroid Build Coastguard Worker       __u32 minor;
145*8d67ca89SAndroid Build Coastguard Worker       __u64 nbos;
146*8d67ca89SAndroid Build Coastguard Worker     } reghdr;
147*8d67ca89SAndroid Build Coastguard Worker     struct {
148*8d67ca89SAndroid Build Coastguard Worker       __u32 valid;
149*8d67ca89SAndroid Build Coastguard Worker       __u64 iova;
150*8d67ca89SAndroid Build Coastguard Worker       __u32 data[2];
151*8d67ca89SAndroid Build Coastguard Worker     } bomap;
152*8d67ca89SAndroid Build Coastguard Worker     __u32 sizer[496];
153*8d67ca89SAndroid Build Coastguard Worker   };
154*8d67ca89SAndroid Build Coastguard Worker };
155*8d67ca89SAndroid Build Coastguard Worker struct panfrost_dump_registers {
156*8d67ca89SAndroid Build Coastguard Worker   __u32 reg;
157*8d67ca89SAndroid Build Coastguard Worker   __u32 value;
158*8d67ca89SAndroid Build Coastguard Worker };
159*8d67ca89SAndroid Build Coastguard Worker #ifdef __cplusplus
160*8d67ca89SAndroid Build Coastguard Worker }
161*8d67ca89SAndroid Build Coastguard Worker #endif
162*8d67ca89SAndroid Build Coastguard Worker #endif
163