Merge changes from topic "av/console-port" into integration

* changes:
  qemu: use new console interface in aarch32
  warp7: remove old console from makefile
  Remove MULTI_CONSOLE_API flag and references to it
  Console: removed legacy console API
diff --git a/Makefile b/Makefile
index d2e7b58..471cf59 100644
--- a/Makefile
+++ b/Makefile
@@ -647,7 +647,6 @@
 $(eval $(call assert_boolean,GICV2_G0_FOR_EL3))
 $(eval $(call assert_boolean,HANDLE_EA_EL3_FIRST))
 $(eval $(call assert_boolean,HW_ASSISTED_COHERENCY))
-$(eval $(call assert_boolean,MULTI_CONSOLE_API))
 $(eval $(call assert_boolean,NS_TIMER_SWITCH))
 $(eval $(call assert_boolean,OVERRIDE_LIBC))
 $(eval $(call assert_boolean,PL011_GENERIC_UART))
@@ -702,7 +701,6 @@
 $(eval $(call add_define,HANDLE_EA_EL3_FIRST))
 $(eval $(call add_define,HW_ASSISTED_COHERENCY))
 $(eval $(call add_define,LOG_LEVEL))
-$(eval $(call add_define,MULTI_CONSOLE_API))
 $(eval $(call add_define,NS_TIMER_SWITCH))
 $(eval $(call add_define,PL011_GENERIC_UART))
 $(eval $(call add_define,PLAT_${PLAT}))
diff --git a/drivers/arm/pl011/aarch32/pl011_console.S b/drivers/arm/pl011/aarch32/pl011_console.S
index a85a937..e1e346c 100644
--- a/drivers/arm/pl011/aarch32/pl011_console.S
+++ b/drivers/arm/pl011/aarch32/pl011_console.S
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016-2018, ARM Limited and Contributors. All rights reserved.
+ * Copyright (c) 2016-2019, ARM Limited and Contributors. All rights reserved.
  *
  * SPDX-License-Identifier: BSD-3-Clause
  */
@@ -9,14 +9,6 @@
 #include <console_macros.S>
 #include <drivers/arm/pl011.h>
 
-#if !MULTI_CONSOLE_API
-/*
- * Pull in generic functions to provide backwards compatibility for
- * platform makefiles
- */
-#include "../../../console/aarch32/console.S"
-#endif
-
 	/*
 	 * "core" functions are low-level implementations that don't require
 	 * writeable memory and are thus safe to call in BL1 crash context.
@@ -94,7 +86,6 @@
 	bx	lr
 endfunc console_pl011_core_init
 
-#if MULTI_CONSOLE_API
 	.globl console_pl011_register
 
 	/* -------------------------------------------------------
@@ -130,16 +121,6 @@
 register_fail:
 	pop	{r4, pc}
 endfunc console_pl011_register
-#else
-	.globl console_core_init
-	.globl console_core_putc
-	.globl console_core_getc
-	.globl console_core_flush
-	.equ console_core_init, console_pl011_core_init
-	.equ console_core_putc, console_pl011_core_putc
-	.equ console_core_getc, console_pl011_core_getc
-	.equ console_core_flush, console_pl011_core_flush
-#endif
 
 	/* --------------------------------------------------------
 	 * int console_core_putc(int c, uintptr_t base_addr)
diff --git a/drivers/arm/pl011/aarch64/pl011_console.S b/drivers/arm/pl011/aarch64/pl011_console.S
index 52f2503..04de99f 100644
--- a/drivers/arm/pl011/aarch64/pl011_console.S
+++ b/drivers/arm/pl011/aarch64/pl011_console.S
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2017, ARM Limited and Contributors. All rights reserved.
+ * Copyright (c) 2013-2019, ARM Limited and Contributors. All rights reserved.
  *
  * SPDX-License-Identifier: BSD-3-Clause
  */
@@ -9,14 +9,6 @@
 #include <console_macros.S>
 #include <drivers/arm/pl011.h>
 
