FILE
engine.h
File preview with syntax highlighting.
linux-6.19.14/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r570/nvrm/engine.h
1/* SPDX-License-Identifier: MIT */ 2 3/* Copyright (c) 2025, NVIDIA CORPORATION. All rights reserved. */ 4 5#ifndef __NVRM_ENGINE_H__ 6#define __NVRM_ENGINE_H__ 7#include <nvrm/nvtypes.h> 8 9/* Excerpt of RM headers from https://github.com/NVIDIA/open-gpu-kernel-modules/tree/570.144 */ 10 11#define MC_ENGINE_IDX_NULL 0 // This must be 0 12#define MC_ENGINE_IDX_TMR 1 13#define MC_ENGINE_IDX_DISP 2 14#define MC_ENGINE_IDX_FB 3 15#define MC_ENGINE_IDX_FIFO 4 16#define MC_ENGINE_IDX_VIDEO 5 17#define MC_ENGINE_IDX_MD 6 18#define MC_ENGINE_IDX_BUS 7 19#define MC_ENGINE_IDX_PMGR 8 20#define MC_ENGINE_IDX_VP2 9 21#define MC_ENGINE_IDX_CIPHER 10 22#define MC_ENGINE_IDX_BIF 11 23#define MC_ENGINE_IDX_PPP 12 24#define MC_ENGINE_IDX_PRIVRING 13 25#define MC_ENGINE_IDX_PMU 14 26#define MC_ENGINE_IDX_CE0 15 27#define MC_ENGINE_IDX_CE1 16 28#define MC_ENGINE_IDX_CE2 17 29#define MC_ENGINE_IDX_CE3 18 30#define MC_ENGINE_IDX_CE4 19 31#define MC_ENGINE_IDX_CE5 20 32#define MC_ENGINE_IDX_CE6 21 33#define MC_ENGINE_IDX_CE7 22 34#define MC_ENGINE_IDX_CE8 23 35#define MC_ENGINE_IDX_CE9 24 36#define MC_ENGINE_IDX_CE10 25 37#define MC_ENGINE_IDX_CE11 26 38#define MC_ENGINE_IDX_CE12 27 39#define MC_ENGINE_IDX_CE13 28 40#define MC_ENGINE_IDX_CE14 29 41#define MC_ENGINE_IDX_CE15 30 42#define MC_ENGINE_IDX_CE16 31 43#define MC_ENGINE_IDX_CE17 32 44#define MC_ENGINE_IDX_CE18 33 45#define MC_ENGINE_IDX_CE19 34 46#define MC_ENGINE_IDX_CE_MAX MC_ENGINE_IDX_CE19 47#define MC_ENGINE_IDX_VIC 35 48#define MC_ENGINE_IDX_ISOHUB 36 49#define MC_ENGINE_IDX_VGPU 37 50#define MC_ENGINE_IDX_NVENC 38 51#define MC_ENGINE_IDX_NVENC1 39 52#define MC_ENGINE_IDX_NVENC2 40 53#define MC_ENGINE_IDX_NVENC3 41 54#define MC_ENGINE_IDX_C2C 42 55#define MC_ENGINE_IDX_LTC 43 56#define MC_ENGINE_IDX_FBHUB 44 57#define MC_ENGINE_IDX_HDACODEC 45 58#define MC_ENGINE_IDX_GMMU 46 59#define MC_ENGINE_IDX_SEC2 47 60#define MC_ENGINE_IDX_FSP 48 61#define MC_ENGINE_IDX_NVLINK 49 62#define MC_ENGINE_IDX_GSP 50 63#define MC_ENGINE_IDX_NVJPG 51 64#define MC_ENGINE_IDX_NVJPEG MC_ENGINE_IDX_NVJPG 65#define MC_ENGINE_IDX_NVJPEG0 MC_ENGINE_IDX_NVJPEG 66#define MC_ENGINE_IDX_NVJPEG1 52 67#define MC_ENGINE_IDX_NVJPEG2 53 68#define MC_ENGINE_IDX_NVJPEG3 54 69#define MC_ENGINE_IDX_NVJPEG4 55 70#define MC_ENGINE_IDX_NVJPEG5 56 71#define MC_ENGINE_IDX_NVJPEG6 57 72#define MC_ENGINE_IDX_NVJPEG7 58 73#define MC_ENGINE_IDX_REPLAYABLE_FAULT 59 74#define MC_ENGINE_IDX_ACCESS_CNTR 60 75#define MC_ENGINE_IDX_NON_REPLAYABLE_FAULT 61 76#define MC_ENGINE_IDX_REPLAYABLE_FAULT_ERROR 62 77#define MC_ENGINE_IDX_NON_REPLAYABLE_FAULT_ERROR 63 78#define MC_ENGINE_IDX_INFO_FAULT 64 79#define MC_ENGINE_IDX_BSP 65 80#define MC_ENGINE_IDX_NVDEC MC_ENGINE_IDX_BSP 81#define MC_ENGINE_IDX_NVDEC0 MC_ENGINE_IDX_NVDEC 82#define MC_ENGINE_IDX_NVDEC1 66 83#define MC_ENGINE_IDX_NVDEC2 67 84#define MC_ENGINE_IDX_NVDEC3 68 85#define MC_ENGINE_IDX_NVDEC4 69 86#define MC_ENGINE_IDX_NVDEC5 70 87#define MC_ENGINE_IDX_NVDEC6 71 88#define MC_ENGINE_IDX_NVDEC7 72 89#define MC_ENGINE_IDX_CPU_DOORBELL 73 90#define MC_ENGINE_IDX_PRIV_DOORBELL 74 91#define MC_ENGINE_IDX_MMU_ECC_ERROR 75 92#define MC_ENGINE_IDX_BLG 76 93#define MC_ENGINE_IDX_PERFMON 77 94#define MC_ENGINE_IDX_BUF_RESET 78 95#define MC_ENGINE_IDX_XBAR 79 96#define MC_ENGINE_IDX_ZPW 80 97#define MC_ENGINE_IDX_OFA0 81 98#define MC_ENGINE_IDX_OFA1 82 99#define MC_ENGINE_IDX_TEGRA 83 100#define MC_ENGINE_IDX_GR 84 101#define MC_ENGINE_IDX_GR0 MC_ENGINE_IDX_GR 102#define MC_ENGINE_IDX_GR1 85 103#define MC_ENGINE_IDX_GR2 86 104#define MC_ENGINE_IDX_GR3 87 105#define MC_ENGINE_IDX_GR4 88 106#define MC_ENGINE_IDX_GR5 89 107#define MC_ENGINE_IDX_GR6 90 108#define MC_ENGINE_IDX_GR7 91 109#define MC_ENGINE_IDX_ESCHED 92 110#define MC_ENGINE_IDX_ESCHED__SIZE 64 111#define MC_ENGINE_IDX_GR_FECS_LOG 156 112#define MC_ENGINE_IDX_GR0_FECS_LOG MC_ENGINE_IDX_GR_FECS_LOG 113#define MC_ENGINE_IDX_GR1_FECS_LOG 157 114#define MC_ENGINE_IDX_GR2_FECS_LOG 158 115#define MC_ENGINE_IDX_GR3_FECS_LOG 159 116#define MC_ENGINE_IDX_GR4_FECS_LOG 160 117#define MC_ENGINE_IDX_GR5_FECS_LOG 161 118#define MC_ENGINE_IDX_GR6_FECS_LOG 162 119#define MC_ENGINE_IDX_GR7_FECS_LOG 163 120#define MC_ENGINE_IDX_TMR_SWRL 164 121#define MC_ENGINE_IDX_DISP_GSP 165 122#define MC_ENGINE_IDX_REPLAYABLE_FAULT_CPU 166 123#define MC_ENGINE_IDX_NON_REPLAYABLE_FAULT_CPU 167 124#define MC_ENGINE_IDX_PXUC 168 125#define MC_ENGINE_IDX_SYSLTC 169 126#define MC_ENGINE_IDX_LRCC 170 127#define MC_ENGINE_IDX_GSPLITE 171 128#define MC_ENGINE_IDX_GSPLITE0 MC_ENGINE_IDX_GSPLITE 129#define MC_ENGINE_IDX_GSPLITE1 172 130#define MC_ENGINE_IDX_GSPLITE2 173 131#define MC_ENGINE_IDX_GSPLITE3 174 132#define MC_ENGINE_IDX_GSPLITE_MAX MC_ENGINE_IDX_GSPLITE3 133#define MC_ENGINE_IDX_DPAUX 175 134#define MC_ENGINE_IDX_DISP_LOW 176 135#define MC_ENGINE_IDX_MAX 177 136 137typedef enum 138{ 139 RM_ENGINE_TYPE_NULL = (0x00000000), 140 RM_ENGINE_TYPE_GR0 = (0x00000001), 141 RM_ENGINE_TYPE_GR1 = (0x00000002), 142 RM_ENGINE_TYPE_GR2 = (0x00000003), 143 RM_ENGINE_TYPE_GR3 = (0x00000004), 144 RM_ENGINE_TYPE_GR4 = (0x00000005), 145 RM_ENGINE_TYPE_GR5 = (0x00000006), 146 RM_ENGINE_TYPE_GR6 = (0x00000007), 147 RM_ENGINE_TYPE_GR7 = (0x00000008), 148 RM_ENGINE_TYPE_COPY0 = (0x00000009), 149 RM_ENGINE_TYPE_COPY1 = (0x0000000a), 150 RM_ENGINE_TYPE_COPY2 = (0x0000000b), 151 RM_ENGINE_TYPE_COPY3 = (0x0000000c), 152 RM_ENGINE_TYPE_COPY4 = (0x0000000d), 153 RM_ENGINE_TYPE_COPY5 = (0x0000000e), 154 RM_ENGINE_TYPE_COPY6 = (0x0000000f), 155 RM_ENGINE_TYPE_COPY7 = (0x00000010), 156 RM_ENGINE_TYPE_COPY8 = (0x00000011), 157 RM_ENGINE_TYPE_COPY9 = (0x00000012), 158 RM_ENGINE_TYPE_COPY10 = (0x00000013), 159 RM_ENGINE_TYPE_COPY11 = (0x00000014), 160 RM_ENGINE_TYPE_COPY12 = (0x00000015), 161 RM_ENGINE_TYPE_COPY13 = (0x00000016), 162 RM_ENGINE_TYPE_COPY14 = (0x00000017), 163 RM_ENGINE_TYPE_COPY15 = (0x00000018), 164 RM_ENGINE_TYPE_COPY16 = (0x00000019), 165 RM_ENGINE_TYPE_COPY17 = (0x0000001a), 166 RM_ENGINE_TYPE_COPY18 = (0x0000001b), 167 RM_ENGINE_TYPE_COPY19 = (0x0000001c), 168 RM_ENGINE_TYPE_NVDEC0 = (0x0000001d), 169 RM_ENGINE_TYPE_NVDEC1 = (0x0000001e), 170 RM_ENGINE_TYPE_NVDEC2 = (0x0000001f), 171 RM_ENGINE_TYPE_NVDEC3 = (0x00000020), 172 RM_ENGINE_TYPE_NVDEC4 = (0x00000021), 173 RM_ENGINE_TYPE_NVDEC5 = (0x00000022), 174 RM_ENGINE_TYPE_NVDEC6 = (0x00000023), 175 RM_ENGINE_TYPE_NVDEC7 = (0x00000024), 176 RM_ENGINE_TYPE_NVENC0 = (0x00000025), 177 RM_ENGINE_TYPE_NVENC1 = (0x00000026), 178 RM_ENGINE_TYPE_NVENC2 = (0x00000027), 179 // Bug 4175886 - Use this new value for all chips once GB20X is released 180 RM_ENGINE_TYPE_NVENC3 = (0x00000028), 181 RM_ENGINE_TYPE_VP = (0x00000029), 182 RM_ENGINE_TYPE_ME = (0x0000002a), 183 RM_ENGINE_TYPE_PPP = (0x0000002b), 184 RM_ENGINE_TYPE_MPEG = (0x0000002c), 185 RM_ENGINE_TYPE_SW = (0x0000002d), 186 RM_ENGINE_TYPE_TSEC = (0x0000002e), 187 RM_ENGINE_TYPE_VIC = (0x0000002f), 188 RM_ENGINE_TYPE_MP = (0x00000030), 189 RM_ENGINE_TYPE_SEC2 = (0x00000031), 190 RM_ENGINE_TYPE_HOST = (0x00000032), 191 RM_ENGINE_TYPE_DPU = (0x00000033), 192 RM_ENGINE_TYPE_PMU = (0x00000034), 193 RM_ENGINE_TYPE_FBFLCN = (0x00000035), 194 RM_ENGINE_TYPE_NVJPEG0 = (0x00000036), 195 RM_ENGINE_TYPE_NVJPEG1 = (0x00000037), 196 RM_ENGINE_TYPE_NVJPEG2 = (0x00000038), 197 RM_ENGINE_TYPE_NVJPEG3 = (0x00000039), 198 RM_ENGINE_TYPE_NVJPEG4 = (0x0000003a), 199 RM_ENGINE_TYPE_NVJPEG5 = (0x0000003b), 200 RM_ENGINE_TYPE_NVJPEG6 = (0x0000003c), 201 RM_ENGINE_TYPE_NVJPEG7 = (0x0000003d), 202 RM_ENGINE_TYPE_OFA0 = (0x0000003e), 203 RM_ENGINE_TYPE_OFA1 = (0x0000003f), 204 RM_ENGINE_TYPE_RESERVED40 = (0x00000040), 205 RM_ENGINE_TYPE_RESERVED41 = (0x00000041), 206 RM_ENGINE_TYPE_RESERVED42 = (0x00000042), 207 RM_ENGINE_TYPE_RESERVED43 = (0x00000043), 208 RM_ENGINE_TYPE_RESERVED44 = (0x00000044), 209 RM_ENGINE_TYPE_RESERVED45 = (0x00000045), 210 RM_ENGINE_TYPE_RESERVED46 = (0x00000046), 211 RM_ENGINE_TYPE_RESERVED47 = (0x00000047), 212 RM_ENGINE_TYPE_RESERVED48 = (0x00000048), 213 RM_ENGINE_TYPE_RESERVED49 = (0x00000049), 214 RM_ENGINE_TYPE_RESERVED4a = (0x0000004a), 215 RM_ENGINE_TYPE_RESERVED4b = (0x0000004b), 216 RM_ENGINE_TYPE_RESERVED4c = (0x0000004c), 217 RM_ENGINE_TYPE_RESERVED4d = (0x0000004d), 218 RM_ENGINE_TYPE_RESERVED4e = (0x0000004e), 219 RM_ENGINE_TYPE_RESERVED4f = (0x0000004f), 220 RM_ENGINE_TYPE_RESERVED50 = (0x00000050), 221 RM_ENGINE_TYPE_RESERVED51 = (0x00000051), 222 RM_ENGINE_TYPE_RESERVED52 = (0x00000052), 223 RM_ENGINE_TYPE_RESERVED53 = (0x00000053), 224 RM_ENGINE_TYPE_LAST = (0x00000054), 225} RM_ENGINE_TYPE; 226 227#define NV2080_ENGINE_TYPE_NULL (0x00000000) 228#define NV2080_ENGINE_TYPE_GRAPHICS (0x00000001) 229#define NV2080_ENGINE_TYPE_GR0 NV2080_ENGINE_TYPE_GRAPHICS 230#define NV2080_ENGINE_TYPE_GR1 (0x00000002) 231#define NV2080_ENGINE_TYPE_GR2 (0x00000003) 232#define NV2080_ENGINE_TYPE_GR3 (0x00000004) 233#define NV2080_ENGINE_TYPE_GR4 (0x00000005) 234#define NV2080_ENGINE_TYPE_GR5 (0x00000006) 235#define NV2080_ENGINE_TYPE_GR6 (0x00000007) 236#define NV2080_ENGINE_TYPE_GR7 (0x00000008) 237#define NV2080_ENGINE_TYPE_COPY0 (0x00000009) 238#define NV2080_ENGINE_TYPE_COPY1 (0x0000000a) 239#define NV2080_ENGINE_TYPE_COPY2 (0x0000000b) 240#define NV2080_ENGINE_TYPE_COPY3 (0x0000000c) 241#define NV2080_ENGINE_TYPE_COPY4 (0x0000000d) 242#define NV2080_ENGINE_TYPE_COPY5 (0x0000000e) 243#define NV2080_ENGINE_TYPE_COPY6 (0x0000000f) 244#define NV2080_ENGINE_TYPE_COPY7 (0x00000010) 245#define NV2080_ENGINE_TYPE_COPY8 (0x00000011) 246#define NV2080_ENGINE_TYPE_COPY9 (0x00000012) 247#define NV2080_ENGINE_TYPE_BSP (0x00000013) 248#define NV2080_ENGINE_TYPE_NVDEC0 NV2080_ENGINE_TYPE_BSP 249#define NV2080_ENGINE_TYPE_NVDEC1 (0x00000014) 250#define NV2080_ENGINE_TYPE_NVDEC2 (0x00000015) 251#define NV2080_ENGINE_TYPE_NVDEC3 (0x00000016) 252#define NV2080_ENGINE_TYPE_NVDEC4 (0x00000017) 253#define NV2080_ENGINE_TYPE_NVDEC5 (0x00000018) 254#define NV2080_ENGINE_TYPE_NVDEC6 (0x00000019) 255#define NV2080_ENGINE_TYPE_NVDEC7 (0x0000001a) 256#define NV2080_ENGINE_TYPE_MSENC (0x0000001b) 257#define NV2080_ENGINE_TYPE_NVENC0 NV2080_ENGINE_TYPE_MSENC /* Mutually exclusive alias */ 258#define NV2080_ENGINE_TYPE_NVENC1 (0x0000001c) 259#define NV2080_ENGINE_TYPE_NVENC2 (0x0000001d) 260#define NV2080_ENGINE_TYPE_VP (0x0000001e) 261#define NV2080_ENGINE_TYPE_ME (0x0000001f) 262#define NV2080_ENGINE_TYPE_PPP (0x00000020) 263#define NV2080_ENGINE_TYPE_MPEG (0x00000021) 264#define NV2080_ENGINE_TYPE_SW (0x00000022) 265#define NV2080_ENGINE_TYPE_CIPHER (0x00000023) 266#define NV2080_ENGINE_TYPE_TSEC NV2080_ENGINE_TYPE_CIPHER 267#define NV2080_ENGINE_TYPE_VIC (0x00000024) 268#define NV2080_ENGINE_TYPE_MP (0x00000025) 269#define NV2080_ENGINE_TYPE_SEC2 (0x00000026) 270#define NV2080_ENGINE_TYPE_HOST (0x00000027) 271#define NV2080_ENGINE_TYPE_DPU (0x00000028) 272#define NV2080_ENGINE_TYPE_PMU (0x00000029) 273#define NV2080_ENGINE_TYPE_FBFLCN (0x0000002a) 274#define NV2080_ENGINE_TYPE_NVJPG (0x0000002b) 275#define NV2080_ENGINE_TYPE_NVJPEG0 NV2080_ENGINE_TYPE_NVJPG 276#define NV2080_ENGINE_TYPE_NVJPEG1 (0x0000002c) 277#define NV2080_ENGINE_TYPE_NVJPEG2 (0x0000002d) 278#define NV2080_ENGINE_TYPE_NVJPEG3 (0x0000002e) 279#define NV2080_ENGINE_TYPE_NVJPEG4 (0x0000002f) 280#define NV2080_ENGINE_TYPE_NVJPEG5 (0x00000030) 281#define NV2080_ENGINE_TYPE_NVJPEG6 (0x00000031) 282#define NV2080_ENGINE_TYPE_NVJPEG7 (0x00000032) 283#define NV2080_ENGINE_TYPE_OFA (0x00000033) 284#define NV2080_ENGINE_TYPE_OFA0 NV2080_ENGINE_TYPE_OFA 285#define NV2080_ENGINE_TYPE_COPY10 (0x00000034) 286#define NV2080_ENGINE_TYPE_COPY11 (0x00000035) 287#define NV2080_ENGINE_TYPE_COPY12 (0x00000036) 288#define NV2080_ENGINE_TYPE_COPY13 (0x00000037) 289#define NV2080_ENGINE_TYPE_COPY14 (0x00000038) 290#define NV2080_ENGINE_TYPE_COPY15 (0x00000039) 291#define NV2080_ENGINE_TYPE_COPY16 (0x0000003a) 292#define NV2080_ENGINE_TYPE_COPY17 (0x0000003b) 293#define NV2080_ENGINE_TYPE_COPY18 (0x0000003c) 294#define NV2080_ENGINE_TYPE_COPY19 (0x0000003d) 295#define NV2080_ENGINE_TYPE_OFA1 (0x0000003e) 296#define NV2080_ENGINE_TYPE_NVENC3 (0x0000003f) 297#define NV2080_ENGINE_TYPE_COMP_DECOMP_COPY0 (0x00000040) 298#define NV2080_ENGINE_TYPE_COMP_DECOMP_COPY1 (0x00000041) 299#define NV2080_ENGINE_TYPE_COMP_DECOMP_COPY2 (0x00000042) 300#define NV2080_ENGINE_TYPE_COMP_DECOMP_COPY3 (0x00000043) 301#define NV2080_ENGINE_TYPE_COMP_DECOMP_COPY4 (0x00000044) 302#define NV2080_ENGINE_TYPE_COMP_DECOMP_COPY5 (0x00000045) 303#define NV2080_ENGINE_TYPE_COMP_DECOMP_COPY6 (0x00000046) 304#define NV2080_ENGINE_TYPE_COMP_DECOMP_COPY7 (0x00000047) 305#define NV2080_ENGINE_TYPE_COMP_DECOMP_COPY8 (0x00000048) 306#define NV2080_ENGINE_TYPE_COMP_DECOMP_COPY9 (0x00000049) 307#define NV2080_ENGINE_TYPE_COMP_DECOMP_COPY10 (0x0000004a) 308#define NV2080_ENGINE_TYPE_COMP_DECOMP_COPY11 (0x0000004b) 309#define NV2080_ENGINE_TYPE_COMP_DECOMP_COPY12 (0x0000004c) 310#define NV2080_ENGINE_TYPE_COMP_DECOMP_COPY13 (0x0000004d) 311#define NV2080_ENGINE_TYPE_COMP_DECOMP_COPY14 (0x0000004e) 312#define NV2080_ENGINE_TYPE_COMP_DECOMP_COPY15 (0x0000004f) 313#define NV2080_ENGINE_TYPE_COMP_DECOMP_COPY16 (0x00000050) 314#define NV2080_ENGINE_TYPE_COMP_DECOMP_COPY17 (0x00000051) 315#define NV2080_ENGINE_TYPE_COMP_DECOMP_COPY18 (0x00000052) 316#define NV2080_ENGINE_TYPE_COMP_DECOMP_COPY19 (0x00000053) 317#define NV2080_ENGINE_TYPE_LAST (0x00000054) 318#endif
~/
Read-only file preview.