Commit Graph

235 Commits

Author SHA1 Message Date
Deepak Nibade
afa31cdd8c gpu: nvgpu: add support for L3 cache allocation of buffers
Add gv11b implementation of gpu_phys_addr() that checks the t19x
GMMU attributes struct to determine if L3 allocation should be
enabled. If L3 alloc is enabled then a special physical address
bit is set.

Add flag NVGPU_AS_MAP_BUFFER_FLAGS_L3_ALLOC to struct
nvgpu_as_map_buffer_ex_args so that User space can add a hint to
allocate buffer in L3 cache

Jira GPUT19X-10
Bug 200279508

Change-Id: I1bb9876a670b252980922aa50e3e69b802be137f
Signed-off-by: Deepak Nibade <dnibade@nvidia.com>
Reviewed-on: https://git-master/r/1512602
GVS: Gerrit_Virtual_Submit
Reviewed-by: Vijayakumar Subbu <vsubbu@nvidia.com>
2017-07-07 07:05:39 -07:00
Deepak Nibade
cca0510e47 gpu: nvgpu: enable IO coherence support flag for gv11b
Set flag NVGPU_GPU_FLAGS_SUPPORT_IO_COHERENCE for gv11b to indicate
IO coherence support is enabled

Jira GPUT19X-17
Bug 1651331
Bug 200283998

Change-Id: If74db3de293e8ebd39e45d81cd1c0d1f7aa01d2d
Signed-off-by: Deepak Nibade <dnibade@nvidia.com>
Reviewed-on: https://git-master/r/1512601
GVS: Gerrit_Virtual_Submit
Reviewed-by: Vijayakumar Subbu <vsubbu@nvidia.com>
2017-07-07 07:05:39 -07:00
Alex Waterman
6745200c6f gpu: nvgpu: Implement PD packing
Necessary Volta changes for equivalent change in nvgpu.

JIRA NVGPU-30

Change-Id: I541d6d6005bc7ea0bfb654d0f5f5554e46afc510
Signed-off-by: Alex Waterman <alexw@nvidia.com>
Reviewed-on: https://git-master/r/1506611
Reviewed-by: Automatic_Commit_Validation_User
GVS: Gerrit_Virtual_Submit
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
2017-07-06 14:44:16 -07:00
Seema Khowala
1f09340f82 gpu: nvgpu: gv11b: init handle_sm_exception gr ops
gr_gk20a_handle_sm_exception is initialized to
handle_sm_exception and new gr ops handle_tpc_sm_ecc_exception
is initialized to gr_gv11b_handle_tpc_sm_ecc_exception
to handle sm ecc errors per tpc.

JIRA GPUT19X-75
JIRA GPUT19X-109

Change-Id: Iefa95b185b9eed23f9f54e231405fcd9fd83ccc0
Signed-off-by: Seema Khowala <seemaj@nvidia.com>
Reviewed-on: https://git-master/r/1514039
Reviewed-by: Automatic_Commit_Validation_User
GVS: Gerrit_Virtual_Submit
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
2017-07-06 12:04:42 -07:00
Seema Khowala
99aeb5ae3b gpu: nvgpu: gv11b: init clear_sm_hww gr ops
Required for multiple SM support and SM register
address changes

JIRA GPUT19X-75

Change-Id: I552bae890a416dc4a430b907641b5b3d09b638c7
Signed-off-by: Seema Khowala <seemaj@nvidia.com>
Reviewed-on: https://git-master/r/1514038
Reviewed-by: Automatic_Commit_Validation_User
GVS: Gerrit_Virtual_Submit
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
2017-07-06 12:04:41 -07:00
Seema Khowala
013ead1587 gpu: nvgpu: gv11b: init sm lock_down gr ops
init lock_down_sm and wait_for_sm_lock_down gr ops
Required to support multiple SM and register address
changes

JIRA GPUT19X-75

Change-Id: I992d1c0c5a1f559dc57bcef50025fa42913d6761
Signed-off-by: Seema Khowala <seemaj@nvidia.com>
Reviewed-on: https://git-master/r/1514037
GVS: Gerrit_Virtual_Submit
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
2017-07-06 12:04:41 -07:00
Seema Khowala
bdf5207583 gpu: nvgpu: gv11b: init get_sm_no_lock_down_hww_global_esr_mask gr ops
Support SM register changes

