summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorMahantesh Kumbar <mkumbar@nvidia.com>2016-06-08 10:27:15 -0400
committerDeepak Nibade <dnibade@nvidia.com>2016-12-27 04:56:17 -0500
commitca2c4ce83a846bbab953e91af37c762efaa975e6 (patch)
treecd1f8269c1646f5a106fd57700a0357dc6ff7075 /drivers
parentee6be7beca896e8fbb324c164c6382fe8d695971 (diff)
gpu: nvgpu: Enable GP10x GPMU secure boot
Build support & enable GPMU secure boot for GP10x JIRA DNVGPU-34 Change-Id: Id1316677ed44790aa150e0ada8ff39daf0ef1d0c Signed-off-by: Mahantesh Kumbar <mkumbar@nvidia.com> Reviewed-on: http://git-master/r/1161174 GVS: Gerrit_Virtual_Submit Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/gpu/nvgpu/Makefile4
-rw-r--r--drivers/gpu/nvgpu/gp106/hal_gp106.c18
2 files changed, 18 insertions, 4 deletions
diff --git a/drivers/gpu/nvgpu/Makefile b/drivers/gpu/nvgpu/Makefile
index 7e4c259b..1579e6eb 100644
--- a/drivers/gpu/nvgpu/Makefile
+++ b/drivers/gpu/nvgpu/Makefile
@@ -23,7 +23,9 @@ nvgpu-y += \
23 $(nvgpu-t18x)/gp106/mm_gp106.o \ 23 $(nvgpu-t18x)/gp106/mm_gp106.o \
24 $(nvgpu-t18x)/gp106/pmu_gp106.o \ 24 $(nvgpu-t18x)/gp106/pmu_gp106.o \
25 $(nvgpu-t18x)/gp106/gr_gp106.o \ 25 $(nvgpu-t18x)/gp106/gr_gp106.o \
26 $(nvgpu-t18x)/gp106/gr_ctx_gp106.o 26 $(nvgpu-t18x)/gp106/gr_ctx_gp106.o \
27 $(nvgpu-t18x)/gp106/acr_gp106.o \
28 $(nvgpu-t18x)/gp106/sec2_gp106.o
27 29
28nvgpu-$(CONFIG_TEGRA_GK20A) += $(nvgpu-t18x)/gp10b/platform_gp10b_tegra.o 30nvgpu-$(CONFIG_TEGRA_GK20A) += $(nvgpu-t18x)/gp10b/platform_gp10b_tegra.o
29 31
diff --git a/drivers/gpu/nvgpu/gp106/hal_gp106.c b/drivers/gpu/nvgpu/gp106/hal_gp106.c
index 7ef72d72..1b22547d 100644
--- a/drivers/gpu/nvgpu/gp106/hal_gp106.c
+++ b/drivers/gpu/nvgpu/gp106/hal_gp106.c
@@ -180,13 +180,14 @@ int gp106_init_hal(struct gk20a *g)
180{ 180{
181 struct gpu_ops *gops = &g->ops; 181 struct gpu_ops *gops = &g->ops;
182 struct nvgpu_gpu_characteristics *c = &g->gpu_characteristics; 182 struct nvgpu_gpu_characteristics *c = &g->gpu_characteristics;
183 u32 ver = g->gpu_characteristics.arch + g->gpu_characteristics.impl;
183 184
184 gk20a_dbg_fn(""); 185 gk20a_dbg_fn("");
185 186
186 *gops = gp106_ops; 187 *gops = gp106_ops;
187 188
188 gops->privsecurity = 0; 189 gops->privsecurity = 1;
189 gops->securegpccs = 0; 190 gops->securegpccs = 1;
190 191
191 gp10b_init_mc(gops); 192 gp10b_init_mc(gops);
192 gp106_init_gr(gops); 193 gp106_init_gr(gops);
@@ -202,9 +203,20 @@ int gp106_init_hal(struct gk20a *g)
202 gp10b_init_cde_ops(gops); 203 gp10b_init_cde_ops(gops);
203 gp10b_init_therm_ops(gops); 204 gp10b_init_therm_ops(gops);
204 gm206_init_bios(gops); 205 gm206_init_bios(gops);
205 gops->name = "gp106"; 206 switch(ver){
207 case NVGPU_GPUID_GP106:
208 gops->name = "gp106";
209 break;
210 case NVGPU_GPUID_GP104:
211 gops->name = "gp104";
212 break;
213 default:
214 gk20a_err(g->dev, "no support for %x", ver);
215 BUG();
216 }
206 gops->get_litter_value = gp106_get_litter_value; 217 gops->get_litter_value = gp106_get_litter_value;
207 gops->chip_init_gpu_characteristics = gk20a_init_gpu_characteristics; 218 gops->chip_init_gpu_characteristics = gk20a_init_gpu_characteristics;
219 gops->gr_ctx.use_dma_for_fw_bootstrap = true;
208 220
209 c->twod_class = FERMI_TWOD_A; 221 c->twod_class = FERMI_TWOD_A;
210 c->threed_class = PASCAL_B; 222 c->threed_class = PASCAL_B;