hc
2024-08-12 0517ab8c70e05fc5877c0c6dae1a5f42a16dcf88
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
/* SPDX-License-Identifier: GPL-2.0 */
#ifndef __ROCKCHIP_PSCI_H
#define __ROCKCHIP_PSCI_H
 
#define SEC_REG_RD (0x0)
#define SEC_REG_WR (0x1)
 
/*
 * trust firmware verison
 */
#define RKTF_VER_MAJOR(ver)        (((ver) >> 16) & 0xffff)
#define RKTF_VER_MINOR(ver)        ((ver) & 0xffff)
 
/*
 * pcsi smc funciton id
 */
#define PSCI_SIP_RKTF_VER        (0x82000001)
#define PSCI_SIP_ACCESS_REG        (0x82000002)
#define PSCI_SIP_ACCESS_REG64        (0xc2000002)
#define PSCI_SIP_SUSPEND_WR_CTRBITS    (0x82000003)
#define PSCI_SIP_PENDING_CPUS        (0x82000004)
#define PSCI_SIP_UARTDBG_CFG        (0x82000005)
#define PSCI_SIP_UARTDBG_CFG64        (0xc2000005)
#define PSCI_SIP_EL3FIQ_CFG        (0x82000006)
#define PSCI_SIP_SMEM_CONFIG        (0x82000007)
 
/*
 * pcsi smc funciton err code
 */
#define PSCI_SMC_FUNC_UNK        0xffffffff
 
/*
 * define PSCI_SIP_UARTDBG_CFG call type
 */
#define UARTDBG_CFG_INIT        0xf0
#define UARTDBG_CFG_OSHDL_TO_OS        0xf1
#define UARTDBG_CFG_OSHDL_CPUSW        0xf3
#define UARTDBG_CFG_OSHDL_DEBUG_ENABLE    0xf4
#define UARTDBG_CFG_OSHDL_DEBUG_DISABLE    0xf5
 
/*
 * rockchip psci function call interface
 */
 
u32 rockchip_psci_smc_read(u32 function_id, u32 arg0, u32 arg1, u32 arg2,
              u32 *val);
u32 rockchip_psci_smc_write(u32 function_id, u32 arg0, u32 arg1, u32 arg2);
 
u32 rockchip_psci_smc_get_tf_ver(void);
u32 rockchip_secure_reg_read(u32 addr_phy);
u32 rockchip_secure_reg_write(u32 addr_phy, u32 val);
 
#ifdef CONFIG_ARM64
u32 rockchip_psci_smc_write64(u64 function_id, u64 arg0, u64 arg1, u64 arg2);
u32 rockchip_psci_smc_read64(u64 function_id, u64 arg0, u64 arg1, u64 arg2,
                u64 *val);
u64 rockchip_secure_reg_read64(u64 addr_phy);
u32 rockchip_secure_reg_write64(u64 addr_phy, u64 val);
 
void psci_fiq_debugger_uart_irq_tf_cb(u64 sp_el1, u64 offset);
#endif
 
u32 psci_fiq_debugger_switch_cpu(u32 cpu);
void psci_fiq_debugger_uart_irq_tf_init(u32 irq_id, void *callback);
void psci_fiq_debugger_enable_debug(bool val);
 
#if defined(CONFIG_ARM_PSCI) || defined(CONFIG_ARM64)
u32 psci_set_memory_secure(bool val);
#else
static inline u32 psci_set_memory_secure(bool val)
{
   return 0;
}
#endif
 
#endif /* __ROCKCHIP_PSCI_H */