diff options
Diffstat (limited to 'nvdebug.h')
-rw-r--r-- | nvdebug.h | 46 |
1 files changed, 33 insertions, 13 deletions
@@ -436,7 +436,9 @@ typedef union { | |||
436 | #define NV_MC_BOOT_0 0x00000000 | 436 | #define NV_MC_BOOT_0 0x00000000 |
437 | #define NV_CHIP_ID_GP106 0x136 // Discrete GeForce GTX 1060 | 437 | #define NV_CHIP_ID_GP106 0x136 // Discrete GeForce GTX 1060 |
438 | #define NV_CHIP_ID_GV11B 0x15B // Jetson Xavier embedded GPU | 438 | #define NV_CHIP_ID_GV11B 0x15B // Jetson Xavier embedded GPU |
439 | |||
439 | #define NV_CHIP_ID_KEPLER 0x0E0 | 440 | #define NV_CHIP_ID_KEPLER 0x0E0 |
441 | #define NV_CHIP_ID_MAXWELL 0x120 | ||
440 | #define NV_CHIP_ID_PASCAL 0x130 | 442 | #define NV_CHIP_ID_PASCAL 0x130 |
441 | #define NV_CHIP_ID_VOLTA 0x140 | 443 | #define NV_CHIP_ID_VOLTA 0x140 |
442 | #define NV_CHIP_ID_VOLTA_INTEGRATED 0x150 | 444 | #define NV_CHIP_ID_VOLTA_INTEGRATED 0x150 |
@@ -700,29 +702,47 @@ typedef union { | |||
700 | uint32_t raw; | 702 | uint32_t raw; |
701 | } ptop_device_info_gk104_t; | 703 | } ptop_device_info_gk104_t; |
702 | 704 | ||
703 | /* Graphics Processing Cluster (GPC) information | 705 | /* Graphics Processing Cluster (GPC) on-chip information |
704 | The GPU's Compute/Graphics engine is subdivided into Graphics Processing | 706 | The GPU's Compute/Graphics engine is subdivided into Graphics Processing |
705 | Clusters (also known as GPU Processing Clusters, starting with Ampere). | 707 | Clusters (also known as GPU Processing Clusters, starting with Ampere). |
706 | 708 | ||
707 | Each GPC is subdivided into Texture Processing Clusters (TPCs) which contain | 709 | Each GPC is subdivided into Texture Processing Clusters (TPCs) which contain |
708 | Streaming Multiprocessors (SMs). | 710 | Streaming Multiprocessors (SMs). |
709 | 711 | ||
712 | The number of these units etched onto the chip may vary from the number | ||
713 | enabled and software-visible. These registers expose the number of on-chip | ||
714 | GPCs, the number of on-chip TPCs inside a GPC. | ||
710 | 715 | ||
716 | Support: Fermi through (at least) Blackwell | ||
711 | */ | 717 | */ |
712 | // Support: Fermi through Blackwell | ||
713 | // Get the number of GPCs **on die** | ||
714 | #define NV_PTOP_SCAL_NUM_GPCS 0x00022430 | 718 | #define NV_PTOP_SCAL_NUM_GPCS 0x00022430 |
715 | // Get the number of TPCs per GPC **on die** | ||
716 | #define NV_PTOP_SCAL_NUM_TPC_PER_GPC 0x00022434 | 719 | #define NV_PTOP_SCAL_NUM_TPC_PER_GPC 0x00022434 |
717 | // GPC and TPC masks | 720 | |
718 | // Support: Maxwell, Pascal, Volta, Turing | 721 | /* Graphics Processing Cluster (GPC) enablement information |
719 | // Bitmask of which GPC **are enabled** of the max on die | 722 | (See above for a description of GPCs and TPCs.) |
720 | #define NV_FUSE_GPC 0x00021c1c | 723 | |
721 | // Bitmask of which TPCs **are enabled** on each GPC | 724 | The number of on-chip GPCs and TPCs enabled is driven by: |
722 | #define NV_FUSE_TPC_FOR_GPC(i) (0x00021c38+(i)*4) | 725 | 1) Manufacturing errors which make some units nonfunctional. |
723 | // Support: Ampere, Ada, Hopper, Blackwell | 726 | 2) Commercialization decisions about how many units should be enabled for a |
724 | //#define NV_FUSE_GPC 0x00820c1c | 727 | specific GPU model. |
725 | //#define NV_FUSE_TPC_FOR_GPC(i) (0x00820c38+(i)*4) | 728 | |
729 | Generally, reason (1) drives disablement early in product manufacturing, | ||
730 | whereas, as the manufacturing process matures, (2) steps in to ensure | ||
731 | consistency between early-manufactured and late-manufactured products. | ||
732 | |||
733 | On-chip fuses are used to dictate which units are enabled and disabled. These | ||
734 | registers expose the fuse configuration for GPCs, and the TPCs in each GPC. | ||
735 | |||
736 | FUSE_GPC : Bitmask of which GPCs are enabled | ||
737 | FUSE_TPC_FOR_GPC(i) : Bitmask of which TPCs are enabled for GPC i | ||
738 | |||
739 | Support: Maxwell through Blackwell | ||
740 | Note the registers were relocated starting with Ampere. | ||
741 | */ | ||
742 | #define NV_FUSE_GPC_GM107 0x00021c1c | ||
743 | #define NV_FUSE_TPC_FOR_GPC_GM107(i) (0x00021c38+(i)*4) | ||
744 | #define NV_FUSE_GPC_GA100 0x00820c1c | ||
745 | #define NV_FUSE_TPC_FOR_GPC_GA100(i) (0x00820c38+(i)*4) | ||
726 | 746 | ||
727 | /* Logical Copy Engine (LCE) Information | 747 | /* Logical Copy Engine (LCE) Information |
728 | Every GPU has some number of copy engines which can process transfers to, | 748 | Every GPU has some number of copy engines which can process transfers to, |