diff --git a/plat/imx/common/include/sci/sci_rpc.h b/plat/imx/common/include/sci/sci_rpc.h
index f218def..091edd5 100644
--- a/plat/imx/common/include/sci/sci_rpc.h
+++ b/plat/imx/common/include/sci/sci_rpc.h
@@ -20,6 +20,9 @@
 
 /* Defines */
 
+#define SCFW_API_VERSION_MAJOR  1U
+#define SCFW_API_VERSION_MINOR  2U
+
 #define SC_RPC_VERSION          1U
 
 #define SC_RPC_MAX_MSG          8U
diff --git a/plat/imx/common/include/sci/sci_types.h b/plat/imx/common/include/sci/sci_types.h
index 96501d9..f983b73 100644
--- a/plat/imx/common/include/sci/sci_types.h
+++ b/plat/imx/common/include/sci/sci_types.h
@@ -19,6 +19,8 @@
 
 /* Defines */
 
+#define SCFW_API_VERSION            100U
+
 /*!
  * @name Defines for common frequencies
  */
@@ -203,15 +205,15 @@
 #define SC_R_DC_0_BLIT1           20U
 #define SC_R_DC_0_BLIT2           21U
 #define SC_R_DC_0_BLIT_OUT        22U
-#define SC_R_DC_0_CAPTURE0        23U
-#define SC_R_DC_0_CAPTURE1        24U
+#define SC_R_PERF                 23U
+#define SC_R_UNUSED5              24U
 #define SC_R_DC_0_WARP            25U
-#define SC_R_DC_0_INTEGRAL0       26U
-#define SC_R_DC_0_INTEGRAL1       27U
+#define SC_R_UNUSED7              26U
+#define SC_R_UNUSED8              27U
 #define SC_R_DC_0_VIDEO0          28U
 #define SC_R_DC_0_VIDEO1          29U
 #define SC_R_DC_0_FRAC0           30U
-#define SC_R_DC_0_FRAC1           31U
+#define SC_R_UNUSED6              31U
 #define SC_R_DC_0                 32U
 #define SC_R_GPU_2_PID0           33U
 #define SC_R_DC_0_PLL_0           34U
@@ -220,17 +222,17 @@
 #define SC_R_DC_1_BLIT1           37U
 #define SC_R_DC_1_BLIT2           38U
 #define SC_R_DC_1_BLIT_OUT        39U
-#define SC_R_DC_1_CAPTURE0        40U
-#define SC_R_DC_1_CAPTURE1        41U
+#define SC_R_UNUSED9              40U
+#define SC_R_UNUSED10             41U
 #define SC_R_DC_1_WARP            42U
-#define SC_R_DC_1_INTEGRAL0       43U
-#define SC_R_DC_1_INTEGRAL1       44U
+#define SC_R_UNUSED11             43U
+#define SC_R_UNUSED12             44U
 #define SC_R_DC_1_VIDEO0          45U
 #define SC_R_DC_1_VIDEO1          46U
 #define SC_R_DC_1_FRAC0           47U
-#define SC_R_DC_1_FRAC1           48U
+#define SC_R_UNUSED13             48U
 #define SC_R_DC_1                 49U
-#define SC_R_GPU_3_PID0           50U
+#define SC_R_UNUSED14             50U
 #define SC_R_DC_1_PLL_0           51U
 #define SC_R_DC_1_PLL_1           52U
 #define SC_R_SPI_0                53U
@@ -470,8 +472,8 @@
 #define SC_R_M4_0_UART            287U
 #define SC_R_M4_0_I2C             288U
 #define SC_R_M4_0_INTMUX          289U
-#define SC_R_M4_0_SIM             290U
-#define SC_R_M4_0_WDOG            291U
+#define SC_R_UNUSED15             290U
+#define SC_R_UNUSED16             291U
 #define SC_R_M4_0_MU_0B           292U
 #define SC_R_M4_0_MU_0A0          293U
 #define SC_R_M4_0_MU_0A1          294U
@@ -490,8 +492,8 @@
 #define SC_R_M4_1_UART            307U
 #define SC_R_M4_1_I2C             308U
 #define SC_R_M4_1_INTMUX          309U
-#define SC_R_M4_1_SIM             310U
-#define SC_R_M4_1_WDOG            311U
+#define SC_R_UNUSED17             310U
+#define SC_R_UNUSED18             311U
 #define SC_R_M4_1_MU_0B           312U
 #define SC_R_M4_1_MU_0A0          313U
 #define SC_R_M4_1_MU_0A1          314U
@@ -726,8 +728,7 @@
 #define SC_R_DMA_5_CH2            543U
 #define SC_R_DMA_5_CH3            544U
 #define SC_R_ATTESTATION          545U
-#define SC_R_PERF                 546U
-#define SC_R_LAST                 547U
+#define SC_R_LAST                 546U
 #define SC_R_ALL                  ((sc_rsrc_t) UINT16_MAX)  /* All resources */
 /*@}*/
 
