Merge changes from topic "rk3399q7" into integration

* changes:
  rockchip: Allow console device to be set by DTB.
  rockchip: Add params_setup to RK3328.
  rockchip: Streamline and complete UARTn_BASE macros.
diff --git a/docs/user-guide.rst b/docs/user-guide.rst
index b9f0871..01cf17a 100644
--- a/docs/user-guide.rst
+++ b/docs/user-guide.rst
@@ -460,12 +460,12 @@
    architecture is AArch32.
 
 -  ``ENABLE_STACK_PROTECTOR``: String option to enable the stack protection
-   checks in GCC. Allowed values are "all", "strong" and "0" (default).
-   "strong" is the recommended stack protection level if this feature is
-   desired. 0 disables the stack protection. For all values other than 0, the
-   ``plat_get_stack_protector_canary()`` platform hook needs to be implemented.
-   The value is passed as the last component of the option
-   ``-fstack-protector-$ENABLE_STACK_PROTECTOR``.
+   checks in GCC. Allowed values are "all", "strong", "default" and "none". The
+   default value is set to "none". "strong" is the recommended stack protection
+   level if this feature is desired. "none" disables the stack protection. For
+   all values other than "none", the ``plat_get_stack_protector_canary()``
+   platform hook needs to be implemented. The value is passed as the last
+   component of the option ``-fstack-protector-$ENABLE_STACK_PROTECTOR``.
 
 -  ``ERROR_DEPRECATED``: This option decides whether to treat the usage of
    deprecated platform APIs, helper functions or drivers within Trusted
diff --git a/lib/stack_protector/stack_protector.mk b/lib/stack_protector/stack_protector.mk
index 0f0d90f..94e804b 100644
--- a/lib/stack_protector/stack_protector.mk
+++ b/lib/stack_protector/stack_protector.mk
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2017, ARM Limited and Contributors. All rights reserved.
+# Copyright (c) 2017-2019, ARM Limited and Contributors. All rights reserved.
 #
 # SPDX-License-Identifier: BSD-3-Clause
 #
@@ -7,13 +7,20 @@
 # Boolean macro to be used in C code
 STACK_PROTECTOR_ENABLED := 0
 
-ifneq (${ENABLE_STACK_PROTECTOR},0)
-STACK_PROTECTOR_ENABLED := 1
-BL_COMMON_SOURCES	+=	lib/stack_protector/stack_protector.c			\
+ifeq (${ENABLE_STACK_PROTECTOR},0)
+  ENABLE_STACK_PROTECTOR := none
+endif
+
+ifneq (${ENABLE_STACK_PROTECTOR},none)
+  STACK_PROTECTOR_ENABLED := 1
+  BL_COMMON_SOURCES	+=	lib/stack_protector/stack_protector.c	\
 				lib/stack_protector/${ARCH}/asm_stack_protector.S
 
-TF_CFLAGS		+=	-fstack-protector-${ENABLE_STACK_PROTECTOR}
+  ifeq (${ENABLE_STACK_PROTECTOR},default)
+    TF_CFLAGS		+=	-fstack-protector
+  else
+    TF_CFLAGS		+=	-fstack-protector-${ENABLE_STACK_PROTECTOR}
+  endif
 endif
 
 $(eval $(call add_define,STACK_PROTECTOR_ENABLED))
-
diff --git a/plat/arm/board/juno/tsp/tsp-juno.mk b/plat/arm/board/juno/tsp/tsp-juno.mk
index 52461cf..be75c4d 100644
--- a/plat/arm/board/juno/tsp/tsp-juno.mk
+++ b/plat/arm/board/juno/tsp/tsp-juno.mk
@@ -1,11 +1,12 @@
 #
-# Copyright (c) 2014-2016, ARM Limited and Contributors. All rights reserved.
+# Copyright (c) 2014-2019, ARM Limited and Contributors. All rights reserved.
 #
 # SPDX-License-Identifier: BSD-3-Clause
 #
 
 BL32_SOURCES		+=	plat/arm/board/juno/juno_topology.c	\
 				plat/arm/css/common/css_topology.c	\
-				${JUNO_GIC_SOURCES}
+				${JUNO_GIC_SOURCES}			\
+				${JUNO_SECURITY_SOURCES}
 
 include plat/arm/common/tsp/arm_tsp.mk
diff --git a/plat/ti/k3/board/generic/include/board_def.h b/plat/ti/k3/board/generic/include/board_def.h
index 4c8f882..490b975 100644
--- a/plat/ti/k3/board/generic/include/board_def.h
+++ b/plat/ti/k3/board/generic/include/board_def.h
@@ -11,16 +11,9 @@
 
 /* The ports must be in order and contiguous */
 #define K3_CLUSTER0_CORE_COUNT		2
