summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gm20b/acr_gm20b.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/nvgpu/gm20b/acr_gm20b.c')
-rw-r--r--drivers/gpu/nvgpu/gm20b/acr_gm20b.c28
1 files changed, 7 insertions, 21 deletions
diff --git a/drivers/gpu/nvgpu/gm20b/acr_gm20b.c b/drivers/gpu/nvgpu/gm20b/acr_gm20b.c
index 615b6b46..1694a1ad 100644
--- a/drivers/gpu/nvgpu/gm20b/acr_gm20b.c
+++ b/drivers/gpu/nvgpu/gm20b/acr_gm20b.c
@@ -1165,11 +1165,8 @@ static int bl_bootstrap(struct nvgpu_pmu *pmu,
1165 struct flcn_bl_dmem_desc *pbl_desc, u32 bl_sz) 1165 struct flcn_bl_dmem_desc *pbl_desc, u32 bl_sz)
1166{ 1166{
1167 struct gk20a *g = gk20a_from_pmu(pmu); 1167 struct gk20a *g = gk20a_from_pmu(pmu);
1168 struct acr_desc *acr = &g->acr;
1169 struct mm_gk20a *mm = &g->mm; 1168 struct mm_gk20a *mm = &g->mm;
1170 u32 virt_addr = 0; 1169 struct nvgpu_falcon_bl_info bl_info;
1171 struct hsflcn_bl_desc *pmu_bl_gm10x_desc = g->acr.pmu_hsbl_desc;
1172 u32 dst;
1173 1170
1174 nvgpu_log_fn(g, " "); 1171 nvgpu_log_fn(g, " ");
1175 gk20a_writel(g, pwr_falcon_itfen_r(), 1172 gk20a_writel(g, pwr_falcon_itfen_r(),
@@ -1181,23 +1178,12 @@ static int bl_bootstrap(struct nvgpu_pmu *pmu,
1181 pwr_pmu_new_instblk_valid_f(1) | 1178 pwr_pmu_new_instblk_valid_f(1) |
1182 pwr_pmu_new_instblk_target_sys_coh_f()); 1179 pwr_pmu_new_instblk_target_sys_coh_f());
1183 1180
1184 /*copy bootloader interface structure to dmem*/ 1181 bl_info.bl_src = g->acr.hsbl_ucode.cpu_va;
1185 nvgpu_flcn_copy_to_dmem(pmu->flcn, 0, (u8 *)pbl_desc, 1182 bl_info.bl_desc = (u8 *)pbl_desc;
1186 sizeof(struct flcn_bl_dmem_desc), 0); 1183 bl_info.bl_desc_size = sizeof(struct flcn_bl_dmem_desc);
1187 1184 bl_info.bl_size = bl_sz;
1188 /* copy bootloader to TOP of IMEM */ 1185 bl_info.bl_start_tag = g->acr.pmu_hsbl_desc->bl_start_tag;
1189 dst = (pwr_falcon_hwcfg_imem_size_v( 1186 nvgpu_flcn_bl_bootstrap(&g->pmu_flcn, &bl_info);
1190 gk20a_readl(g, pwr_falcon_hwcfg_r())) << 8) - bl_sz;
1191
1192 nvgpu_flcn_copy_to_imem(pmu->flcn, dst,
1193 (u8 *)(acr->hsbl_ucode.cpu_va), bl_sz, 0, 0,
1194 pmu_bl_gm10x_desc->bl_start_tag);
1195
1196 gm20b_dbg_pmu(g, "Before starting falcon with BL\n");
1197
1198 virt_addr = pmu_bl_gm10x_desc->bl_start_tag << 8;
1199
1200 nvgpu_flcn_bootstrap(pmu->flcn, virt_addr);
1201 1187
1202 return 0; 1188 return 0;
1203} 1189}