-#if !MULTI_CONSOLE_API
-/*
- * Pull in generic functions to provide backwards compatibility for
- * platform makefiles
- */
-#include "../../../console/aarch64/console.S"
-#endif
-
 	/*
 	 * "core" functions are low-level implementations that don't require
 	 * writable memory and are thus safe to call in BL1 crash context.
@@ -83,7 +75,6 @@
 	ret
 endfunc console_pl011_core_init
 
-#if MULTI_CONSOLE_API
 	.globl console_pl011_register
 
 	/* -----------------------------------------------
@@ -117,16 +108,6 @@
 register_fail:
 	ret	x7
 endfunc console_pl011_register
-#else
-	.globl console_core_init
-	.globl console_core_putc
-	.globl console_core_getc
-	.globl console_core_flush
-	.equ console_core_init,console_pl011_core_init
-	.equ console_core_putc,console_pl011_core_putc
-	.equ console_core_getc,console_pl011_core_getc
-	.equ console_core_flush,console_pl011_core_flush
-#endif
 
 	/* --------------------------------------------------------
 	 * int console_pl011_core_putc(int c, uintptr_t base_addr)
diff --git a/drivers/cadence/uart/aarch64/cdns_console.S b/drivers/cadence/uart/aarch64/cdns_console.S
index 8b38379..ecd0c47 100644
--- a/drivers/cadence/uart/aarch64/cdns_console.S
+++ b/drivers/cadence/uart/aarch64/cdns_console.S
@@ -51,7 +51,6 @@
 	ret
 endfunc console_cdns_core_init
 
-#if MULTI_CONSOLE_API
 	.globl console_cdns_register
 
 	/* -----------------------------------------------
@@ -85,16 +84,6 @@
 register_fail:
 	ret	x7
 endfunc console_cdns_register
-#else
-	.globl console_core_init
-	.globl console_core_putc
-	.globl console_core_getc
-	.globl console_core_flush
-	.equ console_core_init,console_cdns_core_init
-	.equ console_core_putc,console_cdns_core_putc
-	.equ console_core_getc,console_cdns_core_getc
-	.equ console_core_flush,console_cdns_core_flush
-#endif
 
 	/* --------------------------------------------------------
 	 * int console_cdns_core_putc(int c, uintptr_t base_addr)
diff --git a/drivers/console/aarch32/console.S b/drivers/console/aarch32/console.S
deleted file mode 100644
index 1c38094..0000000
--- a/drivers/console/aarch32/console.S
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- * Copyright (c) 2016-2017, ARM Limited and Contributors. All rights reserved.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- */
-
- #if MULTI_CONSOLE_API
- #if ERROR_DEPRECATED
- #error "console.S is deprecated, platforms should no longer link it explicitly"
- #endif
- #else
- #include "deprecated_console.S"
- #endif
diff --git a/drivers/console/aarch32/deprecated_console.S b/drivers/console/aarch32/deprecated_console.S
deleted file mode 100644
index f7e3c4f..0000000
--- a/drivers/console/aarch32/deprecated_console.S
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * Copyright (c) 2016-2017, ARM Limited and Contributors. All rights reserved.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- */
-#include <asm_macros.S>
-
-/*
- * This is the common console core code for the deprecated single-console API.
- * New platforms should set MULTI_CONSOLE_API=1 and not use this file.
- */
-#warning "Using deprecated console implementation. Please migrate to MULTI_CONSOLE_API"
-
-	.globl	console_init
-	.globl	console_uninit
-	.globl	console_putc
-	.globl	console_getc
-	.globl	console_flush
-
-	/*
-	 *  The console base is in the data section and not in .bss
-	 *  even though it is zero-init. In particular, this allows
-	 *  the console functions to start using this variable before
-	 *  the runtime memory is initialized for images which do not
-	 *  need to copy the .data section from ROM to RAM.
-	 */
-.section .data.console_base ; .align 2
-	console_base: .word 0x0
-
-	/* -----------------------------------------------
-	 * int console_init(uintptr_t base_addr,
-	 * unsigned int uart_clk, unsigned int baud_rate)
-	 * Function to initialize the console without a
-	 * C Runtime to print debug information. It saves
-	 * the console base to the data section.
-	 * In: r0 - console base address
-	 *     r1 - Uart clock in Hz
-	 *     r2 - Baud rate
-	 * out: return 1 on success else 0 on error
-	 * Clobber list : r1 - r3
-	 * -----------------------------------------------
-	 */
-func console_init
-	/* Check the input base address */
-	cmp	r0, #0
-	beq	init_fail
-	ldr	r3, =console_base
-	str	r0, [r3]
-	b	console_core_init
-init_fail:
-	bx	lr
-endfunc console_init
-
-	/* -----------------------------------------------
-	 * void console_uninit(void)
-	 * Function to finish the use of console driver.
-	 * It sets the console_base as NULL so that any
-	 * further invocation of `console_putc` or
-	 * `console_getc` APIs would return error.
-	 * -----------------------------------------------
-	 */
-func console_uninit
-	mov	r0, #0
-	ldr	r3, =console_base
-	str	r0, [r3]
-	bx	lr
-endfunc console_uninit
-
-	/* ---------------------------------------------
-	 * int console_putc(int c)
-	 * Function to output a character over the
-	 * console. It returns the character printed on
-	 * success or -1 on error.
-	 * In : r0 - character to be printed
-	 * Out : return -1 on error else return character.
-	 * Clobber list : r1, r2
-	 * ---------------------------------------------
-	 */
-func console_putc
-	ldr	r2, =console_base
-	ldr	r1, [r2]
-	b	console_core_putc
-endfunc console_putc
-
-	/* ---------------------------------------------
-	 * int console_getc(void)
-	 * Function to get a character from the console.
-	 * It returns the character grabbed on success
-	 * or -1 on error.
-	 * Clobber list : r0, r1
-	 * ---------------------------------------------
-	 */
-func console_getc
-	ldr	r1, =console_base
-	ldr	r0, [r1]
-	b	console_core_getc
-endfunc console_getc
-
-	/* ---------------------------------------------
-	 * int console_flush(void)
-	 * Function to force a write of all buffered
-	 * data that hasn't been output. It returns 0
-	 * upon successful completion, otherwise it
-	 * returns -1.
-	 * Clobber list : r0, r1
-	 * ---------------------------------------------
-	 */
-func console_flush
-	ldr	r1, =console_base
-	ldr	r0, [r1]
-	b	console_core_flush
-endfunc console_flush
diff --git a/drivers/console/aarch64/console.S b/drivers/console/aarch64/console.S
deleted file mode 100644
index 669b31a..0000000
--- a/drivers/console/aarch64/console.S
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- * Copyright (c) 2017, ARM Limited and Contributors. All rights reserved.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- */
-
-#if MULTI_CONSOLE_API
-#if ERROR_DEPRECATED
-#error "console.S is deprecated, platforms should no longer link it explicitly"
-#endif
-#else
-#include "deprecated_console.S"
-#endif
diff --git a/drivers/console/aarch64/deprecated_console.S b/drivers/console/aarch64/deprecated_console.S
deleted file mode 100644
index d6ecc4d..0000000
--- a/drivers/console/aarch64/deprecated_console.S
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- * Copyright (c) 2015-2018, ARM Limited and Contributors. All rights reserved.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- */
-#include <asm_macros.S>
-
-/*
- * This is the common console core code for the deprecated single-console API.
- * New platforms should set MULTI_CONSOLE_API=1 and not use this file.
- */
-#warning "Using deprecated console implementation. Please migrate to MULTI_CONSOLE_API"
-
-	.globl	console_init
-	.globl	console_uninit
-	.globl	console_putc
-	.globl	console_getc
-	.globl	console_flush
-
-	/*
-	 *  The console base is in the data section and not in .bss
-	 *  even though it is zero-init. In particular, this allows
-	 *  the console functions to start using this variable before
-	 *  the runtime memory is initialized for images which do not
-	 *  need to copy the .data section from ROM to RAM.
-	 */
-.section .data.console_base ; .align 3
-	console_base: .quad 0x0
-
-	/* -----------------------------------------------
-	 * int console_init(uintptr_t base_addr,
-	 * unsigned int uart_clk, unsigned int baud_rate)
-	 * Function to initialize the console without a
-	 * C Runtime to print debug information. It saves
-	 * the console base to the data section.
-	 * In: x0 - console base address
-	 *     w1 - Uart clock in Hz
-	 *     w2 - Baud rate
-	 * out: return 1 on success else 0 on error
-	 * Clobber list : x1 - x4
-	 * -----------------------------------------------
-	 */
-func console_init
-	/* Check the input base address */
-	cbz	x0, init_fail
-	adrp	x3, console_base
-	str	x0, [x3, :lo12:console_base]
-	b	console_core_init
-init_fail:
-	ret
-endfunc console_init
-
-	/* -----------------------------------------------
-	 * void console_uninit(void)
-	 * Function to finish the use of console driver.
-	 * It sets the console_base as NULL so that any
-	 * further invocation of `console_putc` or
-	 * `console_getc` APIs would return error.
-	 * -----------------------------------------------
-	 */
-func console_uninit
-	mov	x0, #0
-	adrp	x3, console_base
-	str	x0, [x3, :lo12:console_base]
-	ret
-endfunc console_uninit
-
-	/* ---------------------------------------------
-	 * int console_putc(int c)
-	 * Function to output a character over the
-	 * console. It returns the character printed on
-	 * success or -1 on error.
-	 * In : x0 - character to be printed
-	 * Out : return -1 on error else return character.
-	 * Clobber list : x1, x2
-	 * ---------------------------------------------
-	 */
-func console_putc
-	adrp	x2, console_base
-	ldr	x1, [x2, :lo12:console_base]
-	b	console_core_putc
-endfunc console_putc
-
-	/* ---------------------------------------------
-	 * int console_getc(void)
-	 * Function to get a character from the console.
-	 * It returns the character grabbed on success
-	 * or -1 on error.
-	 * Clobber list : x0, x1
-	 * ---------------------------------------------
-	 */
-func console_getc
-	adrp	x1, console_base
-	ldr	x0, [x1, :lo12:console_base]
-	b	console_core_getc
-endfunc console_getc
-
-	/* ---------------------------------------------
-	 * int console_flush(void)
-	 * Function to force a write of all buffered
-	 * data that hasn't been output. It returns 0
-	 * upon successful completion, otherwise it
-	 * returns -1.
-	 * Clobber list : x0, x1
-	 * ---------------------------------------------
-	 */
-func console_flush
-	adrp	x1, console_base
-	ldr	x0, [x1, :lo12:console_base]
-	b	console_core_flush
-endfunc console_flush
diff --git a/drivers/console/aarch64/skeleton_console.S b/drivers/console/aarch64/skeleton_console.S
index 1ba2196..c695dde 100644
--- a/drivers/console/aarch64/skeleton_console.S
+++ b/drivers/console/aarch64/skeleton_console.S
@@ -22,8 +22,6 @@
 	 * any function may always clobber the intra-procedure-call registers
 	 * X16 and X17, but may never depend on them retaining their values
 	 * across any function call.)
