diff options
Diffstat (limited to 'nvdebug.h')
| -rw-r--r-- | nvdebug.h | 52 |
1 files changed, 28 insertions, 24 deletions
| @@ -457,7 +457,7 @@ enum ENGINE_TYPES { | |||
| 457 | ENGINE_COPY2 = 3, // [raw/physical] COPY #2 | 457 | ENGINE_COPY2 = 3, // [raw/physical] COPY #2 |
| 458 | 458 | ||
| 459 | ENGINE_MSPDEC = 8, // Picture DECoder | 459 | ENGINE_MSPDEC = 8, // Picture DECoder |
| 460 | ENGINE_MSPPP = 9, // [Video] Post Processing | 460 | ENGINE_MSPPP = 9, // [Video] Picture Post Processor |
| 461 | ENGINE_MSVLD = 10, // [Video] Variable Length Decoder | 461 | ENGINE_MSVLD = 10, // [Video] Variable Length Decoder |
| 462 | ENGINE_MSENC = 11, // [Video] ENCoding | 462 | ENGINE_MSENC = 11, // [Video] ENCoding |
| 463 | ENGINE_VIC = 12, // Video Image Compositor | 463 | ENGINE_VIC = 12, // Video Image Compositor |
| @@ -468,10 +468,12 @@ enum ENGINE_TYPES { | |||
| 468 | 468 | ||
| 469 | ENGINE_IOCTRL = 18, // I/O ConTRoLler [of NVLINK at least] | 469 | ENGINE_IOCTRL = 18, // I/O ConTRoLler [of NVLINK at least] |
| 470 | ENGINE_LCE = 19, // Logical Copy Engine | 470 | ENGINE_LCE = 19, // Logical Copy Engine |
| 471 | ENGINE_GSP = 20, // Gpu System Processor | 471 | ENGINE_GSP = 20, // Gpu System Processor (Volta+) |
| 472 | ENGINE_NVJPG = 21, // NVidia JPeG [Decoder] (Ampere+) | 472 | ENGINE_NVJPG = 21, // NVidia JPeG [Decoder] (Turing+) |
| 473 | ENGINE_OFA = 22, // Optical Flow Accelerator (Turing+) | ||
| 474 | ENGINE_FLA = 23, // [NVLink] Fabric Logical Addressing [?] | ||
| 473 | }; | 475 | }; |
| 474 | #define ENGINE_TYPES_LEN 22 | 476 | #define ENGINE_TYPES_LEN 24 |
| 475 | static const char* const ENGINE_TYPES_NAMES[ENGINE_TYPES_LEN] = { | 477 | static const char* const ENGINE_TYPES_NAMES[ENGINE_TYPES_LEN] = { |
| 476 | "Graphics/Compute", | 478 | "Graphics/Compute", |
| 477 | "COPY0", | 479 | "COPY0", |
| @@ -495,9 +497,11 @@ static const char* const ENGINE_TYPES_NAMES[ENGINE_TYPES_LEN] = { | |||
| 495 | "LCE: Logical Copy Engine", | 497 | "LCE: Logical Copy Engine", |
| 496 | "GSP: GPU System Processor", | 498 | "GSP: GPU System Processor", |
| 497 | "NVJPG: NVIDIA JPEG Decoder", | 499 | "NVJPG: NVIDIA JPEG Decoder", |
| 500 | "OFA: Optical Flow Accelerator", | ||
| 501 | "FLA: Fabric Logical Addressing", | ||
| 498 | }; | 502 | }; |
| 499 | 503 | ||
| 500 | /* GPU engine information and control register offsets | 504 | /* GPU engine information and control register offsets (GPU TOPology) |
| 501 | Each engine is described by one or more entries (terminated by an entry with | 505 | Each engine is described by one or more entries (terminated by an entry with |
| 502 | the `has_next_entry` flag unset) in the fixed-size PTOP_DEVICE_INFO table. A | 506 | the `has_next_entry` flag unset) in the fixed-size PTOP_DEVICE_INFO table. A |
| 503 | typical device, such as the graphics/compute engine and any copy engines, are | 507 | typical device, such as the graphics/compute engine and any copy engines, are |
| @@ -559,34 +563,34 @@ static const char* const ENGINE_TYPES_NAMES[ENGINE_TYPES_LEN] = { | |||
| 559 | See dev_top.ref.txt of NVIDIA's open-gpu-doc for more info. | 563 | See dev_top.ref.txt of NVIDIA's open-gpu-doc for more info. |
| 560 | */ | 564 | */ |
| 561 | 565 | ||
| 562 | #define NV_PTOP_DEVICE_INFO_AMPERE(i) (0x00022800+(i)*4) | 566 | #define NV_PTOP_DEVICE_INFO_GA100(i) (0x00022800+(i)*4) |
| 563 | #define NV_PTOP_DEVICE_INFO_PREVIOUS(i) (0x00022700+(i)*4) | 567 | #define NV_PTOP_DEVICE_INFO_GK104(i) (0x00022700+(i)*4) |
| 564 | #define NV_PTOP_DEVICE_INFO__SIZE_1_AMPERE(g) (nvdebug_readl(g, 0x0224fc) >> 20) | 568 | #define NV_PTOP_DEVICE_INFO__SIZE_1_GA100(g) (nvdebug_readl(g, 0x0224fc) >> 20) |
| 565 | #define NV_PTOP_DEVICE_INFO__SIZE_1_PREVIOUS 64 | 569 | #define NV_PTOP_DEVICE_INFO__SIZE_1_GK104 64 |
| 566 | #define NV_PTOP_DEVICE_INFO_TYPE_COUNT 3 | 570 | #define NV_PTOP_DEVICE_INFO_TYPE_COUNT 3 |
| 567 | typedef union { | 571 | typedef union { |
| 568 | struct { | 572 | struct { |
| 569 | uint32_t fault_id:7; | 573 | uint32_t fault_id:11; |
| 570 | uint32_t padding0:9; | 574 | uint32_t padding0:5; |
| 571 | uint32_t inst_id:4; | 575 | uint32_t inst_id:8; |
| 572 | uint32_t padding1:4; | 576 | enum ENGINE_TYPES engine_type:7; // "type_enum" |
| 573 | enum ENGINE_TYPES engine_type:7; | ||
| 574 | bool has_next_entry:1; | 577 | bool has_next_entry:1; |
| 575 | } __attribute__((packed)); | 578 | } __attribute__((packed)); |
| 576 | struct { | 579 | struct { |
| 577 | uint32_t reset_enum:5; | 580 | uint32_t reset_enum:8; // "reset_id" |
| 578 | uint32_t padding2:7; | 581 | uint32_t pri_base:18; // "device_pri_base" |
| 579 | uint32_t pri_base:12; | 582 | uint32_t padding1:4; |
| 580 | uint32_t padding3:8; | 583 | uint32_t is_engine:1; |
| 584 | uint32_t padding2:1; | ||
| 581 | } __attribute__((packed)); | 585 | } __attribute__((packed)); |
| 582 | struct { | 586 | struct { |
| 583 | uint32_t engine_enum:2; | 587 | uint32_t engine_enum:2; // "rleng_id" |
| 584 | uint32_t padding4:8; | 588 | uint32_t padding3:8; |
| 585 | uint32_t runlist_enum:14; | 589 | uint32_t runlist_enum:16; // "runlist_pri_base" |
| 586 | uint32_t padding5:8; | 590 | uint32_t padding4:6; |
| 587 | } __attribute__((packed)); | 591 | } __attribute__((packed)); |
| 588 | uint32_t raw; | 592 | uint32_t raw; |
| 589 | } ptop_device_info_ampere_t; | 593 | } ptop_device_info_ga100_t; |
| 590 | 594 | ||
| 591 | typedef union { | 595 | typedef union { |
| 592 | // DATA type fields | 596 | // DATA type fields |
| @@ -625,7 +629,7 @@ typedef union { | |||
| 625 | uint32_t padding9:1; | 629 | uint32_t padding9:1; |
| 626 | } __attribute__((packed)); | 630 | } __attribute__((packed)); |
| 627 | uint32_t raw; | 631 | uint32_t raw; |
| 628 | } ptop_device_info_previous_t; | 632 | } ptop_device_info_gk104_t; |
| 629 | 633 | ||
| 630 | #define NV_PTOP_SCAL_NUM_GPCS 0x00022430 | 634 | #define NV_PTOP_SCAL_NUM_GPCS 0x00022430 |
| 631 | #define NV_PTOP_SCAL_NUM_TPC_PER_GPC 0x00022434 | 635 | #define NV_PTOP_SCAL_NUM_TPC_PER_GPC 0x00022434 |
