gpu: nvgpu: mailbox dump before reporting to SDL

In case of ACR Bootstrap failure, print the mailbox
values for the error code, before reporting the error
to Safety Service. In some cases, once the error is
reported to SDL, only the nvgpu_sw_quiesce debugs are
there in sloginfo.

Bug 3960710

Signed-off-by: Dinesh Kamalakannan <dineshka@nvidia.com>
Change-Id: Ib72bb4280cc80b39c5fb2e57f26c7b0e9ab6a4ad
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvgpu/+/2867592
Reviewed-by: Mahantesh Kumbar <mkumbar@nvidia.com>
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: svc-mobile-misra <svc-mobile-misra@nvidia.com>
Reviewed-by: svc-mobile-cert <svc-mobile-cert@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
This commit is contained in:
Dinesh Kamalakannan
2023-03-08 14:03:24 +05:30
committed by mobile promotions
parent 84ddb23633
commit a8581f0283

View File

@@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2019-2022, NVIDIA CORPORATION. All rights reserved. * Copyright (c) 2023, NVIDIA CORPORATION. All rights reserved.
* *
* Permission is hereby granted, free of charge, to any person obtaining a * Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"), * copy of this software and associated documentation files (the "Software"),
@@ -137,14 +137,16 @@ int nvgpu_acr_wait_for_completion(struct gk20a *g, struct hs_acr *acr_desc,
data = nvgpu_falcon_mailbox_read(acr_desc->acr_flcn, FALCON_MAILBOX_0); data = nvgpu_falcon_mailbox_read(acr_desc->acr_flcn, FALCON_MAILBOX_0);
if (data != 0U) { if (data != 0U) {
error_type = nvgpu_falcon_mailbox_read(acr_desc->acr_flcn, FALCON_MAILBOX_1); error_type = nvgpu_falcon_mailbox_read(acr_desc->acr_flcn, FALCON_MAILBOX_1);
if (nvgpu_is_enabled(g, NVGPU_ACR_NEXT_CORE_ENABLED)) {
acr_report_error_to_sdl(g, data, error_type);
}
nvgpu_err(g, "flcn-%d: HS ucode boot failed, err %x", flcn_id, nvgpu_err(g, "flcn-%d: HS ucode boot failed, err %x", flcn_id,
data); data);
nvgpu_err(g, "flcn-%d: Mailbox-1 : 0x%x", flcn_id, nvgpu_err(g, "flcn-%d: Mailbox-1 : 0x%x", flcn_id,
nvgpu_falcon_mailbox_read(acr_desc->acr_flcn, nvgpu_falcon_mailbox_read(acr_desc->acr_flcn,
FALCON_MAILBOX_1)); FALCON_MAILBOX_1));
if (nvgpu_is_enabled(g, NVGPU_ACR_NEXT_CORE_ENABLED)) {
acr_report_error_to_sdl(g, data, error_type);
}
completion = -EAGAIN; completion = -EAGAIN;
error_type = ACR_BOOT_FAILED; error_type = ACR_BOOT_FAILED;
goto exit; goto exit;