diff options
author | Mahantesh Kumbar <mkumbar@nvidia.com> | 2018-06-20 14:42:01 -0400 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2018-07-10 02:40:10 -0400 |
commit | 4cd59404a2d4ab1c31605d96cff848dd4e93c3b4 (patch) | |
tree | 24884407db02f117d90cccb28b9e713731f18274 /drivers/gpu/nvgpu/include | |
parent | 876953fbb85f9440bbcc1d7d59435593886b53c4 (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.h | 14 |
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 | ||
166 | struct gk20a; | 166 | struct gk20a; |
167 | struct nvgpu_falcon; | 167 | struct nvgpu_falcon; |
168 | struct nvgpu_falcon_bl_info; | ||
168 | 169 | ||
169 | struct nvgpu_falcon_version_ops { | 170 | struct 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 | |||
206 | struct 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 | ||
203 | struct nvgpu_falcon { | 214 | struct nvgpu_falcon { |
@@ -245,8 +256,9 @@ int nvgpu_flcn_bootstrap(struct nvgpu_falcon *flcn, u32 boot_vector); | |||
245 | void nvgpu_flcn_print_dmem(struct nvgpu_falcon *flcn, u32 src, u32 size); | 256 | void nvgpu_flcn_print_dmem(struct nvgpu_falcon *flcn, u32 src, u32 size); |
246 | void nvgpu_flcn_print_imem(struct nvgpu_falcon *flcn, u32 src, u32 size); | 257 | void nvgpu_flcn_print_imem(struct nvgpu_falcon *flcn, u32 src, u32 size); |
247 | void nvgpu_flcn_dump_stats(struct nvgpu_falcon *flcn); | 258 | void nvgpu_flcn_dump_stats(struct nvgpu_falcon *flcn); |
259 | int nvgpu_flcn_bl_bootstrap(struct nvgpu_falcon *flcn, | ||
260 | struct nvgpu_falcon_bl_info *bl_info); | ||
248 | 261 | ||
249 | void nvgpu_flcn_sw_init(struct gk20a *g, u32 flcn_id); | 262 | void nvgpu_flcn_sw_init(struct gk20a *g, u32 flcn_id); |
250 | 263 | ||
251 | |||
252 | #endif /* __FALCON_H__ */ | 264 | #endif /* __FALCON_H__ */ |