aboutsummaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/nouveau/nvkm/subdev/acr
AgeCommit message (Collapse)AuthorFilesLines
2024-01-31drm/nouveau/acr/ga102: remove unused but set variableJani Nikula1-2/+1
Fix the W=1 warning -Wunused-but-set-variable. Cc: Karol Herbst <[email protected]> Cc: Lyude Paul <[email protected]> Cc: Danilo Krummrich <[email protected]> Cc: [email protected] Signed-off-by: Jani Nikula <[email protected]> Reviewed-by: Danilo Krummrich <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/4d9f62fa6963acfd8b7d8f623799ba3a516e347d.1704908087.git.jani.nikula@intel.com
2023-10-31drm/nouveau/acr/tu102-: prepare for GSP-RMBen Skeggs2-0/+7
- disable ACR completely when GSP-RM detected Signed-off-by: Ben Skeggs <[email protected]> Signed-off-by: Dave Airlie <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
2023-07-12drm/nouveau/acr: Abort loading ACR if no firmware was foundKarol Herbst1-1/+1
This fixes a NULL pointer access inside nvkm_acr_oneinit in case necessary firmware files couldn't be loaded. Closes: https://gitlab.freedesktop.org/drm/nouveau/-/issues/212 Fixes: 4b569ded09fd ("drm/nouveau/acr/ga102: initial support") Signed-off-by: Karol Herbst <[email protected]> Reviewed-by: Dave Airlie <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
2022-11-09drm/nouveau/gr/ga102: initial supportBen Skeggs1-0/+75
v2: - whitespace Signed-off-by: Ben Skeggs <[email protected]> Signed-off-by: Gourav Samaiya <[email protected]>
2022-11-09drm/nouveau/acr/ga102: initial supportBen Skeggs8-6/+464
v2. fixup for ga103 early merge Signed-off-by: Ben Skeggs <[email protected]> Signed-off-by: Gourav Samaiya <[email protected]>
2022-11-09drm/nouveau/acr: use common falcon HS FW code for ACR FWsBen Skeggs11-531/+240
Adds context binding and support for FWs with a bootloader to the code that was added to load VPR scrubber HS binaries, and ports ACR over to using all of it. - gv100 split from gp108 to handle FW exit status differences Signed-off-by: Ben Skeggs <[email protected]> Reviewed-by: Lyude Paul <[email protected]>
2022-11-09drm/nouveau/sec2: unload RTOS before tearing down WPRBen Skeggs1-9/+0
Reset regs won't be available on Ampere while SEC2 RTOS is running, and we're apparently supposed to be doing this on earlier GPUs too. v2: - fixed some excessive indentation Signed-off-by: Ben Skeggs <[email protected]> Reviewed-by: Lyude Paul <[email protected]>
2022-11-09drm/nouveau/pmu/gm20b,gp10b: boot RTOS from PMU initBen Skeggs1-32/+48
Cleanup before falcon changes. Signed-off-by: Ben Skeggs <[email protected]> Reviewed-by: Lyude Paul <[email protected]>
2022-01-25drm/nouveau/acr: Fix undefined behavior in nvkm_acr_hsfw_load_bl()Zhou Qingyang1-4/+5
In nvkm_acr_hsfw_load_bl(), the return value of kmalloc() is directly passed to memcpy(), which could lead to undefined behavior on failure of kmalloc(). Fix this bug by using kmemdup() instead of kmalloc()+memcpy(). This bug was found by a static analyzer. Builds with 'make allyesconfig' show no new warnings, and our static analyzer no longer warns about this code. Fixes: 22dcda45a3d1 ("drm/nouveau/acr: implement new subdev to replace "secure boot"") Signed-off-by: Zhou Qingyang <[email protected]> Reviewed-by: Lyude Paul <[email protected]> Signed-off-by: Lyude Paul <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
2021-11-18drm/nouveau/acr: fix a couple NULL vs IS_ERR() checksDan Carpenter2-4/+8
The nvkm_acr_lsfw_add() function never returns NULL. It returns error pointers on error. Fixes: 22dcda45a3d1 ("drm/nouveau/acr: implement new subdev to replace "secure boot"") Signed-off-by: Dan Carpenter <[email protected]> Reviewed-by: Ben Skeggs <[email protected]> Signed-off-by: Karol Herbst <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/20211118111314.GB1147@kili
2021-02-11drm/nouveau/mc: use split type+inst in interrupt masking APIBen Skeggs1-2/+2
Signed-off-by: Ben Skeggs <[email protected]> Reviewed-by: Lyude Paul <[email protected]>
2021-02-11drm/nouveau/acr: switch to instanced constructorBen Skeggs8-16/+22
Signed-off-by: Ben Skeggs <[email protected]> Reviewed-by: Lyude Paul <[email protected]>
2020-07-24drm/nouveau/acr: store a mask of LS falcons the controlling LSFW can bootstrapBen Skeggs1-6/+23
This will prevent some pain with broken firmware trees, as under some circumstances the HSFW can fail and leave the GPU in a state we don't know how to recover from. Signed-off-by: Ben Skeggs <[email protected]>
2020-07-24drm/nouveau/acr: store a mask of LS falcons the HSFW can bootstrapBen Skeggs3-4/+14
This will prevent reloading of HS FW where it's pointless, and bypass hitting some timeouts. Not a situation one should generally hit, but can occur with a messed up firmware installation. Signed-off-by: Ben Skeggs <[email protected]>
2020-07-24drm/nouveau/acr: allow module to load when HSFW(s) are missingBen Skeggs7-6/+25
Signed-off-by: Ben Skeggs <[email protected]>
2020-07-24drm/nouveau/acr: refuse to load LSFW if HSFW is missingBen Skeggs1-1/+1
Signed-off-by: Ben Skeggs <[email protected]>
2020-05-22drm/nouveau/acr: Use kmemdup instead of kmalloc and memcpyZou Wei1-8/+4
Fixes coccicheck warning: drivers/gpu/drm/nouveau/nvkm/subdev/acr/hsfw.c:103:23-30: WARNING opportunity for kmemdup drivers/gpu/drm/nouveau/nvkm/subdev/acr/hsfw.c:113:22-29: WARNING opportunity for kmemdup Fixes: 22dcda45a3d1 ("drm/nouveau/acr: implement new subdev to replace "secure boot"") Reported-by: Hulk Robot <[email protected]> Signed-off-by: Zou Wei <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2020-05-22drm/nouveau/acr: ensure falcon providing acr functions is bootstrapped firstBen Skeggs1-0/+5
Signed-off-by: Ben Skeggs <[email protected]>
2020-02-17drm/nouveau/acr/tu11x: initial supportBen Skeggs1-0/+14
Signed-off-by: Ben Skeggs <[email protected]>
2020-01-29drm/nouveau/acr: return error when registering LSF if ACR not supportedBen Skeggs1-1/+5
This fixes an oops on TU11x GPUs where SEC2 attempts to register its falcon, and triggers a NULL-pointer deref because ACR isn't yet supported. Signed-off-by: Ben Skeggs <[email protected]>
2020-01-15drm/nouveau/acr/tu10x: initial supportBen Skeggs3-0/+222
Signed-off-by: Ben Skeggs <[email protected]>
2020-01-15drm/nouveau/core: remove previous versioned fw loaderBen Skeggs2-4/+3
Signed-off-by: Ben Skeggs <[email protected]>
2020-01-15drm/nouveau/acr: implement new subdev to replace "secure boot"Ben Skeggs9-16/+1352
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 <[email protected]>
2020-01-15drm/nouveau/secboot: move code to boot LS falcons to subdevsBen Skeggs1-0/+21
Signed-off-by: Ben Skeggs <[email protected]>
2020-01-15drm/nouveau/flcn/cmdq: move command generation to subdevsBen Skeggs2-1/+80
This moves the code to generate commands for the ACR unit of the PMU/SEC2 LS firmwares to those subdevs. Signed-off-by: Ben Skeggs <[email protected]>
2020-01-15drm/nouveau/acr: add loaders for currently available LS firmware imagesBen Skeggs4-0/+260
Signed-off-by: Ben Skeggs <[email protected]>
2020-01-15drm/nouveau/acr: add stub implementation for all GPUs currently supported by ↵Ben Skeggs8-0/+351
SECBOOT PMU, SEC2 and GR will be modified to register their falcons with ACR before the main commit switching everything over. Signed-off-by: Ben Skeggs <[email protected]>
2020-01-15drm/nouveau/core: define ACR subdevBen Skeggs1-0/+1
This will replace the current SECBOOT subdev for handling firmware on secure falcons. Signed-off-by: Ben Skeggs <[email protected]>