mirror of
git://nv-tegra.nvidia.com/linux-nvgpu.git
synced 2025-12-23 01:50:07 +03:00
gpu: nvgpu: support nvgpu-next secure boot
Add NVGPU_NEXT_GPUID in nvgpu_acr_init, nvgpu_acr_lsf_fecs_ucode_details, and nvgpu_acr_lsf_gpccs_ucode_details functions. JIRA NVGPU-5323 Change-Id: I514ab6de08ffaad323072499a92acef24668d3fc Signed-off-by: smadhavan <smadhavan@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvgpu/+/2361630 Reviewed-by: automaticguardword <automaticguardword@nvidia.com> Reviewed-by: Seema Khowala <seemaj@nvidia.com> Reviewed-by: Deepak Nibade <dnibade@nvidia.com> Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com> GVS: Gerrit_Virtual_Submit
This commit is contained in:
@@ -154,6 +154,9 @@ int nvgpu_acr_init(struct gk20a *g)
|
|||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
case NVGPU_GPUID_GV11B:
|
case NVGPU_GPUID_GV11B:
|
||||||
|
#if defined(CONFIG_NVGPU_NEXT)
|
||||||
|
case NVGPU_NEXT_GPUID:
|
||||||
|
#endif
|
||||||
nvgpu_gv11b_acr_sw_init(g, g->acr);
|
nvgpu_gv11b_acr_sw_init(g, g->acr);
|
||||||
break;
|
break;
|
||||||
#ifdef CONFIG_NVGPU_DGPU
|
#ifdef CONFIG_NVGPU_DGPU
|
||||||
|
|||||||
@@ -104,6 +104,9 @@ int nvgpu_acr_lsf_fecs_ucode_details(struct gk20a *g, void *lsf_ucode_img)
|
|||||||
|
|
||||||
switch (ver) {
|
switch (ver) {
|
||||||
case NVGPU_GPUID_GV11B:
|
case NVGPU_GPUID_GV11B:
|
||||||
|
#if defined(CONFIG_NVGPU_NEXT)
|
||||||
|
case NVGPU_NEXT_GPUID:
|
||||||
|
#endif
|
||||||
fecs_sig = nvgpu_request_firmware(g, GM20B_FECS_UCODE_SIG,
|
fecs_sig = nvgpu_request_firmware(g, GM20B_FECS_UCODE_SIG,
|
||||||
NVGPU_REQUEST_FIRMWARE_NO_WARN);
|
NVGPU_REQUEST_FIRMWARE_NO_WARN);
|
||||||
break;
|
break;
|
||||||
@@ -211,6 +214,9 @@ int nvgpu_acr_lsf_gpccs_ucode_details(struct gk20a *g, void *lsf_ucode_img)
|
|||||||
|
|
||||||
switch (ver) {
|
switch (ver) {
|
||||||
case NVGPU_GPUID_GV11B:
|
case NVGPU_GPUID_GV11B:
|
||||||
|
#if defined(CONFIG_NVGPU_NEXT)
|
||||||
|
case NVGPU_NEXT_GPUID:
|
||||||
|
#endif
|
||||||
gpccs_sig = nvgpu_request_firmware(g, T18x_GPCCS_UCODE_SIG,
|
gpccs_sig = nvgpu_request_firmware(g, T18x_GPCCS_UCODE_SIG,
|
||||||
NVGPU_REQUEST_FIRMWARE_NO_WARN);
|
NVGPU_REQUEST_FIRMWARE_NO_WARN);
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -161,8 +161,22 @@ int nvgpu_acr_bootstrap_hs_ucode(struct gk20a *g, struct nvgpu_acr *acr,
|
|||||||
if (acr_fw != NULL) {
|
if (acr_fw != NULL) {
|
||||||
acr->patch_wpr_info_to_ucode(g, acr, acr_desc, true);
|
acr->patch_wpr_info_to_ucode(g, acr, acr_desc, true);
|
||||||
} else {
|
} else {
|
||||||
acr_fw = nvgpu_request_firmware(g, acr_desc->acr_fw_name,
|
/* Firmware is stored in soc specific path in FMODEL
|
||||||
NVGPU_REQUEST_FIRMWARE_NO_SOC);
|
* Hence NVGPU_REQUEST_FIRMWARE_NO_WARN is used instead
|
||||||
|
* of NVGPU_REQUEST_FIRMWARE_NO_SOC
|
||||||
|
*/
|
||||||
|
#ifdef CONFIG_NVGPU_SIM
|
||||||
|
if (nvgpu_is_enabled(g, NVGPU_IS_FMODEL)) {
|
||||||
|
acr_fw = nvgpu_request_firmware(g,
|
||||||
|
acr_desc->acr_fw_name,
|
||||||
|
NVGPU_REQUEST_FIRMWARE_NO_WARN);
|
||||||
|
} else
|
||||||
|
#endif
|
||||||
|
{
|
||||||
|
acr_fw = nvgpu_request_firmware(g,
|
||||||
|
acr_desc->acr_fw_name,
|
||||||
|
NVGPU_REQUEST_FIRMWARE_NO_SOC);
|
||||||
|
}
|
||||||
if (acr_fw == NULL) {
|
if (acr_fw == NULL) {
|
||||||
nvgpu_err(g, "%s ucode get fail for %s",
|
nvgpu_err(g, "%s ucode get fail for %s",
|
||||||
acr_desc->acr_fw_name, g->name);
|
acr_desc->acr_fw_name, g->name);
|
||||||
|
|||||||
Reference in New Issue
Block a user