summaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorsumitg <sumitg@nvidia.com>2018-09-12 07:00:27 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2018-09-14 18:34:29 -0400
commit3ca32bf749eef2c338d9f8707001ca883e9933e8 (patch)
tree297edada9765b0a79eea5d303ad0112b3e7795b3 /include/linux
parentc662725996835f843f5a42e42d2c5e1fe0e90f85 (diff)
platform: tegra: parse userbits for cluster NOC's
Parse failed transaction's userbits separately for Cluster Fabric NOC's from CBB central NOC's. Bug 200340783 Change-Id: I8d635b5a28b3e15e6a86978b2dc8325e131f476d Signed-off-by: sumitg <sumitg@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1821397 Reviewed-by: Automatic_Commit_Validation_User GVS: Gerrit_Virtual_Submit Reviewed-by: Alexander Van Brunt <avanbrunt@nvidia.com> Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/platform/tegra/tegra_cbb.h39
1 files changed, 17 insertions, 22 deletions
diff --git a/include/linux/platform/tegra/tegra_cbb.h b/include/linux/platform/tegra/tegra_cbb.h
index 6a1f1b15f..690c99555 100644
--- a/include/linux/platform/tegra/tegra_cbb.h
+++ b/include/linux/platform/tegra/tegra_cbb.h
@@ -59,28 +59,8 @@
59#define CBB_EXTRACT(_x_, _msb_, _lsb_) \ 59#define CBB_EXTRACT(_x_, _msb_, _lsb_) \
60 ((_x_ & CBB_MASK(_msb_, _lsb_)) >> _lsb_) 60 ((_x_ & CBB_MASK(_msb_, _lsb_)) >> _lsb_)
61 61
62 62#define get_noc_errlog_subfield(_x_, _msb_, _lsb_) \
63#define get_cbb_errlog0_trans_opc(_x_) CBB_EXTRACT(_x_, 4, 1) 63 CBB_EXTRACT(_x_, _msb_, _lsb_)
64#define get_cbb_errlog0_code(_x_) CBB_EXTRACT(_x_, 10, 8)
65#define get_cbb_errlog0_src(_x_) CBB_EXTRACT(_x_, 27, 16)
66
67#define get_cbb_errlog5_axi_id(_x_) CBB_EXTRACT(_x_, 30, 23)
68#define get_cbb_errlog5_mstr_id(_x_) CBB_EXTRACT(_x_, 22, 19)
69#define get_cbb_errlog5_vqc(_x_) CBB_EXTRACT(_x_, 18, 17)
70#define get_cbb_errlog5_grpsec(_x_) CBB_EXTRACT(_x_, 16, 10)
71#define get_cbb_errlog5_falconsec(_x_) CBB_EXTRACT(_x_, 9, 8)
72#define get_cbb_errlog5_axprot(_x_) CBB_EXTRACT(_x_, 7, 5)
73#define get_cbb_errlog5_non_modify(_x_) CBB_EXTRACT(_x_, 4, 4)
74#define get_cbb_errlog5_axcache(_x_) CBB_EXTRACT(_x_, 3, 0)
75
76#define get_cbb_routeid_initflow(_x_, _msb_, _lsb_) \
77 CBB_EXTRACT(_x_, _msb_, _lsb_)
78#define get_cbb_routeid_targflow(_x_, _msb_, _lsb_) \
79 CBB_EXTRACT(_x_, _msb_, _lsb_)
80#define get_cbb_routeid_targsubrange(_x_, _msb_, _lsb_) \
81 CBB_EXTRACT(_x_, _msb_, _lsb_)
82#define get_cbb_routeid_seqid(_x_, _msb_, _lsb_) \
83 CBB_EXTRACT(_x_, _msb_, _lsb_)
84 64
85struct tegra_noc_errors { 65struct tegra_noc_errors {
86 char *errcode; 66 char *errcode;
@@ -107,6 +87,17 @@ struct tegra_lookup_noc_aperture {
107 u16 seqid; 87 u16 seqid;
108}; 88};
109 89
90struct tegra_noc_userbits {
91 u8 axcache;
92 u8 non_mod;
93 u8 axprot;
94 u8 falconsec;
95 u8 grpsec;
96 u8 vqc;
97 u8 mstr_id;
98 u8 axi_id;
99};
100
110struct tegra_cbb_errlog_record { 101struct tegra_cbb_errlog_record {
111 struct list_head node; 102 struct list_head node;
112 struct serr_hook *callback; 103 struct serr_hook *callback;
@@ -130,6 +121,8 @@ struct tegra_cbb_errlog_record {
130 void (*stallen)(void __iomem *addr); 121 void (*stallen)(void __iomem *addr);
131 void (*tegra_noc_parse_routeid) 122 void (*tegra_noc_parse_routeid)
132 (struct tegra_lookup_noc_aperture *, u64); 123 (struct tegra_lookup_noc_aperture *, u64);
124 void (*tegra_noc_parse_userbits)
125 (struct tegra_noc_userbits *, u64);
133 struct tegra_lookup_noc_aperture *noc_aperture; 126 struct tegra_lookup_noc_aperture *noc_aperture;
134 int max_noc_aperture; 127 int max_noc_aperture;
135 char **tegra_noc_routeid_initflow; 128 char **tegra_noc_routeid_initflow;
@@ -155,6 +148,8 @@ struct tegra_cbb_noc_data {
155 void (*stallen)(void __iomem *addr); 148 void (*stallen)(void __iomem *addr);
156 void (*tegra_noc_parse_routeid) 149 void (*tegra_noc_parse_routeid)
157 (struct tegra_lookup_noc_aperture *, u64); 150 (struct tegra_lookup_noc_aperture *, u64);
151 void (*tegra_noc_parse_userbits)
152 (struct tegra_noc_userbits *, u64);
158 struct tegra_lookup_noc_aperture *noc_aperture; 153 struct tegra_lookup_noc_aperture *noc_aperture;
159 int max_error; 154 int max_error;
160 int max_noc_aperture; 155 int max_noc_aperture;