summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/pmu_gk20a.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/pmu_gk20a.h')
-rw-r--r--drivers/gpu/nvgpu/gk20a/pmu_gk20a.h32
1 files changed, 31 insertions, 1 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/pmu_gk20a.h b/drivers/gpu/nvgpu/gk20a/pmu_gk20a.h
index b8bb18a2..7d91b111 100644
--- a/drivers/gpu/nvgpu/gk20a/pmu_gk20a.h
+++ b/drivers/gpu/nvgpu/gk20a/pmu_gk20a.h
@@ -450,6 +450,31 @@ struct pmu_ucode_desc {
450 u32 compressed; 450 u32 compressed;
451}; 451};
452 452
453struct pmu_ucode_desc_v1 {
454 u32 descriptor_size;
455 u32 image_size;
456 u32 tools_version;
457 u32 app_version;
458 char date[GK20A_PMU_UCODE_NB_MAX_DATE_LENGTH];
459 u32 bootloader_start_offset;
460 u32 bootloader_size;
461 u32 bootloader_imem_offset;
462 u32 bootloader_entry_point;
463 u32 app_start_offset;
464 u32 app_size;
465 u32 app_imem_offset;
466 u32 app_imem_entry;
467 u32 app_dmem_offset;
468 u32 app_resident_code_offset;
469 u32 app_resident_code_size;
470 u32 app_resident_data_offset;
471 u32 app_resident_data_size;
472 u32 nb_imem_overlays;
473 u32 nb_dmem_overlays;
474 struct {u32 start; u32 size; } load_ovl[64];
475 u32 compressed;
476};
477
453#define PMU_UNIT_REWIND (0x00) 478#define PMU_UNIT_REWIND (0x00)
454#define PMU_UNIT_PG (0x03) 479#define PMU_UNIT_PG (0x03)
455#define PMU_UNIT_INIT (0x07) 480#define PMU_UNIT_INIT (0x07)
@@ -1295,7 +1320,10 @@ struct pmu_pg_stats {
1295 1320
1296struct pmu_gk20a { 1321struct pmu_gk20a {
1297 1322
1298 struct pmu_ucode_desc *desc; 1323 union {
1324 struct pmu_ucode_desc *desc;
1325 struct pmu_ucode_desc_v1 *desc_v1;
1326 };
1299 struct mem_desc ucode; 1327 struct mem_desc ucode;
1300 1328
1301 struct mem_desc pg_buf; 1329 struct mem_desc pg_buf;
@@ -1427,5 +1455,7 @@ void pmu_handle_fecs_boot_acr_msg(struct gk20a *g, struct pmu_msg *msg,
1427void gk20a_pmu_elpg_statistics(struct gk20a *g, 1455void gk20a_pmu_elpg_statistics(struct gk20a *g,
1428 u32 *ingating_time, u32 *ungating_time, u32 *gating_cnt); 1456 u32 *ingating_time, u32 *ungating_time, u32 *gating_cnt);
1429int gk20a_pmu_reset(struct gk20a *g); 1457int gk20a_pmu_reset(struct gk20a *g);
1458int pmu_idle(struct pmu_gk20a *pmu);
1459int pmu_enable_hw(struct pmu_gk20a *pmu, bool enable);
1430 1460
1431#endif /*__PMU_GK20A_H__*/ 1461#endif /*__PMU_GK20A_H__*/