diff options
author | David Nieto <dmartineznie@nvidia.com> | 2017-05-05 17:22:06 -0400 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2017-05-11 09:04:33 -0400 |
commit | 8c246cb18df28bac83297df2c9d0c47725b94273 (patch) | |
tree | f0bc4bdd963b14ccafc9c888dd65d3485bb9bf5b /drivers/gpu/nvgpu/include | |
parent | 44dcc5a53fabc68a32f16a1a3a46a2582b5b192b (diff) |
gpu: nvgpu: gv11b: MMU parity HWW error intr
Adding support for ISR handling of ecc uncorrectable errors
for volta resiliency (Volta-686)
TODO: move interrupt init out of MC
bug 1881052
JIRA: GPUT19X-82
Change-Id: I45db01a6062445dd1f64a8297744cd15105e3344
Signed-off-by: David Nieto <dmartineznie@nvidia.com>
Reviewed-on: http://git-master/r/1476603
Reviewed-by: svccoveritychecker <svccoveritychecker@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/include')
-rw-r--r-- | drivers/gpu/nvgpu/include/nvgpu/hw/gv11b/hw_fb_gv11b.h | 68 |
1 files changed, 68 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 45cb0ad5..76b4e902 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 | |||
@@ -462,6 +462,42 @@ static inline u32 fb_mmu_vpr_info_fetch_true_v(void) | |||
462 | { | 462 | { |
463 | return 0x00000001; | 463 | return 0x00000001; |
464 | } | 464 | } |
465 | static inline u32 fb_mmu_l2tlb_ecc_status_r(void) | ||
466 | { | ||
467 | return 0x00100e70; | ||
468 | } | ||
469 | static inline u32 fb_mmu_l2tlb_ecc_status_reset_f(u32 v) | ||
470 | { | ||
471 | return (v & 0x1) << 30; | ||
472 | } | ||
473 | static inline u32 fb_mmu_l2tlb_ecc_status_reset_clear_f(void) | ||
474 | { | ||
475 | return 0x40000000; | ||
476 | } | ||
477 | static inline u32 fb_mmu_hubtlb_ecc_status_r(void) | ||
478 | { | ||
479 | return 0x00100e84; | ||
480 | } | ||
481 | static inline u32 fb_mmu_hubtlb_ecc_status_reset_f(u32 v) | ||
482 | { | ||
483 | return (v & 0x1) << 30; | ||
484 | } | ||
485 | static inline u32 fb_mmu_hubtlb_ecc_status_reset_clear_f(void) | ||
486 | { | ||
487 | return 0x40000000; | ||
488 | } | ||
489 | static inline u32 fb_mmu_fillunit_ecc_status_r(void) | ||
490 | { | ||
491 | return 0x00100e98; | ||
492 | } | ||
493 | static inline u32 fb_mmu_fillunit_ecc_status_reset_f(u32 v) | ||
494 | { | ||
495 | return (v & 0x1) << 30; | ||
496 | } | ||
497 | static inline u32 fb_mmu_fillunit_ecc_status_reset_clear_f(void) | ||
498 | { | ||
499 | return 0x40000000; | ||
500 | } | ||
465 | static inline u32 fb_niso_flush_sysmem_addr_r(void) | 501 | static inline u32 fb_niso_flush_sysmem_addr_r(void) |
466 | { | 502 | { |
467 | return 0x00100c10; | 503 | return 0x00100c10; |
@@ -526,6 +562,14 @@ static inline u32 fb_niso_intr_mmu_other_fault_notify_pending_f(void) | |||
526 | { | 562 | { |
527 | return 0x80000000; | 563 | return 0x80000000; |
528 | } | 564 | } |
565 | static inline u32 fb_niso_intr_mmu_ecc_uncorrected_error_notify_f(u32 v) | ||
566 | { | ||
567 | return (v & 0x1) << 26; | ||
568 | } | ||
569 | static inline u32 fb_niso_intr_mmu_ecc_uncorrected_error_notify_pending_f(void) | ||
570 | { | ||
571 | return 0x4000000; | ||
572 | } | ||
529 | static inline u32 fb_niso_intr_en_r(u32 i) | 573 | static inline u32 fb_niso_intr_en_r(u32 i) |
530 | { | 574 | { |
531 | return 0x00100a24 + i*4; | 575 | return 0x00100a24 + i*4; |
@@ -590,6 +634,14 @@ static inline u32 fb_niso_intr_en_mmu_other_fault_notify_enabled_f(void) | |||
590 | { | 634 | { |
591 | return 0x80000000; | 635 | return 0x80000000; |
592 | } | 636 | } |
637 | static inline u32 fb_niso_intr_en_mmu_ecc_uncorrected_error_notify_f(u32 v) | ||
638 | { | ||
639 | return (v & 0x1) << 26; | ||
640 | } | ||
641 | static inline u32 fb_niso_intr_en_mmu_ecc_uncorrected_error_notify_enabled_f(void) | ||
642 | { | ||
643 | return 0x4000000; | ||
644 | } | ||
593 | static inline u32 fb_niso_intr_en_set_r(u32 i) | 645 | static inline u32 fb_niso_intr_en_set_r(u32 i) |
594 | { | 646 | { |
595 | return 0x00100a2c + i*4; | 647 | return 0x00100a2c + i*4; |
@@ -654,6 +706,14 @@ static inline u32 fb_niso_intr_en_set_mmu_other_fault_notify_set_f(void) | |||
654 | { | 706 | { |
655 | return 0x80000000; | 707 | return 0x80000000; |
656 | } | 708 | } |
709 | static inline u32 fb_niso_intr_en_set_mmu_ecc_uncorrected_error_notify_f(u32 v) | ||
710 | { | ||
711 | return (v & 0x1) << 26; | ||
712 | } | ||
713 | static inline u32 fb_niso_intr_en_set_mmu_ecc_uncorrected_error_notify_set_f(void) | ||
714 | { | ||
715 | return 0x4000000; | ||
716 | } | ||
657 | static inline u32 fb_niso_intr_en_clr_r(u32 i) | 717 | static inline u32 fb_niso_intr_en_clr_r(u32 i) |
658 | { | 718 | { |
659 | return 0x00100a34 + i*4; | 719 | return 0x00100a34 + i*4; |
@@ -718,6 +778,14 @@ static inline u32 fb_niso_intr_en_clr_mmu_other_fault_notify_set_f(void) | |||
718 | { | 778 | { |
719 | return 0x80000000; | 779 | return 0x80000000; |
720 | } | 780 | } |
781 | static inline u32 fb_niso_intr_en_clr_mmu_ecc_uncorrected_error_notify_f(u32 v) | ||
782 | { | ||
783 | return (v & 0x1) << 26; | ||
784 | } | ||
785 | static inline u32 fb_niso_intr_en_clr_mmu_ecc_uncorrected_error_notify_set_f(void) | ||
786 | { | ||
787 | return 0x4000000; | ||
788 | } | ||
721 | static inline u32 fb_niso_intr_en_clr_mmu_non_replay_fault_buffer_v(void) | 789 | static inline u32 fb_niso_intr_en_clr_mmu_non_replay_fault_buffer_v(void) |
722 | { | 790 | { |
723 | return 0x00000000; | 791 | return 0x00000000; |