mirror of
git://nv-tegra.nvidia.com/linux-nvgpu.git
synced 2025-12-24 10:34:43 +03:00
gpu: nvgpu: add helper function for fecs dmem data
Added helper function gm20b_gr_falcon_update_fecs_dmem_data programming fecs dmem data. With using this helper function, avoid repeating same code twice. JIRA NVGPU-3226 Change-Id: I490cc6b5ed6a1df5bcd0590833c8f9b83661d538 Signed-off-by: Seshendra Gadagottu <sgadagottu@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/2111750 Reviewed-by: Automatic_Commit_Validation_User GVS: Gerrit_Virtual_Submit Reviewed-by: Vinod Gopalakrishnakurup <vinodg@nvidia.com> Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
This commit is contained in:
committed by
mobile promotions
parent
4c4f45e7eb
commit
4e9534c243
@@ -317,6 +317,25 @@ void gm20b_gr_falcon_bind_instblk(struct gk20a *g,
|
||||
|
||||
}
|
||||
|
||||
static void gm20b_gr_falcon_program_fecs_dmem_data(struct gk20a *g,
|
||||
u32 reg_offset, u32 addr_code32, u32 addr_data32,
|
||||
u32 code_size, u32 data_size)
|
||||
{
|
||||
nvgpu_writel(g, reg_offset + gr_fecs_dmemd_r(0), 0);
|
||||
nvgpu_writel(g, reg_offset + gr_fecs_dmemd_r(0), 0);
|
||||
nvgpu_writel(g, reg_offset + gr_fecs_dmemd_r(0), 0);
|
||||
nvgpu_writel(g, reg_offset + gr_fecs_dmemd_r(0), 0);
|
||||
nvgpu_writel(g, reg_offset + gr_fecs_dmemd_r(0), 4);
|
||||
nvgpu_writel(g, reg_offset + gr_fecs_dmemd_r(0), addr_code32);
|
||||
nvgpu_writel(g, reg_offset + gr_fecs_dmemd_r(0), 0);
|
||||
nvgpu_writel(g, reg_offset + gr_fecs_dmemd_r(0), code_size);
|
||||
nvgpu_writel(g, reg_offset + gr_fecs_dmemd_r(0), 0);
|
||||
nvgpu_writel(g, reg_offset + gr_fecs_dmemd_r(0), 0);
|
||||
nvgpu_writel(g, reg_offset + gr_fecs_dmemd_r(0), 0);
|
||||
nvgpu_writel(g, reg_offset + gr_fecs_dmemd_r(0), addr_data32);
|
||||
nvgpu_writel(g, reg_offset + gr_fecs_dmemd_r(0), data_size);
|
||||
}
|
||||
|
||||
void gm20b_gr_falcon_load_ctxsw_ucode_header(struct gk20a *g,
|
||||
u32 reg_offset, u32 boot_signature, u32 addr_code32,
|
||||
u32 addr_data32, u32 code_size, u32 data_size)
|
||||
@@ -347,46 +366,16 @@ void gm20b_gr_falcon_load_ctxsw_ucode_header(struct gk20a *g,
|
||||
nvgpu_writel(g, reg_offset + gr_fecs_dmemd_r(0), 0);
|
||||
nvgpu_writel(g, reg_offset + gr_fecs_dmemd_r(0), 0);
|
||||
nvgpu_writel(g, reg_offset + gr_fecs_dmemd_r(0), 0);
|
||||
nvgpu_writel(g, reg_offset + gr_fecs_dmemd_r(0), 0);
|
||||
nvgpu_writel(g, reg_offset + gr_fecs_dmemd_r(0), 0);
|
||||
nvgpu_writel(g, reg_offset + gr_fecs_dmemd_r(0), 0);
|
||||
nvgpu_writel(g, reg_offset + gr_fecs_dmemd_r(0), 0);
|
||||
nvgpu_writel(g, reg_offset + gr_fecs_dmemd_r(0), 4);
|
||||
nvgpu_writel(g, reg_offset + gr_fecs_dmemd_r(0),
|
||||
addr_code32);
|
||||
nvgpu_writel(g, reg_offset + gr_fecs_dmemd_r(0), 0);
|
||||
nvgpu_writel(g, reg_offset + gr_fecs_dmemd_r(0),
|
||||
code_size);
|
||||
nvgpu_writel(g, reg_offset + gr_fecs_dmemd_r(0), 0);
|
||||
nvgpu_writel(g, reg_offset + gr_fecs_dmemd_r(0), 0);
|
||||
nvgpu_writel(g, reg_offset + gr_fecs_dmemd_r(0), 0);
|
||||
nvgpu_writel(g, reg_offset + gr_fecs_dmemd_r(0),
|
||||
addr_data32);
|
||||
nvgpu_writel(g, reg_offset + gr_fecs_dmemd_r(0),
|
||||
data_size);
|
||||
gm20b_gr_falcon_program_fecs_dmem_data(g, reg_offset,
|
||||
addr_code32, addr_data32, code_size, data_size);
|
||||
break;
|
||||
case FALCON_UCODE_SIG_T12X_FECS_WITHOUT_RESERVED:
|
||||
case FALCON_UCODE_SIG_T12X_GPCCS_WITHOUT_RESERVED:
|
||||
case FALCON_UCODE_SIG_T21X_FECS_WITHOUT_RESERVED:
|
||||
case FALCON_UCODE_SIG_T21X_FECS_WITHOUT_RESERVED2:
|
||||
case FALCON_UCODE_SIG_T21X_GPCCS_WITHOUT_RESERVED:
|
||||
nvgpu_writel(g, reg_offset + gr_fecs_dmemd_r(0), 0);
|
||||
nvgpu_writel(g, reg_offset + gr_fecs_dmemd_r(0), 0);
|
||||
nvgpu_writel(g, reg_offset + gr_fecs_dmemd_r(0), 0);
|
||||
nvgpu_writel(g, reg_offset + gr_fecs_dmemd_r(0), 0);
|
||||
nvgpu_writel(g, reg_offset + gr_fecs_dmemd_r(0), 4);
|
||||
nvgpu_writel(g, reg_offset + gr_fecs_dmemd_r(0),
|
||||
addr_code32);
|
||||
nvgpu_writel(g, reg_offset + gr_fecs_dmemd_r(0), 0);
|
||||
nvgpu_writel(g, reg_offset + gr_fecs_dmemd_r(0),
|
||||
code_size);
|
||||
nvgpu_writel(g, reg_offset + gr_fecs_dmemd_r(0), 0);
|
||||
nvgpu_writel(g, reg_offset + gr_fecs_dmemd_r(0), 0);
|
||||
nvgpu_writel(g, reg_offset + gr_fecs_dmemd_r(0), 0);
|
||||
nvgpu_writel(g, reg_offset + gr_fecs_dmemd_r(0),
|
||||
addr_data32);
|
||||
nvgpu_writel(g, reg_offset + gr_fecs_dmemd_r(0),
|
||||
data_size);
|
||||
gm20b_gr_falcon_program_fecs_dmem_data(g, reg_offset,
|
||||
addr_code32, addr_data32, code_size, data_size);
|
||||
break;
|
||||
case FALCON_UCODE_SIG_T12X_FECS_OLDER:
|
||||
case FALCON_UCODE_SIG_T12X_GPCCS_OLDER:
|
||||
|
||||
Reference in New Issue
Block a user