summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/include
diff options
context:
space:
mode:
authorDavid Nieto <dmartineznie@nvidia.com>2017-05-22 19:38:49 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2017-06-04 23:34:57 -0400
commit6bc36bded05ee497a474e5a718c49dc33eb235f1 (patch)
treecaf557eaff74b2fa01609dfa3b933713647838d6 /drivers/gpu/nvgpu/include
parent81172b5df4c7dc46bf46419074b30e0a73f5ddfb (diff)
gpu: nvgpu: L2 cache tag ECC support
Adding support for L2 cache tag ECC error handling JIRA: GPUT19X-112 Change-Id: I9a8ebefe97814b341f57a024dfb126013adaac1c Signed-off-by: David Nieto <dmartineznie@nvidia.com> Reviewed-on: http://git-master/r/1489029 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_ltc_gv11b.h184
1 files changed, 184 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/include/nvgpu/hw/gv11b/hw_ltc_gv11b.h b/drivers/gpu/nvgpu/include/nvgpu/hw/gv11b/hw_ltc_gv11b.h
index 45d3df07..1bcd1246 100644
--- a/drivers/gpu/nvgpu/include/nvgpu/hw/gv11b/hw_ltc_gv11b.h
+++ b/drivers/gpu/nvgpu/include/nvgpu/hw/gv11b/hw_ltc_gv11b.h
@@ -374,6 +374,190 @@ static inline u32 ltc_ltc0_lts0_intr_r(void)
374{ 374{
375 return 0x0014040c; 375 return 0x0014040c;
376} 376}
377static inline u32 ltc_ltcs_ltss_intr3_r(void)
378{
379 return 0x0017e388;
380}
381static inline u32 ltc_ltcs_ltss_intr3_ecc_corrected_m(void)
382{
383 return 0x1 << 7;
384}
385static inline u32 ltc_ltcs_ltss_intr3_ecc_uncorrected_m(void)
386{
387 return 0x1 << 8;
388}
389static inline u32 ltc_ltc0_lts0_intr3_r(void)
390{
391 return 0x00140588;
392}
393static inline u32 ltc_ltc0_lts0_l2_cache_ecc_status_r(void)
394{
395 return 0x001404f0;
396}
397static inline u32 ltc_ltc0_lts0_l2_cache_ecc_status_corrected_err_rstg_f(u32 v)
398{
399 return (v & 0x1) << 1;
400}
401static inline u32 ltc_ltc0_lts0_l2_cache_ecc_status_corrected_err_rstg_m(void)
402{
403 return 0x1 << 1;
404}
405static inline u32 ltc_ltc0_lts0_l2_cache_ecc_status_corrected_err_tstg_f(u32 v)
406{
407 return (v & 0x1) << 3;
408}
409static inline u32 ltc_ltc0_lts0_l2_cache_ecc_status_corrected_err_tstg_m(void)
410{
411 return 0x1 << 3;
412}
413static inline u32 ltc_ltc0_lts0_l2_cache_ecc_status_corrected_err_dstg_f(u32 v)
414{
415 return (v & 0x1) << 5;
416}
417static inline u32 ltc_ltc0_lts0_l2_cache_ecc_status_corrected_err_dstg_m(void)
418{
419 return 0x1 << 5;
420}
421static inline u32 ltc_ltc0_lts0_l2_cache_ecc_status_uncorrected_err_rstg_f(u32 v)
422{
423 return (v & 0x1) << 0;
424}
425static inline u32 ltc_ltc0_lts0_l2_cache_ecc_status_uncorrected_err_rstg_m(void)
426{
427 return 0x1 << 0;
428}
429static inline u32 ltc_ltc0_lts0_l2_cache_ecc_status_uncorrected_err_tstg_f(u32 v)
430{
431 return (v & 0x1) << 2;
432}
433static inline u32 ltc_ltc0_lts0_l2_cache_ecc_status_uncorrected_err_tstg_m(void)
434{
435 return 0x1 << 2;
436}
437static inline u32 ltc_ltc0_lts0_l2_cache_ecc_status_uncorrected_err_dstg_f(u32 v)
438{
439 return (v & 0x1) << 4;
440}
441static inline u32 ltc_ltc0_lts0_l2_cache_ecc_status_uncorrected_err_dstg_m(void)
442{
443 return 0x1 << 4;
444}
445static inline u32 ltc_ltc0_lts0_l2_cache_ecc_status_uncorrected_err_total_counter_overflow_f(u32 v)
446{
447 return (v & 0x1) << 18;
448}
449static inline u32 ltc_ltc0_lts0_l2_cache_ecc_status_uncorrected_err_total_counter_overflow_m(void)
450{
451 return 0x1 << 18;
452}
453static inline u32 ltc_ltc0_lts0_l2_cache_ecc_status_corrected_err_total_counter_overflow_f(u32 v)
454{
455 return (v & 0x1) << 16;
456}
457static inline u32 ltc_ltc0_lts0_l2_cache_ecc_status_corrected_err_total_counter_overflow_m(void)
458{
459 return 0x1 << 16;
460}
461static inline u32 ltc_ltc0_lts0_l2_cache_ecc_status_uncorrected_err_unique_counter_overflow_f(u32 v)
462{
463 return (v & 0x1) << 19;
464}
465static inline u32 ltc_ltc0_lts0_l2_cache_ecc_status_uncorrected_err_unique_counter_overflow_m(void)
466{
467 return 0x1 << 19;
468}
469static inline u32 ltc_ltc0_lts0_l2_cache_ecc_status_corrected_err_unique_counter_overflow_f(u32 v)
470{
471 return (v & 0x1) << 17;
472}
473static inline u32 ltc_ltc0_lts0_l2_cache_ecc_status_corrected_err_unique_counter_overflow_m(void)
474{
475 return 0x1 << 17;
476}
477static inline u32 ltc_ltc0_lts0_l2_cache_ecc_status_reset_f(u32 v)
478{
479 return (v & 0x1) << 30;
480}
481static inline u32 ltc_ltc0_lts0_l2_cache_ecc_status_reset_task_f(void)
482{
483 return 0x40000000;
484}
485static inline u32 ltc_ltc0_lts0_l2_cache_ecc_address_r(void)
486{
487 return 0x001404fc;
488}
489static inline u32 ltc_ltc0_lts0_l2_cache_ecc_corrected_err_count_r(void)
490{
491 return 0x001404f4;
492}
493static inline u32 ltc_ltc0_lts0_l2_cache_ecc_corrected_err_count_total_s(void)
494{
495 return 16;
496}
497static inline u32 ltc_ltc0_lts0_l2_cache_ecc_corrected_err_count_total_f(u32 v)
498{
499 return (v & 0xffff) << 0;
500}
501static inline u32 ltc_ltc0_lts0_l2_cache_ecc_corrected_err_count_total_m(void)
502{
503 return 0xffff << 0;
504}
505static inline u32 ltc_ltc0_lts0_l2_cache_ecc_corrected_err_count_total_v(u32 r)
506{
507 return (r >> 0) & 0xffff;
508}
509static inline u32 ltc_ltc0_lts0_l2_cache_ecc_corrected_err_count_unique_total_s(void)
510{
511 return 16;
512}
513static inline u32 ltc_ltc0_lts0_l2_cache_ecc_corrected_err_count_unique_total_f(u32 v)
514{
515 return (v & 0xffff) << 16;
516}
517static inline u32 ltc_ltc0_lts0_l2_cache_ecc_corrected_err_count_unique_total_m(void)
518{
519 return 0xffff << 16;
520}
521static inline u32 ltc_ltc0_lts0_l2_cache_ecc_corrected_err_count_unique_total_v(u32 r)
522{
523 return (r >> 16) & 0xffff;
524}
525static inline u32 ltc_ltc0_lts0_l2_cache_ecc_uncorrected_err_count_r(void)
526{
527 return 0x001404f8;
528}
529static inline u32 ltc_ltc0_lts0_l2_cache_ecc_uncorrected_err_count_total_s(void)
530{
531 return 16;
532}
533static inline u32 ltc_ltc0_lts0_l2_cache_ecc_uncorrected_err_count_total_f(u32 v)
534{
535 return (v & 0xffff) << 0;
536}
537static inline u32 ltc_ltc0_lts0_l2_cache_ecc_uncorrected_err_count_total_m(void)
538{
539 return 0xffff << 0;
540}
541static inline u32 ltc_ltc0_lts0_l2_cache_ecc_uncorrected_err_count_total_v(u32 r)
542{
543 return (r >> 0) & 0xffff;
544}
545static inline u32 ltc_ltc0_lts0_l2_cache_ecc_uncorrected_err_count_unique_total_s(void)
546{
547 return 16;
548}
549static inline u32 ltc_ltc0_lts0_l2_cache_ecc_uncorrected_err_count_unique_total_f(u32 v)
550{
551 return (v & 0xffff) << 16;
552}
553static inline u32 ltc_ltc0_lts0_l2_cache_ecc_uncorrected_err_count_unique_total_m(void)
554{
555 return 0xffff << 16;
556}
557static inline u32 ltc_ltc0_lts0_l2_cache_ecc_uncorrected_err_count_unique_total_v(u32 r)
558{
559 return (r >> 16) & 0xffff;
560}
377static inline u32 ltc_ltc0_lts0_dstg_ecc_report_r(void) 561static inline u32 ltc_ltc0_lts0_dstg_ecc_report_r(void)
378{ 562{
379 return 0x0014051c; 563 return 0x0014051c;