gpu: nvgpu: Add support to load dbg/prod mem_unlock ucode

-Add support to load dbg/prod mem_unlock ucode
 based on debug Signal SCP_CTL_STAT_DEBUG_MODE.
-Defined MEM_UNLOCK_PROD_BIN & MEM_UNLOCK_DBG_BIN
 to hold dbg/prod ucode names.

JIRA NVGPUT-76

Change-Id: Ie282a281fe502ada31a69e3b3c734e9a3a725395
Signed-off-by: Mahantesh Kumbar <mkumbar@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1842880
Reviewed-by: svc-misra-checker <svc-misra-checker@nvidia.com>
Reviewed-by: Thomas Fleury <tfleury@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: Vijayakumar Subbu <vsubbu@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
This commit is contained in:
Mahantesh Kumbar
2018-09-24 17:09:40 +05:30
committed by mobile promotions
parent 9f82897d02
commit 442cb2b1db

View File

@@ -49,6 +49,9 @@
#define HW_SCRUB_TIMEOUT_MAX 2000000 /* usec */ #define HW_SCRUB_TIMEOUT_MAX 2000000 /* usec */
#define MEM_UNLOCK_TIMEOUT 3500 /* msec */ #define MEM_UNLOCK_TIMEOUT 3500 /* msec */
#define MEM_UNLOCK_PROD_BIN "mem_unlock.bin"
#define MEM_UNLOCK_DBG_BIN "mem_unlock_dbg.bin"
void gv100_fb_reset(struct gk20a *g) void gv100_fb_reset(struct gk20a *g)
{ {
u32 val; u32 val;
@@ -140,11 +143,16 @@ int gv100_fb_memory_unlock(struct gk20a *g)
nvgpu_log_info(g, "fb_mmu_vpr_info = 0x%08x", nvgpu_log_info(g, "fb_mmu_vpr_info = 0x%08x",
gk20a_readl(g, fb_mmu_vpr_info_r())); gk20a_readl(g, fb_mmu_vpr_info_r()));
/* /*
* mem_unlock.bin should be written to install * mem_unlock.bin should be written to install
* traps even if VPR isnt actually supported * traps even if VPR isnt actually supported
*/ */
mem_unlock_fw = nvgpu_request_firmware(g, "mem_unlock.bin", 0); if (!g->ops.pmu.is_debug_mode_enabled(g)) {
mem_unlock_fw = nvgpu_request_firmware(g, MEM_UNLOCK_PROD_BIN, 0);
} else {
mem_unlock_fw = nvgpu_request_firmware(g, MEM_UNLOCK_DBG_BIN, 0);
}
if (!mem_unlock_fw) { if (!mem_unlock_fw) {
nvgpu_err(g, "mem unlock ucode get fail"); nvgpu_err(g, "mem unlock ucode get fail");
err = -ENOENT; err = -ENOENT;