summaryrefslogtreecommitdiff
path: root/arch/arm/mach-imx/sip.c
diff options
context:
space:
mode:
authorPeng Fan <peng.fan@nxp.com>2018-01-10 13:20:23 +0800
committerStefano Babic <sbabic@denx.de>2018-02-04 12:00:58 +0100
commitde274663f5429fe10c48a40f9fbf0c8aa553905d (patch)
treec2e85ece1f1b4fd2258432e672995801d094fb7b /arch/arm/mach-imx/sip.c
parentbb0fabe42d67ee39f7a874a0e142bc35ed6226a4 (diff)
downloadu-boot-de274663f5429fe10c48a40f9fbf0c8aa553905d.tar.gz
imx: add sip function
Add SiP (Silicon Provider) services function to issue SMC call to Arm Trusted Firmware. More SiP information could be found in https://github.com/ARM-software/arm-trusted-firmware/blob/master/ docs/arm-sip-service.rst Signed-off-by: Peng Fan <peng.fan@nxp.com> Reviewed-by: Fabio Estevam <fabio.estevam@nxp.com> Cc: Stefano Babic <sbabic@denx.de>
Diffstat (limited to 'arch/arm/mach-imx/sip.c')
-rw-r--r--arch/arm/mach-imx/sip.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/arch/arm/mach-imx/sip.c b/arch/arm/mach-imx/sip.c
new file mode 100644
index 0000000000..b724330d35
--- /dev/null
+++ b/arch/arm/mach-imx/sip.c
@@ -0,0 +1,23 @@
+/*
+ * Copyright 2017 NXP
+ *
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+
+#include <common.h>
+#include <asm/arch/sys_proto.h>
+
+unsigned long call_imx_sip(unsigned long id, unsigned long reg0,
+ unsigned long reg1, unsigned long reg2)
+{
+ struct pt_regs regs;
+
+ regs.regs[0] = id;
+ regs.regs[1] = reg0;
+ regs.regs[2] = reg1;
+ regs.regs[3] = reg2;
+
+ smc_call(&regs);
+
+ return regs.regs[0];
+}