1 // This file is automatically generated by rmconfig - DO NOT EDIT!
2 //
3 // HAL support for use in HAL setup
4 //
5 // Profile:  shipping-gpus-openrm
6 // Template: templates/gt_hal.h
7 //
8 
9 #ifndef _G_RMCFG_HAL_H_
10 #define _G_RMCFG_HAL_H_
11 
12 
13 typedef struct DISP_HAL_IFACES    *PDISP_HAL_IFACES;
14 typedef struct DPU_HAL_IFACES     *PDPU_HAL_IFACES;
15 typedef struct GPIO_HAL_IFACES    *PGPIO_HAL_IFACES;
16 typedef struct RPC_HAL_IFACES     *PRPC_HAL_IFACES;
17 typedef struct RPCSTRUCTURECOPY_HAL_IFACES *PRPCSTRUCTURECOPY_HAL_IFACES;
18 
19 
20 
21 //
22 // per-GPU list of function ptrs to setup iface for each engine
23 //
24 
25 typedef struct {
26 
27     void (*rpcHalIfacesSetupFn)(PRPC_HAL_IFACES pRpcHal);
28 
29 } HAL_IFACE_SETUP, *PHAL_IFACE_SETUP;
30 
31 
32 
33 //
34 // IP_VERSIONS support
35 //
36 
37 typedef struct IGRP_IP_VERSIONS_TABLE_INFO IGRP_IP_VERSIONS_TABLE_INFO;
38 
39 // generic form of Head_iGrp_ipVersions_getInfo typedef
40 
41 typedef void      IGrp_ipVersions_install(IGRP_IP_VERSIONS_TABLE_INFO *);
42 typedef NV_STATUS  IGrp_ipVersions_wrapup(IGRP_IP_VERSIONS_TABLE_INFO *);
43 
44 // a single inclusive version range
45 typedef struct {
46     NvU32  v0;
47     NvU32  v1;
48 } IGRP_IP_VERSION_RANGE;
49 
50 
51 typedef struct {
52     const IGRP_IP_VERSION_RANGE   *pRanges;
53     NvU32                          numRanges;
54     IGrp_ipVersions_install       *ifacesInstallFn;
55 } IGRP_IP_VERSIONS_ENTRY;
56 
57 
58 struct IGRP_IP_VERSIONS_TABLE_INFO {
59     POBJGPU                       pGpu;
60     Dynamic                      *pDynamic;             // eg: pBiff
61 
62     const IGRP_IP_VERSIONS_ENTRY *pTable;
63     NvU32                         numEntries;
64     IGrp_ipVersions_wrapup       *ifacesWrapupFn;       // overrides and asserts
65 };
66 
67 // HAL_IMPLEMENTATION enum
68 typedef enum
69 {
70     HAL_IMPL_GF100,
71     HAL_IMPL_GF100B,
72     HAL_IMPL_GF104,
73     HAL_IMPL_GF104B,
74     HAL_IMPL_GF106,
75     HAL_IMPL_GF106B,
76     HAL_IMPL_GF108,
77     HAL_IMPL_GF110D,
78     HAL_IMPL_GF110,
79     HAL_IMPL_GF117,
80     HAL_IMPL_GF118,
81     HAL_IMPL_GF119,
82     HAL_IMPL_GF110F,
83     HAL_IMPL_GF110F2,
84     HAL_IMPL_GF110F3,
85     HAL_IMPL_GK104,
86     HAL_IMPL_GK106,
87     HAL_IMPL_GK107,
88     HAL_IMPL_GK20A,
89     HAL_IMPL_GK110,
90     HAL_IMPL_GK110B,
91     HAL_IMPL_GK110C,
92     HAL_IMPL_GK208,
93     HAL_IMPL_GK208S,
94     HAL_IMPL_GM107,
95     HAL_IMPL_GM108,
96     HAL_IMPL_GM200,
97     HAL_IMPL_GM204,
98     HAL_IMPL_GM206,
99     HAL_IMPL_GP100,
100     HAL_IMPL_GP102,
101     HAL_IMPL_GP104,
102     HAL_IMPL_GP106,
103     HAL_IMPL_GP107,
104     HAL_IMPL_GP108,
105     HAL_IMPL_GV100,
106     HAL_IMPL_GV11B,
107     HAL_IMPL_TU102,
108     HAL_IMPL_TU104,
109     HAL_IMPL_TU106,
110     HAL_IMPL_TU116,
111     HAL_IMPL_TU117,
112     HAL_IMPL_GA100,
113     HAL_IMPL_GA102,
114     HAL_IMPL_GA103,
115     HAL_IMPL_GA104,
116     HAL_IMPL_GA106,
117     HAL_IMPL_GA107,
118     HAL_IMPL_GA10B,
119     HAL_IMPL_GA102F,
120     HAL_IMPL_AD102,
121     HAL_IMPL_AD103,
122     HAL_IMPL_AD104,
123     HAL_IMPL_AD106,
124     HAL_IMPL_AD107,
125     HAL_IMPL_GH100,
126     HAL_IMPL_T001_FERMI_NOT_EXIST,
127     HAL_IMPL_T124,
128     HAL_IMPL_T132,
129     HAL_IMPL_T210,
130     HAL_IMPL_T186,
131     HAL_IMPL_T194,
132     HAL_IMPL_T002_TURING_NOT_EXIST,
133     HAL_IMPL_T234,
134     HAL_IMPL_T003_HOPPER_NOT_EXIST,
135     HAL_IMPL_T004_ADA_NOT_EXIST,
136     HAL_IMPL_T234D,
137     HAL_IMPL_AMODEL,
138 
139     HAL_IMPL_MAXIMUM,       // NOTE: this symbol must be at the end of the enum list.
140                             // It is used to allocate arrays and control loop iterations.
141 } HAL_IMPLEMENTATION;
142 
143 //
144 // HAL implementation names for debug & logging use
145 //
146 #define HAL_IMPL_NAME_LIST \
147     { HAL_IMPL_TU102, "TU102" }, \
148     { HAL_IMPL_TU104, "TU104" }, \
149     { HAL_IMPL_TU106, "TU106" }, \
150     { HAL_IMPL_TU116, "TU116" }, \
151     { HAL_IMPL_TU117, "TU117" }, \
152     { HAL_IMPL_GA100, "GA100" }, \
153     { HAL_IMPL_GA102, "GA102" }, \
154     { HAL_IMPL_GA103, "GA103" }, \
155     { HAL_IMPL_GA104, "GA104" }, \
156     { HAL_IMPL_GA106, "GA106" }, \
157     { HAL_IMPL_GA107, "GA107" }, \
158     { HAL_IMPL_AD102, "AD102" }, \
159     { HAL_IMPL_AD103, "AD103" }, \
160     { HAL_IMPL_AD104, "AD104" }, \
161     { HAL_IMPL_AD106, "AD106" }, \
162     { HAL_IMPL_AD107, "AD107" }, \
163     { HAL_IMPL_GH100, "GH100" }
164 
165 
166 #endif  // _G_RMCFG_HAL_H_
167