summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gp106
diff options
context:
space:
mode:
authorMahantesh Kumbar <mkumbar@nvidia.com>2017-07-05 06:42:29 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2017-07-06 02:25:27 -0400
commit79a79b8ae6987e5620c9bc7ee080fe637a6ca57b (patch)
tree5e482d8d1a584e9496b2daa880adfd00b5f65ecb /drivers/gpu/nvgpu/gp106
parent3afac13d66ee7026555c0b0558d898a4f189b051 (diff)
gpu: nvgpu: falcon bootstrap support
- Added falcon interface/HAL to bootstrap falcon by taking boot vector as parameter - Replaced falcon bootstrap code in multiple files with nvgpu_flcn_bootstrap() method JIRA NVGPU-102 Change-Id: I4324824c50c6196d8b7ecf981f815ec778da2fd9 Signed-off-by: Mahantesh Kumbar <mkumbar@nvidia.com> Reviewed-on: https://git-master/r/1513643 Reviewed-by: Automatic_Commit_Validation_User GVS: Gerrit_Virtual_Submit Reviewed-by: Vijayakumar Subbu <vsubbu@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gp106')
-rw-r--r--drivers/gpu/nvgpu/gp106/sec2_gp106.c9
1 files changed, 1 insertions, 8 deletions
diff --git a/drivers/gpu/nvgpu/gp106/sec2_gp106.c b/drivers/gpu/nvgpu/gp106/sec2_gp106.c
index ccd1b3ad..f5e7f2be 100644
--- a/drivers/gpu/nvgpu/gp106/sec2_gp106.c
+++ b/drivers/gpu/nvgpu/gp106/sec2_gp106.c
@@ -110,11 +110,8 @@ int bl_bootstrap_sec2(struct nvgpu_pmu *pmu,
110 gk20a_writel(g, psec_falcon_mailbox0_r(), 0xDEADA5A5); 110 gk20a_writel(g, psec_falcon_mailbox0_r(), 0xDEADA5A5);
111 111
112 virt_addr = pmu_bl_gm10x_desc->bl_start_tag << 8; 112 virt_addr = pmu_bl_gm10x_desc->bl_start_tag << 8;
113 gk20a_writel(g, psec_falcon_bootvec_r(),
114 psec_falcon_bootvec_vec_f(virt_addr));
115 113
116 gk20a_writel(g, psec_falcon_cpuctl_r(), 114 nvgpu_flcn_bootstrap(&g->sec2_flcn, virt_addr);
117 psec_falcon_cpuctl_startcpu_f(1));
118 115
119 return 0; 116 return 0;
120} 117}
@@ -198,10 +195,6 @@ int init_sec2_setup_hw1(struct gk20a *g,
198 data |= psec_fbif_ctl_allow_phys_no_ctx_allow_f(); 195 data |= psec_fbif_ctl_allow_phys_no_ctx_allow_f();
199 gk20a_writel(g, psec_fbif_ctl_r(), data); 196 gk20a_writel(g, psec_fbif_ctl_r(), data);
200 197
201 data = gk20a_readl(g, psec_falcon_dmactl_r());
202 data &= ~(psec_falcon_dmactl_require_ctx_f(1));
203 gk20a_writel(g, psec_falcon_dmactl_r(), data);
204
205 /* setup apertures - virtual */ 198 /* setup apertures - virtual */
206 gk20a_writel(g, psec_fbif_transcfg_r(GK20A_PMU_DMAIDX_UCODE), 199 gk20a_writel(g, psec_fbif_transcfg_r(GK20A_PMU_DMAIDX_UCODE),
207 psec_fbif_transcfg_mem_type_physical_f() | 200 psec_fbif_transcfg_mem_type_physical_f() |