summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorJi Luo <ji.luo@nxp.com>2019-03-04 10:05:42 +0800
committerJi Luo <ji.luo@nxp.com>2019-03-04 15:54:56 +0800
commit31928168d048638dd66fded18cfaf8326f7dff10 (patch)
treefeb9598b4568d7264057965f256ed8c81b94760e /arch
parentfe41c5fa6af88cce7f5a9723c82d6ad4e61357ce (diff)
MA-14239 Check return values for SCFW APIs
Check the return values for SCFW APIs and print error logs if the return value is not "SC_ERR_NONE". Test: boot on imx8qm. Change-Id: Ic7008bd2656375875e77dd3c922dafb1be145357 Signed-off-by: Ji Luo <ji.luo@nxp.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-imx/imx8/ahab.c3
-rw-r--r--arch/arm/mach-imx/imx8/clock.c19
-rw-r--r--arch/arm/mach-imx/imx8/cpu.c8
-rw-r--r--arch/arm/mach-imx/imx8/parser.c7
4 files changed, 26 insertions, 11 deletions
diff --git a/arch/arm/mach-imx/imx8/ahab.c b/arch/arm/mach-imx/imx8/ahab.c
index 1f8d3e4603..df50862e9b 100644
--- a/arch/arm/mach-imx/imx8/ahab.c
+++ b/arch/arm/mach-imx/imx8/ahab.c
@@ -131,7 +131,8 @@ int authenticate_os_container(ulong addr)
}
exit:
- sc_seco_authenticate(ipcHndl, SC_MISC_REL_CONTAINER, 0);
+ if (sc_seco_authenticate(ipcHndl, SC_MISC_REL_CONTAINER, 0) != SC_ERR_NONE)
+ printf("Error: release container failed!\n");
return ret;
}
diff --git a/arch/arm/mach-imx/imx8/clock.c b/arch/arm/mach-imx/imx8/clock.c
index 98e06513d3..55c4aefd98 100644
--- a/arch/arm/mach-imx/imx8/clock.c
+++ b/arch/arm/mach-imx/imx8/clock.c
@@ -425,12 +425,19 @@ void init_clk_fec(int index)
}
/* Configure GPR regisers */
- sc_misc_set_control(ipc, enet[index], SC_C_TXCLK, 0);
- sc_misc_set_control(ipc, enet[index], SC_C_CLKDIV, 1); /* Enable divclk */
- sc_misc_set_control(ipc, enet[index], SC_C_DISABLE_50, 1);
- sc_misc_set_control(ipc, enet[index], SC_C_DISABLE_125, 1);
- sc_misc_set_control(ipc, enet[index], SC_C_SEL_125, 0);
- sc_misc_set_control(ipc, enet[index], SC_C_IPG_STOP, 0);
+ if (sc_misc_set_control(ipc, enet[index], SC_C_TXCLK, 0) != SC_ERR_NONE)
+ printf("\nConfigure GPR registers operation(%d) failed!\n", SC_C_TXCLK);
+ /* Enable divclk */
+ if (sc_misc_set_control(ipc, enet[index], SC_C_CLKDIV, 1) != SC_ERR_NONE)
+ printf("\nConfigure GPR registers operation(%d) failed!\n", SC_C_CLKDIV);
+ if (sc_misc_set_control(ipc, enet[index], SC_C_DISABLE_50, 1) != SC_ERR_NONE)
+ printf("\nConfigure GPR registers operation(%d) failed!\n", SC_C_DISABLE_50);
+ if (sc_misc_set_control(ipc, enet[index], SC_C_DISABLE_125, 1) != SC_ERR_NONE)
+ printf("\nConfigure GPR registers operation(%d) failed!\n", SC_C_DISABLE_125);
+ if (sc_misc_set_control(ipc, enet[index], SC_C_SEL_125, 0) != SC_ERR_NONE)
+ printf("\nConfigure GPR registers operation(%d) failed!\n", SC_C_SEL_125);
+ if (sc_misc_set_control(ipc, enet[index], SC_C_IPG_STOP, 0) != SC_ERR_NONE)
+ printf("\nConfigure GPR registers operation(%d) failed!\n", SC_C_IPG_STOP);
LPCG_AllClockOn(ENET_0_LPCG + index * 0x10000);
}
diff --git a/arch/arm/mach-imx/imx8/cpu.c b/arch/arm/mach-imx/imx8/cpu.c
index 7ff42b4cb5..1f7b955e6b 100644
--- a/arch/arm/mach-imx/imx8/cpu.c
+++ b/arch/arm/mach-imx/imx8/cpu.c
@@ -191,8 +191,12 @@ int arch_cpu_init(void)
* assigned to seco for imx8, use JR3 instead.
*/
#if defined(CONFIG_SPL_BUILD) && defined(CONFIG_DUAL_BOOTLOADER)
- sc_pm_set_resource_power_mode(ipcHndl, SC_R_CAAM_JR3, SC_PM_PW_MODE_ON);
- sc_pm_set_resource_power_mode(ipcHndl, SC_R_CAAM_JR3_OUT, SC_PM_PW_MODE_ON);
+ if (sc_pm_set_resource_power_mode(ipcHndl,
+ SC_R_CAAM_JR3, SC_PM_PW_MODE_ON) != SC_ERR_NONE)
+ return -EPERM;
+ if (sc_pm_set_resource_power_mode(ipcHndl,
+ SC_R_CAAM_JR3_OUT, SC_PM_PW_MODE_ON) != SC_ERR_NONE)
+ return -EPERM;
#endif
if (IS_ENABLED(CONFIG_XEN))
diff --git a/arch/arm/mach-imx/imx8/parser.c b/arch/arm/mach-imx/imx8/parser.c
index 9021c80357..0a437929aa 100644
--- a/arch/arm/mach-imx/imx8/parser.c
+++ b/arch/arm/mach-imx/imx8/parser.c
@@ -239,7 +239,9 @@ static int read_auth_container(struct spl_image_info *spl_image)
if (!image) {
ret = -EINVAL;
- sc_seco_authenticate(ipcHndl, SC_MISC_REL_CONTAINER, 0);
+ if (sc_seco_authenticate(ipcHndl, SC_MISC_REL_CONTAINER, 0) != SC_ERR_NONE)
+ printf("Error: release container failed!\n");
+
goto out;
}
@@ -249,7 +251,8 @@ static int read_auth_container(struct spl_image_info *spl_image)
}
}
- sc_seco_authenticate(ipcHndl, SC_MISC_REL_CONTAINER, 0);
+ if (sc_seco_authenticate(ipcHndl, SC_MISC_REL_CONTAINER, 0) != SC_ERR_NONE)
+ printf("Error: release container failed!\n");
#if defined(CONFIG_SPL_BUILD) && defined(CONFIG_DUAL_BOOTLOADER)
/* Everything checks out, get the sw_version now. */