hc
2023-12-11 6778948f9de86c3cfaf36725a7c87dcff9ba247f
kernel/include/linux/rockchip/rockchip_sip.h
....@@ -56,6 +56,7 @@
5656 #define SIP_HDCP_CONFIG 0x82000025
5757 #define SIP_WDT_CFG 0x82000026
5858 #define SIP_HDMIRX_CFG 0x82000027
59
+#define SIP_MCU_CFG 0x82000028
5960
6061 #define TRUSTED_OS_HDCPKEY_INIT 0xB7000003
6162
....@@ -118,6 +119,28 @@
118119 /* wakeup state */
119120 #define REMOTECTL_PWRKEY_WAKEUP 0xdeadbeaf
120121
122
+/* SIP_MCU_CFG child configs, MCU ID */
123
+enum {
124
+ RK_BUS_MCU,
125
+ RK_PMU_MCU,
126
+ RK_DDR_MCU,
127
+ RK_NPU_MCU,
128
+};
129
+
130
+#define RK_SIP_MCU_ID(type, id) ((type) << 8 | id)
131
+
132
+#define RK_SIP_CFG_BUSMCU_0_ID RK_SIP_MCU_ID(RK_BUS_MCU, 0)
133
+#define RK_SIP_CFG_BUSMCU_1_ID RK_SIP_MCU_ID(RK_BUS_MCU, 1)
134
+#define RK_SIP_CFG_PMUMCU_0_ID RK_SIP_MCU_ID(RK_PMU_MCU, 0)
135
+#define RK_SIP_CFG_DDRMCU_0_ID RK_SIP_MCU_ID(RK_DDR_MCU, 0)
136
+#define RK_SIP_CFG_NPUMCU_0_ID RK_SIP_MCU_ID(RK_NPU_MCU, 0)
137
+
138
+/* SIP_MCU_CFG child configs */
139
+#define CONFIG_MCU_CODE_START_ADDR 0x01
140
+#define CONFIG_MCU_EXPERI_START_ADDR 0x02
141
+#define CONFIG_MCU_SRAM_START_ADDR 0x03
142
+#define CONFIG_MCU_EXSRAM_START_ADDR 0x04
143
+
121144 struct dram_addrmap_info {
122145 u64 ch_mask[2];
123146 u64 bk_mask[4];
....@@ -159,6 +182,7 @@
159182 SHARE_PAGE_TYPE_DDR_ADDRMAP,
160183 SHARE_PAGE_TYPE_LAST_LOG,
161184 SHARE_PAGE_TYPE_HDCP,
185
+ SHARE_PAGE_TYPE_SLEEP,
162186 SHARE_PAGE_TYPE_MAX,
163187 } share_page_type_t;
164188
....@@ -251,6 +275,7 @@
251275 int sip_wdt_config(u32 sub_func, u32 arg1, u32 arg2, u32 arg3);
252276 int sip_hdmirx_config(u32 sub_func, u32 arg1, u32 arg2, u32 arg3);
253277 int sip_hdcpkey_init(u32 hdcp_id);
278
+int sip_smc_mcu_config(unsigned long mcu_id, unsigned long func, unsigned long arg2);
254279 #else
255280 static inline struct arm_smccc_res sip_smc_get_atf_version(void)
256281 {
....@@ -407,6 +432,13 @@
407432 {
408433 return 0;
409434 }
435
+
436
+static inline int sip_smc_mcu_config(unsigned long mcu_id,
437
+ unsigned long func,
438
+ unsigned long arg2)
439
+{
440
+ return SIP_RET_NOT_SUPPORTED;
441
+}
410442 #endif
411443
412444 /* 32-bit OP-TEE context, never change order of members! */