-#define K3_CLUSTER0_MSMC_PORT		0
-
 #define K3_CLUSTER1_CORE_COUNT		2
-#define K3_CLUSTER1_MSMC_PORT		1
-
 #define K3_CLUSTER2_CORE_COUNT		2
-#define K3_CLUSTER2_MSMC_PORT		2
-
 #define K3_CLUSTER3_CORE_COUNT		2
-#define K3_CLUSTER3_MSMC_PORT		3
 
 /*
  * This RAM will be used for the bootloader including code, bss, and stacks.
diff --git a/plat/ti/k3/common/k3_helpers.S b/plat/ti/k3/common/k3_helpers.S
index 3dfdda4..1ab1af5 100644
--- a/plat/ti/k3/common/k3_helpers.S
+++ b/plat/ti/k3/common/k3_helpers.S
@@ -73,21 +73,17 @@
 	lsr	x1, x1, #MPIDR_AFF1_SHIFT
 	and	x0, x0, #MPIDR_CPU_MASK
 
-#if K3_CLUSTER1_MSMC_PORT != UNUSED
-	cmp	x1, #K3_CLUSTER0_MSMC_PORT
+	cmp	x1, 0
 	b.eq out
 	add	x0, x0, #K3_CLUSTER0_CORE_COUNT
-#if K3_CLUSTER2_MSMC_PORT != UNUSED
-	cmp	x1, #K3_CLUSTER1_MSMC_PORT
+
+	cmp	x1, 1
 	b.eq out
 	add	x0, x0, #K3_CLUSTER1_CORE_COUNT
-#if K3_CLUSTER3_MSMC_PORT != UNUSED
-	cmp	x1, #K3_CLUSTER2_MSMC_PORT
+
+	cmp	x1, 2
 	b.eq out
 	add	x0, x0, #K3_CLUSTER2_CORE_COUNT
-#endif /* K3_CLUSTER3_MSMC_PORT != UNUSED */
-#endif /* K3_CLUSTER2_MSMC_PORT != UNUSED */
-#endif /* K3_CLUSTER1_MSMC_PORT != UNUSED */
 
 out:
 	ret
diff --git a/plat/ti/k3/common/k3_topology.c b/plat/ti/k3/common/k3_topology.c
index 2b98acb..139f1fd 100644
--- a/plat/ti/k3/common/k3_topology.c
+++ b/plat/ti/k3/common/k3_topology.c
@@ -13,15 +13,9 @@
 	PLATFORM_SYSTEM_COUNT,
 	PLATFORM_CLUSTER_COUNT,
 	K3_CLUSTER0_CORE_COUNT,
-#if K3_CLUSTER1_MSMC_PORT != UNUSED
 	K3_CLUSTER1_CORE_COUNT,
-#endif /* K3_CLUSTER1_MSMC_PORT != UNUSED */
-#if K3_CLUSTER2_MSMC_PORT != UNUSED
 	K3_CLUSTER2_CORE_COUNT,
-#endif /* K3_CLUSTER2_MSMC_PORT != UNUSED */
-#if K3_CLUSTER3_MSMC_PORT != UNUSED
 	K3_CLUSTER3_CORE_COUNT,
-#endif /* K3_CLUSTER3_MSMC_PORT != UNUSED */
 };
 
 const unsigned char *plat_get_power_domain_tree_desc(void)