JIRA GPUT19X-75

Change-Id: I5d5e702d681398a8a8181d912e8c691c15e265d9
Signed-off-by: Seema Khowala <seemaj@nvidia.com>
Reviewed-on: https://git-master/r/1514036
GVS: Gerrit_Virtual_Submit
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
2017-07-06 12:04:41 -07:00
Seema Khowala
d250adf53e gpu: nvgpu: gv11b: init gr ops get_sm_hww_global_esr
Required for multiple SM support and sm register address
changes

JIRA GPUT19X-75

Change-Id: I3fb62a935636f3df050ed125ebe57d8469069591
Signed-off-by: Seema Khowala <seemaj@nvidia.com>
Reviewed-on: https://git-master/r/1514035
GVS: Gerrit_Virtual_Submit
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
2017-07-06 12:04:41 -07:00
Sunny He
c9b92595b2 gpu: nvgpu: gv11b: Reorg misc HAL initialization
Reorganize HAL initialization to remove inheritance and construct
the gpu_ops struct at compile time. This patch covers the lone
function pointers of the gpu_ops struct.

Perform HAL function assignments in hal_gxxxx.c through the
population of a chip-specific copy of gpu_ops.

Jira NVGPU-74

Change-Id: I098559103ef280faca4e82708bb47b9b37057cfd
Signed-off-by: Sunny He <suhe@nvidia.com>
Reviewed-on: https://git-master/r/1510390
Reviewed-by: Automatic_Commit_Validation_User
GVS: Gerrit_Virtual_Submit
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
2017-07-06 10:54:57 -07:00
Mahantesh Kumbar
ce308666f5 gpu: nvgpu: gv11b, use nvgpu_flcn_bootstrap()
- Replaced falcon bootstrap code with
nvgpu_flcn_bootstrap() method

JIRA NVGPU-102

Change-Id: I5133419957c890847cac66c5ac018e8188db41e3
Signed-off-by: Mahantesh Kumbar <mkumbar@nvidia.com>
Reviewed-on: https://git-master/r/1513647
Reviewed-by: Automatic_Commit_Validation_User
GVS: Gerrit_Virtual_Submit
Reviewed-by: Vijayakumar Subbu <vsubbu@nvidia.com>
2017-07-05 23:25:27 -07:00
Terje Bergstrom
efd9ba3a79 gpu: nvgpu: gv11b: Use g->name instead of dev_name()
Dump device name using g->name instead of dev_name(). dev_name()
is Linux specific.

Change-Id: I65eb89e41ca81ca6143fb247a10c306b4efc96ad
Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com>
Reviewed-on: https://git-master/r/1512176
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
2017-07-05 19:10:32 -07:00
seshendra Gadagottu
6d758eb81b gpu: nvgpu: gv11b: support for full subcontext
Changes to enable 64 subcontexts: 1 SYNC + 63 ASYNC
Currently all subcontexts with in a tsg can have only
single address space.

Add support for NVGPU_TSG_IOCTL_BIND_CHANNEL_EX for
selecting subctx id by client.

Bug 1842197

Change-Id: Icf56a41303bd1ad7fc6f2a6fbc691bb7b4a01d22
Signed-off-by: seshendra Gadagottu <sgadagottu@nvidia.com>
Reviewed-on: https://git-master/r/1511145
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
GVS: Gerrit_Virtual_Submit
2017-07-05 15:40:25 -07:00
Seema Khowala
37fa5128ec gpu: nvgpu: gv11b: init get_sm_hww_warp_esr gr ops
get sm hww_warp_esr reg val

JIRA GPUT19X-75

Change-Id: I4ed04045e947c417291b7b1e2fc81bbe51f0b48c
Signed-off-by: Seema Khowala <seemaj@nvidia.com>
Reviewed-on: https://git-master/r/1512212
Reviewed-by: Automatic_Commit_Validation_User
GVS: Gerrit_Virtual_Submit
Reviewed-by: Vijayakumar Subbu <vsubbu@nvidia.com>
2017-07-05 03:06:57 -07:00
Seema Khowala
f5b5099cf8 gpu: nvgpu: gv11b: init resume_from_pause gr ops
JIRA GPUT19X-75

