From 5a1165d984f3f0001621bbde152cbf9650010895 Mon Sep 17 00:00:00 2001 From: Mahantesh Kumbar Date: Fri, 7 Jul 2017 21:35:46 +0530 Subject: gpu: nvgpu: falcon status dump support - Added support to dump flacon controller status - Method to print recent PC history to know call trace - Method to dump IMBLK info - Updated falcon hw header files to include registers of PC trace & IMBLK JIRA NVGPU-105 Change-Id: Id4aaafd87113d47e552afb21b87f8b087d36004e Signed-off-by: Mahantesh Kumbar Reviewed-on: https://git-master.nvidia.com/r/1515371 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: svc-mobile-coverity Reviewed-by: svccoveritychecker GVS: Gerrit_Virtual_Submit Reviewed-by: Vijayakumar Subbu --- .../nvgpu/include/nvgpu/hw/gk20a/hw_falcon_gk20a.h | 24 +++++++++++++++ .../nvgpu/include/nvgpu/hw/gm20b/hw_falcon_gm20b.h | 36 ++++++++++++++++++++++ .../nvgpu/include/nvgpu/hw/gp106/hw_falcon_gp106.h | 36 ++++++++++++++++++++++ .../nvgpu/include/nvgpu/hw/gp10b/hw_falcon_gp10b.h | 36 ++++++++++++++++++++++ 4 files changed, 132 insertions(+) (limited to 'drivers/gpu/nvgpu/include') diff --git a/drivers/gpu/nvgpu/include/nvgpu/hw/gk20a/hw_falcon_gk20a.h b/drivers/gpu/nvgpu/include/nvgpu/hw/gk20a/hw_falcon_gk20a.h index 8acc61ec..a948bf58 100644 --- a/drivers/gpu/nvgpu/include/nvgpu/hw/gk20a/hw_falcon_gk20a.h +++ b/drivers/gpu/nvgpu/include/nvgpu/hw/gk20a/hw_falcon_gk20a.h @@ -412,6 +412,30 @@ static inline u32 falcon_falcon_dmatrffboffs_r(void) { return 0x0000011c; } +static inline u32 falcon_falcon_imstat_r(void) +{ + return 0x00000144; +} +static inline u32 falcon_falcon_traceidx_r(void) +{ + return 0x00000148; +} +static inline u32 falcon_falcon_traceidx_maxidx_v(u32 r) +{ + return (r >> 16) & 0xff; +} +static inline u32 falcon_falcon_traceidx_idx_v(u32 r) +{ + return (r >> 0) & 0xff; +} +static inline u32 falcon_falcon_tracepc_r(void) +{ + return 0x0000014c; +} +static inline u32 falcon_falcon_tracepc_pc_v(u32 r) +{ + return (r >> 0) & 0xffffff; +} static inline u32 falcon_falcon_exterraddr_r(void) { return 0x00000168; diff --git a/drivers/gpu/nvgpu/include/nvgpu/hw/gm20b/hw_falcon_gm20b.h b/drivers/gpu/nvgpu/include/nvgpu/hw/gm20b/hw_falcon_gm20b.h index 6be11429..851fb62a 100644 --- a/drivers/gpu/nvgpu/include/nvgpu/hw/gm20b/hw_falcon_gm20b.h +++ b/drivers/gpu/nvgpu/include/nvgpu/hw/gm20b/hw_falcon_gm20b.h @@ -440,6 +440,42 @@ static inline u32 falcon_falcon_dmatrffboffs_r(void) { return 0x0000011c; } +static inline u32 falcon_falcon_imctl_debug_r(void) +{ + return 0x0000015c; +} +static inline u32 falcon_falcon_imctl_debug_addr_blk_f(u32 v) +{ + return (v & 0xffffff) << 0; +} +static inline u32 falcon_falcon_imctl_debug_cmd_f(u32 v) +{ + return (v & 0x7) << 24; +} +static inline u32 falcon_falcon_imstat_r(void) +{ + return 0x00000144; +} +static inline u32 falcon_falcon_traceidx_r(void) +{ + return 0x00000148; +} +static inline u32 falcon_falcon_traceidx_maxidx_v(u32 r) +{ + return (r >> 16) & 0xff; +} +static inline u32 falcon_falcon_traceidx_idx_f(u32 v) +{ + return (v & 0xff) << 0; +} +static inline u32 falcon_falcon_tracepc_r(void) +{ + return 0x0000014c; +} +static inline u32 falcon_falcon_tracepc_pc_v(u32 r) +{ + return (r >> 0) & 0xffffff; +} static inline u32 falcon_falcon_exterraddr_r(void) { return 0x00000168; diff --git a/drivers/gpu/nvgpu/include/nvgpu/hw/gp106/hw_falcon_gp106.h b/drivers/gpu/nvgpu/include/nvgpu/hw/gp106/hw_falcon_gp106.h index c744bcec..4f99f2cb 100644 --- a/drivers/gpu/nvgpu/include/nvgpu/hw/gp106/hw_falcon_gp106.h +++ b/drivers/gpu/nvgpu/include/nvgpu/hw/gp106/hw_falcon_gp106.h @@ -444,6 +444,42 @@ static inline u32 falcon_falcon_dmatrffboffs_r(void) { return 0x0000011c; } +static inline u32 falcon_falcon_imctl_debug_r(void) +{ + return 0x0000015c; +} +static inline u32 falcon_falcon_imctl_debug_addr_blk_f(u32 v) +{ + return (v & 0xffffff) << 0; +} +static inline u32 falcon_falcon_imctl_debug_cmd_f(u32 v) +{ + return (v & 0x7) << 24; +} +static inline u32 falcon_falcon_imstat_r(void) +{ + return 0x00000144; +} +static inline u32 falcon_falcon_traceidx_r(void) +{ + return 0x00000148; +} +static inline u32 falcon_falcon_traceidx_maxidx_v(u32 r) +{ + return (r >> 16) & 0xff; +} +static inline u32 falcon_falcon_traceidx_idx_f(u32 v) +{ + return (v & 0xff) << 0; +} +static inline u32 falcon_falcon_tracepc_r(void) +{ + return 0x0000014c; +} +static inline u32 falcon_falcon_tracepc_pc_v(u32 r) +{ + return (r >> 0) & 0xffffff; +} static inline u32 falcon_falcon_exterraddr_r(void) { return 0x00000168; diff --git a/drivers/gpu/nvgpu/include/nvgpu/hw/gp10b/hw_falcon_gp10b.h b/drivers/gpu/nvgpu/include/nvgpu/hw/gp10b/hw_falcon_gp10b.h index 7f9d0b5d..67b7ad75 100644 --- a/drivers/gpu/nvgpu/include/nvgpu/hw/gp10b/hw_falcon_gp10b.h +++ b/drivers/gpu/nvgpu/include/nvgpu/hw/gp10b/hw_falcon_gp10b.h @@ -420,6 +420,42 @@ static inline u32 falcon_falcon_dmatrfmoffs_r(void) { return 0x00000114; } +static inline u32 falcon_falcon_imctl_debug_r(void) +{ + return 0x0000015c; +} +static inline u32 falcon_falcon_imctl_debug_addr_blk_f(u32 v) +{ + return (v & 0xffffff) << 0; +} +static inline u32 falcon_falcon_imctl_debug_cmd_f(u32 v) +{ + return (v & 0x7) << 24; +} +static inline u32 falcon_falcon_imstat_r(void) +{ + return 0x00000144; +} +static inline u32 falcon_falcon_traceidx_r(void) +{ + return 0x00000148; +} +static inline u32 falcon_falcon_traceidx_maxidx_v(u32 r) +{ + return (r >> 16) & 0xff; +} +static inline u32 falcon_falcon_traceidx_idx_f(u32 v) +{ + return (v & 0xff) << 0; +} +static inline u32 falcon_falcon_tracepc_r(void) +{ + return 0x0000014c; +} +static inline u32 falcon_falcon_tracepc_pc_v(u32 r) +{ + return (r >> 0) & 0xffffff; +} static inline u32 falcon_falcon_dmatrfcmd_r(void) { return 0x00000118; -- cgit v1.2.2