arm: socfpga: soc64: Add ATF support for Reset Manager driver
In non-secure mode (EL2), Reset Manager driver calls the SMC/PSCI service provided by ATF to enable/disable the SOCFPGA bridges. Signed-off-by: Chee Hong Ang <chee.hong.ang@intel.com> Signed-off-by: Siew Chin Lim <elly.siew.chin.lim@intel.com>
This commit is contained in:
parent
a90ae0167b
commit
018d27f251
1 changed files with 13 additions and 0 deletions
|
@ -5,11 +5,14 @@
|
|||
*/
|
||||
|
||||
#include <common.h>
|
||||
#include <hang.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/arch/reset_manager.h>
|
||||
#include <asm/arch/smc_api.h>
|
||||
#include <asm/arch/system_manager.h>
|
||||
#include <dt-bindings/reset/altr,rst-mgr-s10.h>
|
||||
#include <linux/iopoll.h>
|
||||
#include <linux/intel-smc.h>
|
||||
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
|
@ -55,6 +58,15 @@ void socfpga_per_reset_all(void)
|
|||
|
||||
void socfpga_bridges_reset(int enable)
|
||||
{
|
||||
#if !defined(CONFIG_SPL_BUILD) && defined(CONFIG_SPL_ATF)
|
||||
u64 arg = enable;
|
||||
|
||||
int ret = invoke_smc(INTEL_SIP_SMC_HPS_SET_BRIDGES, &arg, 1, NULL, 0);
|
||||
if (ret) {
|
||||
printf("SMC call failed with error %d in %s.\n", ret, __func__);
|
||||
return;
|
||||
}
|
||||
#else
|
||||
u32 reg;
|
||||
|
||||
if (enable) {
|
||||
|
@ -101,6 +113,7 @@ void socfpga_bridges_reset(int enable)
|
|||
/* Disable NOC timeout */
|
||||
writel(0, socfpga_get_sysmgr_addr() + SYSMGR_SOC64_NOC_TIMEOUT);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
Loading…
Reference in a new issue