summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/include/nvgpu/hw/gv11b/hw_gr_gv11b.h
diff options
context:
space:
mode:
authorDavid Nieto <dmartineznie@nvidia.com>2017-05-12 14:07:00 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2017-05-24 07:55:42 -0400
commit2173add7ae7210606afdaa56995a61d012b9a2f1 (patch)
tree3e6f637ab0c4f2e28aa63823105764f39c774a85 /drivers/gpu/nvgpu/include/nvgpu/hw/gv11b/hw_gr_gv11b.h
parent45ca7cb8c5774cfc15015973b1883faa1d93b9e6 (diff)
gpu: nvgpu: per-chip GPCCS exception support
Adding support for ISR handling of GPCCS exceptions and GCC ECC support JIRA: GPUT19X-83 Change-Id: Ica749dc678f152d536052cf47f2ea2b205a231d6 Signed-off-by: David Nieto <dmartineznie@nvidia.com> Reviewed-on: http://git-master/r/1480997 Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/include/nvgpu/hw/gv11b/hw_gr_gv11b.h')
-rw-r--r--drivers/gpu/nvgpu/include/nvgpu/hw/gv11b/hw_gr_gv11b.h460
1 files changed, 460 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/include/nvgpu/hw/gv11b/hw_gr_gv11b.h b/drivers/gpu/nvgpu/include/nvgpu/hw/gv11b/hw_gr_gv11b.h
index 6f38cf5b..9917f86d 100644
--- a/drivers/gpu/nvgpu/include/nvgpu/hw/gv11b/hw_gr_gv11b.h
+++ b/drivers/gpu/nvgpu/include/nvgpu/hw/gv11b/hw_gr_gv11b.h
@@ -1398,6 +1398,22 @@ static inline u32 gr_fecs_host_int_status_ctxsw_intr_f(u32 v)
1398{ 1398{
1399 return (v & 0xffff) << 0; 1399 return (v & 0xffff) << 0;
1400} 1400}
1401static inline u32 gr_fecs_host_int_status_ecc_corrected_f(u32 v)
1402{
1403 return (v & 0x1) << 21;
1404}
1405static inline u32 gr_fecs_host_int_status_ecc_corrected_m(void)
1406{
1407 return 0x1 << 21;
1408}
1409static inline u32 gr_fecs_host_int_status_ecc_uncorrected_f(u32 v)
1410{
1411 return (v & 0x1) << 22;
1412}
1413static inline u32 gr_fecs_host_int_status_ecc_uncorrected_m(void)
1414{
1415 return 0x1 << 22;
1416}
1401static inline u32 gr_fecs_host_int_clear_r(void) 1417static inline u32 gr_fecs_host_int_clear_r(void)
1402{ 1418{
1403 return 0x00409c20; 1419 return 0x00409c20;
@@ -3378,6 +3394,10 @@ static inline u32 gr_gpcs_gpccs_gpc_exception_en_tpc_f(u32 v)
3378{ 3394{
3379 return (v & 0xff) << 16; 3395 return (v & 0xff) << 16;
3380} 3396}
3397static inline u32 gr_gpcs_gpccs_gpc_exception_en_gpccs_f(u32 v)
3398{
3399 return (v & 0x1) << 14;
3400}
3381static inline u32 gr_gpc0_gpccs_gpc_exception_r(void) 3401static inline u32 gr_gpc0_gpccs_gpc_exception_r(void)
3382{ 3402{
3383 return 0x00502c90; 3403 return 0x00502c90;
@@ -3450,6 +3470,18 @@ static inline u32 gr_pri_gpc0_gcc_l15_ecc_uncorrected_err_count_total_v(u32 r)
3450{ 3470{
3451 return (r >> 0) & 0xffff; 3471 return (r >> 0) & 0xffff;
3452} 3472}
3473static inline u32 gr_gpc0_gpccs_gpc_exception_gpccs_f(u32 v)
3474{
3475 return (v & 0x1) << 14;
3476}
3477static inline u32 gr_gpc0_gpccs_gpc_exception_gpccs_m(void)
3478{
3479 return 0x1 << 14;
3480}
3481static inline u32 gr_gpc0_gpccs_gpc_exception_gpccs_pending_f(void)
3482{
3483 return 0x4000;
3484}
3453static inline u32 gr_gpc0_tpc0_tpccs_tpc_exception_r(void) 3485static inline u32 gr_gpc0_tpc0_tpccs_tpc_exception_r(void)
3454{ 3486{
3455 return 0x00504508; 3487 return 0x00504508;
@@ -3954,4 +3986,432 @@ static inline u32 gr_gpcs_tc_debug0_limit_coalesce_buffer_size_m(void)
3954{ 3986{
3955 return 0x1ff << 0; 3987 return 0x1ff << 0;
3956} 3988}
3989static inline u32 gr_gpc0_gpccs_hww_esr_r(void)
3990{
3991 return 0x00502c98;
3992}
3993static inline u32 gr_gpc0_gpccs_hww_esr_ecc_corrected_f(u32 v)
3994{
3995 return (v & 0x1) << 0;
3996}
3997static inline u32 gr_gpc0_gpccs_hww_esr_ecc_corrected_m(void)
3998{
3999 return 0x1 << 0;
4000}
4001static inline u32 gr_gpc0_gpccs_hww_esr_ecc_corrected_pending_f(void)
4002{
4003 return 0x1;
4004}
4005static inline u32 gr_gpc0_gpccs_hww_esr_ecc_uncorrected_f(u32 v)
4006{
4007 return (v & 0x1) << 1;
4008}
4009static inline u32 gr_gpc0_gpccs_hww_esr_ecc_uncorrected_m(void)
4010{
4011 return 0x1 << 1;
4012}
4013static inline u32 gr_gpc0_gpccs_hww_esr_ecc_uncorrected_pending_f(void)
4014{
4015 return 0x2;
4016}
4017static inline u32 gr_gpc0_gpccs_falcon_ecc_status_r(void)
4018{
4019 return 0x00502678;
4020}
4021static inline u32 gr_gpc0_gpccs_falcon_ecc_status_corrected_err_imem_f(u32 v)
4022{
4023 return (v & 0x1) << 0;
4024}
4025static inline u32 gr_gpc0_gpccs_falcon_ecc_status_corrected_err_imem_m(void)
4026{
4027 return 0x1 << 0;
4028}
4029static inline u32 gr_gpc0_gpccs_falcon_ecc_status_corrected_err_imem_pending_f(void)
4030{
4031 return 0x1;
4032}
4033static inline u32 gr_gpc0_gpccs_falcon_ecc_status_corrected_err_dmem_f(u32 v)
4034{
4035 return (v & 0x1) << 1;
4036}
4037static inline u32 gr_gpc0_gpccs_falcon_ecc_status_corrected_err_dmem_m(void)
4038{
4039 return 0x1 << 1;
4040}
4041static inline u32 gr_gpc0_gpccs_falcon_ecc_status_corrected_err_dmem_pending_f(void)
4042{
4043 return 0x2;
4044}
4045static inline u32 gr_gpc0_gpccs_falcon_ecc_status_uncorrected_err_imem_f(u32 v)
4046{
4047 return (v & 0x1) << 4;
4048}
4049static inline u32 gr_gpc0_gpccs_falcon_ecc_status_uncorrected_err_imem_m(void)
4050{
4051 return 0x1 << 4;
4052}
4053static inline u32 gr_gpc0_gpccs_falcon_ecc_status_uncorrected_err_imem_pending_f(void)
4054{
4055 return 0x10;
4056}
4057static inline u32 gr_gpc0_gpccs_falcon_ecc_status_uncorrected_err_dmem_f(u32 v)
4058{
4059 return (v & 0x1) << 5;
4060}
4061static inline u32 gr_gpc0_gpccs_falcon_ecc_status_uncorrected_err_dmem_m(void)
4062{
4063 return 0x1 << 5;
4064}
4065static inline u32 gr_gpc0_gpccs_falcon_ecc_status_uncorrected_err_dmem_pending_f(void)
4066{
4067 return 0x20;
4068}
4069static inline u32 gr_gpc0_gpccs_falcon_ecc_status_uncorrected_err_total_counter_overflow_f(u32 v)
4070{
4071 return (v & 0x1) << 10;
4072}
4073static inline u32 gr_gpc0_gpccs_falcon_ecc_status_uncorrected_err_total_counter_overflow_m(void)
4074{
4075 return 0x1 << 10;
4076}
4077static inline u32 gr_gpc0_gpccs_falcon_ecc_status_uncorrected_err_total_counter_overflow_pending_f(void)
4078{
4079 return 0x400;
4080}
4081static inline u32 gr_gpc0_gpccs_falcon_ecc_status_corrected_err_total_counter_overflow_f(u32 v)
4082{
4083 return (v & 0x1) << 8;
4084}
4085static inline u32 gr_gpc0_gpccs_falcon_ecc_status_corrected_err_total_counter_overflow_m(void)
4086{
4087 return 0x1 << 8;
4088}
4089static inline u32 gr_gpc0_gpccs_falcon_ecc_status_corrected_err_total_counter_overflow_pending_f(void)
4090{
4091 return 0x100;
4092}
4093static inline u32 gr_gpc0_gpccs_falcon_ecc_status_uncorrected_err_unique_counter_overflow_f(u32 v)
4094{
4095 return (v & 0x1) << 11;
4096}
4097static inline u32 gr_gpc0_gpccs_falcon_ecc_status_uncorrected_err_unique_counter_overflow_m(void)
4098{
4099 return 0x1 << 11;
4100}
4101static inline u32 gr_gpc0_gpccs_falcon_ecc_status_uncorrected_err_unique_counter_overflow_pending_f(void)
4102{
4103 return 0x800;
4104}
4105static inline u32 gr_gpc0_gpccs_falcon_ecc_status_corrected_err_unique_counter_overflow_f(u32 v)
4106{
4107 return (v & 0x1) << 9;
4108}
4109static inline u32 gr_gpc0_gpccs_falcon_ecc_status_corrected_err_unique_counter_overflow_m(void)
4110{
4111 return 0x1 << 9;
4112}
4113static inline u32 gr_gpc0_gpccs_falcon_ecc_status_corrected_err_unique_counter_overflow_pending_f(void)
4114{
4115 return 0x200;
4116}
4117static inline u32 gr_gpc0_gpccs_falcon_ecc_status_reset_f(u32 v)
4118{
4119 return (v & 0x1) << 31;
4120}
4121static inline u32 gr_gpc0_gpccs_falcon_ecc_status_reset_task_f(void)
4122{
4123 return 0x80000000;
4124}
4125static inline u32 gr_gpc0_gpccs_falcon_ecc_address_r(void)
4126{
4127 return 0x00502684;
4128}
4129static inline u32 gr_gpc0_gpccs_falcon_ecc_address_index_f(u32 v)
4130{
4131 return (v & 0x7fffff) << 0;
4132}
4133static inline u32 gr_gpc0_gpccs_falcon_ecc_address_row_address_s(void)
4134{
4135 return 20;
4136}
4137static inline u32 gr_gpc0_gpccs_falcon_ecc_address_row_address_f(u32 v)
4138{
4139 return (v & 0xfffff) << 0;
4140}
4141static inline u32 gr_gpc0_gpccs_falcon_ecc_address_row_address_m(void)
4142{
4143 return 0xfffff << 0;
4144}
4145static inline u32 gr_gpc0_gpccs_falcon_ecc_address_row_address_v(u32 r)
4146{
4147 return (r >> 0) & 0xfffff;
4148}
4149static inline u32 gr_gpc0_gpccs_falcon_ecc_corrected_err_count_r(void)
4150{
4151 return 0x0050267c;
4152}
4153static inline u32 gr_gpc0_gpccs_falcon_ecc_corrected_err_count_total_s(void)
4154{
4155 return 16;
4156}
4157static inline u32 gr_gpc0_gpccs_falcon_ecc_corrected_err_count_total_f(u32 v)
4158{
4159 return (v & 0xffff) << 0;
4160}
4161static inline u32 gr_gpc0_gpccs_falcon_ecc_corrected_err_count_total_m(void)
4162{
4163 return 0xffff << 0;
4164}
4165static inline u32 gr_gpc0_gpccs_falcon_ecc_corrected_err_count_total_v(u32 r)
4166{
4167 return (r >> 0) & 0xffff;
4168}
4169static inline u32 gr_gpc0_gpccs_falcon_ecc_corrected_err_count_unique_total_s(void)
4170{
4171 return 16;
4172}
4173static inline u32 gr_gpc0_gpccs_falcon_ecc_corrected_err_count_unique_total_f(u32 v)
4174{
4175 return (v & 0xffff) << 16;
4176}
4177static inline u32 gr_gpc0_gpccs_falcon_ecc_corrected_err_count_unique_total_m(void)
4178{
4179 return 0xffff << 16;
4180}
4181static inline u32 gr_gpc0_gpccs_falcon_ecc_corrected_err_count_unique_total_v(u32 r)
4182{
4183 return (r >> 16) & 0xffff;
4184}
4185static inline u32 gr_gpc0_gpccs_falcon_ecc_uncorrected_err_count_r(void)
4186{
4187 return 0x00502680;
4188}
4189static inline u32 gr_gpc0_gpccs_falcon_ecc_uncorrected_err_count_total_f(u32 v)
4190{
4191 return (v & 0xffff) << 0;
4192}
4193static inline u32 gr_gpc0_gpccs_falcon_ecc_uncorrected_err_count_total_m(void)
4194{
4195 return 0xffff << 0;
4196}
4197static inline u32 gr_gpc0_gpccs_falcon_ecc_uncorrected_err_count_total_v(u32 r)
4198{
4199 return (r >> 0) & 0xffff;
4200}
4201static inline u32 gr_gpc0_gpccs_falcon_ecc_uncorrected_err_count_unique_total_s(void)
4202{
4203 return 16;
4204}
4205static inline u32 gr_gpc0_gpccs_falcon_ecc_uncorrected_err_count_unique_total_f(u32 v)
4206{
4207 return (v & 0xffff) << 16;
4208}
4209static inline u32 gr_gpc0_gpccs_falcon_ecc_uncorrected_err_count_unique_total_m(void)
4210{
4211 return 0xffff << 16;
4212}
4213static inline u32 gr_gpc0_gpccs_falcon_ecc_uncorrected_err_count_unique_total_v(u32 r)
4214{
4215 return (r >> 16) & 0xffff;
4216}
4217static inline u32 gr_fecs_falcon_ecc_status_r(void)
4218{
4219 return 0x00409678;
4220}
4221static inline u32 gr_fecs_falcon_ecc_status_corrected_err_imem_f(u32 v)
4222{
4223 return (v & 0x1) << 0;
4224}
4225static inline u32 gr_fecs_falcon_ecc_status_corrected_err_imem_m(void)
4226{
4227 return 0x1 << 0;
4228}
4229static inline u32 gr_fecs_falcon_ecc_status_corrected_err_imem_pending_f(void)
4230{
4231 return 0x1;
4232}
4233static inline u32 gr_fecs_falcon_ecc_status_corrected_err_dmem_f(u32 v)
4234{
4235 return (v & 0x1) << 1;
4236}
4237static inline u32 gr_fecs_falcon_ecc_status_corrected_err_dmem_m(void)
4238{
4239 return 0x1 << 1;
4240}
4241static inline u32 gr_fecs_falcon_ecc_status_corrected_err_dmem_pending_f(void)
4242{
4243 return 0x2;
4244}
4245static inline u32 gr_fecs_falcon_ecc_status_uncorrected_err_imem_f(u32 v)
4246{
4247 return (v & 0x1) << 4;
4248}
4249static inline u32 gr_fecs_falcon_ecc_status_uncorrected_err_imem_m(void)
4250{
4251 return 0x1 << 4;
4252}
4253static inline u32 gr_fecs_falcon_ecc_status_uncorrected_err_imem_pending_f(void)
4254{
4255 return 0x10;
4256}
4257static inline u32 gr_fecs_falcon_ecc_status_uncorrected_err_dmem_f(u32 v)
4258{
4259 return (v & 0x1) << 5;
4260}
4261static inline u32 gr_fecs_falcon_ecc_status_uncorrected_err_dmem_m(void)
4262{
4263 return 0x1 << 5;
4264}
4265static inline u32 gr_fecs_falcon_ecc_status_uncorrected_err_dmem_pending_f(void)
4266{
4267 return 0x20;
4268}
4269static inline u32 gr_fecs_falcon_ecc_status_uncorrected_err_total_counter_overflow_f(u32 v)
4270{
4271 return (v & 0x1) << 10;
4272}
4273static inline u32 gr_fecs_falcon_ecc_status_uncorrected_err_total_counter_overflow_m(void)
4274{
4275 return 0x1 << 10;
4276}
4277static inline u32 gr_fecs_falcon_ecc_status_uncorrected_err_total_counter_overflow_pending_f(void)
4278{
4279 return 0x400;
4280}
4281static inline u32 gr_fecs_falcon_ecc_status_corrected_err_total_counter_overflow_f(u32 v)
4282{
4283 return (v & 0x1) << 8;
4284}
4285static inline u32 gr_fecs_falcon_ecc_status_corrected_err_total_counter_overflow_m(void)
4286{
4287 return 0x1 << 8;
4288}
4289static inline u32 gr_fecs_falcon_ecc_status_corrected_err_total_counter_overflow_pending_f(void)
4290{
4291 return 0x100;
4292}
4293static inline u32 gr_fecs_falcon_ecc_status_uncorrected_err_unique_counter_overflow_f(u32 v)
4294{
4295 return (v & 0x1) << 11;
4296}
4297static inline u32 gr_fecs_falcon_ecc_status_uncorrected_err_unique_counter_overflow_m(void)
4298{
4299 return 0x1 << 11;
4300}
4301static inline u32 gr_fecs_falcon_ecc_status_uncorrected_err_unique_counter_overflow_pending_f(void)
4302{
4303 return 0x800;
4304}
4305static inline u32 gr_fecs_falcon_ecc_status_corrected_err_unique_counter_overflow_f(u32 v)
4306{
4307 return (v & 0x1) << 9;
4308}
4309static inline u32 gr_fecs_falcon_ecc_status_corrected_err_unique_counter_overflow_m(void)
4310{
4311 return 0x1 << 9;
4312}
4313static inline u32 gr_fecs_falcon_ecc_status_corrected_err_unique_counter_overflow_pending_f(void)
4314{
4315 return 0x200;
4316}
4317static inline u32 gr_fecs_falcon_ecc_status_reset_f(u32 v)
4318{
4319 return (v & 0x1) << 31;
4320}
4321static inline u32 gr_fecs_falcon_ecc_status_reset_task_f(void)
4322{
4323 return 0x80000000;
4324}
4325static inline u32 gr_fecs_falcon_ecc_address_r(void)
4326{
4327 return 0x00409684;
4328}
4329static inline u32 gr_fecs_falcon_ecc_address_index_f(u32 v)
4330{
4331 return (v & 0x7fffff) << 0;
4332}
4333static inline u32 gr_fecs_falcon_ecc_address_row_address_s(void)
4334{
4335 return 20;
4336}
4337static inline u32 gr_fecs_falcon_ecc_address_row_address_f(u32 v)
4338{
4339 return (v & 0xfffff) << 0;
4340}
4341static inline u32 gr_fecs_falcon_ecc_address_row_address_m(void)
4342{
4343 return 0xfffff << 0;
4344}
4345static inline u32 gr_fecs_falcon_ecc_address_row_address_v(u32 r)
4346{
4347 return (r >> 0) & 0xfffff;
4348}
4349static inline u32 gr_fecs_falcon_ecc_corrected_err_count_r(void)
4350{
4351 return 0x0040967c;
4352}
4353static inline u32 gr_fecs_falcon_ecc_corrected_err_count_total_s(void)
4354{
4355 return 16;
4356}
4357static inline u32 gr_fecs_falcon_ecc_corrected_err_count_total_f(u32 v)
4358{
4359 return (v & 0xffff) << 0;
4360}
4361static inline u32 gr_fecs_falcon_ecc_corrected_err_count_total_m(void)
4362{
4363 return 0xffff << 0;
4364}
4365static inline u32 gr_fecs_falcon_ecc_corrected_err_count_total_v(u32 r)
4366{
4367 return (r >> 0) & 0xffff;
4368}
4369static inline u32 gr_fecs_falcon_ecc_corrected_err_count_unique_total_s(void)
4370{
4371 return 16;
4372}
4373static inline u32 gr_fecs_falcon_ecc_corrected_err_count_unique_total_f(u32 v)
4374{
4375 return (v & 0xffff) << 16;
4376}
4377static inline u32 gr_fecs_falcon_ecc_corrected_err_count_unique_total_m(void)
4378{
4379 return 0xffff << 16;
4380}
4381static inline u32 gr_fecs_falcon_ecc_corrected_err_count_unique_total_v(u32 r)
4382{
4383 return (r >> 16) & 0xffff;
4384}
4385static inline u32 gr_fecs_falcon_ecc_uncorrected_err_count_r(void)
4386{
4387 return 0x00409680;
4388}
4389static inline u32 gr_fecs_falcon_ecc_uncorrected_err_count_total_f(u32 v)
4390{
4391 return (v & 0xffff) << 0;
4392}
4393static inline u32 gr_fecs_falcon_ecc_uncorrected_err_count_total_m(void)
4394{
4395 return 0xffff << 0;
4396}
4397static inline u32 gr_fecs_falcon_ecc_uncorrected_err_count_total_v(u32 r)
4398{
4399 return (r >> 0) & 0xffff;
4400}
4401static inline u32 gr_fecs_falcon_ecc_uncorrected_err_count_unique_total_s(void)
4402{
4403 return 16;
4404}
4405static inline u32 gr_fecs_falcon_ecc_uncorrected_err_count_unique_total_f(u32 v)
4406{
4407 return (v & 0xffff) << 16;
4408}
4409static inline u32 gr_fecs_falcon_ecc_uncorrected_err_count_unique_total_m(void)
4410{
4411 return 0xffff << 16;
4412}
4413static inline u32 gr_fecs_falcon_ecc_uncorrected_err_count_unique_total_v(u32 r)
4414{
4415 return (r >> 16) & 0xffff;
4416}
3957#endif 4417#endif