xref: /aosp_15_r20/external/mesa3d/src/freedreno/afuc/util.h (revision 6104692788411f58d303aa86923a9ff6ecaded22)
1 /*
2  * Copyright © 2021 Google, Inc.
3  * SPDX-License-Identifier: MIT
4  */
5 
6 #ifndef _UTIL_H_
7 #define _UTIL_H_
8 
9 #include <stdbool.h>
10 
11 /*
12  * AFUC disasm / asm helpers
13  */
14 
15 unsigned afuc_control_reg(const char *name);
16 char * afuc_control_reg_name(unsigned id);
17 
18 unsigned afuc_sqe_reg(const char *name);
19 char * afuc_sqe_reg_name(unsigned id);
20 
21 unsigned afuc_pipe_reg(const char *name);
22 char * afuc_pipe_reg_name(unsigned id);
23 bool afuc_pipe_reg_is_void(unsigned id);
24 
25 unsigned afuc_gpu_reg(const char *name);
26 char * afuc_gpu_reg_name(unsigned id);
27 
28 unsigned afuc_gpr_reg(const char *name);
29 
30 int afuc_pm4_id(const char *name);
31 const char * afuc_pm_id_name(unsigned id);
32 
33 enum afuc_color {
34    AFUC_ERR,
35    AFUC_LBL,
36 };
37 
38 void afuc_printc(enum afuc_color c, const char *fmt, ...);
39 
40 enum afuc_fwid {
41    AFUC_A730 = 0x730,
42    AFUC_A740 = 0x740,
43    AFUC_A750 = 0x520,
44 
45    AFUC_A630 = 0x6ee,
46    AFUC_A650 = 0x6dc,
47    AFUC_A660 = 0x6dd,
48 
49    AFUC_A530 = 0x5ff,
50 };
51 
52 static inline enum afuc_fwid
afuc_get_fwid(uint32_t first_dword)53 afuc_get_fwid(uint32_t first_dword)
54 {
55    /* The firmware ID is in bits 12-24 of the first dword */
56    return (first_dword >> 12) & 0xfff;
57 }
58 
59 int afuc_util_init(enum afuc_fwid fw_id, int *gpuver, bool colors);
60 
61 #endif /* _UTIL_H_ */
62