Change-Id: Ie741bf50c771f21de3bf762ca506a36276f38437
Signed-off-by: Seema Khowala <seemaj@nvidia.com>
Reviewed-on: https://git-master/r/1512211
Reviewed-by: Automatic_Commit_Validation_User
GVS: Gerrit_Virtual_Submit
Reviewed-by: Vijayakumar Subbu <vsubbu@nvidia.com>
2017-07-05 03:06:57 -07:00
Seema Khowala
8fb191aec0 gpu: nvgpu: gv11b: init resume_all_sms gr ops
This is required to support multiple SM and t19x
sm register address changes

JIRA GPUT19X-75

Change-Id: Ia5c0a3d1dead9c6094ca28716c06929dd3461814
Signed-off-by: Seema Khowala <seemaj@nvidia.com>
Reviewed-on: https://git-master/r/1512210
GVS: Gerrit_Virtual_Submit
Reviewed-by: Vijayakumar Subbu <vsubbu@nvidia.com>
2017-07-05 03:06:56 -07:00
Seema Khowala
7185dcdbf8 gpu: nvgpu: gv11b: init resume_single_sm gr ops
This is required to support multiple SM and t19x
sm register address changes

JIRA GPUT19X-75

Change-Id: I0ebbfdad73d6212997a21f9240f5d4bc2f28ab2f
Signed-off-by: Seema Khowala <seemaj@nvidia.com>
Reviewed-on: https://git-master/r/1512209
GVS: Gerrit_Virtual_Submit
Reviewed-by: Vijayakumar Subbu <vsubbu@nvidia.com>
2017-07-05 03:06:55 -07:00
Seema Khowala
cc698f6b98 gpu: nvgpu: gv11b: init suspend_all_sms gr ops
This is required to support multiple SM and t19x
sm register address changes

JIRA GPUT19X-75

Change-Id: I46b7d58ed02710339aa27cd9db999aa60fbd4dd9
Signed-off-by: Seema Khowala <seemaj@nvidia.com>
Reviewed-on: https://git-master/r/1512208
Reviewed-by: Automatic_Commit_Validation_User
GVS: Gerrit_Virtual_Submit
Reviewed-by: Vijayakumar Subbu <vsubbu@nvidia.com>
2017-07-05 03:06:54 -07:00
Seema Khowala
30dcb31707 gpu: nvgpu: gv11b: init suspend_single_sm gr ops
Take care of SM register address changes.

JIRA GPUT19X-75

Change-Id: I7fa68dbef014fb07a3656b2816d7d8d538a7cf52
Signed-off-by: Seema Khowala <seemaj@nvidia.com>
Reviewed-on: https://git-master/r/1512207
Reviewed-by: Automatic_Commit_Validation_User
GVS: Gerrit_Virtual_Submit
Reviewed-by: Vijayakumar Subbu <vsubbu@nvidia.com>
2017-07-05 03:06:53 -07:00
Seema Khowala
edf87a42c3 gpu: nvgpu: gv11b: init sm_debugger_attached gr ops
Support gv11b sm register address changes.

JIRA GPUT19X-75

Change-Id: I22562789ef7c064fa36c2d382224af6dc6a806c7
Signed-off-by: Seema Khowala <seemaj@nvidia.com>
Reviewed-on: https://git-master/r/1512206
GVS: Gerrit_Virtual_Submit
Reviewed-by: Vijayakumar Subbu <vsubbu@nvidia.com>
2017-07-05 03:06:53 -07:00
Seema Khowala
690d560e65 gpu: nvgpu: gv11b: Use sm dbgr bpt and warp mask 0/1
Instead of assuming mask_0 and mask_1 as consecutive registers,
use mask_1 and mask_0 registers for reading/writing sm dbgr warp
and bpt mask registers

JIRA GPUT19X-75