@@ -31,42 +25,22 @@
 
 int plat_core_pos_by_mpidr(u_register_t mpidr)
 {
-	unsigned int cpu_id;
+	unsigned int cluster = MPIDR_AFFLVL1_VAL(mpidr);
+	unsigned int core = MPIDR_AFFLVL0_VAL(mpidr);
 
-	mpidr &= MPIDR_AFFINITY_MASK;
-
-	if (mpidr & ~(MPIDR_CLUSTER_MASK | MPIDR_CPU_MASK))
+	if (MPIDR_AFFLVL3_VAL(mpidr) > 0 ||
+	    MPIDR_AFFLVL2_VAL(mpidr) > 0) {
 		return -1;
-
-	cpu_id = MPIDR_AFFLVL0_VAL(mpidr);
+	}
 
-	switch (MPIDR_AFFLVL1_VAL(mpidr)) {
-	case K3_CLUSTER0_MSMC_PORT:
-		if (cpu_id < K3_CLUSTER0_CORE_COUNT)
-			return cpu_id;
+	if (cluster > 0)
+		core += K3_CLUSTER0_CORE_COUNT;
+	if (cluster > 1)
+		core += K3_CLUSTER1_CORE_COUNT;
+	if (cluster > 2)
+		core += K3_CLUSTER2_CORE_COUNT;
+	if (cluster > 3)
 		return -1;
-#if K3_CLUSTER1_MSMC_PORT != UNUSED
-	case K3_CLUSTER1_MSMC_PORT:
-		if (cpu_id < K3_CLUSTER1_CORE_COUNT)
-			return K3_CLUSTER0_CORE_COUNT + cpu_id;
-		return -1;
-#endif /* K3_CLUSTER1_MSMC_PORT != UNUSED */
-#if K3_CLUSTER2_MSMC_PORT != UNUSED
-	case K3_CLUSTER2_MSMC_PORT:
-		if (cpu_id < K3_CLUSTER2_CORE_COUNT)
-			return K3_CLUSTER0_CORE_COUNT +
-			       K3_CLUSTER1_CORE_COUNT + cpu_id;
-		return -1;
-#endif /* K3_CLUSTER2_MSMC_PORT != UNUSED */
-#if K3_CLUSTER3_MSMC_PORT != UNUSED
-	case K3_CLUSTER3_MSMC_PORT:
-		if (cpu_id < K3_CLUSTER3_CORE_COUNT)
-			return K3_CLUSTER0_CORE_COUNT +
-			       K3_CLUSTER1_CORE_COUNT +
-			       K3_CLUSTER2_CORE_COUNT + cpu_id;
-		return -1;
-#endif /* K3_CLUSTER3_MSMC_PORT != UNUSED */
-	default:
-		return -1;
-	}
+
+	return core;
 }
diff --git a/plat/ti/k3/include/platform_def.h b/plat/ti/k3/include/platform_def.h
index 68fdae7..690c68e 100644
--- a/plat/ti/k3/include/platform_def.h
+++ b/plat/ti/k3/include/platform_def.h
@@ -29,39 +29,10 @@
 					K3_CLUSTER2_CORE_COUNT + \
 					K3_CLUSTER3_CORE_COUNT)
 
-#define PLATFORM_CLUSTER_COUNT		((K3_CLUSTER0_MSMC_PORT != UNUSED) + \
-					(K3_CLUSTER1_MSMC_PORT != UNUSED) + \
-					(K3_CLUSTER2_MSMC_PORT != UNUSED) + \
-					(K3_CLUSTER3_MSMC_PORT != UNUSED))
-
-#define UNUSED				-1
-
-#if !defined(K3_CLUSTER1_CORE_COUNT) || !defined(K3_CLUSTER1_MSMC_PORT)
-#define K3_CLUSTER1_CORE_COUNT		0
-#define K3_CLUSTER1_MSMC_PORT		UNUSED
-#endif
-
-#if !defined(K3_CLUSTER2_CORE_COUNT) || !defined(K3_CLUSTER2_MSMC_PORT)
-#define K3_CLUSTER2_CORE_COUNT		0
-#define K3_CLUSTER2_MSMC_PORT		UNUSED
-#endif
-
-#if !defined(K3_CLUSTER3_CORE_COUNT) || !defined(K3_CLUSTER3_MSMC_PORT)
-#define K3_CLUSTER3_CORE_COUNT		0
-#define K3_CLUSTER3_MSMC_PORT		UNUSED
-#endif
-
-#if K3_CLUSTER0_MSMC_PORT == UNUSED
-#error "ARM cluster 0 must be used"
-#endif
-
-#if ((K3_CLUSTER1_MSMC_PORT == UNUSED) && (K3_CLUSTER1_CORE_COUNT != 0)) || \
-    ((K3_CLUSTER2_MSMC_PORT == UNUSED) && (K3_CLUSTER2_CORE_COUNT != 0)) || \
-    ((K3_CLUSTER3_MSMC_PORT == UNUSED) && (K3_CLUSTER3_CORE_COUNT != 0))
-#error "Unused ports must have 0 ARM cores"
-#endif
-
-#define PLATFORM_CLUSTER_OFFSET		K3_CLUSTER0_MSMC_PORT
+#define PLATFORM_CLUSTER_COUNT		((K3_CLUSTER0_CORE_COUNT != 0) + \
+					(K3_CLUSTER1_CORE_COUNT != 0) + \
+					(K3_CLUSTER2_CORE_COUNT != 0) + \
+					(K3_CLUSTER3_CORE_COUNT != 0))
 
 #define PLAT_NUM_PWR_DOMAINS		(PLATFORM_SYSTEM_COUNT + \
 					PLATFORM_CLUSTER_COUNT + \