From 5dacead521aaee1bd8a3b2e9db3e281c085038f7 Mon Sep 17 00:00:00 2001 From: smadhavan Date: Wed, 7 Apr 2021 14:07:26 +0530 Subject: [PATCH] nvgpu: gpu: adds support for ACR dbg/prod. ACR ucode is encrypted using different keys for prod/dbg boards. This change adds a check to select ACR ucode based on board type. ACR ucode binaries are also renamed with "nv_" prefix to conform to release naming conventions. Bug 2672836 Change-Id: I48818f018f903c0d03642c12485d60e392121eb6 Signed-off-by: smadhavan Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvgpu/+/2492587 Reviewed-by: Andrey Jivsov Reviewed-by: Vijayakumar Subbu Reviewed-by: mobile promotions GVS: Gerrit_Virtual_Submit Tested-by: mobile promotions --- drivers/gpu/nvgpu/common/acr/acr_priv.h | 3 ++- drivers/gpu/nvgpu/common/acr/acr_sw_gm20b.c | 7 ++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/nvgpu/common/acr/acr_priv.h b/drivers/gpu/nvgpu/common/acr/acr_priv.h index 61a1c6d79..378f85795 100644 --- a/drivers/gpu/nvgpu/common/acr/acr_priv.h +++ b/drivers/gpu/nvgpu/common/acr/acr_priv.h @@ -71,8 +71,9 @@ struct wpr_carveout_info; #define FLCN_NL_UCODE_HDR_OS_OVL_SIZE_IND(N) \ (FLCN_NL_UCODE_HDR_APP_DATA_END_IND(N) + 2U) +#define GM20B_HSBIN_ACR_PROD_UCODE "nv_acr_ucode_prod.bin" +#define GM20B_HSBIN_ACR_DBG_UCODE "nv_acr_ucode_dbg.bin" #define HSBIN_ACR_BL_UCODE_IMAGE "pmu_bl.bin" -#define HSBIN_ACR_UCODE_IMAGE "acr_ucode.bin" #define HSBIN_ACR_PROD_UCODE "acr_ucode_prod.bin" #define HSBIN_ACR_DBG_UCODE "acr_ucode_dbg.bin" #define HSBIN_ACR_AHESASC_NON_FUSA_PROD_UCODE "acr_ahesasc_prod_ucode.bin" diff --git a/drivers/gpu/nvgpu/common/acr/acr_sw_gm20b.c b/drivers/gpu/nvgpu/common/acr/acr_sw_gm20b.c index da2536243..22cc471fc 100644 --- a/drivers/gpu/nvgpu/common/acr/acr_sw_gm20b.c +++ b/drivers/gpu/nvgpu/common/acr/acr_sw_gm20b.c @@ -138,7 +138,12 @@ static void gm20b_acr_default_sw_init(struct gk20a *g, struct hs_acr *hs_acr) /* ACR HS ucode type & f/w name*/ hs_acr->acr_type = ACR_DEFAULT; - hs_acr->acr_fw_name = HSBIN_ACR_UCODE_IMAGE; + + if (!g->ops.pmu.is_debug_mode_enabled(g)) { + hs_acr->acr_fw_name = GM20B_HSBIN_ACR_PROD_UCODE; + } else { + hs_acr->acr_fw_name = GM20B_HSBIN_ACR_DBG_UCODE; + } /* set on which falcon ACR need to execute*/ hs_acr->acr_flcn = g->pmu->flcn;