summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gp106/acr_gp106.c
diff options
context:
space:
mode:
authorMahantesh Kumbar <mkumbar@nvidia.com>2016-09-01 05:30:52 -0400
committerDeepak Nibade <dnibade@nvidia.com>2016-12-27 04:56:49 -0500
commit455fc2806a06298831130d1adb617ddca48fabb1 (patch)
treeac76931bf692c70ffaaa4a61d14d35ee9a45c66f /drivers/gpu/nvgpu/gp106/acr_gp106.c
parent2d3ba5478d0d9a12b123a0261653d33eb37e6e87 (diff)
gpu: nvgpu: Update PMU bootloader params
- Bootloader of PMU is changed & bootloader takes params using flcn_bl_dmem_desc_v1 descriptor to boot PMU JIRA DNVGPU-116 Change-Id: I005b615b2323678fa605d190c6b9b629976f0b74 Signed-off-by: Mahantesh Kumbar <mkumbar@nvidia.com> Reviewed-on: http://git-master/r/1212818 (cherry picked from commit 89976a03c13cce6bbba25c99270b0da4ca0f2441) Reviewed-on: http://git-master/r/1223842 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com> Tested-by: Terje Bergstrom <tbergstrom@nvidia.com> GVS: Gerrit_Virtual_Submit
Diffstat (limited to 'drivers/gpu/nvgpu/gp106/acr_gp106.c')
-rw-r--r--drivers/gpu/nvgpu/gp106/acr_gp106.c20
1 files changed, 10 insertions, 10 deletions
diff --git a/drivers/gpu/nvgpu/gp106/acr_gp106.c b/drivers/gpu/nvgpu/gp106/acr_gp106.c
index 850d07b1..e47c4eb1 100644
--- a/drivers/gpu/nvgpu/gp106/acr_gp106.c
+++ b/drivers/gpu/nvgpu/gp106/acr_gp106.c
@@ -510,7 +510,6 @@ static int lsfm_discover_ucode_images(struct gk20a *g,
510 return 0; 510 return 0;
511} 511}
512 512
513
514static int gp106_pmu_populate_loader_cfg(struct gk20a *g, 513static int gp106_pmu_populate_loader_cfg(struct gk20a *g,
515 void *lsfm, u32 *p_bl_gen_desc_size) 514 void *lsfm, u32 *p_bl_gen_desc_size)
516{ 515{
@@ -519,8 +518,8 @@ static int gp106_pmu_populate_loader_cfg(struct gk20a *g,
519 struct lsfm_managed_ucode_img_v2 *p_lsfm = 518 struct lsfm_managed_ucode_img_v2 *p_lsfm =
520 (struct lsfm_managed_ucode_img_v2 *)lsfm; 519 (struct lsfm_managed_ucode_img_v2 *)lsfm;
521 struct flcn_ucode_img_v1 *p_img = &(p_lsfm->ucode_img); 520 struct flcn_ucode_img_v1 *p_img = &(p_lsfm->ucode_img);
522 struct loader_config_v1 *ldr_cfg = 521 struct flcn_bl_dmem_desc_v1 *ldr_cfg =
523 &(p_lsfm->bl_gen_desc.loader_cfg_v1); 522 &(p_lsfm->bl_gen_desc.bl_dmem_desc_v1);
524 u64 addr_base; 523 u64 addr_base;
525 struct pmu_ucode_desc_v1 *desc; 524 struct pmu_ucode_desc_v1 *desc;
526 u64 addr_code, addr_data; 525 u64 addr_code, addr_data;
@@ -564,21 +563,22 @@ static int gp106_pmu_populate_loader_cfg(struct gk20a *g,
564 563
565 gp106_dbg_pmu("addr_args %x\n", addr_args); 564 gp106_dbg_pmu("addr_args %x\n", addr_args);
566 565
567 /* Populate the loader_config state*/ 566 /* Populate the LOADER_CONFIG state */
568 ldr_cfg->dma_idx = GK20A_PMU_DMAIDX_UCODE; 567 memset((void *) ldr_cfg, 0, sizeof(struct flcn_bl_dmem_desc_v1));
568 ldr_cfg->ctx_dma = GK20A_PMU_DMAIDX_UCODE;
569 flcn64_set_dma(&ldr_cfg->code_dma_base, addr_code); 569 flcn64_set_dma(&ldr_cfg->code_dma_base, addr_code);
570 ldr_cfg->code_size_total = desc->app_size; 570 ldr_cfg->non_sec_code_off = desc->app_resident_code_offset;
571 ldr_cfg->code_size_to_load = desc->app_resident_code_size; 571 ldr_cfg->non_sec_code_size = desc->app_resident_code_size;
572 ldr_cfg->code_entry_point = desc->app_imem_entry;
573 flcn64_set_dma(&ldr_cfg->data_dma_base, addr_data); 572 flcn64_set_dma(&ldr_cfg->data_dma_base, addr_data);
574 ldr_cfg->data_size = desc->app_resident_data_size; 573 ldr_cfg->data_size = desc->app_resident_data_size;
575 flcn64_set_dma(&ldr_cfg->overlay_dma_base, addr_code); 574 ldr_cfg->code_entry_point = desc->app_imem_entry;
576 575
577 /* Update the argc/argv members*/ 576 /* Update the argc/argv members*/
578 ldr_cfg->argc = 1; 577 ldr_cfg->argc = 1;
579 ldr_cfg->argv = addr_args; 578 ldr_cfg->argv = addr_args;
580 579
581 *p_bl_gen_desc_size = sizeof(struct loader_config_v1); 580 *p_bl_gen_desc_size = sizeof(struct flcn_bl_dmem_desc_v1);
581
582 g->acr.pmu_args = addr_args; 582 g->acr.pmu_args = addr_args;
583 return 0; 583 return 0;
584} 584}