diff options
author | David Nieto <dmartineznie@nvidia.com> | 2017-05-26 17:36:26 -0400 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2017-06-04 23:34:58 -0400 |
commit | 3dc28cb1ab934ebcda33933086d7d0ffc8d1f907 (patch) | |
tree | 4a27e428220d8083992c07fb905b430f91162cf8 /drivers/gpu/nvgpu/include/nvgpu/hw/gv11b/hw_fb_gv11b.h | |
parent | 345eaef6a76771da9c3e8a5e375fc9d659fb1b2b (diff) |
gpu: nvgpu: add chip specific ECC counters
Add support for ECC counters for HUB MMU
JIRA: GPUT19X-82
Change-Id: I691d5898d4db9fe2cd68f217baa646479ab5cb00
Signed-off-by: David Nieto <dmartineznie@nvidia.com>
Reviewed-on: http://git-master/r/1490825
Reviewed-by: svccoveritychecker <svccoveritychecker@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/include/nvgpu/hw/gv11b/hw_fb_gv11b.h')
-rw-r--r-- | drivers/gpu/nvgpu/include/nvgpu/hw/gv11b/hw_fb_gv11b.h | 236 |
1 files changed, 236 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/include/nvgpu/hw/gv11b/hw_fb_gv11b.h b/drivers/gpu/nvgpu/include/nvgpu/hw/gv11b/hw_fb_gv11b.h index 76b4e902..0ddccd45 100644 --- a/drivers/gpu/nvgpu/include/nvgpu/hw/gv11b/hw_fb_gv11b.h +++ b/drivers/gpu/nvgpu/include/nvgpu/hw/gv11b/hw_fb_gv11b.h | |||
@@ -466,6 +466,22 @@ static inline u32 fb_mmu_l2tlb_ecc_status_r(void) | |||
466 | { | 466 | { |
467 | return 0x00100e70; | 467 | return 0x00100e70; |
468 | } | 468 | } |
469 | static inline u32 fb_mmu_l2tlb_ecc_status_corrected_err_l2tlb_sa_data_m(void) | ||
470 | { | ||
471 | return 0x1 << 0; | ||
472 | } | ||
473 | static inline u32 fb_mmu_l2tlb_ecc_status_uncorrected_err_l2tlb_sa_data_m(void) | ||
474 | { | ||
475 | return 0x1 << 1; | ||
476 | } | ||
477 | static inline u32 fb_mmu_l2tlb_ecc_status_corrected_err_total_counter_overflow_m(void) | ||
478 | { | ||
479 | return 0x1 << 16; | ||
480 | } | ||
481 | static inline u32 fb_mmu_l2tlb_ecc_status_uncorrected_err_total_counter_overflow_m(void) | ||
482 | { | ||
483 | return 0x1 << 18; | ||
484 | } | ||
469 | static inline u32 fb_mmu_l2tlb_ecc_status_reset_f(u32 v) | 485 | static inline u32 fb_mmu_l2tlb_ecc_status_reset_f(u32 v) |
470 | { | 486 | { |
471 | return (v & 0x1) << 30; | 487 | return (v & 0x1) << 30; |
@@ -474,10 +490,86 @@ static inline u32 fb_mmu_l2tlb_ecc_status_reset_clear_f(void) | |||
474 | { | 490 | { |
475 | return 0x40000000; | 491 | return 0x40000000; |
476 | } | 492 | } |
493 | static inline u32 fb_mmu_l2tlb_ecc_corrected_err_count_r(void) | ||
494 | { | ||
495 | return 0x00100e74; | ||
496 | } | ||
497 | static inline u32 fb_mmu_l2tlb_ecc_corrected_err_count_total_s(void) | ||
498 | { | ||
499 | return 16; | ||
500 | } | ||
501 | static inline u32 fb_mmu_l2tlb_ecc_corrected_err_count_total_f(u32 v) | ||
502 | { | ||
503 | return (v & 0xffff) << 0; | ||
504 | } | ||
505 | static inline u32 fb_mmu_l2tlb_ecc_corrected_err_count_total_m(void) | ||
506 | { | ||
507 | return 0xffff << 0; | ||
508 | } | ||
509 | static inline u32 fb_mmu_l2tlb_ecc_corrected_err_count_total_v(u32 r) | ||
510 | { | ||
511 | return (r >> 0) & 0xffff; | ||
512 | } | ||
513 | static inline u32 fb_mmu_l2tlb_ecc_uncorrected_err_count_r(void) | ||
514 | { | ||
515 | return 0x00100e78; | ||
516 | } | ||
517 | static inline u32 fb_mmu_l2tlb_ecc_uncorrected_err_count_total_s(void) | ||
518 | { | ||
519 | return 16; | ||
520 | } | ||
521 | static inline u32 fb_mmu_l2tlb_ecc_uncorrected_err_count_total_f(u32 v) | ||
522 | { | ||
523 | return (v & 0xffff) << 0; | ||
524 | } | ||
525 | static inline u32 fb_mmu_l2tlb_ecc_uncorrected_err_count_total_m(void) | ||
526 | { | ||
527 | return 0xffff << 0; | ||
528 | } | ||
529 | static inline u32 fb_mmu_l2tlb_ecc_uncorrected_err_count_total_v(u32 r) | ||
530 | { | ||
531 | return (r >> 0) & 0xffff; | ||
532 | } | ||
533 | static inline u32 fb_mmu_l2tlb_ecc_address_r(void) | ||
534 | { | ||
535 | return 0x00100e7c; | ||
536 | } | ||
537 | static inline u32 fb_mmu_l2tlb_ecc_address_index_s(void) | ||
538 | { | ||
539 | return 32; | ||
540 | } | ||
541 | static inline u32 fb_mmu_l2tlb_ecc_address_index_f(u32 v) | ||
542 | { | ||
543 | return (v & 0xffffffff) << 0; | ||
544 | } | ||
545 | static inline u32 fb_mmu_l2tlb_ecc_address_index_m(void) | ||
546 | { | ||
547 | return 0xffffffff << 0; | ||
548 | } | ||
549 | static inline u32 fb_mmu_l2tlb_ecc_address_index_v(u32 r) | ||
550 | { | ||
551 | return (r >> 0) & 0xffffffff; | ||
552 | } | ||
477 | static inline u32 fb_mmu_hubtlb_ecc_status_r(void) | 553 | static inline u32 fb_mmu_hubtlb_ecc_status_r(void) |
478 | { | 554 | { |
479 | return 0x00100e84; | 555 | return 0x00100e84; |
480 | } | 556 | } |
557 | static inline u32 fb_mmu_hubtlb_ecc_status_corrected_err_sa_data_m(void) | ||
558 | { | ||
559 | return 0x1 << 0; | ||
560 | } | ||
561 | static inline u32 fb_mmu_hubtlb_ecc_status_uncorrected_err_sa_data_m(void) | ||
562 | { | ||
563 | return 0x1 << 1; | ||
564 | } | ||
565 | static inline u32 fb_mmu_hubtlb_ecc_status_corrected_err_total_counter_overflow_m(void) | ||
566 | { | ||
567 | return 0x1 << 16; | ||
568 | } | ||
569 | static inline u32 fb_mmu_hubtlb_ecc_status_uncorrected_err_total_counter_overflow_m(void) | ||
570 | { | ||
571 | return 0x1 << 18; | ||
572 | } | ||
481 | static inline u32 fb_mmu_hubtlb_ecc_status_reset_f(u32 v) | 573 | static inline u32 fb_mmu_hubtlb_ecc_status_reset_f(u32 v) |
482 | { | 574 | { |
483 | return (v & 0x1) << 30; | 575 | return (v & 0x1) << 30; |
@@ -486,10 +578,94 @@ static inline u32 fb_mmu_hubtlb_ecc_status_reset_clear_f(void) | |||
486 | { | 578 | { |
487 | return 0x40000000; | 579 | return 0x40000000; |
488 | } | 580 | } |
581 | static inline u32 fb_mmu_hubtlb_ecc_corrected_err_count_r(void) | ||
582 | { | ||
583 | return 0x00100e88; | ||
584 | } | ||
585 | static inline u32 fb_mmu_hubtlb_ecc_corrected_err_count_total_s(void) | ||
586 | { | ||
587 | return 16; | ||
588 | } | ||
589 | static inline u32 fb_mmu_hubtlb_ecc_corrected_err_count_total_f(u32 v) | ||
590 | { | ||
591 | return (v & 0xffff) << 0; | ||
592 | } | ||
593 | static inline u32 fb_mmu_hubtlb_ecc_corrected_err_count_total_m(void) | ||
594 | { | ||
595 | return 0xffff << 0; | ||
596 | } | ||
597 | static inline u32 fb_mmu_hubtlb_ecc_corrected_err_count_total_v(u32 r) | ||
598 | { | ||
599 | return (r >> 0) & 0xffff; | ||
600 | } | ||
601 | static inline u32 fb_mmu_hubtlb_ecc_uncorrected_err_count_r(void) | ||
602 | { | ||
603 | return 0x00100e8c; | ||
604 | } | ||
605 | static inline u32 fb_mmu_hubtlb_ecc_uncorrected_err_count_total_s(void) | ||
606 | { | ||
607 | return 16; | ||
608 | } | ||
609 | static inline u32 fb_mmu_hubtlb_ecc_uncorrected_err_count_total_f(u32 v) | ||
610 | { | ||
611 | return (v & 0xffff) << 0; | ||
612 | } | ||
613 | static inline u32 fb_mmu_hubtlb_ecc_uncorrected_err_count_total_m(void) | ||
614 | { | ||
615 | return 0xffff << 0; | ||
616 | } | ||
617 | static inline u32 fb_mmu_hubtlb_ecc_uncorrected_err_count_total_v(u32 r) | ||
618 | { | ||
619 | return (r >> 0) & 0xffff; | ||
620 | } | ||
621 | static inline u32 fb_mmu_hubtlb_ecc_address_r(void) | ||
622 | { | ||
623 | return 0x00100e90; | ||
624 | } | ||
625 | static inline u32 fb_mmu_hubtlb_ecc_address_index_s(void) | ||
626 | { | ||
627 | return 32; | ||
628 | } | ||
629 | static inline u32 fb_mmu_hubtlb_ecc_address_index_f(u32 v) | ||
630 | { | ||
631 | return (v & 0xffffffff) << 0; | ||
632 | } | ||
633 | static inline u32 fb_mmu_hubtlb_ecc_address_index_m(void) | ||
634 | { | ||
635 | return 0xffffffff << 0; | ||
636 | } | ||
637 | static inline u32 fb_mmu_hubtlb_ecc_address_index_v(u32 r) | ||
638 | { | ||
639 | return (r >> 0) & 0xffffffff; | ||
640 | } | ||
489 | static inline u32 fb_mmu_fillunit_ecc_status_r(void) | 641 | static inline u32 fb_mmu_fillunit_ecc_status_r(void) |
490 | { | 642 | { |
491 | return 0x00100e98; | 643 | return 0x00100e98; |
492 | } | 644 | } |
645 | static inline u32 fb_mmu_fillunit_ecc_status_corrected_err_pte_data_m(void) | ||
646 | { | ||
647 | return 0x1 << 0; | ||
648 | } | ||
649 | static inline u32 fb_mmu_fillunit_ecc_status_uncorrected_err_pte_data_m(void) | ||
650 | { | ||
651 | return 0x1 << 1; | ||
652 | } | ||
653 | static inline u32 fb_mmu_fillunit_ecc_status_corrected_err_pde0_data_m(void) | ||
654 | { | ||
655 | return 0x1 << 2; | ||
656 | } | ||
657 | static inline u32 fb_mmu_fillunit_ecc_status_uncorrected_err_pde0_data_m(void) | ||
658 | { | ||
659 | return 0x1 << 3; | ||
660 | } | ||
661 | static inline u32 fb_mmu_fillunit_ecc_status_corrected_err_total_counter_overflow_m(void) | ||
662 | { | ||
663 | return 0x1 << 16; | ||
664 | } | ||
665 | static inline u32 fb_mmu_fillunit_ecc_status_uncorrected_err_total_counter_overflow_m(void) | ||
666 | { | ||
667 | return 0x1 << 18; | ||
668 | } | ||
493 | static inline u32 fb_mmu_fillunit_ecc_status_reset_f(u32 v) | 669 | static inline u32 fb_mmu_fillunit_ecc_status_reset_f(u32 v) |
494 | { | 670 | { |
495 | return (v & 0x1) << 30; | 671 | return (v & 0x1) << 30; |
@@ -498,6 +674,66 @@ static inline u32 fb_mmu_fillunit_ecc_status_reset_clear_f(void) | |||
498 | { | 674 | { |
499 | return 0x40000000; | 675 | return 0x40000000; |
500 | } | 676 | } |
677 | static inline u32 fb_mmu_fillunit_ecc_corrected_err_count_r(void) | ||
678 | { | ||
679 | return 0x00100e9c; | ||
680 | } | ||
681 | static inline u32 fb_mmu_fillunit_ecc_corrected_err_count_total_s(void) | ||
682 | { | ||
683 | return 16; | ||
684 | } | ||
685 | static inline u32 fb_mmu_fillunit_ecc_corrected_err_count_total_f(u32 v) | ||
686 | { | ||
687 | return (v & 0xffff) << 0; | ||
688 | } | ||
689 | static inline u32 fb_mmu_fillunit_ecc_corrected_err_count_total_m(void) | ||
690 | { | ||
691 | return 0xffff << 0; | ||
692 | } | ||
693 | static inline u32 fb_mmu_fillunit_ecc_corrected_err_count_total_v(u32 r) | ||
694 | { | ||
695 | return (r >> 0) & 0xffff; | ||
696 | } | ||
697 | static inline u32 fb_mmu_fillunit_ecc_uncorrected_err_count_r(void) | ||
698 | { | ||
699 | return 0x00100ea0; | ||
700 | } | ||
701 | static inline u32 fb_mmu_fillunit_ecc_uncorrected_err_count_total_s(void) | ||
702 | { | ||
703 | return 16; | ||
704 | } | ||
705 | static inline u32 fb_mmu_fillunit_ecc_uncorrected_err_count_total_f(u32 v) | ||
706 | { | ||
707 | return (v & 0xffff) << 0; | ||
708 | } | ||
709 | static inline u32 fb_mmu_fillunit_ecc_uncorrected_err_count_total_m(void) | ||
710 | { | ||
711 | return 0xffff << 0; | ||
712 | } | ||
713 | static inline u32 fb_mmu_fillunit_ecc_uncorrected_err_count_total_v(u32 r) | ||
714 | { | ||
715 | return (r >> 0) & 0xffff; | ||
716 | } | ||
717 | static inline u32 fb_mmu_fillunit_ecc_address_r(void) | ||
718 | { | ||
719 | return 0x00100ea4; | ||
720 | } | ||
721 | static inline u32 fb_mmu_fillunit_ecc_address_index_s(void) | ||
722 | { | ||
723 | return 32; | ||
724 | } | ||
725 | static inline u32 fb_mmu_fillunit_ecc_address_index_f(u32 v) | ||
726 | { | ||
727 | return (v & 0xffffffff) << 0; | ||
728 | } | ||
729 | static inline u32 fb_mmu_fillunit_ecc_address_index_m(void) | ||
730 | { | ||
731 | return 0xffffffff << 0; | ||
732 | } | ||
733 | static inline u32 fb_mmu_fillunit_ecc_address_index_v(u32 r) | ||
734 | { | ||
735 | return (r >> 0) & 0xffffffff; | ||
736 | } | ||
501 | static inline u32 fb_niso_flush_sysmem_addr_r(void) | 737 | static inline u32 fb_niso_flush_sysmem_addr_r(void) |
502 | { | 738 | { |
503 | return 0x00100c10; | 739 | return 0x00100c10; |