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