diff options
author | Terje Bergstrom <tbergstrom@nvidia.com> | 2018-08-10 17:09:36 -0400 |
---|---|---|
committer | Bo Yan <byan@nvidia.com> | 2018-08-20 14:00:59 -0400 |
commit | 227c6f7b7a499dd58e0db6859736cfe586ef0897 (patch) | |
tree | d354f8422647021693aefefa5124d865c29ecd32 /drivers/gpu/nvgpu/vgpu | |
parent | 9e69e0cf978b53706f55ffb873e3966b4bb3a7a8 (diff) |
gpu: nvgpu: Move fuse HAL to common
Move implementation of fuse HAL to common/fuse. Also implements new
fuse query functions for FBIO, FBP, TPC floorsweeping and security
fuses.
JIRA NVGPU-957
Change-Id: I55e256a4f1b59d50a721d4942907f70dc57467c4
Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1797177
Diffstat (limited to 'drivers/gpu/nvgpu/vgpu')
-rw-r--r-- | drivers/gpu/nvgpu/vgpu/gp10b/vgpu_hal_gp10b.c | 16 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/vgpu/gv11b/vgpu_hal_gv11b.c | 17 |
2 files changed, 27 insertions, 6 deletions
diff --git a/drivers/gpu/nvgpu/vgpu/gp10b/vgpu_hal_gp10b.c b/drivers/gpu/nvgpu/vgpu/gp10b/vgpu_hal_gp10b.c index b046ba6c..00efe316 100644 --- a/drivers/gpu/nvgpu/vgpu/gp10b/vgpu_hal_gp10b.c +++ b/drivers/gpu/nvgpu/vgpu/gp10b/vgpu_hal_gp10b.c | |||
@@ -32,6 +32,8 @@ | |||
32 | #include "common/therm/therm_gp10b.h" | 32 | #include "common/therm/therm_gp10b.h" |
33 | #include "common/ltc/ltc_gm20b.h" | 33 | #include "common/ltc/ltc_gm20b.h" |
34 | #include "common/ltc/ltc_gp10b.h" | 34 | #include "common/ltc/ltc_gp10b.h" |
35 | #include "common/fuse/fuse_gm20b.h" | ||
36 | #include "common/fuse/fuse_gp10b.h" | ||
35 | 37 | ||
36 | #include "vgpu/fifo_vgpu.h" | 38 | #include "vgpu/fifo_vgpu.h" |
37 | #include "vgpu/gr_vgpu.h" | 39 | #include "vgpu/gr_vgpu.h" |
@@ -59,7 +61,6 @@ | |||
59 | #include "gp10b/gr_ctx_gp10b.h" | 61 | #include "gp10b/gr_ctx_gp10b.h" |
60 | #include "gp10b/fifo_gp10b.h" | 62 | #include "gp10b/fifo_gp10b.h" |
61 | #include "gp10b/regops_gp10b.h" | 63 | #include "gp10b/regops_gp10b.h" |
62 | #include "gp10b/fuse_gp10b.h" | ||
63 | 64 | ||
64 | #include "gm20b/gr_gm20b.h" | 65 | #include "gm20b/gr_gm20b.h" |
65 | #include "gm20b/fifo_gm20b.h" | 66 | #include "gm20b/fifo_gm20b.h" |
@@ -71,7 +72,6 @@ | |||
71 | #include <nvgpu/vgpu/vgpu.h> | 72 | #include <nvgpu/vgpu/vgpu.h> |
72 | #include <nvgpu/error_notifier.h> | 73 | #include <nvgpu/error_notifier.h> |
73 | 74 | ||
74 | #include <nvgpu/hw/gp10b/hw_fuse_gp10b.h> | ||
75 | #include <nvgpu/hw/gp10b/hw_fifo_gp10b.h> | 75 | #include <nvgpu/hw/gp10b/hw_fifo_gp10b.h> |
76 | #include <nvgpu/hw/gp10b/hw_ram_gp10b.h> | 76 | #include <nvgpu/hw/gp10b/hw_ram_gp10b.h> |
77 | #include <nvgpu/hw/gp10b/hw_top_gp10b.h> | 77 | #include <nvgpu/hw/gp10b/hw_top_gp10b.h> |
@@ -464,7 +464,7 @@ static const struct gpu_ops vgpu_gp10b_ops = { | |||
464 | .pmu_pg_init_param = gp10b_pg_gr_init, | 464 | .pmu_pg_init_param = gp10b_pg_gr_init, |
465 | .pmu_pg_supported_engines_list = gk20a_pmu_pg_engines_list, | 465 | .pmu_pg_supported_engines_list = gk20a_pmu_pg_engines_list, |
466 | .pmu_pg_engines_feature_list = gk20a_pmu_pg_feature_list, | 466 | .pmu_pg_engines_feature_list = gk20a_pmu_pg_feature_list, |
467 | .dump_secure_fuses = pmu_dump_security_fuses_gp10b, | 467 | .dump_secure_fuses = pmu_dump_security_fuses_gm20b, |
468 | .reset_engine = gk20a_pmu_engine_reset, | 468 | .reset_engine = gk20a_pmu_engine_reset, |
469 | .is_engine_in_reset = gk20a_pmu_is_engine_in_reset, | 469 | .is_engine_in_reset = gk20a_pmu_is_engine_in_reset, |
470 | }, | 470 | }, |
@@ -566,6 +566,16 @@ static const struct gpu_ops vgpu_gp10b_ops = { | |||
566 | .is_opt_ecc_enable = gp10b_fuse_is_opt_ecc_enable, | 566 | .is_opt_ecc_enable = gp10b_fuse_is_opt_ecc_enable, |
567 | .is_opt_feature_override_disable = | 567 | .is_opt_feature_override_disable = |
568 | gp10b_fuse_is_opt_feature_override_disable, | 568 | gp10b_fuse_is_opt_feature_override_disable, |
569 | .fuse_status_opt_fbio = gm20b_fuse_status_opt_fbio, | ||
570 | .fuse_status_opt_fbp = gm20b_fuse_status_opt_fbp, | ||
571 | .fuse_status_opt_rop_l2_fbp = gm20b_fuse_status_opt_rop_l2_fbp, | ||
572 | .fuse_status_opt_tpc_gpc = gm20b_fuse_status_opt_tpc_gpc, | ||
573 | .fuse_ctrl_opt_tpc_gpc = gm20b_fuse_ctrl_opt_tpc_gpc, | ||
574 | .fuse_opt_sec_debug_en = gm20b_fuse_opt_sec_debug_en, | ||
575 | .fuse_opt_priv_sec_en = gm20b_fuse_opt_priv_sec_en, | ||
576 | .read_vin_cal_fuse_rev = NULL, | ||
577 | .read_vin_cal_slope_intercept_fuse = NULL, | ||
578 | .read_vin_cal_gain_offset_fuse = NULL, | ||
569 | }, | 579 | }, |
570 | .chip_init_gpu_characteristics = vgpu_init_gpu_characteristics, | 580 | .chip_init_gpu_characteristics = vgpu_init_gpu_characteristics, |
571 | .get_litter_value = gp10b_get_litter_value, | 581 | .get_litter_value = gp10b_get_litter_value, |
diff --git a/drivers/gpu/nvgpu/vgpu/gv11b/vgpu_hal_gv11b.c b/drivers/gpu/nvgpu/vgpu/gv11b/vgpu_hal_gv11b.c index f9d09ebd..204c0105 100644 --- a/drivers/gpu/nvgpu/vgpu/gv11b/vgpu_hal_gv11b.c +++ b/drivers/gpu/nvgpu/vgpu/gv11b/vgpu_hal_gv11b.c | |||
@@ -35,6 +35,8 @@ | |||
35 | #include "common/ltc/ltc_gm20b.h" | 35 | #include "common/ltc/ltc_gm20b.h" |
36 | #include "common/ltc/ltc_gp10b.h" | 36 | #include "common/ltc/ltc_gp10b.h" |
37 | #include "common/ltc/ltc_gv11b.h" | 37 | #include "common/ltc/ltc_gv11b.h" |
38 | #include "common/fuse/fuse_gm20b.h" | ||
39 | #include "common/fuse/fuse_gp10b.h" | ||
38 | 40 | ||
39 | #include <gk20a/gk20a.h> | 41 | #include <gk20a/gk20a.h> |
40 | #include <gv11b/hal_gv11b.h> | 42 | #include <gv11b/hal_gv11b.h> |
@@ -68,7 +70,6 @@ | |||
68 | #include <gp10b/ce_gp10b.h> | 70 | #include <gp10b/ce_gp10b.h> |
69 | #include "gp10b/gr_gp10b.h" | 71 | #include "gp10b/gr_gp10b.h" |
70 | #include <gp10b/fifo_gp10b.h> | 72 | #include <gp10b/fifo_gp10b.h> |
71 | #include <gp10b/fuse_gp10b.h> | ||
72 | 73 | ||
73 | #include <gp106/pmu_gp106.h> | 74 | #include <gp106/pmu_gp106.h> |
74 | #include <gp106/acr_gp106.h> | 75 | #include <gp106/acr_gp106.h> |
@@ -91,7 +92,6 @@ | |||
91 | #include "vgpu_subctx_gv11b.h" | 92 | #include "vgpu_subctx_gv11b.h" |
92 | #include "vgpu_tsg_gv11b.h" | 93 | #include "vgpu_tsg_gv11b.h" |
93 | 94 | ||
94 | #include <nvgpu/hw/gv11b/hw_fuse_gv11b.h> | ||
95 | #include <nvgpu/hw/gv11b/hw_fifo_gv11b.h> | 95 | #include <nvgpu/hw/gv11b/hw_fifo_gv11b.h> |
96 | #include <nvgpu/hw/gv11b/hw_ram_gv11b.h> | 96 | #include <nvgpu/hw/gv11b/hw_ram_gv11b.h> |
97 | #include <nvgpu/hw/gv11b/hw_top_gv11b.h> | 97 | #include <nvgpu/hw/gv11b/hw_top_gv11b.h> |
@@ -530,7 +530,7 @@ static const struct gpu_ops vgpu_gv11b_ops = { | |||
530 | .pmu_pg_init_param = gv11b_pg_gr_init, | 530 | .pmu_pg_init_param = gv11b_pg_gr_init, |
531 | .pmu_pg_supported_engines_list = gk20a_pmu_pg_engines_list, | 531 | .pmu_pg_supported_engines_list = gk20a_pmu_pg_engines_list, |
532 | .pmu_pg_engines_feature_list = gk20a_pmu_pg_feature_list, | 532 | .pmu_pg_engines_feature_list = gk20a_pmu_pg_feature_list, |
533 | .dump_secure_fuses = pmu_dump_security_fuses_gp10b, | 533 | .dump_secure_fuses = pmu_dump_security_fuses_gm20b, |
534 | .reset_engine = gp106_pmu_engine_reset, | 534 | .reset_engine = gp106_pmu_engine_reset, |
535 | .is_engine_in_reset = gp106_pmu_is_engine_in_reset, | 535 | .is_engine_in_reset = gp106_pmu_is_engine_in_reset, |
536 | .pmu_nsbootstrap = gv11b_pmu_bootstrap, | 536 | .pmu_nsbootstrap = gv11b_pmu_bootstrap, |
@@ -635,6 +635,16 @@ static const struct gpu_ops vgpu_gv11b_ops = { | |||
635 | .is_opt_ecc_enable = gp10b_fuse_is_opt_ecc_enable, | 635 | .is_opt_ecc_enable = gp10b_fuse_is_opt_ecc_enable, |
636 | .is_opt_feature_override_disable = | 636 | .is_opt_feature_override_disable = |
637 | gp10b_fuse_is_opt_feature_override_disable, | 637 | gp10b_fuse_is_opt_feature_override_disable, |
638 | .fuse_status_opt_fbio = gm20b_fuse_status_opt_fbio, | ||
639 | .fuse_status_opt_fbp = gm20b_fuse_status_opt_fbp, | ||
640 | .fuse_status_opt_rop_l2_fbp = gm20b_fuse_status_opt_rop_l2_fbp, | ||
641 | .fuse_status_opt_tpc_gpc = gm20b_fuse_status_opt_tpc_gpc, | ||
642 | .fuse_ctrl_opt_tpc_gpc = gm20b_fuse_ctrl_opt_tpc_gpc, | ||
643 | .fuse_opt_sec_debug_en = gm20b_fuse_opt_sec_debug_en, | ||
644 | .fuse_opt_priv_sec_en = gm20b_fuse_opt_priv_sec_en, | ||
645 | .read_vin_cal_fuse_rev = NULL, | ||
646 | .read_vin_cal_slope_intercept_fuse = NULL, | ||
647 | .read_vin_cal_gain_offset_fuse = NULL, | ||
638 | }, | 648 | }, |
639 | .chip_init_gpu_characteristics = vgpu_gv11b_init_gpu_characteristics, | 649 | .chip_init_gpu_characteristics = vgpu_gv11b_init_gpu_characteristics, |
640 | .get_litter_value = gv11b_get_litter_value, | 650 | .get_litter_value = gv11b_get_litter_value, |
@@ -669,6 +679,7 @@ int vgpu_gv11b_init_hal(struct gk20a *g) | |||
669 | #endif | 679 | #endif |
670 | gops->falcon = vgpu_gv11b_ops.falcon; | 680 | gops->falcon = vgpu_gv11b_ops.falcon; |
671 | gops->priv_ring = vgpu_gv11b_ops.priv_ring; | 681 | gops->priv_ring = vgpu_gv11b_ops.priv_ring; |
682 | gops->fuse = vgpu_gv11b_ops.fuse; | ||
672 | 683 | ||
673 | /* Lone functions */ | 684 | /* Lone functions */ |
674 | gops->chip_init_gpu_characteristics = | 685 | gops->chip_init_gpu_characteristics = |