-	 * Platforms using drivers based on this template need to enable
-	 * MULTI_CONSOLE_API := 1 in their platform.mk.
 	 */
 
 	.globl	console_xxx_register
diff --git a/drivers/console/multi_console.c b/drivers/console/multi_console.c
index 1ec81c3..d9eba7f 100644
--- a/drivers/console/multi_console.c
+++ b/drivers/console/multi_console.c
@@ -4,8 +4,6 @@
  * SPDX-License-Identifier: BSD-3-Clause
  */
 
-#if MULTI_CONSOLE_API
-
 #include <assert.h>
 
 #include <drivers/console.h>
@@ -121,5 +119,3 @@
 
 	return err;
 }
-
-#endif	/* MULTI_CONSOLE_API */
diff --git a/drivers/ti/uart/aarch64/16550_console.S b/drivers/ti/uart/aarch64/16550_console.S
index 55db503..dab46e8 100644
--- a/drivers/ti/uart/aarch64/16550_console.S
+++ b/drivers/ti/uart/aarch64/16550_console.S
@@ -83,7 +83,6 @@
 	ret
 endfunc console_16550_core_init
 
-#if MULTI_CONSOLE_API
 	.globl console_16550_register
 
 	/* -----------------------------------------------
@@ -117,16 +116,6 @@
 register_fail:
 	ret	x7
 endfunc console_16550_register
-#else
-	.globl console_core_init
-	.globl console_core_putc
-	.globl console_core_getc
-	.globl console_core_flush
-	.equ console_core_init,console_16550_core_init
-	.equ console_core_putc,console_16550_core_putc
-	.equ console_core_getc,console_16550_core_getc
-	.equ console_core_flush,console_16550_core_flush
-#endif
 
 	/* --------------------------------------------------------
 	 * int console_16550_core_putc(int c, uintptr_t base_addr)
diff --git a/include/drivers/console.h b/include/drivers/console.h
index 4f26cce..f31de95 100644
--- a/include/drivers/console.h
+++ b/include/drivers/console.h
@@ -75,13 +75,6 @@
 /* Flush all consoles registered for the current state. */
 int console_flush(void);
 
-#if !MULTI_CONSOLE_API
-/* REMOVED on AArch64 -- use console_<driver>_register() instead! */
-int console_init(uintptr_t base_addr,
-		 unsigned int uart_clk, unsigned int baud_rate);
-void console_uninit(void);
-#endif
-
 #endif /* __ASSEMBLY__ */
 
 #endif /* CONSOLE_H */
diff --git a/make_helpers/defaults.mk b/make_helpers/defaults.mk
index 6becf80..f63e46f 100644
--- a/make_helpers/defaults.mk
+++ b/make_helpers/defaults.mk
@@ -136,10 +136,6 @@
 # Set the default algorithm for the generation of Trusted Board Boot keys
 KEY_ALG				:= rsa
 
-# Enable use of the console API allowing multiple consoles to be registered
-# at the same time.
-MULTI_CONSOLE_API		:= 0
-
 # NS timer register save and restore
 NS_TIMER_SWITCH			:= 0
 
diff --git a/plat/allwinner/common/allwinner-common.mk b/plat/allwinner/common/allwinner-common.mk
index 585079b..6866bd6 100644
--- a/plat/allwinner/common/allwinner-common.mk
+++ b/plat/allwinner/common/allwinner-common.mk
@@ -49,8 +49,6 @@
 ERRATA_A53_843419		:=	1
 ERRATA_A53_855873		:=	1
 