Change-Id: Ib6843d13828d899d4bd3f12bdf6701325ea760fd
Signed-off-by: Seema Khowala <seemaj@nvidia.com>
Reviewed-on: https://git-master/r/1511736
GVS: Gerrit_Virtual_Submit
Reviewed-by: Vijayakumar Subbu <vsubbu@nvidia.com>
2017-07-05 03:06:51 -07:00
Seema Khowala
a4439aee3a gpu: nvgpu: gv11b: read from unicast register
For updating broadcast register, read the current
value from unicast register.

JIRA GPUT19x-75

Change-Id: Ib4a3791304cabe77cf46543d4bec0312c6fcc0fb
Signed-off-by: Seema Khowala <seemaj@nvidia.com>
Reviewed-on: https://git-master/r/1511735
Reviewed-by: Automatic_Commit_Validation_User
GVS: Gerrit_Virtual_Submit
Reviewed-by: Vijayakumar Subbu <vsubbu@nvidia.com>
2017-07-05 03:06:46 -07:00
Mahantesh Kumbar
f9c4f8b443 gpu: nvgpu: gv11b, rename gk20a_pmu_cmd_post()
- replaced gk20a_pmu_cmd_post() with nvgpu_pmu_cmd_post()
wherever called.

JIRA NVGPU-93

Change-Id: I1ce20cdd7190311535917058ad09a8896e505179
Signed-off-by: Mahantesh Kumbar <mkumbar@nvidia.com>
Reviewed-on: https://git-master/r/1512972
Reviewed-by: Automatic_Commit_Validation_User
GVS: Gerrit_Virtual_Submit
Reviewed-by: Vijayakumar Subbu <vsubbu@nvidia.com>
2017-07-05 00:39:23 -07:00
Seema Khowala
5cda5a3074 gpu: nvgpu: gv11b: add a function to reset pbdma and eng faulted
When Host receives a page fault signal from a CE, Host will immediately
set _ENG_FAULTED bit in the NV_PCCSR_CHANNEL register for the channel
and will trigger a preempt of the TSG/channel.
A channel will only be scheduled when _ENABLED=1, _ENG_FAULTED=0
and _PBDMA_FAULTED=0 in pccsr_channel reg for the channel.
If a TSG has a faulted channel, Host will not schedule the entire TSG
agin until all _FAULTED bits from channels in the TSG are cleared by SW.
This function will be required for ce page fault handling.

JIRA GPUT19X-46
JIRA GPUT19X-12

Change-Id: Ib58dff7aa24aa144e970f11b5261877dec03f3e6
Signed-off-by: Seema Khowala <seemaj@nvidia.com>
Reviewed-on: https://git-master/r/1509776
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
2017-07-02 10:20:21 -07:00
Seema Khowala
8a0221cfc7 gpu: nvgpu: gv11b: implement eng method buffer init/deinit
When CE hits a page fault it needs to save out methods, it will
save it out to a per runqueue per TSG method buffer. The method buffers
(one per TSG runqueue) are allocated in BAR2 space during TSG creation
All channels in a TSG that are mapped to the same runqueue will point
to the same buffer.
S/w will insert channel's method buffer pointer in the channel's
instance block entries NV_RAMIN_ENG_METHOD_BUFFER_ADDR_LO and
NV_RAMIN_ENG_METHOD_BUFFER_ADDR_HI. Method buffer in memory will
be 32B aligned.
Eng method buffer allocated per tsg will be de-allocated during
tsg_release.

JIRA GPUT19X-46

Change-Id: Ib480ae5840d9815d24fe2eadc169ac3102854cd0
Signed-off-by: Seema Khowala <seemaj@nvidia.com>
Reviewed-on: https://git-master/r/1509747
GVS: Gerrit_Virtual_Submit
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
2017-07-02 10:20:08 -07:00
Seema Khowala
5a57be6ba1 gpu: nvgpu: gv11b: init get_num_pce ce ops
Implement get_num_pce ce ops to get number of physical
copy engines. This is required to calculate eng method
buffer size

JIRA GPUT19X-46

