summaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorPotharaju Ravi Teja <pteja@nvidia.com>2019-10-24 01:37:52 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2020-01-24 02:41:56 -0500
commit7544f678853edea145beff4fb0971fe343ce854e (patch)
treebd4821964369b93e1e606e32e8aedde3cea33c35 /include/linux
parentdcf5893a70a79e60c57f492fbc7fc8a8e4b08c3a (diff)
inject-vm-err: CBB error handler
Add support to handle control back bone errors. - This change adds a sample handler for cbb error. It is a minimal handler that just dumps error information to the console. This can be used as a reference to implement an elaborate error handler. Bug 2580803 Change-Id: I2fbbc994854611a54276068ee90f1d2cffeeb948 (cherry picked from commit ea898756f7b2e4aff8f89546f3b69fc4e97fd300) Signed-off-by: Potharaju Ravi Teja <pteja@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2279874 GVS: Gerrit_Virtual_Submit Tested-by: mobile promotions <svcmobile_promotions@nvidia.com> Reviewed-by: Dmitry Pervushin <dpervushin@nvidia.com> Reviewed-by: Rohit Upadhyay <rupadhyay@nvidia.com> Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/errinfo.h36
-rw-r--r--include/linux/vm_err.h3
2 files changed, 37 insertions, 2 deletions
diff --git a/include/linux/errinfo.h b/include/linux/errinfo.h
index 641b17fa7..e75c2b308 100644
--- a/include/linux/errinfo.h
+++ b/include/linux/errinfo.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (c) 2019, NVIDIA CORPORATION. All rights reserved. 2 * Copyright (c) 2019-2020, NVIDIA CORPORATION. All rights reserved.
3 * 3 *
4 * NVIDIA CORPORATION and its licensors retain all intellectual property 4 * NVIDIA CORPORATION and its licensors retain all intellectual property
5 * and proprietary rights in and to this software, related documentation 5 * and proprietary rights in and to this software, related documentation
@@ -18,6 +18,7 @@ enum err_reason {
18 REASON_ASYNC_SMMU_GLOBAL, 18 REASON_ASYNC_SMMU_GLOBAL,
19 REASON_ASYNC_BRIDGE, 19 REASON_ASYNC_BRIDGE,
20 REASON_ASYNC_MC, 20 REASON_ASYNC_MC,
21 REASON_ASYNC_CBB,
21 REASON_SYNC_INSTR_ABORT, 22 REASON_SYNC_INSTR_ABORT,
22 REASON_SYNC_DATA_ABORT, 23 REASON_SYNC_DATA_ABORT,
23 REASON_SYNC_OTHER, 24 REASON_SYNC_OTHER,
@@ -53,6 +54,38 @@ struct __attribute__((__packed__)) async_bridge_err_t {
53 unsigned int cache; 54 unsigned int cache;
54}; 55};
55 56
57struct __attribute__((__packed__)) async_cbb_err_t {
58 char cbb_name[NAME_SIZE];
59 unsigned int error_logger;
60 unsigned int errlog0;
61 char transaction_type[NAME_SIZE];
62 char error_code[NAME_SIZE];
63 char error_source[NAME_SIZE];
64 char error_description[NAME_SIZE];
65 bool header_format;
66 unsigned int packet_header_lock;
67 unsigned int packet_header_len1;
68 unsigned int errlog1;
69 unsigned int errlog2;
70 uint64_t route_id;
71 char initflow[NAME_SIZE];
72 char targflow[NAME_SIZE];
73 unsigned int targ_subrange;
74 unsigned int seqid;
75 unsigned int errlog3;
76 unsigned int errlog4;
77 uint64_t address;
78 unsigned int errlog5;
79 char master_id[NAME_SIZE];
80 unsigned int non_mod;
81 unsigned int axi_id;
82 unsigned int security_group;
83 uint32_t cache;
84 uint32_t protection;
85 unsigned int falconsec;
86 unsigned int virtual_q_channel;
87};
88
56struct __attribute__((__packed__)) async_smmu_err_t { 89struct __attribute__((__packed__)) async_smmu_err_t {
57 unsigned int stream_id; 90 unsigned int stream_id;
58 unsigned int cb_id; 91 unsigned int cb_id;
@@ -93,6 +126,7 @@ struct __attribute__((__packed__)) err_data_t {
93 struct async_bridge_err_t async_bridge_err; 126 struct async_bridge_err_t async_bridge_err;
94 struct async_smmu_err_t async_smmu_err; 127 struct async_smmu_err_t async_smmu_err;
95 struct async_mc_err_t async_mc_err; 128 struct async_mc_err_t async_mc_err;
129 struct async_cbb_err_t async_cbb_err;
96 /* Synchronous */ 130 /* Synchronous */
97 struct sync_data_abort_t sync_data_abort; 131 struct sync_data_abort_t sync_data_abort;
98 }; 132 };
diff --git a/include/linux/vm_err.h b/include/linux/vm_err.h
index a891265ce..31e3fca79 100644
--- a/include/linux/vm_err.h
+++ b/include/linux/vm_err.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (c) 2019 NVIDIA CORPORATION. All rights reserved. 2 * Copyright (c) 2019-2020 NVIDIA CORPORATION. All rights reserved.
3 * 3 *
4 * This software is licensed under the terms of the GNU General Public 4 * This software is licensed under the terms of the GNU General Public
5 * License version 2, as published by the Free Software Foundation, and 5 * License version 2, as published by the Free Software Foundation, and
@@ -38,6 +38,7 @@ static const char * const tegra_hv_err_reason_desc[] = {
38 "SMMU Global", 38 "SMMU Global",
39 "Bridge", 39 "Bridge",
40 "Memory Controller", 40 "Memory Controller",
41 "Central Back Bone",
41 "Instruction Abort", 42 "Instruction Abort",
42 "Data Abort", 43 "Data Abort",
43 "Other synchronous exception", 44 "Other synchronous exception",