5 #ifndef PSP_VERSTAGE_SVC_H
6 #define PSP_VERSTAGE_SVC_H
8 #include <bl_uapp/bl_syscall_public.h>
11 #define SVC_CALL4(SVC_ID, R0, R1, R2, R3, Ret) \
12 __asm__ __volatile__ ( \
13 "mov r0, %[reg0]\n\t" \
14 "mov r1, %[reg1]\n\t" \
15 "mov r2, %[reg2]\n\t" \
16 "mov r3, %[reg3]\n\t" \
18 "mov %[result], r0\n\t" \
19 : [result] "=r" (Ret)
\
20 : [id] "i" (SVC_ID), [reg0] "r" (R0), [reg1] "r" (R1), [reg2] "r" (R2), \
22 : "r0", "r1", "r2", "r3", "memory", "cc"
)
24 #define SVC_CALL3(SVC_ID, R0, R1, R2, Ret) \
25 __asm__ __volatile__ ( \
26 "mov r0, %[reg0]\n\t" \
27 "mov r1, %[reg1]\n\t" \
28 "mov r2, %[reg2]\n\t" \
30 "mov %[result], r0\n\t" \
31 : [result] "=r" (Ret)
\
32 : [id] "i" (SVC_ID), [reg0] "r" (R0), [reg1] "r" (R1), [reg2] "r" (R2) \
33 : "r0", "r1", "r2", "memory", "cc"
)
35 #define SVC_CALL2(SVC_ID, R0, R1, Ret) \
36 __asm__ __volatile__ ( \
37 "mov r0, %[reg0]\n\t" \
38 "mov r1, %[reg1]\n\t" \
40 "mov %[result], r0\n\t" \
41 : [result] "=r" (Ret)
\
42 : [id] "i" (SVC_ID), [reg0] "r" (R0), [reg1] "r" (R1)
\
43 : "r0", "r1", "memory", "cc"
)
45 #define SVC_CALL1(SVC_ID, R0, Ret) \
46 __asm__ __volatile__ ( \
47 "mov r0, %[reg0]\n\t" \
49 "mov %[result], r0\n\t" \
50 : [result] "=r" (Ret)
\
51 : [id] "i" (SVC_ID), [reg0] "r" (R0)
\
52 : "r0", "memory", "cc"
)
54 #define SVC_CALL0(SVC_ID, Ret) \
55 __asm__ __volatile__ ( \
57 "mov %[result], r0\n\t" \
58 : [result] "=r" (Ret)
\
unsigned long long uint64_t
uint32_t debug_buffer_len
unsigned int * ptr_boot_mode
void ** pptr_io_device_addr_axi
enum fch_io_device io_device
void ** ppspirom_addr_axi
struct mod_exp_params * ptr_modexp
unsigned int * ptr_psp_dir_addr
uint64_t * ptr_counter_value
enum psp_timer_type timer_type
enum reset_type reset_type
struct sha_generic_data * ptr_sha_op
enum sha_operation_mode sha_mode
struct spirom_info * ptr_spirom_info
void * ptr_io_device_addr_axi
enum fch_io_device io_device
void * ptr_spirom_addr_axi