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