Merge pull request #1514 from glneo/for-upstream-psci

K3 PSCI Support
diff --git a/include/plat/marvell/a8k/common/plat_marvell.h b/include/plat/marvell/a8k/common/plat_marvell.h
index aad5da7..81cbf38 100644
--- a/include/plat/marvell/a8k/common/plat_marvell.h
+++ b/include/plat/marvell/a8k/common/plat_marvell.h
@@ -67,8 +67,10 @@
 uint32_t marvell_get_spsr_for_bl33_entry(void);
 
 /* BL31 utility functions */
-void marvell_bl31_early_platform_setup(bl31_params_t *from_bl2,
-				void *plat_params_from_bl2);
+void marvell_bl31_early_platform_setup(struct bl31_params *from_bl2,
+				       uintptr_t soc_fw_config,
+				       uintptr_t hw_config,
+				       void *plat_params_from_bl2);
 void marvell_bl31_platform_setup(void);
 void marvell_bl31_plat_runtime_setup(void);
 void marvell_bl31_plat_arch_setup(void);
diff --git a/lib/cpus/aarch64/dsu_helpers.S b/lib/cpus/aarch64/dsu_helpers.S
index 293ed24..152a3da 100644
--- a/lib/cpus/aarch64/dsu_helpers.S
+++ b/lib/cpus/aarch64/dsu_helpers.S
@@ -8,15 +8,19 @@
 #include <dsu_def.h>
 #include <errata_report.h>
 
-/*
- * DSU erratum 936184
- * Check the DSU variant, revision and configuration to determine if the
- * erratum applies. This erratum was fixed in r2p0.
+/* -----------------------------------------------------------------------
+ * DSU erratum 936184 check function
+ * Checks the DSU variant, revision and configuration to determine if
+ * the erratum applies. Erratum applies if ACP interface is present
+ * in the DSU and revision-variant < r2p0.
+ *
+ * The erratum was fixed in r2p0.
  *
  * This function is called from both assembly and C environment. So it
  * follows AAPCS.
  *
  * Clobbers: x0-x3
+ * -----------------------------------------------------------------------
  */
 	.globl	check_errata_dsu_936184
 	.globl	errata_dsu_936184_wa
@@ -25,7 +29,7 @@
 	mov	x2, #ERRATA_NOT_APPLIES
 	mov	x3, #ERRATA_APPLIES
 
-	/* Erratum applies only if ACP interface is present in DSU */
+	/* Erratum applies only if DSU has the ACP interface */
 	mov	x0, x2
 	mrs	x1, CLUSTERCFR_EL1
 	ubfx	x1, x1, #CLUSTERCFR_ACP_SHIFT, #1
@@ -44,8 +48,14 @@
 	ret
 endfunc check_errata_dsu_936184
 
+/* --------------------------------------------------
+ * Errata Workaround for DSU erratum #936184.
+ *
+ * Can clobber only: x0-x17
+ * --------------------------------------------------
+ */
 func errata_dsu_936184_wa
-	mov	x20, x30
+	mov	x17, x30
 	bl	check_errata_dsu_936184
 	cbz	x0, 1f
 
@@ -56,5 +66,5 @@
 	msr	CLUSTERACTLR_EL1, x0
 	isb
 1:
-	ret	x20
+	ret	x17
 endfunc errata_dsu_936184_wa
diff --git a/maintainers.rst b/maintainers.rst
index 1424f85..73a6527 100644
--- a/maintainers.rst
+++ b/maintainers.rst
@@ -128,7 +128,9 @@
 :M: Yann Gautier <yann.gautier@st.com>
 :G: `Yann-lms`_
 :F: docs/plat/stm32mp1.rst
+:F: drivers/st/
 :F: fdts/stm32\*
+:F: include/drivers/st/
 :F: include/dt-bindings/\*/stm32\*
 :F: plat/st/
 :F: tools/stm32image/
diff --git a/plat/arm/common/arm_dyn_cfg.c b/plat/arm/common/arm_dyn_cfg.c
index 118bd26..b9c73f0 100644
--- a/plat/arm/common/arm_dyn_cfg.c
+++ b/plat/arm/common/arm_dyn_cfg.c
@@ -110,7 +110,7 @@
 		return;
 	}
 
-	err = arm_dyn_tb_fw_cfg_init((void *)tb_fw_cfg_dtb, &tb_fw_node);
+	err = arm_dyn_tb_fw_cfg_init(tb_fw_cfg_dtb, &tb_fw_node);
 	if (err < 0) {
 		ERROR("Invalid TB_FW_CONFIG passed from BL1\n");
 		panic();
@@ -125,7 +125,7 @@
 			continue;
 		}
 
-		err = arm_dyn_get_config_load_info((void *)tb_fw_cfg_dtb, tb_fw_node,
+		err = arm_dyn_get_config_load_info(tb_fw_cfg_dtb, tb_fw_node,
 				config_ids[i], &image_base, &image_size);
 		if (err < 0) {
 			VERBOSE("Couldn't find config_id %d load info in TB_FW_CONFIG\n",
@@ -171,7 +171,7 @@
 #if TRUSTED_BOARD_BOOT && defined(DYN_DISABLE_AUTH)
 	uint32_t disable_auth = 0;
 
-	err = arm_dyn_get_disable_auth((void *)tb_fw_cfg_dtb, tb_fw_node,
+	err = arm_dyn_get_disable_auth(tb_fw_cfg_dtb, tb_fw_node,
 					&disable_auth);
 	if (err < 0)
 		return;
diff --git a/plat/marvell/common/marvell_bl31_setup.c b/plat/marvell/common/marvell_bl31_setup.c
index a74816b..f381876 100644
--- a/plat/marvell/common/marvell_bl31_setup.c
+++ b/plat/marvell/common/marvell_bl31_setup.c
@@ -35,7 +35,7 @@
 static entry_point_info_t bl33_image_ep_info;
 
 /* Weak definitions may be overridden in specific ARM standard platform */
-#pragma weak bl31_early_platform_setup
+#pragma weak bl31_early_platform_setup2
 #pragma weak bl31_platform_setup
 #pragma weak bl31_plat_arch_setup
 #pragma weak bl31_plat_get_next_image_ep_info
@@ -69,7 +69,9 @@
  *****************************************************************************
  */
 void marvell_bl31_early_platform_setup(bl31_params_t *from_bl2,
-				void *plat_params_from_bl2)
+				       uintptr_t soc_fw_config,
+				       uintptr_t hw_config,
+				       void *plat_params_from_bl2)
 {
 	/* Initialize the console to provide early debug support */
 	console_init(PLAT_MARVELL_BOOT_UART_BASE,
@@ -130,10 +132,12 @@
 #endif
 }
 
-void bl31_early_platform_setup(bl31_params_t *from_bl2,
-				void *plat_params_from_bl2)
+void bl31_early_platform_setup2(u_register_t arg0, u_register_t arg1,
+				u_register_t arg2, u_register_t arg3)
+
 {
-	marvell_bl31_early_platform_setup(from_bl2, plat_params_from_bl2);
+	marvell_bl31_early_platform_setup((void *)arg0, arg1, arg2,
+					  (void *)arg3);
 
 #ifdef USE_CCI
 	/*