From 3af391e862bd580b9748b383c808d5ed63d52c1b Mon Sep 17 00:00:00 2001 From: mpoojary Date: Tue, 28 Sep 2021 11:56:36 +0000 Subject: gpu: nvgpu: 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. Note: This support is added for t18x. In the sub-sequent CL, support for T210 will be added and since ACR binaries are different for gp10b and gm20b, a new ACR init function is created for gp10b to accept new ACR prod/dbg binaries. Bug 2672836 dev-main reference patch: https://git-master.nvidia.com/r/c/linux-nvgpu/+/2471590 Change-Id: Ib0a01bce4f3a3187aa15a669649f8510c88dfd0a Signed-off-by: mpoojary Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvgpu/+/2601970 Tested-by: mobile promotions Reviewed-by: Mahantesh Kumbar Reviewed-by: Deepak Nibade Reviewed-by: mobile promotions GVS: Gerrit_Virtual_Submit --- drivers/gpu/nvgpu/gp10b/acr_gp10b.c | 52 +++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 drivers/gpu/nvgpu/gp10b/acr_gp10b.c (limited to 'drivers/gpu/nvgpu/gp10b/acr_gp10b.c') diff --git a/drivers/gpu/nvgpu/gp10b/acr_gp10b.c b/drivers/gpu/nvgpu/gp10b/acr_gp10b.c new file mode 100644 index 00000000..d113c458 --- /dev/null +++ b/drivers/gpu/nvgpu/gp10b/acr_gp10b.c @@ -0,0 +1,52 @@ +/* + * Copyright (c) 2021, NVIDIA CORPORATION. All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +#include +#include +#include +#include + +#include "gm20b/acr_gm20b.h" +#include "acr_gp10b.h" + +static void gp10b_acr_default_sw_init(struct gk20a *g, struct hs_acr *hs_acr) +{ + nvgpu_log_fn(g, " "); + + /* ACR HS ucode type & f/w name*/ + hs_acr->acr_type = ACR_DEFAULT; + + if (!g->ops.pmu.is_debug_mode_enabled(g)) { + hs_acr->acr_fw_name = HSBIN_ACR_PROD_UCODE; + } else { + hs_acr->acr_fw_name = HSBIN_ACR_DBG_UCODE; + } +} + +void nvgpu_gp10b_acr_sw_init(struct gk20a *g, struct nvgpu_acr *acr) +{ + nvgpu_log_fn(g, " "); + + /* inherit the gm20b config data */ + nvgpu_gm20b_acr_sw_init(g, acr); + gp10b_acr_default_sw_init(g, &acr->acr); +} \ No newline at end of file -- cgit v1.2.2