All of lore.kernel.org
 help / color / mirror / Atom feed
From: chee.hong.ang at intel.com <chee.hong.ang@intel.com>
To: u-boot@lists.denx.de
Subject: [PATCH v5 07/17] arm: socfpga: Add SMC helper function for Intel SOCFPGA (64bits)
Date: Thu, 12 Mar 2020 06:23:44 -0700	[thread overview]
Message-ID: <1584019434-45856-8-git-send-email-chee.hong.ang@intel.com> (raw)
In-Reply-To: <1584019434-45856-1-git-send-email-chee.hong.ang@intel.com>

From: Chee Hong Ang <chee.hong.ang@intel.com>

Allow U-Boot proper running in non-secure mode (EL2) to invoke
SMC call to ATF's PSCI runtime services such as System Manager's
registers access, 2nd phase bitstream FPGA reconfiguration,
Remote System Update (RSU) and etc.

Signed-off-by: Chee Hong Ang <chee.hong.ang@intel.com>
---
 arch/arm/mach-socfpga/include/mach/misc.h |  3 +++
 arch/arm/mach-socfpga/misc_s10.c          | 20 ++++++++++++++++++++
 2 files changed, 23 insertions(+)

diff --git a/arch/arm/mach-socfpga/include/mach/misc.h b/arch/arm/mach-socfpga/include/mach/misc.h
index f6de1cc..b5625e1 100644
--- a/arch/arm/mach-socfpga/include/mach/misc.h
+++ b/arch/arm/mach-socfpga/include/mach/misc.h
@@ -43,4 +43,7 @@ void do_bridge_reset(int enable, unsigned int mask);
 void socfpga_pl310_clear(void);
 void socfpga_get_managers_addr(void);
 
+#if !defined(CONFIG_SPL_BUILD) && defined(CONFIG_SPL_ATF)
+int invoke_smc(u32 func_id, u64 *args, int arg_len, u64 *ret_arg, int ret_len);
+#endif
 #endif /* _SOCFPGA_MISC_H_ */
diff --git a/arch/arm/mach-socfpga/misc_s10.c b/arch/arm/mach-socfpga/misc_s10.c
index a3f5b43..adfff82 100644
--- a/arch/arm/mach-socfpga/misc_s10.c
+++ b/arch/arm/mach-socfpga/misc_s10.c
@@ -164,3 +164,23 @@ void do_bridge_reset(int enable, unsigned int mask)
 
 	socfpga_bridges_reset(enable);
 }
+
+#if !defined(CONFIG_SPL_BUILD) && defined(CONFIG_SPL_ATF)
+int invoke_smc(u32 func_id, u64 *args, int arg_len, u64 *ret_arg, int ret_len)
+{
+	struct pt_regs regs;
+
+	memset(&regs, 0, sizeof(regs));
+	regs.regs[0] = func_id;
+
+	if (args)
+		memcpy(&regs.regs[1], &args[0], arg_len * sizeof(u64));
+
+	smc_call(&regs);
+
+	if (ret_arg)
+		memcpy(&ret_arg[0], &regs.regs[1], ret_len * sizeof(u64));
+
+	return regs.regs[0];
+}
+#endif
-- 
2.7.4

  parent reply	other threads:[~2020-03-12 13:23 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-12 13:23 [PATCH v5 00/17] Enable ARM Trusted Firmware for U-Boot chee.hong.ang at intel.com
2020-03-12 13:23 ` [PATCH v5 01/17] configs: agilex: Remove CONFIG_OF_EMBED chee.hong.ang at intel.com
2020-03-12 13:23 ` [PATCH v5 02/17] arm: socfpga: add fit source file for pack itb with ATF chee.hong.ang at intel.com
2020-03-12 13:23 ` [PATCH v5 03/17] arm: socfpga: Add function for checking description from FIT image chee.hong.ang at intel.com
2020-03-12 13:23 ` [PATCH v5 04/17] arm: socfpga: Load FIT image with ATF support chee.hong.ang at intel.com
2020-03-12 13:23 ` [PATCH v5 05/17] arm: socfpga: Override 'lowlevel_init' to support ATF chee.hong.ang at intel.com
2020-03-12 13:23 ` [PATCH v5 06/17] arm: socfpga: Disable "spin-table" method for booting Linux chee.hong.ang at intel.com
2020-03-12 13:23 ` chee.hong.ang at intel.com [this message]
2020-03-12 13:23 ` [PATCH v5 08/17] arm: socfpga: Define SMC function identifiers for PSCI SiP services chee.hong.ang at intel.com
2020-03-12 13:23 ` [PATCH v5 09/17] arm: socfpga: soc64: Remove PHY interface setup from misc arch init chee.hong.ang at intel.com
2020-03-12 13:23 ` [PATCH v5 10/17] mmc: dwmmc: socfpga: Add ATF support for MMC driver chee.hong.ang at intel.com
2020-03-12 13:23 ` [PATCH v5 11/17] net: designware: socfpga: Add ATF support for MAC driver chee.hong.ang at intel.com
2020-03-12 13:23 ` [PATCH v5 12/17] arm: socfpga: Add ATF support for Reset Manager driver chee.hong.ang at intel.com
2020-03-12 13:23 ` [PATCH v5 13/17] arm: socfpga: stratix10: Initialize timer in SPL chee.hong.ang at intel.com
2020-03-12 13:23 ` [PATCH v5 14/17] arm: socfpga: Add ATF support to query FPGA configuration status chee.hong.ang at intel.com
2020-03-12 13:23 ` [PATCH v5 15/17] arm: socfpga: stratix10: Add ATF support for FPGA reconfig driver chee.hong.ang at intel.com
2020-03-12 13:23 ` [PATCH v5 16/17] arm: socfpga: mailbox: Add 'SYSTEM_RESET' PSCI support to mbox_reset_cold() chee.hong.ang at intel.com
2020-03-12 13:23 ` [PATCH v5 17/17] configs: socfpga: Add defconfig for Agilex and Stratix 10 with ATF support chee.hong.ang at intel.com
2020-03-18 14:52 ` [PATCH v5 00/17] Enable ARM Trusted Firmware for U-Boot Ang, Chee Hong
2020-04-01  9:48   ` Ang, Chee Hong

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1584019434-45856-8-git-send-email-chee.hong.ang@intel.com \
    --to=chee.hong.ang@intel.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.