Change-Id: I5a37eb26ec11bc358700d1761cfdb6ca060e4287
Signed-off-by: Seema Khowala <seemaj@nvidia.com>
Reviewed-on: https://git-master/r/1511788
Reviewed-by: Automatic_Commit_Validation_User
GVS: Gerrit_Virtual_Submit
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
2017-07-02 10:20:08 -07:00
Seema Khowala
f525ff15c4 gpu: nvgpu: gv11b: add ce interrupt handling
Added handling for below ce interrupts
-INVALID_CONFIG interrupt will be generated if a floorswept
 PCE is assigned to a valid LCE in the NV_CE_PCE2LCE_CONFIG
 registers. This is a fatal error and the LCE will have to be
 reset to get back to a working state.

-MTHD_BUFFER_FAULT interrupt will be triggered if any access to
 a method buffer during context load or save encounters a fault.
 This is a fatal interrupt and will require at least the LCE to be reset
 before operations can start again, if not the entire GPU.

JIRA GPUT19X-12
JIRA GPUT19X-46

Change-Id: I2eeefc4e634f5bf53f20933c493c7594fe0ea755
Signed-off-by: Seema Khowala <seemaj@nvidia.com>
Reviewed-on: https://git-master/r/1510298
GVS: Gerrit_Virtual_Submit
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
2017-07-02 10:20:07 -07:00
Terje Bergstrom
c865b16337 gpu: nvgpu: gv11b: Per chip default big page size
Stop defining per-platform default big page size. It's defined via
HAL and inherited from gp10b.

JIRA NVGPU-38

Change-Id: If5eedd5d351d5504bdf87489d1aa091d430c43ba
Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com>
Reviewed-on: https://git-master/r/1508069
Reviewed-by: Automatic_Commit_Validation_User
GVS: Gerrit_Virtual_Submit
2017-06-30 18:35:00 -07:00
Deepak Goyal
514e7aa643 gpu: nvgpu: gv11b: check flag before enabling CG.
We should check if BLCG/SLCG feature is enabled
before trying to enable/disable them in hardware.

Bug 200314250

Change-Id: I5431f97cc559444298b7bd4d53a9f4fc598fd268
Signed-off-by: Deepak Goyal <dgoyal@nvidia.com>
Reviewed-on: https://git-master/r/1509184
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Seema Khowala <seemaj@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: Alex Waterman <alexw@nvidia.com>
Reviewed-by: Vijayakumar Subbu <vsubbu@nvidia.com>
2017-06-30 00:05:25 -07:00
Seema Khowala
6f6329c377 gpu: nvgpu: gv11b: init set_hww_esr_report_mask
gv11b has 2 SMs per TPC. Use *gpcs_tpcs_sms_hww_warp/global_esr*
registers instead of *gpcs_tpcs_sm_hww_warp/global_esr*

GPUT19X-75

Change-Id: I86c7ded32b2b69214e047e6de67a1745f2cef6f3
Signed-off-by: Seema Khowala <seemaj@nvidia.com>
Reviewed-on: https://git-master/r/1474860
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: Vijayakumar Subbu <vsubbu@nvidia.com>
2017-06-30 00:05:05 -07:00
Seema Khowala
ec71ac2957 gpu: nvgpu: gv11b: init record_sm_error_state gr ops
Take care of t19x sm reg address changes and support multiple SM

JIRA GPUT19X-75

Change-Id: I675b76b90d08fe75331f0023f1fe722497d06373
Signed-off-by: Seema Khowala <seemaj@nvidia.com>
Reviewed-on: https://git-master/r/1477673
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: Vijayakumar Subbu <vsubbu@nvidia.com>
2017-06-30 00:05:05 -07:00
Seema Khowala
8f0f88d61e gpu: nvgpu: gv11b: init set_sm_debug_mode gr ops
Support multiple SM and take care of sm reg addr changes

JIRA GPUT19X-75

Change-Id: Id39e269034762c7a8347edaf1fff0b2efd7f153c
Signed-off-by: Seema Khowala <seemaj@nvidia.com>
Reviewed-on: https://git-master/r/1477705
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: Vijayakumar Subbu <vsubbu@nvidia.com>
2017-06-30 00:05:05 -07:00
Seema Khowala
f28efb987a gpu: nvgpu: gv11b: init update_sm_error_state gr ops
Support multiple SM and take care of SM hardware reg address changes

