diff options
Diffstat (limited to 'drivers/gpu/nvgpu/gm20b')
-rw-r--r-- | drivers/gpu/nvgpu/gm20b/acr_gm20b.c | 28 |
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 | } |