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