JIRA GPUT19X-75

Change-Id: I866011a85da06ca22bc10fda5ab59f84d0782902
Signed-off-by: Seema Khowala <seemaj@nvidia.com>
Reviewed-on: https://git-master/r/1477686
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: Vijayakumar Subbu <vsubbu@nvidia.com>
2017-06-30 00:05:04 -07:00
Seema Khowala
f2235085d1 gpu: nvgpu: gv11b: init bpt_reg_info gr ops
Take care of t19x reg address changes to support multiple SM

JIRA GPUT19X-75

Change-Id: I92b97e60ac82c50a97fe44a85482437446479800
Signed-off-by: Seema Khowala <seemaj@nvidia.com>
Reviewed-on: https://git-master/r/1477694
Reviewed-by: Automatic_Commit_Validation_User
GVS: Gerrit_Virtual_Submit
Reviewed-by: Vijayakumar Subbu <vsubbu@nvidia.com>
2017-06-30 00:05:04 -07:00
Seema Khowala
fd80220dd3 gpu: nvgpu: gv11b: init trigger_suspend gr ops
Add gv11b specific trigger_suspend function. SM register
addresses have changed as compared to legacy gpu chips.

JIRA GPUT19X-75

Change-Id: Ic3099e53bcba19128711a88ecc9e9883f5f7a31f
Signed-off-by: Seema Khowala <seemaj@nvidia.com>
Reviewed-on: https://git-master/r/1476532
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Seshendra Gadagottu <sgadagottu@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: Vijayakumar Subbu <vsubbu@nvidia.com>
2017-06-30 00:05:04 -07:00
Seema Khowala
c5e68d6afa gpu: nvgpu: gv11b: dump sm regs
/d/gpu.0/gr_status will dump sm registers too

JIRA GPUT19X-75

Change-Id: If5d19c9ef5c05b6390e8e55c39571869d3d01ae7
Signed-off-by: Seema Khowala <seemaj@nvidia.com>
Reviewed-on: https://git-master/r/1500879
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Seshendra Gadagottu <sgadagottu@nvidia.com>
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: Vijayakumar Subbu <vsubbu@nvidia.com>
2017-06-30 00:05:04 -07:00
Seema Khowala
20158e09b7 gpu: nvgpu: gv11b: Corrected sm whitelist address
corrected whitelist address for gr_pri_gpcs_tpcs_sms_dbgr_control0

JIRA GPUT19X-49
Bug 200311674

Change-Id: I512197c4a6ef97a59bbb303e31ab91f7727bf8d5
Signed-off-by: Seema Khowala <seemaj@nvidia.com>
Reviewed-on: https://git-master/r/1499394
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Seshendra Gadagottu <sgadagottu@nvidia.com>
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: Vijayakumar Subbu <vsubbu@nvidia.com>
2017-06-30 00:05:03 -07:00
Richard Zhao
6a25181882 gpu: nvgpu: vgpu: add basic t19x HALs
- Added t19x vgpu platform data
- Added basic vgpu HAL for gv11b.
- Added subctx header HAL.

Jira VFND-3796

Change-Id: I2b99364801b41d042b53e057f1a30e1194f354c3
Signed-off-by: Richard Zhao <rizhao@nvidia.com>
Reviewed-on: https://git-master/r/1474729
GVS: Gerrit_Virtual_Submit
Reviewed-by: Aingara Paramakuru <aparamakuru@nvidia.com>
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
2017-06-29 22:34:37 -07:00
Richard Zhao
7346122ae6 gpu: nvgpu: gv11b: add fifo_gv11b and usermode_regs
- add fifo_gv11b to store usermode_regs
- consider channel_base and use usermode_regs when ring channel doorbell

It'll make kickoff code re-usable for vgpu.

Jira VFND-3796

