soc/amd/*/psp_verstage/svc: Make svc.h macros common
The psp_verstage/svc.h SVC_CALLx macros are virtually identical between picasso/cezanne/mendocino, so move to common. TEST=timeless builds are identical Signed-off-by: Fred Reitberger <reitbergerfred@gmail.com> Change-Id: I86a8d9b043f68c01ee487f2cdbf7f61934b4a520 Reviewed-on: https://review.coreboot.org/c/coreboot/+/68277 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
This commit is contained in:
parent
73d7f3e837
commit
b9dd2561f8
|
@ -1,11 +1,10 @@
|
||||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||||
|
|
||||||
#include "svc.h"
|
|
||||||
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <bl_uapp/bl_syscall_public.h>
|
#include <bl_uapp/bl_syscall_public.h>
|
||||||
#include <psp_verstage.h>
|
#include <psp_verstage.h>
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
|
#include <svc_call.h>
|
||||||
|
|
||||||
void svc_exit(uint32_t status)
|
void svc_exit(uint32_t status)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||||
|
|
||||||
#ifndef PSP_VERSTAGE_SVC_H
|
#ifndef PSP_VERSTAGE_SVC_CALL_H
|
||||||
#define PSP_VERSTAGE_SVC_H
|
#define PSP_VERSTAGE_SVC_CALL_H
|
||||||
|
|
||||||
#define SVC_CALL4(SVC_ID, R0, R1, R2, R3, Ret) \
|
#define SVC_CALL4(SVC_ID, R0, R1, R2, R3, Ret) \
|
||||||
__asm__ __volatile__ ( \
|
__asm__ __volatile__ ( \
|
||||||
|
@ -54,4 +54,4 @@
|
||||||
: [id] "I" (SVC_ID) /* input(s) */ \
|
: [id] "I" (SVC_ID) /* input(s) */ \
|
||||||
: "memory", "cc" /* list of clobbered registers */)
|
: "memory", "cc" /* list of clobbered registers */)
|
||||||
|
|
||||||
#endif /* PSP_VERSTAGE_SVC_H */
|
#endif /* PSP_VERSTAGE_SVC_CALL_H */
|
|
@ -7,6 +7,7 @@
|
||||||
#include <psp_verstage.h>
|
#include <psp_verstage.h>
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
#include <svc_call.h>
|
||||||
|
|
||||||
void svc_exit(uint32_t status)
|
void svc_exit(uint32_t status)
|
||||||
{
|
{
|
||||||
|
|
|
@ -8,57 +8,6 @@
|
||||||
#include <bl_uapp/bl_syscall_public.h>
|
#include <bl_uapp/bl_syscall_public.h>
|
||||||
#include <types.h>
|
#include <types.h>
|
||||||
|
|
||||||
#define SVC_CALL4(SVC_ID, R0, R1, R2, R3, Ret) \
|
|
||||||
__asm__ __volatile__ ( \
|
|
||||||
"mov r0, %[reg0]\n\t" \
|
|
||||||
"mov r1, %[reg1]\n\t" \
|
|
||||||
"mov r2, %[reg2]\n\t" \
|
|
||||||
"mov r3, %[reg3]\n\t" \
|
|
||||||
"svc %[id]\n\t" \
|
|
||||||
"mov %[result], r0\n\t" \
|
|
||||||
: [result] "=r" (Ret) /* output */ \
|
|
||||||
: [id] "i" (SVC_ID), [reg0] "r" (R0), [reg1] "r" (R1), [reg2] "r" (R2), \
|
|
||||||
[reg3] "r" (R3) /* input(s) */ \
|
|
||||||
: "r0", "r1", "r2", "r3", "memory", "cc" /* list of clobbered registers */)
|
|
||||||
|
|
||||||
#define SVC_CALL3(SVC_ID, R0, R1, R2, Ret) \
|
|
||||||
__asm__ __volatile__ ( \
|
|
||||||
"mov r0, %[reg0]\n\t" \
|
|
||||||
"mov r1, %[reg1]\n\t" \
|
|
||||||
"mov r2, %[reg2]\n\t" \
|
|
||||||
"svc %[id]\n\t" \
|
|
||||||
"mov %[result], r0\n\t" \
|
|
||||||
: [result] "=r" (Ret) /* output */ \
|
|
||||||
: [id] "i" (SVC_ID), [reg0] "r" (R0), [reg1] "r" (R1), [reg2] "r" (R2) \
|
|
||||||
: "r0", "r1", "r2", "memory", "cc" /* list of clobbered registers */)
|
|
||||||
|
|
||||||
#define SVC_CALL2(SVC_ID, R0, R1, Ret) \
|
|
||||||
__asm__ __volatile__ ( \
|
|
||||||
"mov r0, %[reg0]\n\t" \
|
|
||||||
"mov r1, %[reg1]\n\t" \
|
|
||||||
"svc %[id]\n\t" \
|
|
||||||
"mov %[result], r0\n\t" \
|
|
||||||
: [result] "=r" (Ret) /* output */ \
|
|
||||||
: [id] "i" (SVC_ID), [reg0] "r" (R0), [reg1] "r" (R1)/* input(s) */ \
|
|
||||||
: "r0", "r1", "memory", "cc" /* list of clobbered registers */)
|
|
||||||
|
|
||||||
#define SVC_CALL1(SVC_ID, R0, Ret) \
|
|
||||||
__asm__ __volatile__ ( \
|
|
||||||
"mov r0, %[reg0]\n\t" \
|
|
||||||
"svc %[id]\n\t" \
|
|
||||||
"mov %[result], r0\n\t" \
|
|
||||||
: [result] "=r" (Ret) /* output */ \
|
|
||||||
: [id] "i" (SVC_ID), [reg0] "r" (R0) /* input(s) */ \
|
|
||||||
: "r0", "memory", "cc" /* list of clobbered registers */)
|
|
||||||
|
|
||||||
#define SVC_CALL0(SVC_ID, Ret) \
|
|
||||||
__asm__ __volatile__ ( \
|
|
||||||
"svc %[id]\n\t" \
|
|
||||||
"mov %[result], r0\n\t" \
|
|
||||||
: [result] "=r" (Ret) /* output */ \
|
|
||||||
: [id] "I" (SVC_ID) /* input(s) */ \
|
|
||||||
: "memory", "cc" /* list of clobbered registers */)
|
|
||||||
|
|
||||||
struct cmd_param_sha {
|
struct cmd_param_sha {
|
||||||
struct sha_generic_data *ptr_sha_op;
|
struct sha_generic_data *ptr_sha_op;
|
||||||
};
|
};
|
||||||
|
|
|
@ -9,6 +9,7 @@
|
||||||
#include <psp_verstage.h>
|
#include <psp_verstage.h>
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
#include <svc_call.h>
|
||||||
|
|
||||||
void svc_exit(uint32_t status)
|
void svc_exit(uint32_t status)
|
||||||
{
|
{
|
||||||
|
|
|
@ -9,57 +9,6 @@
|
||||||
#include <bl_uapp/bl_syscall_public.h>
|
#include <bl_uapp/bl_syscall_public.h>
|
||||||
#include <types.h>
|
#include <types.h>
|
||||||
|
|
||||||
#define SVC_CALL4(SVC_ID, R0, R1, R2, R3, Ret) \
|
|
||||||
__asm__ __volatile__ ( \
|
|
||||||
"mov r0, %[reg0]\n\t" \
|
|
||||||
"mov r1, %[reg1]\n\t" \
|
|
||||||
"mov r2, %[reg2]\n\t" \
|
|
||||||
"mov r3, %[reg3]\n\t" \
|
|
||||||
"svc %[id]\n\t" \
|
|
||||||
"mov %[result], r0\n\t" \
|
|
||||||
: [result] "=r" (Ret) /* output */ \
|
|
||||||
: [id] "i" (SVC_ID), [reg0] "r" (R0), [reg1] "r" (R1), [reg2] "r" (R2), \
|
|
||||||
[reg3] "r" (R3) /* input(s) */ \
|
|
||||||
: "r0", "r1", "r2", "r3", "memory", "cc" /* list of clobbered registers */)
|
|
||||||
|
|
||||||
#define SVC_CALL3(SVC_ID, R0, R1, R2, Ret) \
|
|
||||||
__asm__ __volatile__ ( \
|
|
||||||
"mov r0, %[reg0]\n\t" \
|
|
||||||
"mov r1, %[reg1]\n\t" \
|
|
||||||
"mov r2, %[reg2]\n\t" \
|
|
||||||
"svc %[id]\n\t" \
|
|
||||||
"mov %[result], r0\n\t" \
|
|
||||||
: [result] "=r" (Ret) /* output */ \
|
|
||||||
: [id] "i" (SVC_ID), [reg0] "r" (R0), [reg1] "r" (R1), [reg2] "r" (R2) \
|
|
||||||
: "r0", "r1", "r2", "memory", "cc" /* list of clobbered registers */)
|
|
||||||
|
|
||||||
#define SVC_CALL2(SVC_ID, R0, R1, Ret) \
|
|
||||||
__asm__ __volatile__ ( \
|
|
||||||
"mov r0, %[reg0]\n\t" \
|
|
||||||
"mov r1, %[reg1]\n\t" \
|
|
||||||
"svc %[id]\n\t" \
|
|
||||||
"mov %[result], r0\n\t" \
|
|
||||||
: [result] "=r" (Ret) /* output */ \
|
|
||||||
: [id] "i" (SVC_ID), [reg0] "r" (R0), [reg1] "r" (R1)/* input(s) */ \
|
|
||||||
: "r0", "r1", "memory", "cc" /* list of clobbered registers */)
|
|
||||||
|
|
||||||
#define SVC_CALL1(SVC_ID, R0, Ret) \
|
|
||||||
__asm__ __volatile__ ( \
|
|
||||||
"mov r0, %[reg0]\n\t" \
|
|
||||||
"svc %[id]\n\t" \
|
|
||||||
"mov %[result], r0\n\t" \
|
|
||||||
: [result] "=r" (Ret) /* output */ \
|
|
||||||
: [id] "i" (SVC_ID), [reg0] "r" (R0) /* input(s) */ \
|
|
||||||
: "r0", "memory", "cc" /* list of clobbered registers */)
|
|
||||||
|
|
||||||
#define SVC_CALL0(SVC_ID, Ret) \
|
|
||||||
__asm__ __volatile__ ( \
|
|
||||||
"svc %[id]\n\t" \
|
|
||||||
"mov %[result], r0\n\t" \
|
|
||||||
: [result] "=r" (Ret) /* output */ \
|
|
||||||
: [id] "I" (SVC_ID) /* input(s) */ \
|
|
||||||
: "memory", "cc" /* list of clobbered registers */)
|
|
||||||
|
|
||||||
struct cmd_param_sha {
|
struct cmd_param_sha {
|
||||||
struct sha_generic_data *ptr_sha_op;
|
struct sha_generic_data *ptr_sha_op;
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,11 +1,10 @@
|
||||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||||
|
|
||||||
#include "svc.h"
|
|
||||||
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <bl_uapp/bl_syscall_public.h>
|
#include <bl_uapp/bl_syscall_public.h>
|
||||||
#include <psp_verstage.h>
|
#include <psp_verstage.h>
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
|
#include <svc_call.h>
|
||||||
|
|
||||||
void svc_exit(uint32_t status)
|
void svc_exit(uint32_t status)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,57 +0,0 @@
|
||||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
|
||||||
|
|
||||||
#ifndef PSP_VERSTAGE_SVC_H
|
|
||||||
#define PSP_VERSTAGE_SVC_H
|
|
||||||
|
|
||||||
#define SVC_CALL4(SVC_ID, R0, R1, R2, R3, Ret) \
|
|
||||||
__asm__ __volatile__ ( \
|
|
||||||
"mov r0, %[reg0]\n\t" \
|
|
||||||
"mov r1, %[reg1]\n\t" \
|
|
||||||
"mov r2, %[reg2]\n\t" \
|
|
||||||
"mov r3, %[reg3]\n\t" \
|
|
||||||
"svc %[id]\n\t" \
|
|
||||||
"mov %[result], r0\n\t" \
|
|
||||||
: [result] "=r" (Ret) /* output */ \
|
|
||||||
: [id] "i" (SVC_ID), [reg0] "r" (R0), [reg1] "r" (R1), [reg2] "r" (R2), \
|
|
||||||
[reg3] "r" (R3) /* input(s) */ \
|
|
||||||
: "r0", "r1", "r2", "r3", "memory", "cc" /* list of clobbered registers */);
|
|
||||||
|
|
||||||
#define SVC_CALL3(SVC_ID, R0, R1, R2, Ret) \
|
|
||||||
__asm__ __volatile__ ( \
|
|
||||||
"mov r0, %[reg0]\n\t" \
|
|
||||||
"mov r1, %[reg1]\n\t" \
|
|
||||||
"mov r2, %[reg2]\n\t" \
|
|
||||||
"svc %[id]\n\t" \
|
|
||||||
"mov %[result], r0\n\t" \
|
|
||||||
: [result] "=r" (Ret) /* output */ \
|
|
||||||
: [id] "i" (SVC_ID), [reg0] "r" (R0), [reg1] "r" (R1), [reg2] "r" (R2) \
|
|
||||||
: "r0", "r1", "r2", "memory", "cc" /* list of clobbered registers */);
|
|
||||||
|
|
||||||
#define SVC_CALL2(SVC_ID, R0, R1, Ret) \
|
|
||||||
__asm__ __volatile__ ( \
|
|
||||||
"mov r0, %[reg0]\n\t" \
|
|
||||||
"mov r1, %[reg1]\n\t" \
|
|
||||||
"svc %[id]\n\t" \
|
|
||||||
"mov %[result], r0\n\t" \
|
|
||||||
: [result] "=r" (Ret) /* output */ \
|
|
||||||
: [id] "i" (SVC_ID), [reg0] "r" (R0), [reg1] "r" (R1)/* input(s) */ \
|
|
||||||
: "r0", "r1", "memory", "cc" /* list of clobbered registers */);
|
|
||||||
|
|
||||||
#define SVC_CALL1(SVC_ID, R0, Ret) \
|
|
||||||
__asm__ __volatile__ ( \
|
|
||||||
"mov r0, %[reg0]\n\t" \
|
|
||||||
"svc %[id]\n\t" \
|
|
||||||
"mov %[result], r0\n\t" \
|
|
||||||
: [result] "=r" (Ret) /* output */ \
|
|
||||||
: [id] "i" (SVC_ID), [reg0] "r" (R0) /* input(s) */ \
|
|
||||||
: "r0", "memory", "cc" /* list of clobbered registers */);
|
|
||||||
|
|
||||||
#define SVC_CALL0(SVC_ID, Ret) \
|
|
||||||
__asm__ __volatile__ ( \
|
|
||||||
"svc %[id]\n\t" \
|
|
||||||
"mov %[result], r0\n\t" \
|
|
||||||
: [result] "=r" (Ret) /* output */ \
|
|
||||||
: [id] "I" (SVC_ID) /* input(s) */ \
|
|
||||||
: "memory", "cc" /* list of clobbered registers */);
|
|
||||||
|
|
||||||
#endif /* PSP_VERSTAGE_SVC_H */
|
|
Loading…
Reference in New Issue