.. | .. |
---|
56 | 56 | #define SIP_HDCP_CONFIG 0x82000025 |
---|
57 | 57 | #define SIP_WDT_CFG 0x82000026 |
---|
58 | 58 | #define SIP_HDMIRX_CFG 0x82000027 |
---|
| 59 | +#define SIP_MCU_CFG 0x82000028 |
---|
59 | 60 | |
---|
60 | 61 | #define TRUSTED_OS_HDCPKEY_INIT 0xB7000003 |
---|
61 | 62 | |
---|
.. | .. |
---|
118 | 119 | /* wakeup state */ |
---|
119 | 120 | #define REMOTECTL_PWRKEY_WAKEUP 0xdeadbeaf |
---|
120 | 121 | |
---|
| 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 | + |
---|
121 | 144 | struct dram_addrmap_info { |
---|
122 | 145 | u64 ch_mask[2]; |
---|
123 | 146 | u64 bk_mask[4]; |
---|
.. | .. |
---|
159 | 182 | SHARE_PAGE_TYPE_DDR_ADDRMAP, |
---|
160 | 183 | SHARE_PAGE_TYPE_LAST_LOG, |
---|
161 | 184 | SHARE_PAGE_TYPE_HDCP, |
---|
| 185 | + SHARE_PAGE_TYPE_SLEEP, |
---|
162 | 186 | SHARE_PAGE_TYPE_MAX, |
---|
163 | 187 | } share_page_type_t; |
---|
164 | 188 | |
---|
.. | .. |
---|
251 | 275 | int sip_wdt_config(u32 sub_func, u32 arg1, u32 arg2, u32 arg3); |
---|
252 | 276 | int sip_hdmirx_config(u32 sub_func, u32 arg1, u32 arg2, u32 arg3); |
---|
253 | 277 | int sip_hdcpkey_init(u32 hdcp_id); |
---|
| 278 | +int sip_smc_mcu_config(unsigned long mcu_id, unsigned long func, unsigned long arg2); |
---|
254 | 279 | #else |
---|
255 | 280 | static inline struct arm_smccc_res sip_smc_get_atf_version(void) |
---|
256 | 281 | { |
---|
.. | .. |
---|
407 | 432 | { |
---|
408 | 433 | return 0; |
---|
409 | 434 | } |
---|
| 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 | +} |
---|
410 | 442 | #endif |
---|
411 | 443 | |
---|
412 | 444 | /* 32-bit OP-TEE context, never change order of members! */ |
---|