2 * Copyright (c) 2018, ARM Limited and Contributors. All rights reserved.
4 * SPDX-License-Identifier: BSD-3-Clause
9 #include <platform_def.h>
10 #include <runtime_svc.h>
13 #include "gxbb_private.h"
15 /*******************************************************************************
16 * This function is responsible for handling all SiP calls
17 ******************************************************************************/
18 static uintptr_t gxbb_sip_handler(uint32_t smc_fid
,
19 u_register_t x1
, u_register_t x2
,
20 u_register_t x3
, u_register_t x4
,
21 void *cookie
, void *handle
,
26 case GXBB_SM_GET_SHARE_MEM_INPUT_BASE
:
27 SMC_RET1(handle
, GXBB_SHARE_MEM_INPUT_BASE
);
29 case GXBB_SM_GET_SHARE_MEM_OUTPUT_BASE
:
30 SMC_RET1(handle
, GXBB_SHARE_MEM_OUTPUT_BASE
);
32 case GXBB_SM_EFUSE_READ
:
34 void *dst
= (void *)GXBB_SHARE_MEM_OUTPUT_BASE
;
35 uint64_t ret
= gxbb_efuse_read(dst
, (uint32_t)x1
, x2
);
37 SMC_RET1(handle
, ret
);
39 case GXBB_SM_EFUSE_USER_MAX
:
40 SMC_RET1(handle
, gxbb_efuse_user_max());
43 scpi_jtag_set_state(GXBB_JTAG_STATE_ON
, x1
);
46 case GXBB_SM_JTAG_OFF
:
47 scpi_jtag_set_state(GXBB_JTAG_STATE_OFF
, x1
);
51 ERROR("BL31: Unhandled SIP SMC: 0x%08x\n", smc_fid
);
55 SMC_RET1(handle
, SMC_UNK
);