Change-Id: Ia6974ccac137f201ad8763a7d372de81d5cca56b
Signed-off-by: Richard Zhao <rizhao@nvidia.com>
Reviewed-on: https://git-master/r/1510457
Reviewed-by: Aingara Paramakuru <aparamakuru@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
2017-06-29 22:34:37 -07:00
Richard Zhao
e165528223 gpu: nvgpu: gv11b: rename hw_chid to chid
hw_chid is a relative id for vgpu. For native it's same as hw id.
Renaming it to chid to avoid confusing.

Jira VFND-3796

Change-Id: Ie94c1a15e9e45fc823d85790ce6a69da53a685bf
Signed-off-by: Richard Zhao <rizhao@nvidia.com>
Reviewed-on: https://git-master/r/1509531
Reviewed-by: Automatic_Commit_Validation_User
GVS: Gerrit_Virtual_Submit
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
2017-06-29 22:34:37 -07:00
seshendra Gadagottu
3e195bb02d pu: nvgpu: gv11b: rename write_preemption_ptr
Change function name write_preemption_ptr to set_preemption_buffer_va
to match with what exactly getting done in that function.

Change-Id: I91372642f1dba37e5e7bcda29ac9c4271cec4b53
Signed-off-by: seshendra Gadagottu <sgadagottu@nvidia.com>
Reviewed-on: https://git-master/r/1510973
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
2017-06-29 13:55:48 -07:00
Konsta Holtta
54ab6fc82f gpu: nvgpu: depend on gk20a for TEGRA_19x_GPU
Depend on the main GK20A config for all subitems so that they get
grouped properly under the top level item in the menuconfig.

Change-Id: Ia44179cdebb1f5b24ea626b57ccea40bdd9b2bd8
Signed-off-by: Konsta Holtta <kholtta@nvidia.com>
Reviewed-on: https://git-master/r/1509336
Reviewed-by: Automatic_Commit_Validation_User
GVS: Gerrit_Virtual_Submit
Reviewed-by: Alex Waterman <alexw@nvidia.com>
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
2017-06-29 13:30:11 -07:00
Mahantesh Kumbar
dedc347b94 gpu: nvgpu: PMU reset reorg support
- Assigned gv11b pmu engine reset & status
ops to point to gp106 ops.

JIRA NVGPU-99

Change-Id: I6338e2c5a1458e88a62cf0966b59c1dbe73385b6
Signed-off-by: Mahantesh Kumbar <mkumbar@nvidia.com>
Reviewed-on: https://git-master/r/1507884
Reviewed-by: Automatic_Commit_Validation_User
GVS: Gerrit_Virtual_Submit
Reviewed-by: Vijayakumar Subbu <vsubbu@nvidia.com>
2017-06-29 13:29:52 -07:00
Seema Khowala
d1b0920b3f gpu: nvgpu: gv11b: multiple sm support
-Calculate sm reg offset by using gpc, tpc and sm numbers
-Init get_esr_sm_sel gr ops

JIRA GPUT19X-75

Change-Id: I74cfcae07e385cdad51774b963380c0633adfecf
Signed-off-by: Seema Khowala <seemaj@nvidia.com>
Reviewed-on: https://git-master/r/1506152
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
2017-06-29 13:29:46 -07:00
Seema Khowala
11009e0e69 gpu: nvgpu: gv11b: sm register changes
gv11b has multiple SMs and SM register addresses
have changed as compared to legacy chips.

JIRA GPUT19X-75

Change-Id: I2319f4c78f3efda3430bab1f5ecf1a068e57a1ca
Signed-off-by: Seema Khowala <seemaj@nvidia.com>
Reviewed-on: https://git-master/r/1506013
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
2017-06-29 13:29:41 -07:00
Seema Khowala
7681d6b007 gpu: nvgpu: gv11b: reuse gp10b functions
reuse gr_gp10b_handle_fecs_error and cilp functions

Bug 200289491

Change-Id: I4040f96875ad91d174ce36aab957fb94d79c3a74
Signed-off-by: Seema Khowala <seemaj@nvidia.com>
Reviewed-on: https://git-master/r/1505952
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
2017-06-29 13:29:29 -07:00
Seema Khowala
56eaeab512 gpu: nvgpu: gv11b: sm stride litter added
Required to support multiple SM

JIRA GPUT19X-75

