summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/nouveau/nvkm/engine/gr
Commit message (Collapse)AuthorAgeFilesLines
* drm/nouveau/gr/gp10b: Use gp100_grctx and gp100_gr_zbcThierry Reding2020-01-233-3/+4
| | | | | | | | | gp10b doesn't have all the registers that gp102_gr_zbc wants to access, which causes IBUS MMIO faults to occur. Avoid this by using the gp100 variants of grctx and gr_zbc. Signed-off-by: Thierry Reding <treding@nvidia.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/gr/tu10x: initial supportBen Skeggs2020-01-159-11/+306
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/secboot: removeBen Skeggs2020-01-151-1/+1
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/acr: implement new subdev to replace "secure boot"Ben Skeggs2020-01-156-12/+149
| | | | | | | | | | | | | | | | | | | | | | | ACR is responsible for managing the firmware for LS (Low Secure) falcons, this was previously handled in the driver by SECBOOT. This rewrite started from some test code that attempted to replicate the procedure RM uses in order to debug early Turing ACR firmwares that were provided by NVIDIA for development. Compared with SECBOOT, the code is structured into more individual steps, with the aim of making the process easier to follow/debug, whilst making it possible to support newer firmware versions that may have a different binary format or API interface. The HS (High Secure) binary(s) are now booted earlier in device init, to match the behaviour of RM, whereas SECBOOT would delay this until we try to boot the first LS falcon. There's also additional debugging features available, with the intention of making it easier to solve issues during FW/HW bring-up in the future. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/flcn: specify FBIF offset from subdevBen Skeggs2020-01-151-0/+1
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/gr/gf100-: initialise SW state for falcon from constructorBen Skeggs2020-01-154-34/+50
| | | | | | | This will allow us to register the falcon with ACR, and further customise its behaviour by providing the nvkm_falcon_func structure directly. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/gr/gf100-: select implementation based on available FWBen Skeggs2020-01-1522-176/+498
| | | | | | | This will allow for further customisation of the subdev depending on what firmware is available. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/gr/gp108: split from gp107Ben Skeggs2020-01-154-1/+32
| | | | | | | ACR LS FW loading is moving out of SECBOOT and into their specific subdevs, and the available GP107/GP108 FWs have interface differences. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/gr/gf100-: move fecs/gpccs ucode into their substructuresBen Skeggs2020-01-154-22/+25
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/gr/gf100-: drop fuc_ prefix on sw initBen Skeggs2020-01-156-33/+27
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/gr/gk20a,gm200-: use nvkm_firmware_load_blob for sw initBen Skeggs2020-01-153-48/+44
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/gr/gf100-: use nvkm_blob structure for fecs/gpccs fwBen Skeggs2020-01-153-33/+20
| | | | | | It serves the exact same purpose. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/gr/gv100-: modify gr init to match newer version of RMBen Skeggs2020-01-154-16/+27
| | | | | | Will be used as a basis for implementing changes needed for Turing. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/gr/gk20a,gm200-: add terminators to method lists read from fwBen Skeggs2020-01-151-10/+11
| | | | | | | | | | | Method init is typically ordered by class in the FW image as ThreeD, TwoD, Compute. Due to a bug in parsing the FW into our internal format, we've been accidentally sending Twod + Compute methods to the ThreeD class, as well as Compute methods to the TwoD class - oops. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/gr/gf100-: remove dtorBen Skeggs2020-01-152-3/+0
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/gr/gk208-gm10x: regenerate built-in firmwareBen Skeggs2020-01-152-786/+786
| | | | | | | | | | | Commit 5fde30a2684041f9820aa9dc4fbd0009a45076a9 in envytools modified some of the Falcon V5 encodings, regenerate the relevant FW with this. Also modify build rules to include SPDX header in generated files. Tested on GM107, with no issues noted. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: fix bogus GPL-2 license headerBen Skeggs2019-07-191-1/+1
| | | | | | | | | The bulk SPDX addition made all these files into GPL-2.0 licensed files. However the remainder of the project is MIT-licensed, these files were simply missing the boiler plate and got caught up in the global update. Fixes: 96ac6d4351004 (treewide: Add SPDX license identifier - Kbuild) Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: fix bogus GPL-2 license headerIlia Mirkin2019-07-1927-27/+27
| | | | | | | | | | | | | The bulk SPDX addition made all these files into GPL-2.0 licensed files. However the remainder of the project is MIT-licensed, these files (primarily header files) were simply missing the boiler plate and got caught up in the global update. Fixes: b24413180f5 (License cleanup: add SPDX GPL-2.0 license identifier to files with no license) Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu> Acked-by: Emil Velikov <emil.l.velikov@gmail.com> Acked-by: Karol Herbst <kherbst@redhat.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* Merge branch 'linux-5.2' of git://github.com/skeggsb/linux into drm-fixesDave Airlie2019-06-071-3/+1
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | " This is a bit more than I'd like to be pushing at this point in a cycle, but it's a fairly important issue. There's been numerous reports of more recent GP10[2467] boards failing to load, and I've worked with NVIDIA FW engineers and tracked this down to the FW we've been using not properly supporting the boards in question. I've pushed an update to linux-firmware with the new FW version, which unfortunately contains API changes vs the older firmware. This series teaches the ACR subsystem inside nouveau enough to be able to deal with supporting multiple incompatible FW revisions, and adds support to the relevant chipsets for loading the newer FW revision, if it's available." Signed-off-by: Dave Airlie <airlied@redhat.com> From: Ben Skeggs <skeggsb@gmail.com> Link: https://patchwork.freedesktop.org/patch/msgid/CACAvsv7pG+vur0Kn_TyU3ainnkvJVw07upnnaQNOToF+kzQtDQ@mail.gmail.com
| * drm/nouveau/core: pass subdev into nvkm_firmware_get, rather than deviceBen Skeggs2019-06-071-3/+1
| | | | | | | | | | | | | | It'd be nice to have FW loading debug messages to appear for the relevant subsystem, when enabled. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* | treewide: Add SPDX license identifier - KbuildGreg Kroah-Hartman2019-05-301-0/+1
|/ | | | | | | | | | | | | | | | Add SPDX license identifiers to all Make/Kconfig files which: - Have no license information of any form These files fall under the project license, GPL v2 only. The resulting SPDX license identifier is: GPL-2.0 Reported-by: Masahiro Yamada <yamada.masahiro@socionext.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Reviewed-by: Kate Stewart <kstewart@linuxfoundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* drm/nouveau/gr/gf100-: expose method to determine current contextBen Skeggs2019-02-203-0/+17
| | | | | | MMU will need access to this info. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/gr/gf100-: expose fecs methods for pausing ctxswBen Skeggs2019-02-204-0/+78
| | | | | | | | MMU will need access to these. v2. Apply fix from Rhys Kidd to send correct FECS method for STOP_CTXSW. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/gr/gf100-: store fecs/gpccs falcon pointers in substructuresBen Skeggs2019-02-202-18/+28
| | | | | | | Future changes will want to add some additional things here, keep them grouped together. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/gr/gf100-: move fecs bind_pointer into a functionBen Skeggs2019-02-203-7/+24
| | | | | | Makes the code somewhat less magic. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/gr/gf100-: remove some unnecessary reg writesBen Skeggs2019-02-201-6/+1
| | | | | | This is already done during golden context creation. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/gr/gf100-: move fecs elpg setup into functionsBen Skeggs2019-02-201-29/+84
| | | | | | Makes the code somewhat less magic. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/gr/gf100-: move fecs discover_pm_image_size into a functionBen Skeggs2019-02-202-8/+21
| | | | | | Makes the code somewhat less magic. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/gr/gf100-: move fecs discover_zcull_image_size into a functionBen Skeggs2019-02-202-8/+21
| | | | | | Makes the code somewhat less magic. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/gr/gf100-: move fecs discover_image_size into a functionBen Skeggs2019-02-201-8/+21
| | | | | | Makes the code somewhat less magic. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/gr/gf100-: move fecs set_watchdog_timeout method into a functionBen Skeggs2019-02-201-3/+11
| | | | | | Makes the code somewhat less magic. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/gr/gv100: handle multiple SM-per-TPC for shader exceptionsBen Skeggs2018-07-161-7/+14
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/gr/gf100-: insert some WFIs during gr initBen Skeggs2018-05-182-0/+6
| | | | | | | Inserted wait-for-gr-idle in the places it seems that RM does it, seems to prevent some random mmio timeouts on Quadro GV100. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/gr/gv100: initial supportBen Skeggs2018-05-187-3/+365
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/gr/gp102-: setup stencil zbcBen Skeggs2018-05-187-7/+83
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/gr/gp100-: use correct registers for zbc colour/depth setupBen Skeggs2018-05-1820-15/+88
| | | | | | | These were missed the first time around due to the driver version I traced using the older registers still. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/gr/gp100-: fix attrib cb setupBen Skeggs2018-05-187-17/+32
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/gr/gp100-: fix pagepool setupBen Skeggs2018-05-181-1/+1
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/gr/gf100-gm10x: update register listsBen Skeggs2018-05-1819-36/+96
| | | | | | | | | There are differences on GM200 and newer too, but we can't fix them there as they come from firmware packages. A request has been made to NVIDIA to release updated firmware. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/gr/gf100-: swap bundle and pagepoolBen Skeggs2018-05-181-1/+1
| | | | | | Makes it easier to diff against RM traces. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/gr/gf100-: calculate and use sm mapping tableBen Skeggs2018-05-1823-56/+79
| | | | | | | | | | There's a number of places that require this data, so let's separate out the calculations to ensure they remain consistent. This is incorrect for GM200 and newer, but will produce the same results as we did before. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/gr/gf100-: port zcull tile mapping calculations from NVGPUBen Skeggs2018-05-182-34/+34
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/gr/gf100-: port tile mapping calculations from NVGPUBen Skeggs2018-05-1822-77/+153
| | | | | | | There's also a couple of hardcoded tables for a couple of very specific configurations that NVGPU's algorithm didn't work for. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/gr/gf100-: virtualise trap_mpBen Skeggs2018-05-1820-2/+23
| | | | | | Required to support Volta. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/gr/gf100-: add missing reset sequence before golden context initBen Skeggs2018-05-181-0/+20
| | | | | | RM and NVGPU both have a variant of this, we probably should too. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/gr/gf100-: delete duplicated grctx init codeBen Skeggs2018-05-1812-152/+11
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/gr/gf100-: update r408840 where requiredBen Skeggs2018-05-186-0/+124
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/gr/gf100-: update 419a3c where requiredBen Skeggs2018-05-186-0/+15
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/gr/gf100-: virtualise r418e94Ben Skeggs2018-05-183-2/+13
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/gr/gf100-: virtualise r419e00Ben Skeggs2018-05-183-4/+15
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
OpenPOWER on IntegriCloud