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.h48
1 files changed, 47 insertions, 1 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/pmu_gk20a.h b/drivers/gpu/nvgpu/gk20a/pmu_gk20a.h
index bf581b90..54d01947 100644
--- a/drivers/gpu/nvgpu/gk20a/pmu_gk20a.h
+++ b/drivers/gpu/nvgpu/gk20a/pmu_gk20a.h
@@ -50,7 +50,7 @@
50#define PMU_AP_IDLE_MASK_GRAPHICS (PMU_AP_IDLE_MASK_HIST_IDX_1) 50#define PMU_AP_IDLE_MASK_GRAPHICS (PMU_AP_IDLE_MASK_HIST_IDX_1)
51 51
52#define APP_VERSION_NC_1 20313802 52#define APP_VERSION_NC_1 20313802
53#define APP_VERSION_NC_0 20120791 53#define APP_VERSION_NC_0 20360931
54#define APP_VERSION_GM20B_4 19008461 54#define APP_VERSION_GM20B_4 19008461
55#define APP_VERSION_GM20B_3 18935575 55#define APP_VERSION_GM20B_3 18935575
56#define APP_VERSION_GM20B_2 18694072 56#define APP_VERSION_GM20B_2 18694072
@@ -451,6 +451,8 @@ struct pmu_ucode_desc {
451#define PMU_UNIT_PERFMON_T18X (0x11) 451#define PMU_UNIT_PERFMON_T18X (0x11)
452#define PMU_UNIT_PERFMON (0x12) 452#define PMU_UNIT_PERFMON (0x12)
453#define PMU_UNIT_RC (0x1F) 453#define PMU_UNIT_RC (0x1F)
454#define PMU_UNIT_FECS_MEM_OVERRIDE (0x1E)
455
454#define PMU_UNIT_END (0x23) 456#define PMU_UNIT_END (0x23)
455 457
456#define PMU_UNIT_TEST_START (0xFE) 458#define PMU_UNIT_TEST_START (0xFE)
@@ -814,6 +816,47 @@ struct pmu_acr_msg {
814#define PMU_DOMAIN_GROUP_GPC2CLK 1 816#define PMU_DOMAIN_GROUP_GPC2CLK 1
815#define PMU_DOMAIN_GROUP_NUM 2 817#define PMU_DOMAIN_GROUP_NUM 2
816 818
819/* FECS mem override command*/
820
821#define PMU_LRF_TEX_LTC_DRAM_CMD_ID_EN_DIS 0
822
823/*!
824 * Enable/Disable FECS error feature
825 */
826struct pmu_cmd_lrf_tex_ltc_dram_en_dis {
827 /*Command type must be first*/
828 u8 cmd_type;
829 /*unit bitmask*/
830 u8 en_dis_mask;
831};
832
833struct pmu_lrf_tex_ltc_dram_cmd {
834 union {
835 u8 cmd_type;
836 struct pmu_cmd_lrf_tex_ltc_dram_en_dis en_dis;
837 };
838};
839
840/* FECS mem override messages*/
841#define PMU_LRF_TEX_LTC_DRAM_MSG_ID_EN_DIS 0
842
843struct pmu_msg_lrf_tex_ltc_dram_en_dis {
844 /*!
845 * Must be at start
846 */
847 u8 msg_type;
848 u8 en_fail_mask;
849 u8 dis_fail_mask;
850 u32 pmu_status;
851};
852
853struct pmu_lrf_tex_ltc_dram_msg {
854 union {
855 u8 msg_type;
856 struct pmu_msg_lrf_tex_ltc_dram_en_dis en_dis;
857 };
858};
859
817/* TBD: smart strategy */ 860/* TBD: smart strategy */
818#define PMU_PERFMON_PCT_TO_INC 58 861#define PMU_PERFMON_PCT_TO_INC 58
819#define PMU_PERFMON_PCT_TO_DEC 23 862#define PMU_PERFMON_PCT_TO_DEC 23
@@ -958,6 +1001,7 @@ struct pmu_cmd {
958 struct pmu_pg_cmd pg; 1001 struct pmu_pg_cmd pg;
959 struct pmu_zbc_cmd zbc; 1002 struct pmu_zbc_cmd zbc;
960 struct pmu_acr_cmd acr; 1003 struct pmu_acr_cmd acr;
1004 struct pmu_lrf_tex_ltc_dram_cmd lrf_tex_ltc_dram;
961 } cmd; 1005 } cmd;
962}; 1006};
963 1007
@@ -969,6 +1013,7 @@ struct pmu_msg {
969 struct pmu_pg_msg pg; 1013 struct pmu_pg_msg pg;
970 struct pmu_rc_msg rc; 1014 struct pmu_rc_msg rc;
971 struct pmu_acr_msg acr; 1015 struct pmu_acr_msg acr;
1016 struct pmu_lrf_tex_ltc_dram_msg lrf_tex_ltc_dram;
972 } msg; 1017 } msg;
973}; 1018};
974 1019
@@ -1318,6 +1363,7 @@ struct pmu_gk20a {
1318 u8 pmu_mode; /*Added for GM20b, and ACR*/ 1363 u8 pmu_mode; /*Added for GM20b, and ACR*/
1319 u32 falcon_id; 1364 u32 falcon_id;
1320 u32 aelpg_param[5]; 1365 u32 aelpg_param[5];
1366 u32 override_done;
1321}; 1367};
1322 1368
1323int gk20a_init_pmu_support(struct gk20a *g); 1369int gk20a_init_pmu_support(struct gk20a *g);