diff --git a/plat/imx/common/include/sci/svc/irq/sci_irq_api.h b/plat/imx/common/include/sci/svc/irq/sci_irq_api.h
index 49c75e0..e087463 100644
--- a/plat/imx/common/include/sci/svc/irq/sci_irq_api.h
+++ b/plat/imx/common/include/sci/svc/irq/sci_irq_api.h
@@ -90,6 +90,7 @@
 #define SC_IRQ_PAD               (1U << 1U)    /* Pad wakeup */
 #define SC_IRQ_USR1              (1U << 2U)    /* User defined 1 */
 #define SC_IRQ_USR2              (1U << 3U)    /* User defined 2 */
+#define SC_IRQ_BC_PAD            (1U << 4U)    /* Pad wakeup (broadcast to all partitions) */
 /*@}*/
 
 /*!
diff --git a/plat/imx/common/include/sci/svc/misc/sci_misc_api.h b/plat/imx/common/include/sci/svc/misc/sci_misc_api.h
index f4f7585..4976be7 100755
--- a/plat/imx/common/include/sci/svc/misc/sci_misc_api.h
+++ b/plat/imx/common/include/sci/svc/misc/sci_misc_api.h
@@ -319,6 +319,23 @@
 	uint32_t *commit);
 
 /*!
+ * This function is used to return the SCFW API versions.
+ *
+ * @param[in]     ipc         IPC handle
+ * @param[out]    cl_maj      pointer to return major part of client version
+ * @param[out]    cl_min      pointer to return minor part of client version
+ * @param[out]    sv_maj      pointer to return major part of SCFW version
+ * @param[out]    sv_min      pointer to return minor part of SCFW version
+ *
+ * Client verion is the version of the API ported to and used by the caller.
+ * SCFW version is the version of the SCFW binary running on the CPU.
+ *
+ * Note a major version difference indicates a break in compatibility.
+ */
+void sc_misc_api_ver(sc_ipc_t ipc, uint16_t *cl_maj,
+    uint16_t *cl_min, uint16_t *sv_maj, uint16_t *sv_min);
+
+/*!
  * This function is used to return the device's unique ID.
  *
  * @param[in]     ipc         IPC handle
diff --git a/plat/imx/common/sci/svc/misc/misc_rpc_clnt.c b/plat/imx/common/sci/svc/misc/misc_rpc_clnt.c
index 2f22ad3..ea3f46b 100644
--- a/plat/imx/common/sci/svc/misc/misc_rpc_clnt.c
+++ b/plat/imx/common/sci/svc/misc/misc_rpc_clnt.c
@@ -432,6 +432,31 @@
 	return;
 }
 
+void sc_misc_api_ver(sc_ipc_t ipc, uint16_t *cl_maj,
+    uint16_t *cl_min, uint16_t *sv_maj, uint16_t *sv_min)
+{
+    sc_rpc_msg_t msg;
+
+    RPC_VER(&msg) = SC_RPC_VERSION;
+    RPC_SVC(&msg) = U8(SC_RPC_SVC_MISC);
+    RPC_FUNC(&msg) = U8(MISC_FUNC_API_VER);
+    RPC_SIZE(&msg) = 1U;
+
+    sc_call_rpc(ipc, &msg, SC_FALSE);
+
+    if (cl_maj != NULL)
+        *cl_maj = SCFW_API_VERSION_MAJOR;
+
+    if (cl_min != NULL)
+        *cl_min = SCFW_API_VERSION_MINOR;
+
+    if (sv_maj != NULL)
+        *sv_maj = RPC_U16(&msg, 4U);
+
+    if (sv_min != NULL)
+        *sv_min = RPC_U16(&msg, 6U);
+}
+
 void sc_misc_unique_id(sc_ipc_t ipc, uint32_t *id_l,
 	uint32_t *id_h)
 {
diff --git a/plat/imx/common/sci/svc/misc/sci_misc_rpc.h b/plat/imx/common/sci/svc/misc/sci_misc_rpc.h
index 7288435..38a9e57 100644
--- a/plat/imx/common/sci/svc/misc/sci_misc_rpc.h
+++ b/plat/imx/common/sci/svc/misc/sci_misc_rpc.h
@@ -45,6 +45,7 @@
 #define MISC_FUNC_DEBUG_OUT 10U /* Index for misc_debug_out() RPC call */
 #define MISC_FUNC_WAVEFORM_CAPTURE 6U /* Index for misc_waveform_capture() RPC call */
 #define MISC_FUNC_BUILD_INFO 15U /* Index for misc_build_info() RPC call */
+#define MISC_FUNC_API_VER 35U /* Index for misc_api_ver() RPC call */
 #define MISC_FUNC_UNIQUE_ID 19U /* Index for misc_unique_id() RPC call */
 #define MISC_FUNC_SET_ARI 3U /* Index for misc_set_ari() RPC call */
 #define MISC_FUNC_BOOT_STATUS 7U /* Index for misc_boot_status() RPC call */
