platform: tegra: adsp: share exception data

adding ability for ADSP to share data when an exception occurs
on the ADSP. The data is shared through the shared memory across
the host.

adding shared exception data prints on host side for debugging.

bug 1868578

Change-Id: I6645e8ae6ab73e5c9df8374f583dacbed4615536
Signed-off-by: Prateek Patel <prpatel@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1611260
Reviewed-by: Ajay Nandakumar M <anandakumarm@nvidia.com>
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
This commit is contained in:
Prateek Patel
2017-11-30 04:27:03 -08:00
committed by Laxman Dewangan
parent 68dd548b9e
commit 9de7361de1
3 changed files with 108 additions and 0 deletions

View File

@@ -129,6 +129,34 @@ struct nvadsp_os_args {
char reserved[128];
} __packed;
/* ARM MODE REGS */
struct arm_mode_regs_shared {
uint32_t fiq_r13, fiq_r14;
uint32_t irq_r13, irq_r14;
uint32_t svc_r13, svc_r14;
uint32_t abt_r13, abt_r14;
uint32_t und_r13, und_r14;
uint32_t sys_r13, sys_r14;
} __packed;
/* ARM FAULT FRAME */
struct arm_fault_frame_shared {
uint32_t spsr;
uint32_t usp;
uint32_t ulr;
uint32_t r[13];
uint32_t pc;
} __packed;
/* ADSP ARM EXCEPTION CONTEXT */
struct nvadsp_exception_context {
struct arm_fault_frame_shared frame;
struct arm_mode_regs_shared regs;
uint32_t stack_addr;
uint32_t stack_dump[32];
uint32_t exception_reason;
} __packed;
/* ADSP OS info/status. Keep in sync with firmware. */
#define MAX_OS_VERSION_BUF 32
struct nvadsp_os_info {
@@ -141,6 +169,7 @@ struct nvadsp_shared_mem {
struct nvadsp_app_shared_msg_pool app_shared_msg_pool;
struct nvadsp_os_args os_args;
struct nvadsp_os_info os_info;
struct nvadsp_exception_context exception_context;
} __packed;