Change-Id: I1fd0530550ae14270a5e746d2efbf3e913ac4c3e
Signed-off-by: Seema Khowala <seemaj@nvidia.com>
Reviewed-on: https://git-master/r/1475985
Reviewed-by: Automatic_Commit_Validation_User
GVS: Gerrit_Virtual_Submit
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Reviewed-by: David Martinez Nieto <dmartineznie@nvidia.com>
2017-06-29 13:28:53 -07:00
Sunny He
a64984e759 gpu: nvgpu: Reorganize ltc HAL initialization
Reorganize HAL initialization to remove inheritance and construct
the gpu_ops struct at compile time. This patch only covers the ltc
sub-module of the gpu_ops struct.

Perform HAL function assignments in hal_gxxxx.c through the
population of a chip-specific copy of gpu_ops.

Jira NVGPU-74

Change-Id: If8760efb7d8e94b63dc6f1fe9efec4ddf49c0b29
Signed-off-by: Sunny He <suhe@nvidia.com>
Reviewed-on: https://git-master/r/1507563
Reviewed-by: Automatic_Commit_Validation_User
GVS: Gerrit_Virtual_Submit
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Tested-by: Terje Bergstrom <tbergstrom@nvidia.com>
2017-06-27 10:44:06 -07:00
seshendra Gadagottu
5572bfa86a gpu: nvgpu: gv11b: sw method for NVC397_SET_TEX_IN_DBG
Added sw method for NVC397_SET_TEX_IN_DBG with
following data fields:
data:0 PRI_TEX_IN_DBG_TSL1_RVCH_INVALIDATE
data:1 PRI_SM_L1TAG_CTRL_CACHE_SURFACE_LD
data:2 PRI_SM_L1TAG_CTRL_CACHE_SURFACE_ST

Bug 1934197

Change-Id: I0956d3f5c859ac23e16fb6b7372acd098dfb6d16
Signed-off-by: seshendra Gadagottu <sgadagottu@nvidia.com>
Reviewed-on: https://git-master/r/1507479
Reviewed-by: svccoveritychecker <svccoveritychecker@nvidia.com>
GVS: Gerrit_Virtual_Submit
Tested-by: Wei Sun <wsun@nvidia.com>
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
2017-06-27 10:44:05 -07:00
Mahantesh Kumbar
5107bda90a gpu: nvgpu: gv11b, use nvgpu_flcn_copy_to_dmem()
- replace usage of pmu_copy_to_dmem() with
nvgpu_flcn_copy_to_dmem()

JIRA NVGPU-99

Change-Id: I8d0ce1cb7adffc4df57044b8887d525c1f2f0237
Signed-off-by: Mahantesh Kumbar <mkumbar@nvidia.com>
Reviewed-on: https://git-master/r/1506582
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: svccoveritychecker <svccoveritychecker@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
2017-06-27 03:58:21 -07:00
Seema Khowala
f500f45ebf gpu: nvgpu: gv11b: implement ctxnotvalid pbdma_intr_1
Pbdma which encountered the ctxnotvalid interrupt will stall and
prevent the channel which was loaded at the time the interrupt fired
from being swapped out until the interrupt is cleared.
CTXNOTVALID pbdma interrupt indicates error conditions related
to the *_CTX_VALID fields for a channel.  The following
conditions trigger the interrupt:

* CTX_VALID bit for the targeted engine is FALSE
* At channel start/resume, all preemptible eng have CTX_VALID FALSE but:
      - CTX_RELOAD is set in CCSR_CHANNEL_STATUS,
      - PBDMA_TARGET_SHOULD_SEND_HOST_TSG_EVENT is TRUE, or
      - PBDMA_TARGET_NEEDS_HOST_TSG_EVENT is TRUE

JIRA GPUT19X-47

Change-Id: If65ce1fcdbaebd6b1d8313fdddf9e3e0fa51e885
Signed-off-by: Seema Khowala <seemaj@nvidia.com>
Reviewed-on: https://git-master/r/1329372
GVS: Gerrit_Virtual_Submit
Reviewed-by: svccoveritychecker <svccoveritychecker@nvidia.com>
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
2017-06-27 03:56:54 -07:00