imx: update SCFW APIs

Update SCFW APIs to SCFW commit:
e7a99eb96207 ("SCF-351: Add API to change boot parms.")

Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
(cherry picked from commit 22a97387c5450c14c9fb61b0a3ed184c06679694)
diff --git a/plat/imx/common/include/sci/sci_rpc.h b/plat/imx/common/include/sci/sci_rpc.h
index 091edd5..8be1bfc 100644
--- a/plat/imx/common/include/sci/sci_rpc.h
+++ b/plat/imx/common/include/sci/sci_rpc.h
@@ -21,7 +21,7 @@
 /* Defines */
 
 #define SCFW_API_VERSION_MAJOR  1U
-#define SCFW_API_VERSION_MINOR  2U
+#define SCFW_API_VERSION_MINOR  3U
 
 #define SC_RPC_VERSION          1U
 
diff --git a/plat/imx/common/include/sci/svc/pm/sci_pm_api.h b/plat/imx/common/include/sci/svc/pm/sci_pm_api.h
index 4781629..47f64ba 100644
--- a/plat/imx/common/include/sci/svc/pm/sci_pm_api.h
+++ b/plat/imx/common/include/sci/svc/pm/sci_pm_api.h
@@ -653,6 +653,28 @@
 	sc_rsrc_t resource_mu, sc_rsrc_t resource_dev);
 
 /*!
+ * This function is used to change the boot parameters for a partition.
+ *
+ * @param[in]     ipc          IPC handle
+ * @param[in]     resource_cpu ID of the CPU resource to start
+ * @param[in]     boot_addr    64-bit boot address
+ * @param[in]     resource_mu  ID of the MU that must be powered (0=none)
+ * @param[in]     resource_dev ID of the boot device that must be powered (0=none)
+ *
+ * @return Returns an error code (SC_ERR_NONE = success).
+ *
+ * Return errors:
+ * - SC_ERR_PARM if invalid resource, or addr
+ *
+ * This function can be used to change the boot parameters for a partition.
+ * This can be useful if a partitions reboots differently from the initial
+ * boot done via sc_pm_boot() or via ROM.
+ */
+sc_err_t sc_pm_set_boot_parm(sc_ipc_t ipc,
+    sc_rsrc_t resource_cpu, sc_faddr_t boot_addr,
+    sc_rsrc_t resource_mu, sc_rsrc_t resource_dev);
+
+/*!
  * This function is used to reboot the caller's partition.
  *
  * @param[in]     ipc         IPC handle
diff --git a/plat/imx/common/sci/svc/pm/pm_rpc_clnt.c b/plat/imx/common/sci/svc/pm/pm_rpc_clnt.c
index 9ef1c73..9ada896 100644
--- a/plat/imx/common/sci/svc/pm/pm_rpc_clnt.c
+++ b/plat/imx/common/sci/svc/pm/pm_rpc_clnt.c
@@ -431,6 +431,29 @@
 	return (sc_err_t)result;
 }
 
+sc_err_t sc_pm_set_boot_parm(sc_ipc_t ipc,
+    sc_rsrc_t resource_cpu, sc_faddr_t boot_addr,
+    sc_rsrc_t resource_mu, sc_rsrc_t resource_dev)
+{
+    sc_rpc_msg_t msg;
+    uint8_t result;
+
+    RPC_VER(&msg) = SC_RPC_VERSION;
+    RPC_SVC(&msg) = U8(SC_RPC_SVC_PM);
+    RPC_FUNC(&msg) = U8(PM_FUNC_SET_BOOT_PARM);
+    RPC_U32(&msg, 0U) = U32(boot_addr >> 32ULL);
+    RPC_U32(&msg, 4U) = U32(boot_addr);
+    RPC_U16(&msg, 8U) = U16(resource_cpu);
+    RPC_U16(&msg, 10U) = U16(resource_mu);
+    RPC_U16(&msg, 12U) = U16(resource_dev);
+    RPC_SIZE(&msg) = 5U;
+
+    sc_call_rpc(ipc, &msg, SC_FALSE);
+
+    result = RPC_R8(&msg);
+    return (sc_err_t) result;
+}
+
 void sc_pm_reboot(sc_ipc_t ipc, sc_pm_reset_type_t type)
 {
 	sc_rpc_msg_t msg;
diff --git a/plat/imx/common/sci/svc/pm/sci_pm_rpc.h b/plat/imx/common/sci/svc/pm/sci_pm_rpc.h
index a03e30e..e74abfc 100644
--- a/plat/imx/common/sci/svc/pm/sci_pm_rpc.h
+++ b/plat/imx/common/sci/svc/pm/sci_pm_rpc.h
@@ -44,6 +44,7 @@
 #define PM_FUNC_RESET_REASON 10U /* Index for pm_reset_reason() RPC call */
 #define PM_FUNC_GET_RESET_PART 26U /* Index for pm_get_reset_part() RPC call */
 #define PM_FUNC_BOOT 8U /* Index for pm_boot() RPC call */
+#define PM_FUNC_SET_BOOT_PARM 27U /* Index for pm_set_boot_parm() RPC call */
 #define PM_FUNC_REBOOT 9U /* Index for pm_reboot() RPC call */
 #define PM_FUNC_REBOOT_PARTITION 12U /* Index for pm_reboot_partition() RPC call */
 #define PM_FUNC_REBOOT_CONTINUE 25U /* Index for pm_reboot_continue() RPC call */