diff --git a/gddr6.c b/gddr6.c index b2f76ee..b065cae 100644 --- a/gddr6.c +++ b/gddr6.c @@ -54,31 +54,31 @@ int main(int argc, char **argv) { } if (cnum >= nva_cardsnum) { - if (nva_cardsnum) - fprintf (stderr, "No valid card.\n"); - else - fprintf (stderr, "No cards found.\n"); - return 1; - } + if (nva_cardsnum) + fprintf (stderr, "No valid card.\n"); + else + fprintf (stderr, "No cards found.\n"); + return 1; + } if (mask & NVIDIA_MMIO_MASK_PMC) { uint32_t pmc_boot_0 = nva_rd32(cnum, NV_PMC_BOOT_0); struct pmc_id id; PMC_ID(pmc_boot_0, &id); - + switch (id.gpu_id) { uint32_t offset; case 0xb72: { // ga102 // TODO: temps over 100 might fail offset = 0x0000E2A8; read_temps(cnum, offset); - } + } break; case 0xb74: { // ga104 offset = 0x0000EE50; read_temps(cnum, offset); - } + } break; default: diff --git a/no_deps_version/gddr6.c b/no_deps_version/gddr6.c index 4a5be49..802bc53 100644 --- a/no_deps_version/gddr6.c +++ b/no_deps_version/gddr6.c @@ -7,21 +7,23 @@ #include #include -int main(int argc, char **argv) + +int main(int argc, char **argv) { int fd; int map_size = 4096UL; void *map_base, *virt_addr; uint32_t read_result, base_offset, temp; - uint32_t bar = 0xFB000000; - uint32_t offset = bar + 0x0000E2A8; // GA102 + //uint32_t bar = 0xFB000000; // GA102 + GA104 + uint32_t bar = 0xEC000000; // AD102 (RTX 4090) + uint32_t offset = bar + 0x0000E2A8; // GA102 + AD102 //uint32_t offset = bar + 0x0000EE50; // GA104 char *MEM_RES = "\x2f\x64\x65\x76\x2f\x6d\x65\x6d"; - while (1) + while (1) { - if ((fd = open(MEM_RES, O_RDWR | O_SYNC)) == -1) + if ((fd = open(MEM_RES, O_RDWR | O_SYNC)) == -1) { printf("Can't read memory. Are you r00t?\n"); exit(-1); @@ -30,7 +32,7 @@ int main(int argc, char **argv) base_offset = offset & ~(sysconf(_SC_PAGE_SIZE)-1); map_base = mmap(0, map_size, PROT_READ | PROT_WRITE, MAP_SHARED, fd, base_offset); - if (!map_base) + if (!map_base) { printf("Can't map memory. Are you r00t?\n"); exit(-1); @@ -42,7 +44,7 @@ int main(int argc, char **argv) printf("\rGDDR6X VRAM Temp: %d°c", temp); fflush(stdout); - if (munmap(map_base, map_size) == -1) + if (munmap(map_base, map_size) == -1) { printf("Can't unmap memory!\n"); exit(-1); @@ -53,4 +55,4 @@ int main(int argc, char **argv) } return 0; -} +}