diff options
Diffstat (limited to 'drivers/gpu/nvgpu/gp106')
-rw-r--r-- | drivers/gpu/nvgpu/gp106/acr_gp106.c | 20 |
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 | |||
514 | static int gp106_pmu_populate_loader_cfg(struct gk20a *g, | 513 | static 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 | } |