summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/include
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/include
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/include')
-rw-r--r--drivers/gpu/nvgpu/include/nvgpu/falcon.h14
1 files changed, 13 insertions, 1 deletions
diff --git a/drivers/gpu/nvgpu/include/nvgpu/falcon.h b/drivers/gpu/nvgpu/include/nvgpu/falcon.h
index a08c0c31..6cfb6670 100644
--- a/drivers/gpu/nvgpu/include/nvgpu/falcon.h
+++ b/drivers/gpu/nvgpu/include/nvgpu/falcon.h
@@ -165,6 +165,7 @@ struct nvgpu_falcon_dma_info {
165 165
166struct gk20a; 166struct gk20a;
167struct nvgpu_falcon; 167struct nvgpu_falcon;
168struct nvgpu_falcon_bl_info;
168 169
169struct nvgpu_falcon_version_ops { 170struct nvgpu_falcon_version_ops {
170 void (*start_cpu_secure)(struct nvgpu_falcon *flcn); 171 void (*start_cpu_secure)(struct nvgpu_falcon *flcn);
@@ -198,6 +199,16 @@ struct nvgpu_falcon_ops {
198 u32 data); 199 u32 data);
199 int (*bootstrap)(struct nvgpu_falcon *flcn, u32 boot_vector); 200 int (*bootstrap)(struct nvgpu_falcon *flcn, u32 boot_vector);
200 void (*dump_falcon_stats)(struct nvgpu_falcon *flcn); 201 void (*dump_falcon_stats)(struct nvgpu_falcon *flcn);
202 int (*bl_bootstrap)(struct nvgpu_falcon *flcn,
203 struct nvgpu_falcon_bl_info *bl_info);
204};
205
206struct nvgpu_falcon_bl_info {
207 void *bl_src;
208 u8 *bl_desc;
209 u32 bl_desc_size;
210 u32 bl_size;
211 u32 bl_start_tag;
201}; 212};
202 213
203struct nvgpu_falcon { 214struct nvgpu_falcon {
@@ -245,8 +256,9 @@ int nvgpu_flcn_bootstrap(struct nvgpu_falcon *flcn, u32 boot_vector);
245void nvgpu_flcn_print_dmem(struct nvgpu_falcon *flcn, u32 src, u32 size); 256void nvgpu_flcn_print_dmem(struct nvgpu_falcon *flcn, u32 src, u32 size);
246void nvgpu_flcn_print_imem(struct nvgpu_falcon *flcn, u32 src, u32 size); 257void nvgpu_flcn_print_imem(struct nvgpu_falcon *flcn, u32 src, u32 size);
247void nvgpu_flcn_dump_stats(struct nvgpu_falcon *flcn); 258void nvgpu_flcn_dump_stats(struct nvgpu_falcon *flcn);
259int nvgpu_flcn_bl_bootstrap(struct nvgpu_falcon *flcn,
260 struct nvgpu_falcon_bl_info *bl_info);
248 261
249void nvgpu_flcn_sw_init(struct gk20a *g, u32 flcn_id); 262void nvgpu_flcn_sw_init(struct gk20a *g, u32 flcn_id);
250 263
251
252#endif /* __FALCON_H__ */ 264#endif /* __FALCON_H__ */