-MULTI_CONSOLE_API		:=	1
-
 # The reset vector can be changed for each CPU.
 PROGRAMMABLE_RESET_ADDRESS	:=	1
 
diff --git a/plat/arm/board/fvp_ve/platform.mk b/plat/arm/board/fvp_ve/platform.mk
index f9ced2c..f85452d 100644
--- a/plat/arm/board/fvp_ve/platform.mk
+++ b/plat/arm/board/fvp_ve/platform.mk
@@ -106,8 +106,6 @@
 $(eval $(call assert_boolean,ARM_XLAT_TABLES_LIB_V1))
 $(eval $(call add_define,ARM_XLAT_TABLES_LIB_V1))
 
-MULTI_CONSOLE_API		:=	1
-
 ifeq (${ARM_XLAT_TABLES_LIB_V1}, 1)
 	# Only use nonlpae version of xlatv1 otherwise use xlat v2
 	PLAT_BL_COMMON_SOURCES	+=	lib/xlat_tables/${ARCH}/nonlpae_tables.c
diff --git a/plat/arm/common/arm_bl31_setup.c b/plat/arm/common/arm_bl31_setup.c
index 8e1a263..ab90f46 100644
--- a/plat/arm/common/arm_bl31_setup.c
+++ b/plat/arm/common/arm_bl31_setup.c
@@ -240,11 +240,7 @@
  ******************************************************************************/
 void arm_bl31_plat_runtime_setup(void)
 {
-#if MULTI_CONSOLE_API
 	console_switch_state(CONSOLE_FLAG_RUNTIME);
-#else
-	console_uninit();
-#endif
 
 	/* Initialize the runtime console */
 	arm_console_runtime_init();
diff --git a/plat/arm/common/arm_common.mk b/plat/arm/common/arm_common.mk
index c3d9e03..10b6e51 100644
--- a/plat/arm/common/arm_common.mk
+++ b/plat/arm/common/arm_common.mk
@@ -125,9 +125,6 @@
 # mapping the former as executable and the latter as execute-never.
 SEPARATE_CODE_AND_RODATA	:=	1
 
-# Use the multi console API, which is only available for AArch64 for now
-MULTI_CONSOLE_API		:=	1
-
 # Disable ARM Cryptocell by default
 ARM_CRYPTOCELL_INTEG		:=	0
 $(eval $(call assert_boolean,ARM_CRYPTOCELL_INTEG))
diff --git a/plat/arm/common/arm_console.c b/plat/arm/common/arm_console.c
index 580b2ee..123811d 100644
--- a/plat/arm/common/arm_console.c
+++ b/plat/arm/common/arm_console.c
@@ -16,15 +16,12 @@
 /*******************************************************************************
  * Functions that set up the console
  ******************************************************************************/
-#if MULTI_CONSOLE_API
 static console_pl011_t arm_boot_console;
 static console_pl011_t arm_runtime_console;
-#endif
 
 /* Initialize the console to provide early debug support */
 void __init arm_console_boot_init(void)
 {
-#if MULTI_CONSOLE_API
 	int rc = console_pl011_register(PLAT_ARM_BOOT_UART_BASE,
 					PLAT_ARM_BOOT_UART_CLK_IN_HZ,
 					ARM_CONSOLE_BAUDRATE,
@@ -39,28 +36,17 @@
 	}
 
 	console_set_scope(&arm_boot_console.console, CONSOLE_FLAG_BOOT);
-#else
-	(void)console_init(PLAT_ARM_BOOT_UART_BASE,
-			   PLAT_ARM_BOOT_UART_CLK_IN_HZ,
-			   ARM_CONSOLE_BAUDRATE);
-#endif /* MULTI_CONSOLE_API */
 }
 
 void arm_console_boot_end(void)
 {
 	(void)console_flush();
-
-#if MULTI_CONSOLE_API
 	(void)console_unregister(&arm_boot_console.console);
-#else
-	console_uninit();
-#endif /* MULTI_CONSOLE_API */
 }
 
 /* Initialize the runtime console */
 void arm_console_runtime_init(void)
 {
-#if MULTI_CONSOLE_API
 	int rc = console_pl011_register(PLAT_ARM_RUN_UART_BASE,
 					PLAT_ARM_RUN_UART_CLK_IN_HZ,
 					ARM_CONSOLE_BAUDRATE,
@@ -69,18 +55,9 @@
 		panic();
 
 	console_set_scope(&arm_runtime_console.console, CONSOLE_FLAG_RUNTIME);
-#else
-	(void)console_init(PLAT_ARM_RUN_UART_BASE,
-			   PLAT_ARM_RUN_UART_CLK_IN_HZ,
-			   ARM_CONSOLE_BAUDRATE);
-#endif /* MULTI_CONSOLE_API */
 }
 
 void arm_console_runtime_end(void)
 {
 	(void)console_flush();
-
-#if !MULTI_CONSOLE_API
-	console_uninit();
-#endif /* !MULTI_CONSOLE_API */
 }
diff --git a/plat/arm/common/tsp/arm_tsp_setup.c b/plat/arm/common/tsp/arm_tsp_setup.c
index a3dfa1e..aefdf89 100644
--- a/plat/arm/common/tsp/arm_tsp_setup.c
+++ b/plat/arm/common/tsp/arm_tsp_setup.c
@@ -28,13 +28,10 @@
 /*******************************************************************************
  * Initialize the UART
  ******************************************************************************/
-#if MULTI_CONSOLE_API
 static console_pl011_t arm_tsp_runtime_console;
-#endif
 
 void arm_tsp_early_platform_setup(void)
 {
-#if MULTI_CONSOLE_API
 	/*
 	 * Initialize a different console than already in use to display
 	 * messages from TSP
@@ -48,10 +45,6 @@
 
 	console_set_scope(&arm_tsp_runtime_console.console,
 			  CONSOLE_FLAG_BOOT | CONSOLE_FLAG_RUNTIME);
-#else
-	console_init(PLAT_ARM_TSP_UART_BASE, PLAT_ARM_TSP_UART_CLK_IN_HZ,
-			ARM_CONSOLE_BAUDRATE);
-#endif /* MULTI_CONSOLE_API */
 }
 
 void tsp_early_platform_setup(void)
diff --git a/plat/common/aarch32/crash_console_helpers.S b/plat/common/aarch32/crash_console_helpers.S
index c9ad12c..ea04f56 100644
--- a/plat/common/aarch32/crash_console_helpers.S
+++ b/plat/common/aarch32/crash_console_helpers.S
@@ -16,8 +16,6 @@
 	.globl	plat_crash_console_putc
 	.globl	plat_crash_console_flush
 
-#if MULTI_CONSOLE_API
-
 	/* -----------------------------------------------------
 	 * int plat_crash_console_init(void)
 	 * Use normal console by default. Switch it to crash
@@ -68,25 +66,3 @@
 func plat_crash_console_flush
 	b	console_flush
 endfunc plat_crash_console_flush
-
-#else	/* MULTI_CONSOLE_API */
-
-	/* -----------------------------------------------------
-	 * In the old API these are all no-op stubs that need to
-	 * be overridden by the platform to be useful.
-	 * -----------------------------------------------------
-	 */
-func plat_crash_console_init
-	mov	r0, #0
-	bx	lr
-endfunc plat_crash_console_init
-
-func plat_crash_console_putc
-	bx	lr
-endfunc plat_crash_console_putc
-
-func plat_crash_console_flush
-	bx	lr
-endfunc plat_crash_console_flush
-
-#endif
diff --git a/plat/common/aarch32/plat_sp_min_common.c b/plat/common/aarch32/plat_sp_min_common.c
index 3bc84b1..9493587 100644
--- a/plat/common/aarch32/plat_sp_min_common.c
+++ b/plat/common/aarch32/plat_sp_min_common.c
@@ -21,9 +21,5 @@
 	 * Finish the use of console driver in SP_MIN so that any runtime logs
 	 * from SP_MIN will be suppressed.
 	 */
-#if MULTI_CONSOLE_API
 	console_switch_state(CONSOLE_FLAG_RUNTIME);
-#else
-	console_uninit();
-#endif
 }
diff --git a/plat/common/aarch64/crash_console_helpers.S b/plat/common/aarch64/crash_console_helpers.S
index 491a99d..2a48baf 100644
--- a/plat/common/aarch64/crash_console_helpers.S
+++ b/plat/common/aarch64/crash_console_helpers.S
@@ -16,10 +16,6 @@
 	.globl	plat_crash_console_putc
 	.globl	plat_crash_console_flush
 
-#if !MULTI_CONSOLE_API
-#error "This crash console implementation only works with the MULTI_CONSOLE_API!"
-#endif
-
 	/*
 	 * Spinlock to syncronize access to crash_console_triggered. We cannot
 	 * acquire spinlocks when the cache is disabled, so in some cases (like
diff --git a/plat/common/aarch64/plat_common.c b/plat/common/aarch64/plat_common.c
index 1424c78..f8d3129 100644
--- a/plat/common/aarch64/plat_common.c
+++ b/plat/common/aarch64/plat_common.c
@@ -30,11 +30,7 @@
 
 void bl31_plat_runtime_setup(void)
 {
-#if MULTI_CONSOLE_API
 	console_switch_state(CONSOLE_FLAG_RUNTIME);
-#else
-	console_uninit();
-#endif
 }
 
 /*
diff --git a/plat/hisilicon/hikey/platform.mk b/plat/hisilicon/hikey/platform.mk
index 99887ee..7fd897c 100644
--- a/plat/hisilicon/hikey/platform.mk
+++ b/plat/hisilicon/hikey/platform.mk
@@ -20,7 +20,6 @@
 
 CONSOLE_BASE			:=	PL011_UART3_BASE
 CRASH_CONSOLE_BASE		:=	PL011_UART3_BASE
-MULTI_CONSOLE_API		:=	1
 PLAT_PARTITION_MAX_ENTRIES	:=	12
 PLAT_PL061_MAX_GPIOS		:=	160
 COLD_BOOT_SINGLE_CPU		:=	1
diff --git a/plat/hisilicon/hikey960/platform.mk b/plat/hisilicon/hikey960/platform.mk
index 8ff303f..4f2c3c6 100644
--- a/plat/hisilicon/hikey960/platform.mk
+++ b/plat/hisilicon/hikey960/platform.mk
@@ -17,7 +17,6 @@
   $(error "Currently unsupported HIKEY960_TSP_RAM_LOCATION value")
 endif
 
-MULTI_CONSOLE_API		:=	1
 CRASH_CONSOLE_BASE		:=	PL011_UART6_BASE
 COLD_BOOT_SINGLE_CPU		:=	1
 PLAT_PL061_MAX_GPIOS		:=	176
diff --git a/plat/hisilicon/poplar/platform.mk b/plat/hisilicon/poplar/platform.mk
index a1535a4..b5d9867 100644
--- a/plat/hisilicon/poplar/platform.mk
+++ b/plat/hisilicon/poplar/platform.mk
@@ -46,7 +46,6 @@
 ERRATA_A53_835769		:= 1
 ERRATA_A53_843419		:= 1
 ENABLE_SVE_FOR_NS		:= 0
-MULTI_CONSOLE_API		:= 1
 WORKAROUND_CVE_2017_5715	:= 0
 
 PLAT_PL061_MAX_GPIOS 		:= 104
diff --git a/plat/imx/imx7/warp7/platform.mk b/plat/imx/imx7/warp7/platform.mk
index 6cd7566..a93f5e0 100644
--- a/plat/imx/imx7/warp7/platform.mk
+++ b/plat/imx/imx7/warp7/platform.mk
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2018, ARM Limited and Contributors. All rights reserved.
+# Copyright (c) 2018-2019, ARM Limited and Contributors. All rights reserved.
 #
 # SPDX-License-Identifier: BSD-3-Clause
 #
@@ -31,7 +31,6 @@
 include lib/xlat_tables_v2/xlat_tables.mk
 
 BL2_SOURCES		+=	common/desc_image_load.c			\
-				drivers/console/aarch32/console.S		\
 				drivers/delay_timer/delay_timer.c		\
 				drivers/mmc/mmc.c				\
 				drivers/io/io_block.c				\
@@ -119,9 +118,6 @@
 # Use Coherent memory
 USE_COHERENT_MEM		:= 1
 
-# Use multi console API
-MULTI_CONSOLE_API               := 1
-
 # PLAT_WARP7_UART
 PLAT_WARP7_UART			:=1
 $(eval $(call add_define,PLAT_WARP7_UART))
diff --git a/plat/imx/imx8m/imx8mm/platform.mk b/plat/imx/imx8m/imx8mm/platform.mk
index bd1c058..a3d249a 100644
--- a/plat/imx/imx8m/imx8mm/platform.mk
+++ b/plat/imx/imx8m/imx8mm/platform.mk
@@ -39,7 +39,6 @@
 USE_COHERENT_MEM	:=	1
 RESET_TO_BL31		:=	1
 A53_DISABLE_NON_TEMPORAL_HINT := 0
-MULTI_CONSOLE_API	:=	1
 
 ERRATA_A53_835769	:=	1
 ERRATA_A53_843419	:=	1
diff --git a/plat/imx/imx8m/imx8mq/platform.mk b/plat/imx/imx8m/imx8mq/platform.mk
index c6bec6f..d6879bf 100644
--- a/plat/imx/imx8m/imx8mq/platform.mk
+++ b/plat/imx/imx8m/imx8mq/platform.mk
@@ -39,7 +39,6 @@
 USE_COHERENT_MEM	:=	1
 RESET_TO_BL31		:=	1
 A53_DISABLE_NON_TEMPORAL_HINT := 0
-MULTI_CONSOLE_API	:=	1
 
 ERRATA_A53_835769	:=	1
 ERRATA_A53_843419	:=	1
diff --git a/plat/imx/imx8qm/platform.mk b/plat/imx/imx8qm/platform.mk
index ed6108d..3a772e5 100644
--- a/plat/imx/imx8qm/platform.mk
+++ b/plat/imx/imx8qm/platform.mk
@@ -36,7 +36,6 @@
 USE_COHERENT_MEM	:=	1
 RESET_TO_BL31		:=	1
 A53_DISABLE_NON_TEMPORAL_HINT := 0
-MULTI_CONSOLE_API	:=	1
 ERRATA_A72_859971	:=	1
 
 ERRATA_A53_835769	:=	1
diff --git a/plat/imx/imx8qx/platform.mk b/plat/imx/imx8qx/platform.mk
index eeb1f34..d5629d1 100644
--- a/plat/imx/imx8qx/platform.mk
+++ b/plat/imx/imx8qx/platform.mk
@@ -33,4 +33,3 @@
 
 USE_COHERENT_MEM	:=	1
 RESET_TO_BL31		:=	1
-MULTI_CONSOLE_API	:=	1
diff --git a/plat/intel/soc/stratix10/platform.mk b/plat/intel/soc/stratix10/platform.mk
index c1d62da..a21280f 100644
--- a/plat/intel/soc/stratix10/platform.mk
+++ b/plat/intel/soc/stratix10/platform.mk
@@ -68,5 +68,4 @@
 
 PROGRAMMABLE_RESET_ADDRESS	:= 0
 BL2_AT_EL3			:= 1
-MULTI_CONSOLE_API		:= 1
 USE_COHERENT_MEM		:= 1
diff --git a/plat/layerscape/board/ls1043/platform.mk b/plat/layerscape/board/ls1043/platform.mk
index 2e0e59b..d716c61 100644
--- a/plat/layerscape/board/ls1043/platform.mk
+++ b/plat/layerscape/board/ls1043/platform.mk
@@ -56,9 +56,6 @@
 					${LS1043_INTERCONNECT_SOURCES}			\
 					${LS1043_SECURITY_SOURCES}
 
-# Disable the PSCI platform compatibility layer
-MULTI_CONSOLE_API		:=	1
-
 # Enable workarounds for selected Cortex-A53 erratas.
 ERRATA_A53_855873		:=	1
 
diff --git a/plat/layerscape/common/aarch64/ls_console.S b/plat/layerscape/common/aarch64/ls_console.S
index a3c270d..f8948b4 100644
--- a/plat/layerscape/common/aarch64/ls_console.S
+++ b/plat/layerscape/common/aarch64/ls_console.S
@@ -78,7 +78,6 @@
 	ret
 endfunc console_ls_16550_core_init
 
-#if MULTI_CONSOLE_API
 	.globl console_ls_16550_register
 
 	/* -----------------------------------------------
@@ -111,16 +110,6 @@
 register_fail:
 	ret	x7
 endfunc console_ls_16550_register
-#else
-	.globl console_core_init
-	.globl console_core_putc
-	.globl console_core_getc
-	.globl console_core_flush
-	.equ console_core_init,console_ls_16550_core_init
-	.equ console_core_putc,console_ls_16550_core_putc
-	.equ console_core_getc,console_ls_16550_core_getc
-	.equ console_core_flush,console_ls_16550_core_flush
-#endif
 
 	/* --------------------------------------------------------
 	 * int console_ls_16550_core_putc(int c, uintptr_t base_addr)
diff --git a/plat/layerscape/common/aarch64/ls_helpers.S b/plat/layerscape/common/aarch64/ls_helpers.S
index bbddd0b..5aa5497 100644
--- a/plat/layerscape/common/aarch64/ls_helpers.S
+++ b/plat/layerscape/common/aarch64/ls_helpers.S
@@ -49,7 +49,6 @@
 	 * ---------------------------------------------
 	 */
 
-#if MULTI_CONSOLE_API
 	/* -----------------------------------------------------
 	 * int plat_crash_console_init(void)
 	 * Use normal console by default. Switch it to crash
@@ -101,45 +100,6 @@
 	b	console_flush
 endfunc plat_crash_console_flush
 
-#else	/* MULTI_CONSOLE_API */
-
-	/* -----------------------------------------------------
-	 * In the old API these are all no-op stubs that need to
-	 * be overridden by the platform to be useful.
-	 * -----------------------------------------------------
-	 */
-func plat_crash_console_init
-	mov_imm	x0, PLAT_LS1043_UART_BASE
-	mov_imm	x1, PLAT_LS1043_UART_CLOCK
-	mov_imm	x2, PLAT_LS1043_UART_BAUDRATE
-	b	console_core_init
-endfunc plat_crash_console_init
-
-	/* ---------------------------------------------
-	 * int plat_crash_console_putc(int c)
-	 * Function to print a character on the crash
-	 * console without a C Runtime.
-	 * Clobber list : x1, x2
-	 * ---------------------------------------------
-	 */
-func plat_crash_console_putc
-	mov_imm	x1, PLAT_LS1043_UART_BASE
-	b	console_core_putc
-endfunc plat_crash_console_putc
-
-	/* ---------------------------------------------
-	 * int plat_crash_console_flush()
-	 * Function to force a write of all buffered
-	 * data that hasn't been output.
-	 * Out : return -1 on error else return 0.
-	 * Clobber list : r0 - r1
-	 * ---------------------------------------------
-	 */
-func plat_crash_console_flush
-	mov_imm	x1, PLAT_LS1043_UART_BASE
-	b	console_core_flush
-endfunc plat_crash_console_flush
-#endif
 	/* ---------------------------------------------------------------------
 	 * We don't need to carry out any memory initialization on LS
 	 * platforms. The Secure SRAM is accessible straight away.
diff --git a/plat/marvell/common/marvell_common.mk b/plat/marvell/common/marvell_common.mk
index a128261..5c8e804 100644
--- a/plat/marvell/common/marvell_common.mk
+++ b/plat/marvell/common/marvell_common.mk
@@ -11,8 +11,6 @@
 
 VERSION_STRING			+=(Marvell-${SUBVERSION})
 
-MULTI_CONSOLE_API		:= 1
-
 SEPARATE_CODE_AND_RODATA	:= 1
 
 # flag to switch from PLL to ARO
diff --git a/plat/meson/gxbb/platform.mk b/plat/meson/gxbb/platform.mk
index 9669bf9..9e65040 100644
--- a/plat/meson/gxbb/platform.mk
+++ b/plat/meson/gxbb/platform.mk
@@ -57,16 +57,9 @@
 # Use Coherent memory
 USE_COHERENT_MEM		:= 1
 
-# Use multi console API
-MULTI_CONSOLE_API		:= 1
-
 # Verify build config
 # -------------------
 
-ifneq (${MULTI_CONSOLE_API}, 1)
-  $(error Error: gxbb needs MULTI_CONSOLE_API=1)
-endif
-
 ifneq (${RESET_TO_BL31}, 0)
   $(error Error: gxbb needs RESET_TO_BL31=0)
 endif
diff --git a/plat/meson/gxl/platform.mk b/plat/meson/gxl/platform.mk
index ea4aead..a788e96 100644
--- a/plat/meson/gxl/platform.mk
+++ b/plat/meson/gxl/platform.mk
@@ -62,16 +62,9 @@
 # Use Coherent memory
 USE_COHERENT_MEM		:= 1
 
-# Use multi console API
-MULTI_CONSOLE_API		:= 1
-
 # Verify build config
 # -------------------
 
-ifneq (${MULTI_CONSOLE_API}, 1)
-  $(error Error: gxl needs MULTI_CONSOLE_API=1)
-endif
-
 ifneq (${RESET_TO_BL31}, 0)
   $(error Error: gxl needs RESET_TO_BL31=0)
 endif
diff --git a/plat/qemu/aarch32/plat_helpers.S b/plat/qemu/aarch32/plat_helpers.S
index cf6bae8..aebcfa7 100644
--- a/plat/qemu/aarch32/plat_helpers.S
+++ b/plat/qemu/aarch32/plat_helpers.S
@@ -103,7 +103,7 @@
 	mov_imm	r0, PLAT_QEMU_CRASH_UART_BASE
 	mov_imm	r1, PLAT_QEMU_CRASH_UART_CLK_IN_HZ
 	mov_imm	r2, PLAT_QEMU_CONSOLE_BAUDRATE
-	b	console_core_init
+	b	console_pl011_core_init
 endfunc plat_crash_console_init
 
 	/* ---------------------------------------------
@@ -115,7 +115,7 @@
 	 */
 func plat_crash_console_putc
 	mov_imm	r1, PLAT_QEMU_CRASH_UART_BASE
-	b	console_core_putc
+	b	console_pl011_core_putc
 endfunc plat_crash_console_putc
 
 	/* ---------------------------------------------
@@ -128,6 +128,6 @@
 	 */
 func plat_crash_console_flush
 	mov_imm	r0, PLAT_QEMU_CRASH_UART_BASE
-	b	console_core_flush
+	b	console_pl011_core_flush
 endfunc plat_crash_console_flush
 
diff --git a/plat/qemu/platform.mk b/plat/qemu/platform.mk
index f086ddc..85d83ea 100644
--- a/plat/qemu/platform.mk
+++ b/plat/qemu/platform.mk
@@ -151,12 +151,6 @@
 	PLAT_BL_COMMON_SOURCES += plat/qemu/qemu_stack_protector.c
 endif
 
-# Use MULTI_CONSOLE_API by default only on AArch64
-# as it is not yet supported on AArch32
-ifeq ($(ARCH),aarch64)
-MULTI_CONSOLE_API	:= 1
-endif
-
 BL32_RAM_LOCATION	:=	tdram
 ifeq (${BL32_RAM_LOCATION}, tsram)
   BL32_RAM_LOCATION_ID = SEC_SRAM_ID
diff --git a/plat/qemu/qemu_console.c b/plat/qemu/qemu_console.c
index 759f997..fec1828 100644
--- a/plat/qemu/qemu_console.c
+++ b/plat/qemu/qemu_console.c
@@ -9,23 +9,15 @@
 #include <drivers/console.h>
 #include <drivers/arm/pl011.h>
 
-#if MULTI_CONSOLE_API
 static console_pl011_t console;
-#endif /* MULTI_CONSOLE_API */
 
 void qemu_console_init(void)
 {
-#if MULTI_CONSOLE_API
 	(void)console_pl011_register(PLAT_QEMU_BOOT_UART_BASE,
 			       PLAT_QEMU_BOOT_UART_CLK_IN_HZ,
 			       PLAT_QEMU_CONSOLE_BAUDRATE, &console);
 
 	console_set_scope(&console.console, CONSOLE_FLAG_BOOT |
 			  CONSOLE_FLAG_RUNTIME);
-#else
-	console_init(PLAT_QEMU_BOOT_UART_BASE,
-		     PLAT_QEMU_BOOT_UART_CLK_IN_HZ,
-		     PLAT_QEMU_CONSOLE_BAUDRATE);
-#endif /* MULTI_CONSOLE_API */
 }
 
diff --git a/plat/qemu/sp_min/sp_min_setup.c b/plat/qemu/sp_min/sp_min_setup.c
index 88f7397..7ec657b 100644
--- a/plat/qemu/sp_min/sp_min_setup.c
+++ b/plat/qemu/sp_min/sp_min_setup.c
@@ -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
  */
@@ -93,8 +93,7 @@
 	bl_params_t *params_from_bl2 = (bl_params_t *)arg0;
 
 	/* Initialize the console to provide early debug support */
-	console_init(PLAT_QEMU_BOOT_UART_BASE, PLAT_QEMU_BOOT_UART_CLK_IN_HZ,
-			PLAT_QEMU_CONSOLE_BAUDRATE);
+	qemu_console_init();
 
 	ERROR("qemu sp_min, console init\n");
 	/*
diff --git a/plat/rockchip/rk3328/platform.mk b/plat/rockchip/rk3328/platform.mk
index 3e70330..fa207aa 100644
--- a/plat/rockchip/rk3328/platform.mk
+++ b/plat/rockchip/rk3328/platform.mk
@@ -51,8 +51,6 @@
 				${RK_PLAT_SOC}/drivers/pmu/pmu.c		\
 				${RK_PLAT_SOC}/drivers/soc/soc.c
 
-MULTI_CONSOLE_API	:=	1
-
 include lib/coreboot/coreboot.mk
 include lib/libfdt/libfdt.mk
 
diff --git a/plat/rockchip/rk3368/platform.mk b/plat/rockchip/rk3368/platform.mk
index 51368de..f8878f1 100644
--- a/plat/rockchip/rk3368/platform.mk
+++ b/plat/rockchip/rk3368/platform.mk
@@ -50,8 +50,6 @@
 				${RK_PLAT_SOC}/drivers/soc/soc.c		\
 				${RK_PLAT_SOC}/drivers/ddr/ddr_rk3368.c		\
 
-MULTI_CONSOLE_API	:=	1
-
 include lib/coreboot/coreboot.mk
 include lib/libfdt/libfdt.mk
 
diff --git a/plat/rockchip/rk3399/platform.mk b/plat/rockchip/rk3399/platform.mk
index f917f61..1d81d7e 100644
--- a/plat/rockchip/rk3399/platform.mk
+++ b/plat/rockchip/rk3399/platform.mk
@@ -67,8 +67,6 @@
 			${RK_PLAT_SOC}/drivers/dram/dram_spec_timing.c	\
 			${RK_PLAT_SOC}/drivers/dram/suspend.c
 
-MULTI_CONSOLE_API	:=	1
-
 include lib/coreboot/coreboot.mk
 include lib/libfdt/libfdt.mk
 
diff --git a/plat/rpi3/platform.mk b/plat/rpi3/platform.mk
index ca638d5..f238cd6 100644
--- a/plat/rpi3/platform.mk
+++ b/plat/rpi3/platform.mk
@@ -102,9 +102,6 @@
 # Use Coherent memory
 USE_COHERENT_MEM		:= 1
 
-# Use multi console API
-MULTI_CONSOLE_API		:= 1
-
 # Platform build flags
 # --------------------
 
@@ -152,10 +149,6 @@
   endif
 endif
 
-ifneq (${MULTI_CONSOLE_API}, 1)
-  $(error Error: rpi3 needs MULTI_CONSOLE_API=1)
-endif
-
 ifneq (${RESET_TO_BL31}, 0)
   $(error Error: rpi3 needs RESET_TO_BL31=0)
 endif
diff --git a/plat/socionext/synquacer/platform.mk b/plat/socionext/synquacer/platform.mk
index f5e72cb..fe1448f 100644
--- a/plat/socionext/synquacer/platform.mk
+++ b/plat/socionext/synquacer/platform.mk
@@ -5,7 +5,6 @@
 #
 
 override RESET_TO_BL31			:= 1
-override MULTI_CONSOLE_API		:= 1
 override PROGRAMMABLE_RESET_ADDRESS	:= 1
 override USE_COHERENT_MEM		:= 1
 override SEPARATE_CODE_AND_RODATA	:= 1
diff --git a/plat/st/stm32mp1/platform.mk b/plat/st/stm32mp1/platform.mk
index f6bf9f3..0ea7bbb 100644
--- a/plat/st/stm32mp1/platform.mk
+++ b/plat/st/stm32mp1/platform.mk
@@ -8,7 +8,6 @@
 ARM_WITH_NEON		:=	yes
 BL2_AT_EL3		:=	1
 USE_COHERENT_MEM	:=	0
-MULTI_CONSOLE_API	:=	1
 
 STM32_TF_VERSION	?=	0
 
diff --git a/plat/ti/k3/common/plat_common.mk b/plat/ti/k3/common/plat_common.mk
index 83e9c62..f154a96 100644
--- a/plat/ti/k3/common/plat_common.mk
+++ b/plat/ti/k3/common/plat_common.mk
@@ -28,7 +28,6 @@
 # Split out RO data into a non-executable section
 SEPARATE_CODE_AND_RODATA :=    1
 
-MULTI_CONSOLE_API	:=	1
 TI_16550_MDR_QUIRK	:=	1
 $(eval $(call add_define,TI_16550_MDR_QUIRK))
 
diff --git a/plat/xilinx/versal/platform.mk b/plat/xilinx/versal/platform.mk
index 1532d92..1c56364 100644
--- a/plat/xilinx/versal/platform.mk
+++ b/plat/xilinx/versal/platform.mk
@@ -8,7 +8,6 @@
 SEPARATE_CODE_AND_RODATA := 1
 override RESET_TO_BL31 := 1
 PL011_GENERIC_UART := 1
-MULTI_CONSOLE_API := 1
 
 ifdef VERSAL_ATF_MEM_BASE
     $(eval $(call add_define,VERSAL_ATF_MEM_BASE))