summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/common/falcon
diff options
context:
space:
mode:
authorMahantesh Kumbar <mkumbar@nvidia.com>2018-06-20 14:42:01 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2018-07-10 02:40:10 -0400
commit4cd59404a2d4ab1c31605d96cff848dd4e93c3b4 (patch)
tree24884407db02f117d90cccb28b9e713731f18274 /drivers/gpu/nvgpu/common/falcon
parent876953fbb85f9440bbcc1d7d59435593886b53c4 (diff)
gpu: nvgpu: falcon code cleanup
-Created common falcon function nvgpu_flcn_bl_bootstrap() to bootstrap falcon bootloader -Created HAL gk20a_falcon_bl_bootstrap() which does actual bootloader bootstrap by fetching parameters and loading code/parameters as needed. -Created HAL ops bl_bootstrap under nvgpu_falcon_ops. -Created struct nvgpu_falcon_bl_info to hold info required for bootloader to pass to common function -Removed falcons bootstrap code in multiple file & made changes to fill struct nvgpu_falcon_bl_info & call nvgpu_flcn_bl_bootstrap(). Change-Id: Iee275233915ff11f9afb5207ac0c3338ca9dacc1 Signed-off-by: Mahantesh Kumbar <mkumbar@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1756104 Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com> Reviewed-by: svc-misra-checker <svc-misra-checker@nvidia.com> GVS: Gerrit_Virtual_Submit Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/common/falcon')
-rw-r--r--drivers/gpu/nvgpu/common/falcon/falcon.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/common/falcon/falcon.c b/drivers/gpu/nvgpu/common/falcon/falcon.c
index 41e394f9..8e37a709 100644
--- a/drivers/gpu/nvgpu/common/falcon/falcon.c
+++ b/drivers/gpu/nvgpu/common/falcon/falcon.c
@@ -357,6 +357,24 @@ void nvgpu_flcn_dump_stats(struct nvgpu_falcon *flcn)
357 flcn->flcn_id); 357 flcn->flcn_id);
358} 358}
359 359
360int nvgpu_flcn_bl_bootstrap(struct nvgpu_falcon *flcn,
361 struct nvgpu_falcon_bl_info *bl_info)
362{
363 struct nvgpu_falcon_ops *flcn_ops = &flcn->flcn_ops;
364 int status = 0;
365
366 if (flcn_ops->bl_bootstrap != NULL) {
367 status = flcn_ops->bl_bootstrap(flcn, bl_info);
368 }
369 else {
370 nvgpu_warn(flcn->g, "Invalid op on falcon 0x%x ",
371 flcn->flcn_id);
372 status = -EINVAL;
373 }
374
375 return status;
376}
377
360void nvgpu_flcn_sw_init(struct gk20a *g, u32 flcn_id) 378void nvgpu_flcn_sw_init(struct gk20a *g, u32 flcn_id)
361{ 379{
362 struct nvgpu_falcon *flcn = NULL; 380 struct nvgpu_falcon *flcn = NULL;