| 504 | } |
| 505 | |
| 506 | static void PrintCurrentValues(VGAChip * chip, GPU * gpu) |
| 507 | { |
| 508 | if (DetermineMemoryType(chip->device_id) == HBM2) |
| 509 | { |
| 510 | HBM2_TIMINGS current = gpu->hbm2; |
| 511 | printf("Memory state: 0x%X (%s)\n", current.frequency, |
| 512 | (current.frequency == 0x118) ? "800MHz" : |
| 513 | (current.frequency == 0x11C) ? "1000MHz" : |
| 514 | (current.frequency == 0x11E) ? "1200MHz" : "unknown"); |
| 515 | printf("Timing 1\t"); |
| 516 | printf(" CL: %d\t", current.CL); |
| 517 | printf(" RAS: %d\t", current.RAS); |
| 518 | printf(" RCDRD: %d\t", current.RCDRD); |
| 519 | printf(" RCDWR: %d\n", current.RCDWR); |
| 520 | printf("Timing 2\t"); |
| 521 | printf(" RCAb (RC): %d\t", current.RCAb); |
| 522 | printf(" RCPb (RC): %d\t", current.RCPb); |
| 523 | printf(" RPAb (RP): %d\t", current.RPAb); |
| 524 | printf(" RPPb (RP): %d\n", current.RPPb); |
| 525 | printf("Timing 3\t"); |
| 526 | printf(" RRDS: %d\t", current.RRDS); |
| 527 | printf(" RRDL: %d\t", current.RRDL); |
| 528 | printf(" RTP: %d\n", current.RTP); |
| 529 | printf("Timing 4\t"); |
| 530 | printf(" FAW: %d\n", current.FAW); |
| 531 | printf("Timing 5\t"); |
| 532 | printf(" CWL: %d\t", current.CWL); |
| 533 | printf(" WTRS: %d\t", current.WTRS); |
| 534 | printf(" WTRL: %d\n", current.WTRL); |
| 535 | printf("Timing 6\t"); |
| 536 | printf(" WR: %d\n", current.WR); |
| 537 | printf("Timing 7\t"); |
| 538 | printf(" RREFD: %d\n", current.RREFD); |
| 539 | printf("Timing 8\t"); |
| 540 | printf(" RDRDDD: %d\t", current.RDRDDD); |
| 541 | printf(" RDRDSD: %d\t", current.RDRDSD); |
| 542 | printf(" RDRDSC: %d\t", current.RDRDSC); |
| 543 | printf(" RDRDSCL: %d\n", current.RDRDSCL); |
| 544 | printf("Timing 9\t"); |
| 545 | printf(" WRWRDD: %d\t", current.WRWRDD); |
| 546 | printf(" WRWRSD: %d\t", current.WRWRSD); |
| 547 | printf(" WRWRSC: %d\t", current.WRWRSC); |
| 548 | printf(" WRWRSCL: %d\n", current.WRWRSCL); |
| 549 | printf("Timing 10\t"); |
| 550 | printf(" WRRD: %d\t", current.WRRD); |
| 551 | printf(" RDWR: %d\n", current.RDWR); |
| 552 | printf("Timing 12\t"); |
| 553 | printf(" REF: %d\n", current.REF); |
| 554 | printf("Timing 13\t"); |
| 555 | printf(" MRD: %d\t", current.MRD); |
| 556 | printf(" MOD: %d\n", current.MOD); |
| 557 | printf("Timing 14\t"); |
| 558 | printf(" XS: %d\n", current.XS); |
| 559 | printf("Timing 16\t"); |
| 560 | printf(" XSMRS: %d\n", current.XSMRS); |
| 561 | printf("Timing 17\t"); |
| 562 | printf(" PD: %d\t", current.PD); |
| 563 | printf(" CKSRE: %d\t", current.CKSRE); |
no test coverage detected